Licence d`informatique - Bibliothèque de l`Université de Toulon

Transcription

Licence d`informatique - Bibliothèque de l`Université de Toulon
UNIVERSITÉ DE TOULON ET DU VAR
U.F.R. de Sciences et techniques
Licence d’informatique
ANNALES D’EXAMENS
2000-2001
Carte à mémoire et contrôle d’accès
novembre 2000
Partie II
Question 1
Sur un boı̂tier mémoire, quelles sont les différentes lignes que l’on peut trouver ?
Donnez une description succincte pour chacune d’elle.
Question 2
Dans une mémoire dynamique de type SDRAM, une fois le signal RAS reçu,
quel est le signal suivant qui est envoyé ?
A quoi sert-il ?
Question 3
Quel est l’inconvénient technique majeur d’une mémoire dynamique par rapport
à une mémoire statique.
Quelle en est la cause ?
Question 4
Dans une mémoire asynchrone quel est la technique utilisée pour “synchroniser”les accès mémoires.
Quelles sont les conséquences d’une mauvaise gestion ?
Question 5
Vous devez concevoir un circuit électronique comprenant une mémoire morte
réinscriptible à volonté et aussi rapide qu’une DRAM FPM.
Quel type de mémoire employez-vous ? Justifiez votre choix.
Question 6
Quelles sont les raisons qui contraignent les concepteurs d’ordinateur à mettre
en place une hiérarchie mémoires ?
Question 7
Dans le schéma ci-dessous quel est le nom du circuit qui se trouve représenté
dans l’ovale.
Quels sont les noms des Bus qui vont de ce circuit vers le contrôleur graphique
et la mémoire centrale ?
Quel circuit vient généralement en complément ?
L1, Algorithmique
28 novembre 2000
La précision et la clarté de votre rédaction sont fondamentales, Cours
et TD sont autorisés. Durée 1h30. Le barème indiqué est approximatif.
Exercice 1.
[3pt]
Montrez que la somme
S(n) =
n
X
1
k2
k=1
est majorée par une constante (indépendante de n).
Exercice 2.
[3pt]
Décrivez le tri pas TAS du tableau T = [3, 1, 2, 5, 0], en représentant l’arbre et
le tableau correspondant à chaque étape.
Exercice 3.
[6pt]
Écrivez un algorithme CHERCHE(T, x):ENTIER qui renvoie l’indice i tel que
T [i] = x si x est dans le tableau et 0 sinon. Calculez la complexité de cet
algorithme dans le meilleur des cas, le pire des cas et le cas moyen. Pour
simplifier l’étude du cas moyen, vous supposerez que le tableau contient une
permutation des entiers 1, 2, . . . , n et que x ∈ [1, n].
Exercice 4.
[8pt]
Pour trier un tableau d’entiers, les professeurs Matuvu, Jesaistout et Tropfort,
nous proposent le “fantastique” algorithme suivant :
TRI-MJT(T,i,j);
DONNEES
T:TABLEAU DE n ENTIERS;
i,j:ENTIERS;
VARIABLE
k:ENTIER;
DEBUT
SI (T[i] > T[j]) ALORS
ECHANGER (T, i ,j);
FSI
SI (i + 1 < j) ALORS
k <- (j - i + 1) DIV 3;
TRI-MJT(T,i,j - k);
TRI-MJT(T,i + k,j);
TRI-MJT(T,i,j - k);
FSI
FIN
1. Quel est le grand principe algorithmique qui est utilisé par cet algorithme ?
2. Que représente l’entier k ? Expliquez brièvement ce que fait l’algorithme.
3. Montrez que TRI-MJT(T, 1 ,n) trie correctement le tableau T où n,
désigne sa longueur.
4. Donnez une récurrence pour le temps d’exécution dans le pire des cas et
une borne en Θ sur ce temps d’exécution.
5. Comparez ce temps avec celui des tris que vous connaissez : tri à bulles,
tri rapide, tri par tas. Les trois professeurs méritent-ils leur titre ?
L2
Novembre 2000
Cours et TD autorisés. Lisez soigneusement TOUT l’énoncé. Vous êtes invités
à rendre une copie claire et concise. Inutile de recopier l’énoncé !
Exercice 1.
En C, la fonction read de prototype
int read(int d, char *ch, int nb)
correspond à une demande de lecture dans le fichier désigné symboliquement
par l’entier d, d’au plus nb caractères, le résultat étant stocké dans la chaı̂ne ch.
La fonction renvoie le nombre de caractères lus ou 0 en fin de fichier (dans ce
cas la zone pointée par ch n’est pas modifiée et tout nouvel appel de la fonction
renvoie 0). Une valeur nulle pour d correspond à une lecture sur l’entrée standard.
La fonction write de prototype
int write(int d, char *ch, int nb)
écrit nb caractères de la chaı̂ne ch dans le fichier désigné symboliquement par
l’entier d. La valeur 1 de l’entier d correspond à la sortie standard. On considère
les trois programmes C suivants :
com1.c
void main(void)
{
int i;
for (i = 0; i < 250000; i++)
write(1,"a",1);
}
com2.c
void main(void)
{
int i;
char c;
for (i = 0; i < 250000; i++)
{
read(0, &c, 1);
write(1, &c, i);
}
}
com3.c
void main(void)
{
char c;
while (read(0, &c, 1) > 0)
write(1, &c, 1);
}
Le tableau ci-dessous donne les temps moyens (réel, utilisateur et système) sur
3 exécutions de quelques commandes. L’unité est le 1/100e de secondes ; le
fichier toto contient 250000 caractères.
Commande
com1 > toto
com2 < toto > tutu
com3 < toto > tutu
Temps réel
2000
4000
3990
Temps utilisateur
200
350
310
Temps système
1790
3640
3680
Les temps dont il sera question dans la suite ne sont que des estimations à
donner, on ne vous demande pas de valeurs exactes. On supposera que la zone
mémoire cache dédiée à l’échange des données via le mécanisme du pipeline est
de 10 Ko.
1. Complétez le tableau 1 de l’annexe. Justifiez brièvement vos résultats.
2. On suppose que le fichier toto est un fichier quelconque de 100000 caractères.
(a) Complétez le tableau 2 de l’annexe. Justifiez brièvement vos résultats.
(b) Quelle est la taille du fichier tutu ?
(c) Que valent les 150000 derniers caractères de tutu ?
3. Complétez le tableau 3 de l’annexe. Justifiez brièvement vos résultats.
Exercice 2.
Une approche possible de l’ordonnancement consiste à essayer à ce que les n
processus présents en mémoire bénéficient de 1/n de la puissance du processeur,
n pouvant varier dans le temps. Pour cela le processeur gère pour chaque
processus, un triplet (TCPU , TDU , τ ) où :
• TCPU est le temps CPU total utilisé par le processus depuis qu’il est entré
dans la file d’attente des processus prêts.
• TDU est le temps théorique auquel à droit ce processus. Si à l’instant t, n
processus sont présents (n est obtenu en comptant le nombre de processus
dans la file d’attente et l’éventuel processus dans le processeur), ce temps
vaut t/n.
• τ est le rapport TCPU /TDU . Un rapport de 1 signifie que le processus a
consommé exactement le temps auquel il a droit. Un rapport plus grand
que 1 signifie qu’il a consommé plus de temps CPU que le temps accordé
et un rapport inférieur à 1 signifie qu’il a consommé moins de temps CPU
que le temps accordé.
L’algorithme d’ordonnancement fonctionne alors de la façon suivante à partir
du temps t = 0 :
• pour le temps t courant, le processeur calcule pour chaque processus
(présents dans la file d’attente ou dans le processeur) le triplet (TCPU , TDU , τ ),
• le processus qui s’exécutera au temps t sera celui possédant la plus petite
valeur τ ,
• dans le cas où plusieurs candidats satisfont ce critère, le processus est
choisi en utilisant la méthode FIFO,
• par convention si TCPU = 0 (i.e. le processus vient d’arriver dans la file
d’attente), le triplet est initialisé à (0,0,0).
On considère la situation suivante :
P1
P2
P3
P4
TC
6
5
4
4
TA
0
3
5
4
1. Remplissez le tableau 4 de l’annexe en donnant pour chaque temps t et
chaque processus la valeur du triplet (TCPU , TDU , τ ).
2. A quel temps t obtient-on l’équilibre du système, i.e. pour tout processus
τ =1?
3. Dessinez le diagramme de Gantt associé à l’exécution de ces 4 processus
et donnez le temps d’attente moyen.
ATTENTION ! Pour chaque temps t, regardez bien combien de processus sont
présents. Quand un processus termine son exécution au temps t (i.e. il s’est
exécuté pour la dernière fois au temps t − 1) il ne fait plus partie de la file
d’attente et ne se trouve plus dans le processeur.
L1
EXAMEN DE L’ECU MATHEMATIQUES POUR
L’INFORMATIQUE
PARTIE PROBABILITES ET LOGIQUE
Durée 1h30 - Documents autorisés - Janvier 2001
Exercice 1.
Soit la formule F = k(A < − > B) ∨ (B ∧ C))− > A
1. Ecrire F sous forme normale conjonctive.
2. Ecrire F sous forme normale disjonctive.
3. Donner une formule plus courte équivalente à X ∧ (X ∨ Y ) et une formule
plus courte équivalente à X ∨ (X ∧ Y )
4. Simplifier les formules obtenues dans les questions 1. et 2.
Exercice 2.
1. Après avoir transformé le problème en un problème de satisfiabilité d’un
ensemble de clauses, déterminer par la méthode de résolution avec variables si :
La formule T = ∃xk Q(x)− > ∀yP (y) résulte des formules :
A1 = ∃xP (x)− > ∀yP (y)
A2 = ∃x(P (x) ∨ Q(x))
2. Indiquer, en justifiant votre réponse, si les deux formules suivantes peuvent
s’unifier :
p(f (x, g(z)), x, f (y, g(b))) et p(u, g(f (a, b)), u)
3. Transformer la formule f = ∃y∀z(P (z, y) < − > k ∃x(P (z, x) ∧ P (x, z)))
en un ensemble C de clauses.
Exercice 3.
Une urne A contient 2 boules blanches et une urne B contient 3 boules rouges.
A chaque étape du processus, on prend une boule dans chaque urne et on les
échange. L’état ai du système est le nombre i de boules rouges présentes dans
l’urne A.
1. Indiquer comment on peut associer une chaı̂ne de Markov au processus
décrit ci-dessus. Représenter son diagramme de transition et déterminer
sa matrice de transition P.
2. Quelle est la probabilité pour que l’urne A renferme 2 boules rouges après
2 tirages ?
3. Quelle est, à la limite la probabilité pour que l’urne A renferme 2 boules
rouges ?
Exercice 4.
Soient X et Y, 2 variables aléatoires de Bernouilli de même paramètre p, 0 <
p < 1, indépendantes.
1. Déterminer la loi conjointe du couple (S, D) avec S=X+Y et D=X-Y.
2. Déterminer les lois marginales du couple (S, D). Calculer E(S) et E(D).
3. Les variables aléatoires S et D sont-elles indépendantes ?
4. Calculer la covariance de S et D.
L1, Algorithmique. Première session
25 janvier 2001
La précision et la clarté de votre rédaction sont fondamentales. Aucun
document n’est autorisé. Durée 3h00. Le barème indiqué est approximatif. N’oubliez pas de noter le numéro de votre place ci-dessus ainsi
que sur votre copie.
Cours.
[4pt]
Vous répondrez impérativement à l’ensemble des questions de cet exercice directement sur cette feuille.
1. Citez plusieurs modèles de représentation des graphes [0.5pt].
2. À quelle(s) classe(s) de complexité appartient l’algorithme de tri rapide
(quicksort) ? [0.5pt]
O(n log n) ?
Θ(n log n) ?
Θ(n log n) en moyenne ?
3. Faites un tri topologique du graphe suivant en indiquant à coté de chaque
sommet la date de début de visite et la date de fin de visite. [0.5pt]
4. La structure de données “file” est associée à un parcours d’un graphe :
[0.5pt]
en largeur ?
en profondeur ?
récursif ?
5. Quelle est la bonne égalité (s est



n

X
s
i =


i=5

un entier positif) ? [0.5pt]
Θ(sn )
Θ(ns )
Θ(ns log n) Θ(ns+1 )
6. Donnez la définition d’un arbre couvrant minimal d’un graphe G = (X, U ).
[0.5pt]
7. Donnez la définition d’une composante connexe d’un graphe G = (X, U ).
[0.5pt]
8. Complétez l’égalité suivante (q est un nombre réel différent de 1) : [0.5pt]
n−1
X
qk =
k=0
Exercice 1.
[10pt]
On dit qu’une liste s = (s1 , s2 , . . . , sk ) est une sous-séquence d’une liste l =
(l1 , l2 , . . . , ln ) s’il existe une application φ : [1, k] → [1, n] strictement croissante
telle que sj = lφ(j) pour tout j ∈ [1, k]. Ainsi ame et melo sont des sousséquences de la liste examenalgo mais pas megalo. De manière récursive, s est
une sous-séquence de l si et seulement si elle satisfait l’une des trois conditions
suivantes :
1. s est la liste vide ;
2. tete(s) = tete(l) et queue(s) est une sous-séquence de queue(l)
3. s est une sous-séquence de queue(l)
On rappelle que la tête d’une liste non-vide l = (l1 , l2 , . . . , ln ) est le terme l1
et que la queue de cette liste est la sous-liste l0 = (l2 , . . . , ln ). Pour écrire les
algorithmes demandés, vous utiliserez librement sans les écrire les algorithmes
suivants :
• init(l) qui crée une liste vide l ;
• estvide(l) qui retourne la valeur vraie si la liste l est vide, faux sinon ;
• tete(l) qui retourne la tête de la liste l si elle n’est pas vide ;
• queue(l) qui retourne la queue de la liste l (la liste vide si l est vide).
• ajouter(l, x) qui ajoute le terme x au bout de la liste l ;
• retirer(l) qui retire le dernier terme de la liste l.
• afficher(l) qui affiche la liste l.
Dans toute la suite, on supposera que les listes ne contiennent que des termes
distincts.
1. Déduisez de cette définition un algorithme récursif EstSSeq(s, l) qui retourne vrai si s est une sous-séquence de l et faux sinon. [2pt]
2. Combien y-a-t-il de sous-séquences d’une liste l de longueur n ? Combien
y a-t-il de chemins de la racine d’un arbre binaire parfaitement équilibré
de hauteur n vers une feuille ? [2pt]
3. Soit l = (l1 , l2 , . . . , ln ) une liste. On considère un arbre binaire parfaitement équilibré de hauteur n dont seuls les arcs droits sont étiquetés tout
arc droit qui relie un noeud de profondeur i à un noeud de profondeur
i + 1 est étiqueté li+1 . Tout chemin de la racine vers une feuille définit
une sous-séquence de la liste l, en collectant les étiquettes rencontrées.
Déduisez un algorithme récursif SSeq(l) qui construit implicitement cet
arbre en parcours préordre et affiche toutes les sous-séquences s de l. Pour
cela, on modifiera au fur et à mesure des appels récursifs une liste s (initialement vide) et on l’affichera à chaque fois qu’une feuille sera atteinte
(voir la figure). [3pt]
FIG. 1. - Arbre des sous-séquences de la liste l = (a, b, c). Le chemin
suivi par la sous-séquence s = (a, c) est matérialisé par des points noirs.
4. Détaillez le fonctionnement de votre algorithme sur la liste (0, 1, 2, 3).
[1pt]
5. Quelle est la complexité de cet algorithme ? [2pt]
Exercice 2.
[12pt]
On appelle couverture d’un ensemble fini X, toute partie F de P(X) telle que
tout élément de X appartient à au moins un élément de F, autrement dit
[
F =X
F ∈F
Ainsi, F = {{a, b}, {a, c}, {b, c}, {c}} est une couverture de X = {a, b, c}. Étant
donné un tel couple (X, F), le problème de la couverture minimale de (X, F)
consiste à déterminer une partie C de F qui soit une couverture de cardinalité
minimale. C’est le cas de C = {{a, b}, {c}} pour l’exemple précédent. L’objectif
de l’exercice est d’analyser un algorithme d’approximation couverture (X, F)
pour ce problème. Il utilise une stratégie gloutonne pour déterminer de proche
en proche les k éléments C1 , C2 , . . . , Ck d’une couverture C de (X, F).
On commence par choisir un élément C1 de F de cardinalité maximale. On
détermine ensuite l’élément C2 de F contenant un nombre maximal d’éléments
de X\C1 , puis C3 contenant un nombre maximal d’éléments de X\C1 ∪ C2
etc. . . et on s’arrête dès que X = C1 ∪ C2 ∪ . . . ∪ Ck .
1. Quel algorithme du cours utilise le même type de stratégie ? [0.5pt]
2. La couverture obtenue n’est pas toujours minimale. Donnez un exemple.
[0.5pt]
3. Écrire un algorithme couverture(X,F). [2pt]
Soit n un entier. Pour la suite, on suppose que X = 1, 2, . . . , n, on note
m la cardinalité de F et r celle du plus grand élément de F.
4. On suppose que n < 64. Comment peut-on représenter un sous-ensemble
de X sur un entier long non signé ? Comment représenter F ? Implanter
couverture(X,F) en langage C. [2pt]
5. Donnez une expression du temps de calcul de l’implantation en fonction
de m, n et r. [1pt]
6. Décrire une instance (X, F) très défavorable pour l’algorithme couverture
(X, F) dans le cas où n est une puissance de 2. [2pt]
Soit Soit Ro = X, R1 = X\C1 , R2 = X\C1 ∪ C2 , . . . , Rk = ∅. La suite des
Ri est strictement décroissante et pour tout x ∈ X, il existe un unique
rang i tel que x ∈ Ri−1 et x 6∈ Ri . On pose
c(x) =
1
card(Ri−1 \Ri )
Pn
et on note H(n) = i=1 1i la somme des n premiers termes de la série
harmonique.
Enfin, on suppose acquis le fait :
X
(∗) ∀S ⊆ X,
c(x) ≤ H(card(S))
x∈S
7. Vérifiez que
P
x∈X
c(x) = k. [1pt]
8. Soit C une couverture minimale. Utilisez la relation (*) pour obtenir
l’inégalité : [1pt]
k ≤ card(C)H(r)
9. En déduire : [1pt]
k
= O(log n)
card(C)
10. Démontrez la relation (*). [Difficile] [1pt]
Examen de Bases de Données
mars 2001
Considérer les schéma suivant (en 4NF).
Barème(métier,salaire)
Agence(nom a,ville)
Employé(nom, nom a)
Travaille(nom, métier)
1. Créer ce schéma de BD en SQL. Déclarer toutes les clés étrangères nécessaires
2. Afficher le contenu de la relation Barème
3. Affichez le nom des ingénieurs
4. Affichez le nom des ingénieurs qui ne sont pas aussi directeur
5. Affichez le nom des ingénieurs qui ont au moins un métier qui rapporte
plus de 10 000F
6. Affichez le nom des ingénieurs qui gagnent plus de 30 000F tous métiers
confondus
7. Affichez le nom de l’employé qui a le plus gros salaire
8. Affichez le nombre d’ingénieurs à Toulon
9. Affichez les agences qui ont plus d’ingénieurs que d’ouvriers
10. Affichez les agences où tous les métiers sont représentés
Le langage C++. Première session
27 mars 2001
La précision et la clarté de votre rédaction sont fondamentales. Chaque
réponse doit être accompagnée d’une justification. Lisez attentivement
l’énoncé avant toute tentative de raisonnement. Le barème est donné
à titre indicatif. Cours et notes personnelles sont autorisés. Durée 2
heures.
Exercice 1.
[8pt]
Répondre aux questions suivantes en 5 lignes maximum.
1. Qu’est ce qu’un constructeur dans une classe ? Quel est son intérêt ? Une
classe peut-elle avoir plusieurs constructeurs ?
2. Qu’est ce qu’un destructeur ? Quel est son rôle ? Dans quels cas est-il
indispensable ? Une classe peut-elle avoir plusieurs destructeurs ?
3. Quelle est la différence entre mémoire statique et mémoire dynamique ?
4. Expliquer les termes de “liaison statique” et de “liaison dynamique”.
5. Expliquer la notion de polymorphisme. Donner un exemple. Quel est
l’intérêt de cette notion ?
6. Quelles sont les particularités d’une classe abstraite ? Quel est l’intérêt
d’une méthode abstraite (ou retardée) ?
Exercice 2.
[12pt]
Ecriture d’une application en C++ : l’objectif de cet exercice est de décrire
un mini-simulateur qui permette de suivre le déplacement de navettes entre
plusieurs stations spatiales. Les différentes questions sont relativement indépendantes.
1. Repérer une position : nous repérons un élément dans l’espace grâce à
sa position. Cette position peut être exprimée aussi bien en coordonnées
cartésiennes que polaires. L’interface de la classe Position est donnée
dans le listing ci-dessous :
class Position
{
public:
// Attributs
// Les coordonnees polaires
double rho ; // distance du point a l’origine du repere
double theta ; // 0 <= theta < 2 PI
double phi; // 0 <= phi < PI
// Les coordonnees cartesiennes
double x, y, z;
[4pt]
// Constructeur
Position (double v rho, double v theta , double v phi);
// Commandes
set cartesien (double vx, double vy, double vz);
// Initialiser la position a partir de ses coordonnees cartesiennes
set polaire (double v rho, double v theta, double v phi);
// Initialiser la position a partir de ses coordonnees polaires
void afficher (ostream &out = cout);
// Afficher sur le flot de sortie out.
};
(a) Commenter cette classe. En particulier, expliquer ce que sont les
différents éléments qui la décrivent.
(b) Contient-elle des maladresses ? Si oui, indiquer lesquelles et indiquer
comment les supprimer.
(c) Peut-on ajouter à la classe Position le constructeur suivant ?
Position ( double vx, double vy, double vz);
// Initialiser la position a partir de ses coordonnees cartesiennes
(d) Les lignes suivantes sont-elles valides ? Pourquoi ?
Position pos;
pos.set cartesien(10, 20, 30);
pos.afficher();
2. Définition d’une station : une station est caractérisée par un nom, une po- [1pt]
sition et une vitesse. Une station peut avancer. L’opération “avancer”prend
en paramètre une durée qui correspond à l’intervalle de temps simulé.
Pour simplifier, on suppose que lors du déplacement de la station seul le
paramètre thêta est modifié (ce qui correspond à une rotation autour de
la terre par exemple).
(a) Proposer une définition de l’interface de la classe Station.
3. Modélisation d’une navette spatiale : une navette est un engin spatial qui
permet de se déplacer de-stations en stations. Il est caractérisé par son
nom, sa position, sa station d’origine, sa station destination et sa vitesse.
Lorsque la navette n’est pas en vol, elle est posée sur une station (station
d’origine). Il est possible de faire décoller une navette en lui indiquant
une station destination. Une fois la navette en vol, elle peut avancer
vers la station destination (le paramètre de “avancer”est une durée qui
correspond à un pas de simulation) et il est possible de la faire changer
de destination. Lorsque la station arrive sur sa destination elle se pose,
la station destination devient alors la station d’origine. On suppose que
les stations possèdent des usines de fabrication de navettes. Ainsi, une
nouvelle navette est considérée comme posée sur sa station de construction.
(a) Définir l’interface de la classe Navette.
[3pt]
(b) Définir les en-têtes des méthodes suivantes de la classe Navette :
- Le constructeur de la classe Navette.
- L’opération qui retourne la position d’une navette.
- L’opération qui permet de changer de destination.
- L’opération décoller.
4. Simulateur : on veut pouvoir simuler l’évolution dans le temps de notre
système composé de navettes et de stations. Pour ceci, nous définissons
un simulateur. Il propose les opérations suivantes :
- créer un simulateur sans objets à contrôler ;
- ajouter un objet à simuler dans le simulateur ;
- supprimer un objet du simulateur ;
- simuler l’avancée du temps (simuler temps (int duree)) ;
- afficher l’état des objets simulés.
(a) Expliquer comment on peut faire pour ajouter dans le simulateur des
objets qui soient aussi bien des navettes que des stations.
(b) Définir l’interface de la classe Simulateur et des autres classes introduites (s’il y en a).
(c) Indiquer les modifications à apporter aux classes Navette et Station.
[4pt]
Anglais
EXAMEN D’ANGLAIS : 11 juin 2001
Durée : 2h
• QCM. Cochez sur la grille ci-jointe la case correspondant à la bonne
réponse (12pts).
1. The windfall amounts to ............. pounds.
a) millions
c) million of
b) millions of
d) million
2. ............. years or so, Japanese real estate goes through the roof.
a) Once every dozen
c) One all dozens
b) Every other dozens
d) Once every dozen of
3. Moving house ............. spending days packing.
a) meant
c) ended up
b) turned out
d) amounted
4. The US and its allies hoped to resolve the crisis ............. bolstering
the embargo’s effectiveness.
a) for
c) with
b) by
d) ∅
5. This government body ............. language use ............. 1979.
a) surveyed, for
c) is surveying, for
b) has surveyed, for
d) has been surveying, since
6. He’s especially keen on ............. German literature.
a) eighteen-century
c) eighteenth century
b) the eighteenth century
d) the eighteenth century’s
7. She ............. 50 miles in one stretch. She must have had a ride.
a) had not to walk
b) must not have walked
c) was not to have walkedd) cannot have walked
8. The woman stepped into the lift ............. cigarette in ............. mouth.
a) a, the
c) with a, the
b) with a, her
d) the, the
9. Do you want me to call you as soon as ............. ?
a) we will arrive
c) we arrive
b) we shall arrive
d) we arrived
10. How long ............. ?
a) has he died
c) is he dead
b) did he die
d) has he been dead
11. Twenty young people are involved, ............. are under 15.
a) of which most
c) whose most
b) most of which
d) most of whom
12. I can’t possibly tell you in five minutes all ............. he told me.
a) what
c) things
b) which
d) that
13. She ............. living alone for five years when she got married.
a) used to
c) has been
b) was
d) had been
14. Our policy now needs ............. .
a) to review
c) review
b) to reviewing
d) reviewing
15. In the last week of August the Dow-Jones ............. 70 points.
a) felt
c) has felt
b) has fallen
d) fell
16. The workers ............. on strike for more than a week now.
a) are
c) were
b) have been
d) had been
17. The kitchen wants ............. .
a) painting
c) be painted
b) paint
d) being painted
18. The informer was threatened with exposure unless he ............. other
members of his unit.
a) did not recruit
c) recruited
b) will recruit
d) would not recruit
19. Why don’t you make a start instead of just ............. about it ?
a) to talk
c) talking
b) having talked
d) talk
20. If only I ............. the following day what I know now!
a) was knowing
c) would know
b) knew
d) had known
21. Before ............. this device, read the instructions carefully.
a) use
c) used
b) to use
d) have used
22. Eventually it dawned on them the rain ............. since morning.
a) did not stop
c) has not stopped
b) had not stopped
d) was not stopping
23. The captain ............. to buy the ship.
a) suggests
c) intends
b) thinks
d) had better
24. His efforts were very close ............. last week.
a) to collapsing
c) collapsing
b) collapse
d) from collapsing
25. The President need not ............. a general election until 1999.
a) he will hold
c) hold
b) to hold
d) he holds
26. They will not resume work until their demand ............. met.
a) has not been
c) will be
b) won’t be
d) has been
27. He has ............. unique sense of humor.
a) an
c) a
b) one
d) the
28. What the children need is a garden ............. .
a) for play in
c) to play
29. Once you ............. we can go.
b) for player
d) to play in
a) finished
c) will finish
b) have finished
d) will have finished
30. I am looking forward ............. from you soon.
a) to hear
c) to my hearing
b) hearing
d) to hearing
31. 31. 2,567,102 reads as follows :
a) two million five hundred and sixty-seven thousand one hundred two
b) two million five hundred and sixty-seven thousand one hundred and two
c) two thousand five hundred and sixty-seven point one o two
d) two millions five hundreds and sixty-seven thousands one hundred and two
32. He was caught without ............. .
a) ticket
c) a ticket
b) one’s ticket
d) no ticket
33. He is one of the members I would enjoy having contacts ............. .
a) with him
c) with them
b) with whom
d) with
34. He told his wife that it would not be long before he ............. home.
a) gets
c) would get
b) got
d) will get
35. Excuse ............. so early; I have an appointment.
a) for me to leave
c) for me leaving
b) my leaving
d) myself leaving
36. Our next door neighbors ............. their new flat last week.
a) moved in
c) moved into
b) have moved into
d) have moved in
37. Please excuse the paper. It was all ............. I had on me.
a) what
c) which
b) this
d) that
38. The company manager had better ............. it that the money is
funnelled into a variety of activities.
a) to see
c) see to
b) to see to
d) having seen to
39. I hope you don’t mind ............. .
a) I ask
c) me to asking
b) me to ask
d) my asking
40. He stopped ............. only because he ran out of ammunition.
a) to shoot
c) shooting
b) from shooting
d) shoot
41. ............. many public statements yet.
a) There have been
c) There has been
b) There hasn’t been
d) There haven’t been
42. “I think she has arrived.“
“Don’t be ridiculous! She ............. .“
a) mustn’t be
c) mustn’t have
b) can’t have
d) can’t be
43. He ............. on the picket line since the dispute ............. .
a) was / began
b) was / has begun
c) has been / had begun d) has been / began
44. He ............. in Britain for a couple of years, then emigrated to Australia.
a) has been staying
c) has stayed
b) stayed
d) was staying
45. They have lived in Manchester ............. they retired.
a) whenever
c) ever since
b) while
d) as
46. He said he would come when the strike ............. over.
a) was
c) should be
b) would be
d) will be
47. That’s impossible. It couldn’t have happened like that! You .............
wrong!
a) should be
c) must be
b) should have been
d) ought to have been
48. If you ............. earlier, you would have got a better seat.
a) should come
c) had come
b) came
d) have come
49. Dr Smith isn’t in tonight because ............. to the hospital.
a) he might have gone
c) he should have gone
b) he’s able to go
d) he’s had to go
50. They ............. from her lately.
a) didn’t hear
c) are not hearing
b) haven’t heard
d) don’t hear
51. Fewer than ............. helicopters dropped food to ............. survivors.
a) dozen, millions of
c) a dozen, millions
b) a dozen, million
d) a dozen, millions of
52. In Britain, a lot of people are not used to ............. wine.
a) drinking
c) have drunk
b) drink
d) have drinks
53. She said she ............. buy some in town.
a) wants
c) would
b) was willing
d) wanted
54. She’s very fond ............. modern art.
a) of the
c) to the
b) of
d) the
55. Nobody warned me. I ............. about it.
a) had to be told
b) must have been told
c) should have been told d) ought to be told
56. The question ............. raised a few months ago.
a) will be
c) had been
b) has been
d) was
57. Are you coming to the dance ............. ?
a) every night
c) to-night
b) last night
d) every week
58. I think he ............. work harder.
a) would
c) should
b) would have
d) may have
59. The doorbell is ringing. It ............. Mary : she’s in her room.
a) can’t be
c) should be
b) mustn’t be
d) may be
60. I wanted ............. chocolate bars but there weren’t ............. left in
the machine.
a) some..............some
c) any.............none
b) some.............any
d) any.............any
• TEXTE
A breakthrough* in Artificial Intelligence : Neural Networks
It is a well-known fact that computers are very good at logic,
but that they lack* imagination and cannot make predictions
or decisions. The latter characteristics are essentially human
ones and derive from biological factors. The way human beings
react in a situation is the result of an intricate* process involving both the sennes and intelligence, i.e. the way the brain
processes information arriving from the senses via the nerves.
For many years, scientists have been investigating how different animal species use their senses and intelligence and have
tried to find a way of putting these to use in computer technology. Their research has borne fruit in the creation of neural
network systems which seem to hold considerable promise for
the future.
Both humans and animals know how to react in a particular
situation because they have learned how to, and this is the
basic idea in neural networks. A neural network system is a
computer-based simulation of living nervous systems; it is able
lo learn and can thus develop its own “world model”. Unlike
conventional computers it is programmed to provide answers
and, if it is wrong the first time, the next time it answers it
will change its response, based on its previous experience, until
it eventually gets the right answer all the time.
A set of previously learned “characteristics” serves as the
basis for the selection and generation of its own “characteristics” in response to inputs; in other words the neural network
can have imagination. As a result it can deal with situations
where the input may be ambiguous or incomplete. Neural circuits are being designed to carry out tasks typical of the most
advanced biological systems. Pattern recognition, speech and
text recognition are some of the fields where neural networks
will be widely used.
Improving robots’ senses
Although a robot can only be really autonomous if neural
network systems are used, improvements in their “eyesight”pattern recognition and machine vision - can lead to greater
robot autonomy, and this has long been one of the central concerns in robotics research. One of the latent developments for
improved vision is a television camera whose movements imitate those of a human head. This kind of “nodding”* head
can discern the shape and position of unidentified objects and
robots equipped with the system can assemble objects placed
at random just as competently as humans. Unlike conventional factory robots which are preprogrammed to recognise
the size and shape of certain objects positioned in a particular way in specific locations, these robots can accurately determine shapes and measure distances without being programmed.
The head behaves like a human head, gauging* distances and
shapes. One of the most obvious applications of these “allseeing” robots is for painting. The system maps the geometry
of the components to be sprayed and stores this information in
the robot’s computer system.
If good vision is central to pattern recognition, other senses
are required in order to gather the information without which
the robots’ “brains” cannot function. The more information
they can gather - usually by means of electronic devices such
as switches and sensors - the more efficiently they will be able
to work on the factory floor.
However, some of the five senses are more important in robotics
than others, and some are easier than others to obtain. Taste
and smell are not likely to have high priority since not only are
they the least useful but they are probably the most difficult to
design. However, robots can be provided with senses humans
do not possess. For instance, they can be given an “echo sounding” sense similar to bats, as well as radar and sonar which are
senses that can only be produced electronically and are of considerable use in hazardous environments. In the near future, it
is quite likely that robots will be given all sorts of jobs to do. In
California, some bars are already equipped with robot barmen
who can mix up to 30 different cocktails. Robot guards are
being developed for use in American prisons. Self-activating,
thinking versions of the Prowler (Programmable Robot Observer With Logical Enemy Response) are also under development. These tank-sized, computer-controlled vehicles can be
fitted* with M60 machine guns, a 105 mm cannon, and Stinger
surface-to-air missiles. Let’s hope they don’t go nuts*, if they
lose a bolt*!
*breakthrough : advance
*to gauge : to evaluate
*lack : not to have
*fitted : equipped
*intricate : complicated
*to nod : hocher la tête
*nut : écrou, to go nuts ⇒ perdre la boule (devenir fou)
*bolt: boulon
1. What are the basic characteristics of neural networks and
to what extent are they a breakthrough in artificial intelligence ? (3pts)
2. What progress has been made in robotics lately ? What
sorts of jobs can robots be given now and would you trust
robots with such tasks (est-ce que vous leur confieriez de
telles tâches ?) What applications of robotics do you foresee (prévoir) in the near future ? (5pts)
QCM. Cocher la case correspondant à la bonne réponse
A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
B
C
D
A
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
B
C
D
Systèmes microinformatiques et cartes à puce
juin 2001
Durée : 1h
Aucun document.
Question 1 : outil de traitement
Précisez les éléments constitutifs d’un microcontrôleur moderne.
Quel est le grand intérêt de ces structures ?
Citer quelques domaines d’utilisation
Question 2 : mémoire
1. Quels sont les types de mémoire que l’on rencontre sur les cartes à puces ?
Rappeler brièvement leur fonctionnement. Quelle est l’évolution de la
technologie actuellement mise en oeuvre pour améliorer leurs performances ?
2. Donner le plan mémoire du système schématisé sur la figure ci dessous.
Question 3 : outils de liaison
Quel type de liaison rencontre-t-on de façon privilégiée sur les cartes à puces ?
Pourquoi ?
Question 4 : système : carte à microcontrôleur
On ne dispose, pour une étude préalable que d’une fiche DATA BRIEFING pour
un microcontrôleur ST19XL34 équipant une carte à puce. (Voir annexe)
On demande de donner une description rapide de ce dispositif et de préciser le
bloc diagramme du circuit.
ST19XL34
SMARTCARD IC WITH 34KBYTES HIGH DENSITY
EEPROM AND MODULAR ARITHMETIC PROCESSOR
DATA BRIEFING
ST19XL34 FEATURES
• ENHANCED 8 BIT CPU WITH EXTENDED ADDRESSING MODES
1
- SYMMETRICAL ALGORITHMS:
DES, triple DES, DESX computations
and CBC chaining mode
• 96K BYTES USER ROM WITH PARTITIONING
• CRC CALCULATION BLOCK
• 4K BYTES USER RAM WITH PARTITIONING
• UP TO 10MHz INTERNAL OPERATING FREQUENCY
• 34K BYTES USER EEPROM WITH
PARTITIONING
- Highly reliable CMOS EEPROM submicron technology
- Error Correction Code for single bit
fail correction
- 10 year data retention
- 500,000 Erase/Write cycles endurance
- Correction of single bit fail within a
byte(ECC)
- 1 to 64 bytes Erase or Program in 2
mS
• UNIQUE SERIAL
EACH DIE
• SECURITY
MEMORIES
• 3V ± 10% or 5V ± 10% SUPPLY
VOLTAGE
FIREWALLS
FOR
• VERY HIGH SECURITY FEATURES
INCLUDING
EEPROM
FLASH PROGRAM, AND CLOCK
MANAGEMENT.
NUMBER
ON
• POWER SAVING STANDBY MODE
• CONTACT ASSIGNMENT
PATIBLE ISO 7816-2
COM-
• 2 SERIAL ACCESS,
COMPATIBLE
7816-3
• ESD
PROTECTION
THAN 5000V
ISO
GREATER
Figure 1 . Delivery Form
• 3x8 BIT TIMERS WITH INTERRUPT CAPABILITY
• HARDWARE DES ACCELERATOR
• 1088 Bit MAP: MODULAR ARITHMETIC PROCESSOR WITH LIBRARY SUPPORT FOR ASYMETRIC ALGORITHMS
• CRYPTOGRAPHIC LIBRARY:
- ASYMMETRICAL ALGORITHMS:
Fast modular multiplication and
squaring using Montgomery method
Software Crypto libraries in separate
ROM area for efficient algorithm coding using a set of advanced functions
Software selectable operand length up
to 2176 bits
1 May 2001
This is Brief Data from STMicroelectronics. Details are subject to change without notice.
For complete data, please contact our nearest Sales Office or SmartCard Products Division,
Roussel, France. Fax : (+33) 4 42 68 87 29
Function
RSA 1024 bits signature with
CRT (2)
RSA 1024 bila signature without
CRT (2)
RSA
1624
bill
verification
(e=$10001)
RSA 1024 bits key generation
RSA 2048 bits signature with
CRT (2)
RSA
2048
bits
verication
(e=$10001)
Triple DES (with keys loaded)
Single DES (with keys loaded)
Speed (1)
110 ms
367 ms
7 ms
3.2 s
740 ms
118 ms
31 µs
19µs
(1)Typical values, independant from external
clock frequency and supply voltage.
(2)CRT: Chinese Reminder Theorem.
HARDWARE DESCRIPTION
The ST19XL34, a member of the ST19
platform, is a serial access microcontroller
especially designed for very large volume
and cost effective secure portable objects,
for which high performance Public Key and
secret key algorithms wlll be implemented to
cut down initialization and communication
costs and to increase security.
The chip includes a DES accelerator which is
accessible via a cryptographic system ROM
software library.
The chip includes also a MAP which is based
Figure 2 . Block diagram
on a 1088 bits processor architecture. It
processes modular multiplication, squaring
and additional calculations up to 2176 bit
operands.
Internal Modular Arithmetic Processor
(MAP) and DES accelerator are designed
to speed up cryptographic calculations using
Public Key Algorithms and Secret Key Algorithms.
The ST19XL34 is besed on a STMicroelectronics 8 bit CPU and includes on chip memories: 96K User ROM, 4K User RAM and
34K User EEPROM with state of the art security features.
ROM, RAM and EEPROM memories can be
configured into partitions with customized
access rules. Access from any memory area
to another are protected by hardware FIREWALLS. Access rules are User defined and
can be selected by mask options or during
the life of the product.
A CRC calculation block is also available and
is directly accessible by the User.
It is manufactured using an advanced highly
reliable ST CMOS EEPROM technology.
As with all the other ST19 products, it is
fully compatible with the IS07816 standard
for Smartcard applications.
SOFTWARE DEVELOPMENT
Software development and firmware (ROM
code/options) generation are done with the
ST19-HDSX development system, on Windows NT or Windows 98. Powerful C/C++
compiler, debugger and simulator are also
available.
CRYPTOGRAPHIC LIBRARIES
For an easy and sufficient use of the Moduler Arithmetic Processor (MAP), ST proposes a complete set of firmware subroutines.
This library is located in a specific ROM area.
This library saves the operating system designer from coding first layer functions and
allows the designer to concentrate on algorithms, Public Key Cryptography and Secret
Key Cryptography protocols implementation.
This library contains firmware functions for:
ASYMMETRICAL ALGORITHMS:
- loading and unloading parameters and results to or from the MAP
- calculating Montgomery constants
- basic mathematics including modular squar-
ing and multiplication for various lengths
- modular exponentiation using or not the
Chinese Remainder Theorem (CRT)
- more elaborate functlons such as RSA signatures and verifications for modulo length up
to 2176 bits long, DSA signature and authentication.
- full internal key generation for signatures/verifications. This guarantees that the
secret key will never be known outside the
chip, and contributes to overall system security.
- long random number generation
- RSA up to 2176 bits
- DSA up to 1088 bits
- SHA-1
- RSA key generation
SYMMETRICAL ALGORITHMS:
- DES, triple DES, DESX computations
- CBC chaining mode
- Loading / Unloadings from / to registers are
secured against SPA.
Examen C++/Java
13 juin 2001
Durée 3 heures
Tout document, sauf livres, autorisé.
Barème :
Exercice 1 + exercice 2 sur 5 points
Exercice 3 sur 7 points
Problème sur 8 points
Exercice 1.
Répondez aux questions suivantes de façon précise et en trois lignes maximum par
question :
1. Qu’est ce qu’une Machine Virtuelle Java ?
2. Le langage Java est-il un langage compilé ou interprété ?
3. Dans des conditions normales, une applet Java peut-elle accéder en écriture aux
ressources de la machine cliente ? Pourquoi ?
Exercice 2.
Un objet possède deux attributs de type int nommé x et y. Ce qui pourrait se traduire
par le bout de code suivant :
int x, y ;
Ecrire les expressions logiques en langage Java et en C++ correspondant aux énoncés
suivants :
1. x et y sont strictement positif.
2. x est divisible par y.
3. x appartient à l’intervalle ]0..12[.
4. x et y sont de parité différente.
Quels sont les résultats des instructions suivantes (type et valeur) en C++ et
en Java :
x=12; y=5;
5. (x/y)
6. (double) x / y
7. (double) x / (y - y)
Exercice 3.
Observez attentivement le code ci-dessous. II s’agit d’une méthode d’un objet Java
dont les lignes 28 à 37 produisent un affichage sur la console.
1. Pour chacune de ces lignes donnez le résultat visible sur la console et quelques
commentaires de justification.
2. La ligne 40 est elle correcte ? Quel est le comportement du compilateur sur
cette instruction ? Quelle solution proposez-vous ?
3. La solution que vous avez proposée pour la ligne 40 est-elle applicable au problème
posé par la ligne 41 ? Quel sera le comportement de la machine virtuelle Java
à l’exécution ? Justifiez votre réponse.
1. public void polymorphisme() {
2.
class A {
3.
public String name = "Classe A";
4.
public String getName() {
5.
return name;
6.
}
7.
public String toString () { return "A";}
8.
public String message (String s) {
9.
return ("String");
10.
}
11.
public String message(Object o) {
12.
return ("Object");
13.
}
14.
}// fin de ClasseA
15.
16.
class B extends A {
17.
public String name = "Classe B";
18.
public String getName()
19.
return name;
20.
}
21.
public String toString () { return "B";}
22.
}// fin de ClasseB
23.
24.
Object o = new String("Message Test");
25.
A a1 = new A();
26.
A a2 = new B();
27.
System.out.println("\nPolymorphisme :\n");
28.
System.out.println("3.1-1/: " + a1.toString());
29.
System.out.println("3.1-2/: " + a2.toString());
30.
System.out.println("3.1-3/: " + a1.getName());
31.
System.out.println("3.1-4/: " + a2.getName());
32.
System.out.println("3.1-5/: " + a2.name);
33.
System.out.println("3.1-6/: " + a2.message(o));
34.
System.out.println("3.1-7/: " + a2.message((String)o));
35.
System.out.println("3.1-8/: " + a2.message((Object)null));
36.
System.out.println("3.1-9/: " + a2.message((String)null));
37.
System.out.println("3.1-10/: " + a2.message(null));
38.
39.
B b = new B();
40.
b = a2;
41.
b = a1;
42.
}// fin de la methode polymorphisme
Problème.
1. Aperçu rapide de la classification “règne animal”
Les informations sur la classification des êtres vivants sont extraites de l’encyclopédie
WebEncyclo http://www. webencyclo.com/ et du dictionnaire Hachette
http://www.francophonie.hachette-livre.fr
On divise les êtres vivants en 5 règnes : les Animaux, les Bactéries, les Protistes, les
Champignons et les Végétaux.
Lamarck (1744-1829) classe les animaux en deux grands groupes : les Vertébrés qui
possèdent une colonne vertébrale et les Invertébrés qui n’en possèdent pas.
Les animaux vertébrés possèdent une colonne vertébrale constituée d’une multitude
d’os articulés. Cette colonne sert de soutien à leur corps et fait la base de leur squelette.
Elle fournit une gaine à leur moelle épinière et se termine par une boı̂te osseuse qui
contient leur cerveau.
Nous les classerons (en première approximation) en quatre grands groupes :
• Les Poissons
• Les Reptiles
• Les Oiseaux
• Les Mammifères
Les Mammifères
Mammifère n. m. Classe de vertébrés supérieurs homéothermes (“à température constante”), portant des mamelles (ou des aires mammaires, chez les monotrèmes).
Les mammifères sont divisés en 3 sous-classes, les Monotrèmes, les Marsupiaux et les
Placentaires.
• Les Monotrèmes : (Ornithorynque et Echidné)
Ils pondent des œufs mais allaitent leur petit. Ils sont recouverts de poils. On
peut les considérer comme des mammifères primitifs.
• Les Marsupiaux : (Kangourou, Koala, etc.)
Le mot marsupiaux vient de marsupium, mot qui veut dire poche. Presque tous
les marsupiaux possèdent une poche ou dans certain cas un repli de peau. Leurs
petits naissent très tôt dans leur développement. Ils le finissent dans la poche
de la mère. Après sa naissance, le petit se niche dans la poche et s’accroche à
une mamelle (où il tête le lait). Il ne la lâchera pas pendant une longue période.
Suivra une période où le petit sort de courts moments de la poche. Finalement,
le petit est sevré et partira vivre sa vie d’adulte.
• Les Placentaires : Chat, Chien, Humain, Singe, Eléphant, Chauve-souris,
Dauphin, etc.
Les placentaires sont les mammifères les plus développés. Ils sont les plus
répandus. On les retrouve sur la Terre, dans les Airs et dans l’Eau. Le petit se développe entièrement dans le ventre de la mère. Le placenta est très
développé.
Les placentaires sont divisés en différents ordres (partiellement cités ici) :
Les Primates (Singe, Humain. . . )
Les Rongeurs (Souris, Rat, Ecureuil. . . )
Les Chiroptères (Chauves-souris. . . )
Les Cétacés (Baleine, Dauphin, Cachalot. . . )
Les chauves-souris ou Chiroptère
Ordre de mammifères à mœurs crépusculaires et nocturnes, caractérisés par la remarquable adaptation des membres antérieurs au vol.
Également désignés sous le nom de Chiroptère, les chauves-souris ont pour caractéristique un corps flanqué d’une paire d’ailes membraneuses, qui, par les proportions, la morphologie et l’aspect lisse que lui confère une fourrure courte et fournie,
rappelle celui d’un rat.
Près d’un millier d’espèces se répartissent dans le monde entier, avec une préférence
tout de même pour les régions chaudes, où l’on trouve les plus grandes espèces, appartenant au groupe des Mégachiroptère (tels la Roussette et le Ptérope, chauve-souris
de 1,5 m d’envergure, habitant la région malgache et indomalaise). La trentaine
d’espèces européennes appartient au groupe des Microchiroptère (envergure de 20
à 50 cm).
La technique de vol diffère selon les espèces. Certaines, les moins rapides, pratiquent
le vol battu, cependant que d’autres, excellents voiliers, font appel au vol plané. Les
espèces qui capturent des proies posées peuvent faire du surplace. Pour prendre
l’élan qui permettra l’envol, les chauves-souris battent des ailes ; pour atterrir, elles
s’accrochent à un support ou mettent leur corps en position verticale tout en freinant
de toute leur force avec les ailes. À terre, les chauves-souris peuvent grimper et courir,
le pied reposant sur la face plantaire et la main ne s’appuyant que sur le premier doigt.
Les Oiseaux
Oiseau : n. m. Vertébré ovipare, couvert de plumes, ayant deux pattes et deux
ailes, à la tête munie d’un bec et généralement adapté au vol.
Comme les mammifères, les oiseaux sont homéothermes et leur coeur comporte quatre
cavités. Ils sont apparus au jurassique dans une lignée de reptiles qui a donné également
les dinosaures et les crocodiliens. Deux sous-classes sont représentées actuellement :
les Ratite, sans bréchet et inaptes au vol, et les Carinates, dont le bréchet supporte
les muscles nécessaires au vol ; ce sont les plus nombreux et les plus diversifiés.
Les oiseaux les plus primitifs (sous classe des Ratite) sont les Autruches, les Casoars,
les Nandous, les Emeus et les Kiwis, tous incapables de voler. Les plus évolués appartiennent au groupe des passereaux et, parmi eux, les Corbeaux, les Etourneaux et les
Paradisiers.
Quelques techniques de vol
Les oiseaux pratiquent cinq sortes de vol. Au cours du vol battu, les ailes sont alternativement levées et abaissées. Le vol plané consiste, pour l’oiseau, à se laisser
glisser sur ses ailes tendues et immobiles après avoir pris de la vitesse. Pendant le
vol à voile, l’animal est entraı̂né par des courants d’air chaud ascendants. Le vol
peut aussi se faire sur place. Enfin, le vol vibré est propre aux Colibris et
proche de celui des insectes, puisque ces oiseaux peuvent avancer, reculer et se déplacer
latéralement. Les oiseaux aquatiques sont, pour la plupart, capables de nager, et certains même plongent habilement (Martins-p^
echeurs, Cormorans, Fous, Guillemots,
Grèbes).
2. Enoncé du problème
Nous ne cherchons pas ici une description exhaustive du règne animal, vous limiterez
votre travail de classification aux concepts présentés dans cet aperçu rapide.
1. Représentez les différentes catégories d’êtres vivants présentés ici en utilisant
le langage Java et la notion d’héritage simple. Spécifiez quelles classes sont
abstraites et pourquoi. Votre modélisation devra intégrer les liens d’héritages
ainsi que les attributs possédés par les êtres vivants représentés.
2. La classification proposée ici ne tient pas compte du mode de locomotion. Introduisez dans votre classification le point de vue du mode de locomotion de
façon à ce que, par exemple, une instance de Corbeau puisse être vue comme un
Passereau ou un EtreCapableDeVol ou bien une instance de Roussette puisse
être vue comme un Mégachiroptère ou un EtreCapableDeCourse ou encore un
EtreCapableDeVolPlane.
• La modification de vos classes obtenues au 2.1 se fera à l’aide de la notion
d’interface (au sens Java).
• Vous développerez une hiérarchie d’interface représentant les différents
modes de locomotion évoqués dans la présentation du règne animal en
page 3 (vous vous limiterez à ceux-ci).
3. Comment auriez-vous résolu le problème en C++ ? Expliquez brièvement les
différences de modélisation entre l’héritage multiple entre classes (utilisé dans
C++) et la notion d’interface Java.
Remarques :
• Dans ce problème vous devez présenter votre travail sous la forme de graphes
d’héritage et de code Java sommaire (en-tête des classes et interfaces, attributs
et en-têtes de méthodes).
• Vous représenterez les liens d’héritage et d’implémentation par des signes différents
(par exemple flèche à simple ou double corps)
• Vous limiterez le nombre de classes et d’interfaces aux groupes et espèces d’êtres
vivants cités dans la présentation du sujet du problème (mis en évidence
typographiquement). Cependant vous pouvez bien entendu introduire des concepts abstraits non cités explicitement comme par exemple EtreCapableDeVol
• Même remarque pour les moyens de locomotion et les attributs cités dans le
texte.
• Le contexte général étant le langage Java, vous respecterez les conventions de
nommage préconisées pour ce langage.
Carte à Mémoire et Contrôle d’Accès
Session de Juin
Durée 1 heure.
1. Qu’est ce qu’un ATR ? Quelles données sont transmises lors de son exécution ?
Ces données sont-elles transmises depuis la carte ou vers la carte ?
2. Le système de fichiers d’une carte comprend trois types de fichiers. Quels sont
ces types de fichiers ? Quel est leur rôle ?
3. Dans le protocole de validation des transactions commerciales pour les cartes à
puce, quelles données sont reçues par le centre de contrôle ? Quelles données
sont renvoyées ?
4. Pour de petits montants, le centre de contrôle est utilisé de manière différée.
Concevoir de manière détaillée une fraude , effectuée par le porteur de carte,
rendue possible par le fait que les données du centre de contrôle ne sont pas
disponibles lors de la transaction.
L3 - Bases de données
12 juin 2001
Durée 3 heures
1. Soit le schéma relationnel
R(PAYS, CAP, RÉGION, SURF, VILLE, NBH)
VILLE -> NBH
VILLE -> RÉGION
RÉGION -> SURF
RÉGION -> PAYS
PAYS -> CAP
Le sextuplet R(PAYS = p, CAP = c, RÉGION = r, SURF = s, VILLE = v, NBH
= n ) indique que le pays de nom p a pour capitale la ville de nom c et qu’il
possède une région de nom r et de surface s et une ville de nom v ayant n habitants. Montrer que l’attribut VILLE est la clé de R en appliquant les axiomes
d’Armstrong.
2. Mettre en 3e forme normale la relation R de la question 1 en supposant que les
dépendances fonctionnelles sont les suivantes :
PAYS -> CAP
RÉGION -> SURF
VILLE -> NBH
et que la clé est (PAYS, RÉGION, VILLE).
3. Soit la BD relationnelle de schéma :
RIVIERE(NOMRIV, LON)
AFFLUENT(NOMAF, NOMRIV)
Le doublet RIVIERE(NOMRIV = r, LON = l ) exprime que la rivière de nom r a
la longueur l et le doublet AFFLUENT (NOMAF = r1 , NOMRIV = r2 ) exprime que
la rivière r1 est un affluent de la rivière r2 . Ecrire en algèbre relationnelle la
requête “Nom et longueur de affluents du Rhône”.
4. Pour la BD de la question 3, écrire en algèbre relationnelle la requête “Nom des
rivières n’ayant pas d’affluents”.
5. Construire un arbre B+ d’ordre 5 en y insérant successivement les enregistrements
de clé : 23, 3, 31, 5, 7, 2, 11, 17, 19, 27.
6. Dans l’arbre B+ obtenu à la question 5, supprimer l’enregistrement de clé 5.
7. Soit la relation PAYS(NOM, NBH, SURF, CAP). Le quadruplet PAYS(NOM = p,
NBH = n, SURF = s, CAP = v ) indique que le pays de nom p a n millions
d’habitants, une surface de s km2 et pour capitale la ville de nom v. L’arbre de
requêtes suivant représente la requête “Capitales des pays de plus 100 millions
d’habitants et de surface inférieure à 100000 km2”.
Construire un arbre de requête équivalent où les sélections sont unaires et les
projections sont descendues sous les sélections.
8. Soit l’arbre de requête suivant associé à la requête de la question 3 :
On suppose : que la relation AFFLUENT occupe 10 pages, que la sélectivité de
NOMRIV = "Rh^
one" est de 20% et que les attributs NOMRIV, NOMAF et LON ont la
même longueur. On rappelle que la clé de la relation RIVIERE est NOMRIV et que
celle de la relation AFFLUENT est NOMAF. On suppose de plus que les attributs
NOMAF et NOMRIV de la relation AFFLUENT sont des clés étrangères référant la
relation RIVIERE. On suppose enfin qu’aucun attribut n’a de valeur nulle. Quelle
est le nombre de pages de la relation réponse ?
9. Soit l’exécution suivante
T1
read A
A := A - 50
write A
T2
read A
temp := A * 0.1
A := A - temp
write A
read B
B := B + 50
write B
read B
B := B + temp
write B
Donner l’exécution en série équivalente.
10. Placer des verrous en mode S et X sur les transactions T1 et T2 de la question
9 conformément au protocole du verrouillage à deux phases.
Carte à Mémoire et Contrôle d’Accès
Session de Septembre
Durée 1 heure
1. La sécurité des données inscrites dans une carte à puce repose sur des dispositifs
physiques et logiciels. Donner une liste des dispositifs physiques utilisés à cette
fin dans la carte.
2. Le système de fichiers d’une carte comprend trois types de fichiers. Quels sont
ces types de fichiers ? Quel est leur rôle.
3. Dans le protocole de validation des transactions commerciales pour les cartes à
puce, décrire :
(a) les entités qui doivent être présentes pour qu’une transaction puisse avoir
lieu.
(b) Les informations échangées entre ces entités et l’ordre de ces échanges.
L2 : Structure des ordinateurs
5 septembre 2001
Première partie
1. Mesure des performances
Un dispositif permet d’accélérer d’un facteur 5 l’exécution de certaines instructions d’un programme. On peut mesurer lors de l’exécution du programme que
ce dispositif est utilisé pendant 30% du temps.
Si le temps d’exécution sans dispositif est de 37 secondes, quel est le temps
d’exécution en l’utilisant ?
2. Jeu d’instructions
Une machine a des instructions codées sur 16 bits, ses adresses sont sur 6 bits.
Certaines instructions sont à une adresse, d’autres à deux adresses. Si il y a n
instructions à deux adresses, quel est le nombre maximum d’instructions à une
adresse ?
3. Cours
Quels sont les différents types d’aléa ? Quels sont les solutions pour les supprimer ?
4. Codage
Construire un code binaire linéaire de quatre mots permettant de corriger deux
erreurs. La réponse doit être justifiée.
5. Circuit logique
Construire un circuit combinatoire ayant trois entrées e0 , e1 , e2 et deux sorties s0 , s1 dont la table de vérité est la suivante :
e0
0
0
0
0
1
1
1
1
e1
0
0
1
1
0
0
1
1
e2
0
1
0
1
0
1
0
1
s0
1
1
0
0
1
1
1
1
s1
1
0
1
0
1
0
1
0
L3 - Bases de données
6 septembre 2001
6 questions, 10 minutes/question = 1 heure
1. Soit le schéma relationnel suivant :
LIVRE(ISBN, TITRE, TITRE CHAP, AUTEUR)
ISBN -> TITRE
ISBN ->> TITRE CHAP
ISBN ->> AUTEUR Mettre ce schéma en 4eme forme normale.
Réponse :
2. Soit le schéma relationnel suivant
PRIX(NUMPROD, PRIX)
ACHAT(NUMCLI, NUMPROD, QTE) Le doublet PRIX(NUMPROD = n, PRIX = p ) exprime que le produit n◦ n a le prix p et le triplet ACHAT(NUMCLI = c, NUMPROD
= p, QTE = q ) exprime que le client n◦ c a acheté q produits numéro p.
Ecrire en SQL les trois requêtes suivantes :
(a) “Quel est le prix du produit n◦ 1325 ?”
Réponse :
(b) “Quel est le nombre de produits achetés par chaque client ?”
Réponse :
(c) “Quel est le prix total des produits achetés par le client n◦ 212 ?”
Réponse :
3. Soit la table de schéma :
LIVRE(ISBN, ANNEE)
Le doublet LIVRE(ISBN = n, ANNEE = a ) exprime que le livre d’ISBN n a été
publié l’année a.
Sachant que cette table occupe 1000 pages disque, que 1/10eme des livres ont
été publiés en 1985 et que le temps de lecture et d’écriture d’une page disque
est égale à 1, quel est le coût de la requête :
SELECT * FROM LIVRE WHERE ANNEE = 1985
si elle est évaluée par balayage séquentiel de la table LIVRE.
Réponse :
4. Soit la transaction suivante :
start
read A
read B
S = A + B
write S
commit
Placer dans cette transaction des instructions de verrouillage en mode S et X
de façon à ce qu’elle soit à deux phases.
Réponse :
Anglais
6 septembre 2001
durée : 1h30
1. QCM (8pts)
Choose the correct answer. Only one answer is correct.
My wife and I went to the airport to meet some friends. Their plane landed but they
weren’t on it.
“....1.... if there is a message for us,”my wife said.
“They ....2.... the plane. Or perhaps they ....3.... from coming for some reason.”
After ....4.... information at the information desk without success, I had an idea.
“....5.... their letter ?”I asked my wife. She found it in her handbag.
“Here you are,”she said. “We ....6.... at 10 o’clock on the 7th and ....7.... us.”
“But today’s the 6th,”I said. “We should have looked at the date before. If we had,
we wouldn’t have had this journey for nothing.”
“How silly!”my wife said. “I ....8.... this letter around for days without looking at it.”
1
A
B
C
D
Let’s see
Let’s to see
Will we see
We are seeing
4
A
B
C
D
asking for
to ask for
asking
to ask
7
A
B
C
D
want you to wait
want that you look for
would like you to meet
would like that you find
2
A
B
C
D
can have missed
may have missed
can have lost
may have lost
5
A
B
C
D
Do you yet have
8
Do you already have
Have you yet got
Have you still got
A
B
C
D
am carrying
have been carrying
carry
must carry
3
A
B
C
D
would be prevented 6
would be avoided
have been prevented
have been avoided
A
B
C
D
are arriving
would arrive
will be arrive
will be arrived
Choose the correct answer. Only one answer is correct.
9 I’ve often .... at this hotel.
A remained
B rested
C stayed
D passed
10 I didn’t know what to do but then an idea suddenly .... to me.
A happened
B entered
C occurred
D hit
11 When they arrived at the crossroads, they went the wrong ....
A way
B direction
C route
D street
12 Your work has been .... so we’re going to give you a rise in salary.
A regular
B well
C satisfactory
D available
13 That’s the best horse in the ....
A career
B run
C rate
D race
14 The weather .... says it will rain tomorrow.
A provision
B forecast
C advertisement
D advice
15 There are a lot of mistakes in this exercise. I’ll have to .... it again with you.
A come through
B go over
C repass
D instruct
16 If there are no buses, we’ll have to take a taxi. We must get there ....
A somehow or other
B somewhere or other
C on one way or another
D anyway or other
17 .... I read, the more I understand.
A The more
B So much
C How much
D For how much
18 .... he does his work, I don’t mind what time he arrives at the office.
A So far as
B So long as
C In case
D Meanwhile
19 .... entering the hall, he found everyone waiting for him.
A At
B While
C On
D In
20 It’s years .... a picture.
A that I don’t paint
B that I didn’t paint C since I painted
D ago I painted
21 I found the first question ....
A to be easy
B the easy
C that it was easy
D easy
22 .... an empty seat at the back of the bus.
A She happened to find
B She happened to meet
C It happened her that she found
D It happened her that she met
23 It was raining, .... was a pity.
A what
B that
C the which
D which
24 Your car is .... mine.
A the same that
B as
C similar to
D alike
25 I’m going away for a ....
A holiday of a week
B week holiday
C holiday week
D week’s holiday
26 Why .... ? It’s not very important.
A to worry
B worry
C you are worried
D you worry
27 I dont like .... at me.
A them shouting
B them shout
C their shout
D that they shout
28 It often snows .... January.
A on
B in
C for
D at
29 I’ll meet you again .... the weekend.
A by
B on
C at
D for
30 It’s the first turning .... the left after the traffic lights.
A on
B in
C by
D for
31 He wasn’t .... to lift the case.
A too strong
B enough strong
C strong enough
D so strong
32 He can climb trees .... a monkey.
A as
B like
C the same that
D similar than
33 He .... lives in the house where he was born.
A already
B yet
C still
D ever
34 It’s ten o’clock in the morning but he’s still ....
A at the bed
B at bed
C in bed
D in the bed
35 He was a good swimmer so he .... swim to the river bank when the boat sank.
A could
B might
C succeeded to
D was able to
36 She’s been very kind, .... ?
A isn’t she
B hasn’t she
C wasn’t she
D doesn’t she
37 He was left alone, with .... to look after him.
A someone
B anyone
C not one
D no one
38 I pulled the handle .... I could.
A so hardly as
B as hardly as
C so hard as
D as hard as
39 Have you got a match ? I’ve left my .... at home.
A cigarette lighter
B cigarettes lighter
C cigarette’s lighter
D lighter for cigarettes
40 That’s the dog ....
A we’ve been looking after
B after which we ve been looking
C what we’ve been looking after
D we’ve been taking care for
Examen de C++
septembre 2001
Durée 1h30 - documents autorisés
Le barème est donné à titre indicatif.
Exercice 1. (3 pts)
Compréhension d’un “programme”C++ : le programme donné ci-dessous est un programme C++ qui est syntaxiquement correct. Il peut donc être compilé et exécuté.
1. (1 pt) Donner le résultat de l’exécution de ce programme.
2. (2 pts) Même si ce programme est accepté par le compilateur, il comporte des
erreurs sémantiques, lesquelles ?
#include <stream.h>
class A {
protected :
int id;
public :
virtual A() { cout <<" A("<<id<<");\n",}
virtual void f() = 0;
void g() { cout << "A (" << id << ")::g();";}
void init(int i) { id = i; }
};
class B: public A {
public :
B(int i) { init (i); cout << "B::B(" << i << ");\n";}
void f() { cout << "B (" << id << ")::f(); ";}
void g() { cout << "B (" << id << ")::g(); ";}
};
class C {
protected :
int* count; // compter les acces a a
A* a;
public :
C(A& a) : count(new int(0)), a(&a) {}
A& a() { *count = *count + 1; return * a; }
virtual void p() { cout << *count; }
};
main ()
{
B b(1);
B* Pb = new B(2);
C c(*pb);
b.f(); b.g(); cout << "\n";
c.a().f(); c.a().g(); cout << "\n";
c.p (); cout << "\n";
}
Exercice 2. (7 pts)
Ecriture d’une application en C++ : l’objectif de cet exercice est de définir en C++
un nouveau type représentant des ensembles d’entiers et de l’utiliser dans un petit
exemple, le calcul des nombres premiers par le crible d’Ératosthène. Pour trouver
tous les nombres premiers de 2 à MAX, le principe du crible d’Ératosthène est le
suivant :
1. Construire l’ensemble contenant tous les entiers de 2 à MAX ;
2. Extraire et afficher le plus petit élément de l’ensemble car c’est un nombre
premier;
3. Enlever de l’ensemble tous les multiples de ce nombre premier;
4. Continuer en 2 jusqu’à ce que l’ensemble soit vide.
Pour simplifier, on définira seulement les opérations sur les ensembles qui sont utiles
pour le crible d’Ératosthène, c’est-à-dire ajouter un élément, supprimer un élément,
savoir si un élément est présent ou non, savoir si l’ensemble est vide ou non, connaı̂tre la
cardinalité de l’ensemble, donner le plus petit élément de l’ensemble. On ne considérera
donc pas les opérations sur les ensembles telles que l’union, l’intersection, l’inclusion,
etc.
1. (2 pts) Ecrire la classe Ensemble int qui décrit un ensemble d’entiers.
2. (1 pt) Expliquer comment en C++, il est possible de généraliser cette classe
pour avoir des ensembles de n’importe quel type d’éléments. Dans la suite nous
ne considérerons que la notion d’ensemble d’entiers.
3. (2 pts) Ecrire le programme principal qui calcule les nombres premiers en utilisant le principe du crible d’ÉratosthÀne (et l’ensemble défini à l’exercice 1, bien
sûr !).
4. On souhaite implanter ces ensembles d’entiers en utilisant un tableau.
(a) (1 pt) Donner la déclaration (fichier d’en-têtes .h) de la classe correspondante. Cette classe devra définir un attribut du type int* pour représenter
le tableau.
(b) (1 pt) Écrire le fichier .cc correspondant.
Examen Java
7 septembre 2001
Durée lh30
Tout document, sauf livres, autorisé.
Barème indicatif
Exercice
Exercice
Exercice
Exercice
1
2
3
4
:
:
:
:
3/10
3/10
1/10
3/10
Exercice 1.
On appelle nombre de Harshad ou nombres de Niven ou nombres multinumériques un
nombre divisible par la somme des chiffres qui le composent.
Exemples :
Nombres
10
12
18
20
21
24
1729
Somme des chiffres
1
3
9
2
3
6
19
Division
10
4
2
10
7
4
91
On se propose de développer une méthode afin de déterminer si un entier est un nombre de Harshad.
Complétez la méthode ci-dessous qui teste cette propriété sur l’entier n, passé en
paramètre et retourne un booléen.
Attention : 6 lignes de code à raison d’une instruction par ligne sont suffisantes.
public boolean isHarshad (int n) {
boolean result = false;
int m,s=0;
(..........)
return result;
}
Exercice 2.
On considère les expressions Java suivantes :
int i = 1;
double d = 3.14 ;
char c = ’c’ ;
String s = "C’est la lutte";
Point p = new Point() ;
(La classe Point est explicitée plus bas.)
1. Complétez les déclarations suivantes et mentionnez en justifiant votre réponse
la valeur résultante de la variable.
1/.............. j = i + 1;
2/.............. v = s + "finale";
3/.............. valeurEntiere = new Integer (i) ;
4/.............. z = p.x() ;
5/.............. coord = new int [3] ;
6/.............. 1 = (new String[3]).length;
7/.............. m = i * d;
8/.............. h = new Point(0,0).equals(p);
2. Explicitez en deux lignes maximum l’utilisation de la méthode equals de la
classe Point.
Détail de la classe Point :
class Point {
double x,y;
public Point() {
x = 0;
y = 0;
}
public Point(double u, double v) {
x = u;
y = v;
}
public double x() {
return x;
}
public double y() {
return y;
}
public void x(double d) {
x = d;
}
public void y(double d) {
y = d;
}
public boolean equals (Object p) {
if (!(p instanceof Point))
return false;
return ((x() == ((Point)p.x()) && (y() == ((Point)p).y()));
}
}
Exercice 3.
Soient les instructions Java suivantes :
String [ ] automne;
automne = new String[4];
automne[O] = "septembre";
automne[1] = "octobre";
automne[2] = "novembre";
automne[3] = "decembre";
Ces instructions permettent de donner des valeurs aux quatre éléments du tableau
automne. Ecrivez un petit segment de code Java qui ait le même effet mais qui
contienne un nombre minimum d’instructions.
Exercice 4.
Utilisation des adaptateurs.
Un adaptateur est une structure conceptuelle de la programmation objet qui permet
de fournir de nouveaux services à une classe existante qui ne les possède pas.
Soit une classe Moteur qui possède une méthode demarre () élaborée correctement
pour fonctionner dans une Thread :
class Moteur {
public void demarre() {
// ici le moteur fonctionne
}
}
Soit également une classe Voiture. Pour utiliser conjointement le concept de Thread
avec cette classe nous pouvons utiliser l’interface Runnable ainsi :
class Voiture implements Runnable {
private Moteur leMoteur ;
public void run() {
leMoteur.demarre();
}
Thread t = new Thread(this, "leMoteur") ;
public Voiture (Moteur unMoteur) {
leMoteur = unMoteur ;
t.start() ;
}
}
Question :
1. Les trois lignes de code suivantes produisent-elles le démarrage de la Thread ?
Justifiez votre réponse.
Moteur unMoteur = new Moteur() ;
Voiture maVoiture = new Voiture() ;
maVoiture.run() ;
2. On veut à présent utiliser une structure similaire (une Voiture et un Moteur actionné dans une Thread par le constructeur de la Voiture) mais sans que notre
voiture implémente Runnable.
Modifiez le corps de la classe Voiture SANS TOUCHER AU CONSTRUCTEUR
de façon à obtenir le même résultat.
Vous pouvez utiliser l’interface Runnable fournie dans le package java.lang en
créant un adaptateur anonyme.
public interface Runnable {
public abstract void run();
}
class Voiture {
private Moteur leMoteur ;
(..........)
public Voiture (Moteur unMoteur) {
leMoteur = unMoteur ;
t.start() ;
}
}