Voir le document - Bibliothèque de l`Université de Toulon

Transcription

Voir le document - 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
2001-2002
L2: Structure des ordinateurs
6 novembre 2001
I : Performances
Un programme de test est exécuté sur une machine dont la fréquence d’horloge
est 1,2 Ghz. Le temps d’exécution du programme est de 6s et le CPI de 12.
1) Quel est le débit en MIPS de cette machine ?
2) Quel est le nombre total d’instructions exécutées ?
L’utilisation d’un dispositif qui permet d’améliorer d’un facteur 2 certaines instructions du programme réduit le temps d’exécution à 4s.
3) Combien d’instructions sont-elles concernées par ce dispositif ?
II : Codage
Le code linéaire binaire suivant permet de corriger une erreur. Sa matrice de
contrôle est
H=
110100
101010
011001
Le mot (0 0 1 1 1 0) est-il correct ? S’il ne l’est pas, corrigez-le. On ne demande
pas de justifier la capacité de correction, seuls les calculs nécessaires au décodage
de ce mot seront effectués.
III : Logique
Une partie du code de Aiken 2-4-2-1 code les chiffres de 0 à 7 de la manière
suivante :
0 : 0000
5 : 1011
1 : 0001
6 : 1100
2 : 0010
7 : 1101
3 : 0011
4 : 0100
On veut construire le transcodeur qui permet de passer de l’écriture binaire
usuelle à son écriture binaire dans le code de Aiken.
b2 b1 b0 → a3 a2 a1 a0
Pour 7 par exemple :
binaire usuel
111
Aiken
1101
Donnez les expressions de a3 et de a0 en fonction des bi .
IV: arithmétique
Donnez le codage simple précision de -2,25 suivant la norme IEEE 754. Exprimez ce codage sous forme d’un nombre hexadécimal. Quel est l’écart entre
-2,25 et son prédécesseur ?
L1 : Mathématiques
novembre 2001
Durée : 2 heures.
Tous documents autorisés. Les exercices sont indépendants.
Exercice 1 (7 points)
On considère l’ensemble E = {a, b} (les éléments a et b sont donc distincts.)
Déterminer le nombre d’éléments de E 6 contenant trois composantes consécutives
de la forme a, b, a.
Exercice 2 (7 points)
Définition : une relation d’équivalence R dans un ensemble fini E est dite
équilibrée si toutes les classes d’équivalence ont le même cardinal. Si ce nombre
est t, on dit que R est t-équilibrée.
Partie 1
1. Donner un exemple de relation d’équivalence équilibrée dans l’ensemble
E = {1, 2, 3, 4, 5, 6}.
2. Montrer que s’il existe une relation d’équivalence t-équilibrée R dans un
ensemble E quelconque, alors t divise le cardinal de E.
Partie 2
On considère maintenant deux ensembles finis E et F et f une application de
E dans F .
1. Soit R l’équivalence d’application de f . Montrer que f est injective si et
seulement si R est t-équilibrée avec t = 1.
2. Montrer que si R est équilibrée alors le cardinal de l’ensemble image de f
divise le cardinal de E.
Exercice 3 (6 points)
Soit E l’ensemble des applications de N dans R+ \{0}.
On définit une relation R dans E de la manière suivante :
f Rg ⇐⇒ (∃α, β ∈ R+ \{0}, ∃n0 ∈ N t.q. ∀n ≥ n0 , αg(n) ≤ f (n) ≤ βg(n))
1. Montrer que R est une relation d’équivalence.
2. La relation S définie dans E par
f Sg ⇐⇒ (∃β ∈ R+ \{0}, ∃n0 ∈ N t.q. ∀n ≥ n0 , 0 ≤ f (n) ≤ βg(n))
est-elle une relation d’équivalence ? Justifiez votre réponse.
Examen de C++
mai 2002
Durée 1h30 - cours autorisé
ATTENTION : soignez la présentation et l’écriture. Chaque réponse doit être
accompagnée d’une justification. Le barème est donné à titre indicatif.
UN ÉDITEUR ORIENTÉ LIGNE AVEC MENUS TEXTUELS
L’objectif de cet exercice est de construire un mini-éditeur orienté ligne qui respecte les commandes de vi. On veut qu’il propose un menu textuel donnant
accès aux différentes commandes disponibles sur l’éditeur. II n’est pas nécessaire
de connaı̂tre vi et ses commandes (les touches de commandes vi sont données
à titre indicatif entre parenthèses, elles ne seront pas exploitées dans la suite).
Enfin, sachez que l’éditeur orienté ligne n’est qu’un prétexte. Les principes
présentés ici pourraient être appliqués dans d’autres contextes.
Pour simplifier, nous ferons les suppositions suivantes :
1. Nous nous limitons à l’édition d’une seule ligne dont la taille maximale
est fixée (arbitrairement) à 200 caractères.
2. L’interface utilisateur est minimale (Fig. 1). Elle affiche la ligne en
cours d’édition, le menu et demande le choix de l’utilisateur. En fonction
de la commande sélectionnée, d’autres informations peuvent être demandées
à l’utilisateur. Dans le cas où la ligne est vide, le caractère tilde (˜) est affiché.
Il est reconnu que pour qu’une interface homme-machine soit conviviale, il faut
que les opérations impossibles à réaliser ne puissent pas être sélectionnées par
l’utilisateur. Ainsi les entrées des menus ne pouvant pas être exécutées sont
généralement grisées. Dans notre cas, nous supprimerons la lettre d’accès. La
figure 2 montre l’état de l’éditeur juste après son lancement. On constate, par
l’absence de leur numéro de sélection, que de nombreuses opérations ne sont pas
réalisables.
La position du curseur [s]ur une ligne est repérée par les crochets.
1 - Ajouter un caractère au début de la ligne (I)
2 - Ajouter un caractère à la fin de la ligne (A)
3 - Placer le curseur au début de la ligne (0)
4 - Avancer le curseur d’une position à droite (l)
5 - Reculer le curseur d’une position à gauche (h)
6 - Remplacer le caractère sous le curseur (r)
7 - Supprimer le caractère sous le curseur (x)
8 - Ajouter un caractère avant le curseur (i)
9 - Ajouter un caractère après le curseur (a)
10- Supprimer tous les caractères de la ligne (dd)
0 - Quitter
Votre choix :
Fig. 1 - Exemple de l’interface textuelle de l’éditeur.
˜
1 - Ajouter un caractère au début de la ligne (I)
2 - Ajouter un caractère à la fin de la ligne (A)
- - Placer le curseur au début de la ligne (0)
- - Avancer le curseur d’une position à droite (l)
- - Reculer le curseur d’une position à gauche (h)
- - Remplacer le caractère sous le curseur (r)
- - Supprimer le caractère sous le curseur (x)
- - Ajouter un caractère avant le curseur (i)
- - Ajouter un caractère après le curseur (a)
10- Supprimer tous les caractères de la ligne (dd)
0 - Quitter
Votre choix :
Fig. 2 - État de l’éditeur juste après son lancement (ligne vide).
Dans la suite, nous définissons la notion de ligne, puis nous proposons une
modélisation de menus textuels réutilisables qui prennent en compte la notion
d’opérations non réalisables, enfin nous construisons l’éditeur orienté ligne.
Exercice 1. (3 pts) Définition d’une ligne.
L’interface de la classe Ligne vous est donnée en annexe. Une ligne contient
un nombre quelconque de caractères. Il est possible de rajouter un caractère au
début ou à la fin de la ligne. La ligne définit un curseur qui peut être déplacé
vers 1a droite (avancer) ou vers la gauche (reculer). Le caractère sous le curseur
est appelé caractère courant. Il est possible d’effectuer des opérations relatives
au curseur (remplacer le caractère courant, le supprimer, insérer un caractère
avant ou après le caractère courant).
1. Expliquer succinctement les différents éléments du langage C++ qui composent la classe Ligne. Attention : il n’est pas demandé d’expliquer les
opérations définies mais de décrire les éléments constitutifs du langage
C++ qui apparaissent dans cette classe.
2. Indiquer, s’il y en a, les maladresses que contient cette classe. Justifier
vos réponses. Proposer éventuellement une manière de supprimer ces maladresses.
3. Écrire l’implantation (en C++) des opérations suivantes (et seulement
des opérations suivantes) : le constructeur, raz, avancer, remplacer, supprimer, ajouter fin, afficher.
Exercice 2. (1 pt) Définition d’une classe commande.
À chaque entrée du menu correspond une commande (ou opération). Lorsqu’une
entrée du menu est sélectionnée, la commande associée au menu doit être
exécutée. D’après le principe de convivialité d’une interface homme/machine,
une entrée ne pourra être sélectionnée que si la commande associée est exécutable.
On peut en déduire qu’une commande est caractérisée par :
- le traitement qu’elle effectue ;
- les conditions nécessaires pour que la commande puisse être effectuée.
Décrire la classe Commande ainsi spécifiée. Quelle est la particularité de cette
classe ?
Exercice 3.
éditeur.
(4 pts) Définition des commandes de notre
Pour construire le menu correspondant à notre éditeur, il est nécessaire de définir
les différentes commandes qu’il offre.
1. Quelles relations existe-t-il entre une commande particulière de l’éditeur
et les autres classes identifiées, en particulier la classe Commande (question
2) et la classe Ligne (question 1) ?
2. Définir les classes correspondant aux commandes suivantes de l’éditeur :
(a) Avancer le curseur d’une position à droite (commande 4 du menu
proposé);
(b) Ajouter un caractère au début de la ligne (commande 1 du menu
proposé) ;
(c) Supprimer tous les caractères de la ligne (commande 10 du menu
proposé).
II est inutile de donner les classes correspondant aux autres commandes.
Exercice 4. (2 pts) L’éditeur.
Écrire un programme court qui illustre le fonctionnement de l’éditeur. Il devra
en particulier construire le menu, puis le proposer à l’utilisateur jusqu’à ce que
celui-ci décide de quitter l’éditeur (sélection de l’entrée “Quitter”du menu).
Annexe
// D e f i n i t i o n d ’ une l i g n e de c a r a c t e r e s de t a i l l e b o r n e e e t e q u i p e e d ’ un c u r s e u r .
class Ligne {
public :
Ligne ( ) ;
// Creer une l i g n e v i d e .
// ROLE : l o n g u e u r == 0;
public : // D e f i n i t i o n d e s r e q u e t e s s u r l a l i g n e
s t a t i c const unsigned i n t CAPACITE = 2 0 0 ; // Longueur maximale d ’ une l i g n e
char c a r a c t e r e s [ CAPACITE ] ; // l e s c a r a c t e r e s de l a l i g n e
unsigned i n t l o n g u e u r ; // nombre de c a r a c t e r e s dans l a l i g n e
// I n v a r i a n t : 0 < = l o n g u e u r $& l o n g u e u r <= CAPACITE / / l o n g u e u r c o h e r e n t e
char ieme ( unsigned i n t i ) const ; // l e ieme c a r a c t e r e de l a l i g n e
// ANT : 1 < = i && i <= l o n g u e u r ; / / i v a l i d e
public : // D e f i n i t i o n du c u r s e u r
unsigned i n t c u r s e u r ;
// La p o s i t i o n du c u r s e u r . S i l a l i g n e e s t non v i d e , i l
// ROLE :
// l o n g u e u r == 0 i m p l i q u e c u r s e u r == 0;
// l o n g u e u r > 0 i m p l i q u e 1 <= c u r s e u r <= l o n g u e u r
e s t s u r un c a r a c t e r e .
char c a r a c t e r e c o u r a n t ( ) const ; // Le c a r a c t e r e s o u s l e c u r s e u r .
// ANT : l o n g u e u r > 0 ; / / La l i g n e e s t non v i d e
void a v a n c e r ( ) ; // Avancer l e c u r s e u r d ’ une p o s i t i o n a d r o i t e .
// ANT : c u r s e u r < l o n g u e u r ;
// ROLE : c u r s e u r == o l d c u r s e u r + 1 ;
void r e c u l e r ( ) ; // Avancer l e c u r s e u r d ’ une p o s i t i o n a gauche .
// ANT : c u r s e u r > 1 ;
// ROLE : c u r s e u r == o l d c u r s e u r − 1 ;
void r a z ( ) ; // P l a c e r l e c u r s e u r s u r l e p r e m i e r c a r a c t e r e .
// ANT : l o n g u e u r > 0 ;
// ROLE : c u r s e u r == 1;
void r e m p l a c e r ( char c ) ;
// Remplacer l e c a r a c t e r e s o u s l e c u r s e u r par l e c a r a c t e r e c .
// ANT : l o n g u e u r > 0 ;
// ROLE : c a r a c t e r e c o u r a n t () == c ;
void s u p p r i m e r ( ) ;
// Supprimer l e c a r a c t e r e s o u s l e c u r s e u r . La p o s i t i o n du c u r s e u r r e s t e i n c h a n g e e
// ANT : l o n g u e u r > 0 ;
//ROLE :
// l o n g u e u r == o l d l o n g u e u r − 1 / / un c a r a c t e r e supprime
// o l d c u r s e u r ( ) = o l d l o n g u e u r ( ) i m p l i q u e c u r s e u r () == l o n g u e u r ( ) ;
// o l d c u r s e u r ( ) < o l d l o n g u e u r ( ) i m p l i q u e c u r s e u r () == o l d c u r s e u r ( ) ;
void a j o u t e r a v a n t ( char c ) ;
// A j o u t e r l e c a r a c t e r e c a v a n t l e c u r s e u r . Le c u r s e u r r e s t e s u r l e meme c a r a c t e r e
// ANT :
// l o n g u e u r > 0 ; / / c u r s e u r p o s i t i o n n e
// l o n g u e u r < CAPACITE; / / l i g n e non p l e i n e
// ROLE :
// l o n g u e u r == o l d l o n g u e u r + 1 / / un c a r a c t e r e a j o u t e
// c u r s e u r == o l d c u r s e u r + 1 / / c u r s e u r i n c h a n g e
void a j o u t e r a p r e s ( char c ) ;
// A j o u t e r l e c a r a c t e r e c a p r e s l e c u r s e u r . Le c u r s e u r r e s t e s u r l e meme c a r a c t e r e .
// ANT :
// l o n g u e u r > 0 ; / / c u r s e u r p o s i t i o n n e
// l o n g u e u r < CAPACITE; / / l i g n e non p l e i n e
// ROLE :
// l o n g u e u r == o l d l o n g u e u r + 1 / / un c a r a c t e r e a j o u t e
// c u r s e u r == o l d c u r s e u r ;
// curseur inchange
public : // D e f i n i t i o n d e s o p e r a t i o n s s u r l a l i g n e
void a f f i c h e r ( ) const ;
// A f f i c h e r l a l i g n e en m e t t a n t e n t r e c r o c h e t s [ ] l e c a r a c t e r e c o u r a n t .
// S i l a l i g n e e s t v i d e , un s e u l c a x a c t e r e t i l d e ( ˜ ) e s t a f f i c h e .
void a j o u t e r f i n ( char c ) ;
// A j o u t e r l e c a r a c t e r e c a l a f i n de l a l i g n e .
// Le c u r s e u r r e s t e s u r l e meme c a r a c t e r e
// ANT : l o n g u e u r < CAPACITE; / / l i g n e non p l e i n e
// ROLE :
// l o n g u e u r = o l d l o n g u e u r + 1 ; / / un c a r a c t e r e a j o u t e
// ieme ( l o n g u e u r ) == c ; / / C a r a c t e r e a j o u t e
// c u r s e u r == max ( 1 , o l d c u r s e u r ) ;
void a j o u t e r d e b u t ( chax c ) ;
// A j o u t e r l e c a r a c t e r e c au d e b u t de l a l i g n e . Le c u r s e u r r e s t e s u r l e meme
// c a r a c t e r e .
// ANT : l o n g u e u r < CAPACITE; / / l i g n e non p l e i n e
// ROLE :
// l o n g u e u r = o l d l o n g u e u r + 1 ; / / un c a r a c t e r e a j o u t e
// ieme (1) == c ; / / C a r a c t e r e a j o u t e
// c u r s e u r == o l d c u r s e u r + 1 ;
};
L3 - Bases de données
10 juin 2002
Durée 2h
1. On considère une application informatique utilisant plusieurs bases de
données relationnelles. Pour faciliter l’accès à ces bases de données on
construit une “métabase” qui décrit ces bases de données de la façon suivante. Une base de données est décrite par son nom (une chaı̂ne de caractères) qui l’identifie et par l’ensemble de ses relations. Une relation est
décrite par son nom (une chaı̂ne de caractères) qui l’identifie au sein d’une
base de données, par l’ensemble de ses attributs et par sa clé primaire
qui rappelons-le est un sous-ensemble des attributs de cette relation. Un
attribut d’une relation est décrit par son nom (une chaı̂ne de caractères)
qui l’identifie au sein de cette relation et par son type (une chaı̂ne de
caractères). On demande :
(a) de construire le schéma de classes UML qui spécifie cette métabase ;
(b) de traduire ce schéma en schéma relationnel.
2. Soit un index organisé en arbre B+, constitué de 80000 enregistrements
dont les clés ont une longueur maximum de 30 octets. On suppose de plus
que les pages doivent avoir une longueur qui est une puissance de 2 (32, 64,
128, . . . ) et qu’un pointeur occupe 4 octets. Calculer la taille minimum
des pages pour que l’index ait une hauteur maximum de 3 (racine + 1
niveau de nœuds non terminaux + 1 niveau de feuilles).
3. Soit deux relations de base P et Q telles que P possède un attribut A
qui constitue sa clé primaire et Q possède un attribut B qui est une clé
étrangère qui réfère la clé primaire de P . On suppose qu’il n’existe pas
d’index sur les attributs A et B.
(a) Proposer une méthode basée sur la construction d’un fichier de hachage
avec répertoire pour effectuer l’équijointure join(P, Q, A = B).
(b) Evaluer le coût de cette méthode en supposant connus les temps de
lecture et d’écriture d’une page, les cardinalités de P et Q, le nombre
de pages qu’elles occupent et la taille du répertoire dont on suppose
qu’elle a été choisie de façon à ce qu’une seule page soit liée à chaque
case du répertoire.
4. Soit les trois transactions suivantes :
T1
start
lock X C1
read C1
C1 := C1 - A
write C1
unlock C1
lock X C2
read C2
C2 := C2 + A
write C2
unlock C2
commit
T2
start
lock X C1
read C1
C1 := C1 - B
write C1
lock X C2
read C2
unlock C1
C2 := C2 + B
write C2
unlock C2
commit
T3
start
lock S C1
read S C2
read C1
read C2
display C1 + C2
unlock C1
unlock C2
commit
(a) Ces trois transactions sont-elles bien formées ? Justifiez votre réponse.
(b) Lesquelles de ces trois transactions sont à deux phases ? Justifiez
votre réponse.
Considérons maintenant les deux exécutions suivantes de ces transactions :
E1
(T1 )
(T1 )
(T1 )
(T1 )
(T1 )
(T1 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T1 )
(T1 )
(T1 )
(T1 )
(T1 )
(T1 )
start
lock X C1
read C1
C1 := C1 - A
write C1
unlock C1
start
lock S C1
lock S C2
read C1
read C2
display C1 + C2
unlock C1
unlock C2
commit
lock X C2
read C2
C2 := C2 + A
write C2
unlock C2
commit
E2
(T2 )
(T2 )
(T2 )
(T2 )
(T2 )
(T2 )
(T2 )
(T2 )
(T3 )
(T3 )
(T2 )
(T2 )
(T2 )
(T2 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
start
lock X C1
read C1
C1 := C1 - B
write C1
lock X C2
read C2
unlock C1
start
lock S C1
C2 := C2 + B
write C2
unlock C2
commit
lock S C2
read C1
read C2
display C1 + C2
unlock C1
unlock C2
commit
(c) Lesquelles de ces deux exécutions sont-elles sérialisables ? Justifiez
votre réponse.
(d) Vérifier la réponse à la question précédente en traçant les graphes de
dépendance de ces deux exécutions.
Anglais
11 juin 2002
Durée 2h
QCM Choisir la bonne réponse (8pts)
1. “Have you ever visited Scotland?”
“Yes, I ............... there last year.”
a) was going
b) have been
c) have been going
d) went
2. Our baby was well ............... while we were away.
a)to take care of
b)taking care
c) taken care of
d) taken care
3. Accepting that offer means ............... by our suppliers.
a) be exploited
b) being exploited
c) exploiting
d) the exploitation
4. Night fell and the search ................
a) should stop
b) had to be stopped
c) ought to be stopped d) should be stopped
5. The Enghsh Channel ............... only 21 miles across, yet it can be a real barrier.
a) may be
b) could be
c) despite being
d) should be
6. He ought to have his hair ............... more often.
a) be cut
b) being cut
c) cut
d) cutting
7. When you ............... we can go.
a) finished
b) have finished
c) will finish
d) will have finished
8. They really thought this movie was worth ................
a) seeing
b) seeing it
c) to be seen
d) to see it
9. The doorbell is ringing. It ............... Mary: she’s in her room.
a) can’t be
b) mustn’t be
c) should be
d) may be
10. We let you know all ............... we knew at the time.
a) what
b) that
c) this
d) than
11. The town teemed with bandits, none of ............... were ever caught.
a) those
b) whose
c) which
d) whom
12. What prevented you ............... me at the airport?
a) from having met
b) to meet
c) from meeting
d) to have met
13. If we’d had enough money, we ............... a bigger house.
a) had bought
b) could have bought
c) must have bought
d) have bought
14. The first time you ............... London was in 1974, wasn’t it?
a) visited
b) have visited
c) was visiting
d) visit
15. There ............... quite a few accidents last month.
a) have been
b) were
c) had been
d) are
16. Mrs Rogers went back to work when her children ............... three.
a) have been
b) were
c) had been
d) used to be
17. By this time tomorrow, I ............... finished my work.
a) will
b) have
c) will have been
d) will have
18. He will ............... help you.
a) can
b) can to
c) be able to
d) be able
19. She must ............... while I was out.
a) come
b) have come
c) came
d) had come
20. At this time tomorrow, ............... over the Atlantic.
a) we’ll be flying
b) we’ve flown
c) we’ve been flying
d) we’re flying
21. “Has Lizzie come?”
“No, if she had come, ............... her.”
a) I’ll see
b) I’d have seen
c) I’ll have seen
d) I’d seen
22. If I ............... enough time, I’ll come and see you tomorrow.
a) had
b) will have
c) have
d) shall have
23. Your father ............... turn in his grave if he saw you.
a) should
b) would
c) shall
d) will
24. Check your number before ................
a) to dial
b) dial
c) dialling
d) dialled
25. I don’t remember ............... them last year.
a) seeing
b) to see
c) of seeing
d) that we saw
26. He smoked the only cigarette ............... was left in the packet.
a) that
b) which
c) what
d) it
27. I’m sure you know him : he is the man ............... father used to work for out company.
a) who’s
b) whom
c) who
d) whose
28. We are not in a position to do ............... we promised to do.
a) all things
b) the whole
c) all
d) it all
29. Fewer and fewer people want ............... their holidays at home.
a) spending
b) spend
c) to spend
d) spent
30. On arriving, she discovered that the car needed ............... .
a) mend
b) to mend
c) mended
d) mending
31. Tom is taking the bus today because be ............... his car repaired.
a) has
b) makes
c) is making
d) is having
32. You should ............... this parcel sent last week.
a) have had
b) have
c) have made
d) make
33. Sally is a good friend of ............... .
a) them
b) they
c) their
d) theirs
34. He confessed ............... was a happy family.
a) theirs
b) their
c) there’s
d) there it
35. My father and ............... used to play tennis together every Sunday.
a) me
b) I
c) myself
d) mine
36. A lot of people say he ............... resign from the government.
a) dares
b) need
c) should
d) ought
37. When ............... a good player?
a) are you
b) shall you be
c) will you be
d) are you being
38. You will fail ............... you work harder.
a) if
b) so that
c) unless
d) in case
39. - What was that big noise?
- I ............... anything
a) don’t hear
b) haven’t listened to
c) didn’t hear
d) heard
40. For the past year, Bill ............... a variety of jobs.
a) has had
b) had
c) has
d) had had
Compléter à l’aide de pronoms relatifs. Si vous souhaitez
omettre le pronom relatif, marquez ∅. (2pts)
1. What is the name of the film-director ............... directed Sean Connery in a
film ............... takes place in Jamaica?
2. In a film in ............... he also played James Bond, there is an extraordinary
car chase in Las Vegas.
3. When was the film ............... you are talking about released?
4. Who is the English film-director, ............... name begins with an ”h”, whom
you can see in a split second in all of his films?
5. With ............... does Vivien Leigh star in Gone with the Wind?
6. It’s a film the title of ............... contains the word ”Arabia”.
7. Think of an actor ............... name you’d immediately associate with the
word ”western”.
Write sentences with the pattern have something done.
(2pts)
Susan is at the optician’s. He’s going to test her eyes.
Susan is going to have her eyes tested.
1. Peter went to the dentist. She filled his tooth.
Peter had. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. The actress went to the photographer’s studio. He took her photo.
The actress. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Adrian is talking to the mechanic who has serviced bis car.
.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
4. The Watsons’ dishwasher has broken down. The engineer is repairing it.
.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
Text
By Alfred Hermida
BBC News Online technology staff
Imagine if every time you pressed a button on your TV remote control, information was kept to record your viewing habits.
This is what a California court has ordered the hi-tech consumer electronics
company SonicBlue to do with people who have bought its ReplayTV 4000
digital video recorder.
The company has now formally requested an immediate reversal of the order,
describing it as “breathtaking1 and unprecedented”.
SonicBlue said the court order “violates consumers’ privacy rights, including
those guaranteed by the First and Fourth Amendments”.
Copyright battle The court order is part of the wider struggle2 between the
entertainment3 and technology industries over how digital advances are changing
the way people consume films, TV and music.
The plaintiffs4 in this case include the film studios Paramount, Universal and
Disney, as well as the TV networks CBS, ABC and NBC.
Lawyers of the media companies say they need this information to find out
the extent to which the ReplayTV 4000 allows customers to copy and share TV
shows and films.
1 Breathtaking
: stupéfiant (à vous couper le souffle)
: lutte, combat
3 Entertainment : shows, performances, films, e.g. the entertainment business
4 Plaintiff : demandeur, plaignant
2 Struggle
Under the court order, the information collected would record whether the
consumer skipped5 the ads, watched the same show more than once or deleted
the programme from the unit.
SonicBlue’s ReplayTV 4000 went on sale in the US last September. It works
like a normal VCR6 but it records shows to a hard drive, rather than video tape.
Like other personal video recorders, the machine can pause and instantly
replay live television or it can skip the ad breaks.
The unit also has a high-speed internet port that allows users to share film
files. “We’ve done a lot of research in the past that shows that once someone had a ReplayTV, the number of hours of TV they watched actually went
up,” SonicBlue’s Jonathan King told the BBC programme, Go Digital.
“So they’re going to be watching more TV and more quality TV, not just the
fluff that just comes up.”
But the entertainment industry is uneasy about the range of features offered
by the player.
It argues these features threaten7 to deprive it of the revenues needed to pay
for new shows, since the machines allow ads to be cut out and premium shows
on subscription services to be forwarded to non-subscribers.
One senior television executive has gone so far as to equate skipping the ads
with theft8 .
But SonicBlue argues it is not doing anything illegal.
“We’re not deleting the commercial,” insisted SonicBlue’s Lanc Ohara.
“We’re just giving the consumer the ability to not watch the commercial. If
they want to see them, they can,” he said.
‘Invasion of privacy’ Privacy groups and consumer electronics firms are
up in arms over the ruling9 , which effectively orders SonicBlue to spy10 on
thousands of customers to see if they are breaking copyright law.
“The court’s order is highly troubling,” said the trade body, the Consumer
Electronics Association, in a statement.
5 To
skip : sauter, passer (ne pas regarder)
: video cassette recorder
7 To threaten : menacer
8 Theft : vol
9 Ruling : décision de justice, jugement
10 To spy : espionner
6 VCR
“It forces SonicBlue to violate the trust11 of its customers and commit an
incredible invasion of privacy.”SonicBlue has been given until 24 June to impose
a tracking system on its customers.
It is appealing against the order, arguing it will be forced to redesign its
machine for the express purpose of collecting information to be used against it.
It says the changes will cost $400,000 and take four months to implement.
Earlier versions of the Replay recorder and similar digital devices from Tivo,
which allow users to copy TV shows and keep them for later viewing, have been
on sale for several years.
1. What are the special features (caractéristiques) of the ReplayTV 4000
digital video recorder? Explain the dispute between the entertainment industries and the company SonicBlue. Who do you think is right? Explain.
(4pts)
2. Do you think that your privacy is being invaded (que votre vie privée
est envahie) by high tech devices (e.g. the internet, computers, mobile
phones. . . ) or do you equate high technology with liberty? (la haute
technologie est-elle pour vous synonyme de liberté ?) Give examples.
(4pts)
11 Trust
: confiance
C++/Java
13 juin 2002
Durée 3 heures
Barème :
Partie 1 sur 10 points Partie 2 sur 10 points Tous documents, sauf
livres, autorisés.
Partie I. Connaissance de java.
1.1 A quoi sert l’option -classpath de l’interpréteur java ? Quelle est la nature
possible des éléments concernés par cette option ?
1.2 A quoi sert le concept de package ?
1.3 Qu’est-ce qui différencie une classe abstraite d’une interface ? En quoi ces
concepts sont-ils complémentaires ?
1.4 Etudiez les quatre lignes de code ci-dessous :
double [ ] t a b l e a u ;
for ( int i = 0 ; i < 1 2 ; i ++) {
t a b l e a u [ i ] = Math . s q r t ( ( double ) i ) ;
}
- Pourquoi ce code ne fonctionne-t-il pas ?
- L’erreur se produit-elle à l’exécution ou à la compilation ?
- Que faudrait-il modifier pour que ce code fonctionne ?
1.5 Examiner le code suivant. Il s’agit d’une petite application dont vous avez,
ci-dessous, une copie d’écran.
import
import
import
import
import
j a v a . awt . Frame ;
j a v a . awt . Button ;
j a v a . awt . T e x t F i e l d ;
j a v a . awt . BorderLayout ;
j a v a . awt . e v e n t . ∗ ;
public c l a s s G e n e r a t e u r A l e a t o i r e extends Frame{
public s t a t i c f i n a l double BORNE MAX = 1 0 0 0 ;
private
private
private
private
Button b u t t o n Q u i t t e r = new Button ( ) ;
Button b u t t o n A c t i o n = new Button ( ) ;
T e x t F i e l d t e x t F i e l d R e s u l t a t = new T e x t F i e l d ( ) ;
BorderLayout b o r d e r L a y o u t G e n e r a l = new BorderLayout ( ) ;
public G e n e r a t e u r A l e a t o i r e ( ) {
super ( ’ Générateu r de nombre a l é a t o i r e ’ ) ;
buttonQuitter . setLabel ( ’ Quitter ’ ) ;
b u t t o n A c t i o n . s e t L a b e l ( ’ Action ’ ) ;
}
t e x t F i e l d R e s u l t a t . s e t T e x t ( ’ ’+getRandomNumber ( ) ) ;
this . setLayout ( borderLayoutGeneral ) ;
t h i s . add ( b u t t o n Q u i t t e r , BorderLayout .SOUTH) ;
t h i s . add ( buttonAction , BorderLayout .NORTH) ;
t h i s . add ( t e x t F i e l d R e s u l t a t , BorderLayout .CENTER) ;
t h i s . pack ( ) ;
t h i s . s e t V i s i b l e ( true ) ;
// f i n du c o n s t r u c t e u r s a n s paramètre
public s t a t i c void main ( S t r i n g [ ] a r g s ) {
G e n e r a t e u r A l e a t o i r e g e n e r a t e u r A l e a t o i r e 1 = new G e n e r a t e u r A l e a t o i r e ( ) ;
}
private long getRandomNumber ( ) {
return Math . round ( Math . random ( ) ∗ BORNE MAX ) ;
}
} // f i n de l a c l a s s e G e n e r a t e u r A l e a t o i r e
Complétez et modifiez ce code pour que l’interaction de l’utilisateur sur les boutons action et quitter soit possible.
- Un click souris sur le bouton action devra appeler la méthode getRandomNumber
() et afficher le résultat dans le textFieldResultat en supprimant le résultat
précédent.
- Un click souris sur le bouton quitter devra mettre fin à l’exécution du programme.
Partie II. Héritage et abstraction.
On se propose de développer un logiciel de dessin fondé sur les primitives
géométriques. Vous aurez à manipuler les objets géométriques suivants (donnés
avec les attributs géométriques les caractérisant) :
Point 3D ou vecteur 3D
Segment de Droite
Plan
Cercle
Ellipse
Tronc de Cylindre
Tronc de Cône
Sphère
Trois composantes (double) X, Y, Z
Deux points 3D non confondus
Un vecteur normal au plan (A,B,C) et un double D
(équation du plan Ax+By+Cz+D = 0)
Un Plan, un Centre (Point 3D) et un Rayon
Un Cercle mais avec deux rayons
Deux points 3D (centre des cercles des extrémités)
et un rayon
Un Tronc de Cylindre mais avec deux rayons (les
deux cercles des extrémités sont parallèles mais peuvent être de rayons différents).
Un centre (un point 3D) et un rayon.
2.1 La première étape est d’écrire, en java, une classe Point3D capable de gérer
les opérations élémentaires sur des points 3D. Pour ne pas avoir à écrire le
code complet de cette classe vous définirez une interface IPoint3D dont vous
spécifierez les méthodes qui vous semblent indispensables.
2.2 Vous devez représenter toutes ces primitives géométriques dans un seul arbre
d’héritage. Vous pouvez enrichir votre hiérarchie de nouvelles classes.
Représenter graphiquement le graphe d’héritage obtenu, identifiez clairement
les classes abstraites et justifiez brièvement chacun de vos choix.
2.3 Pour chacune des méthodes énoncées ci-dessous vous indiquerez, en justifiant clairement vos réponses, dans quelle(s) classe(s) il vous semble pertinent de
les insérer (que ce soit une méthode abstraite, concrète ou redéfinie).
getColor()
translate(IPoint3D p)
getBarycentre()
draw()
getPerimetre()
getLenght()
getVolume()
getSurface()
Retourne la couleur d’affichage de l’objet
Effectue une translation de l’objet sur le point p
Retourne le barycentre
Dessine l’objet
Retourne, quand cela a un sens, le périmètre de l’objet
Retourne, quand cela a un sens, la longueur de l’objet
Retourne, quand cela a un sens, le volume de l’objet
Retourne, quand cela a un sens, la surface de l’objet
Attention : vous devrez vous assurer de la cohérence de l’utilisation de ces
méthodes et mettre en place un mécanisme de votre choix interdisant les incohérences (par exemple getvolume() sur un segment de droite).
Unité optionnelle L51
juin 2002
Durée 2h
Documents manuscrits autorisés
Le langage de programmation utilisé sera le langage Maple.
Première partie
On veut déterminer le nombre de racines réelles d’un polynôme. 1) Ecrire une
procédure nonnuls(u) qui pour une liste u de nombres retourne la liste des
éléments non nuls de u.
2) Ecrire une procédure varsigne1(u) qui pour une liste u dont les éléments valent 1 ou -1 calcule le nombre de changements de signe dans u.
Par exemple, si u=[-1,1,1,-1], varsignel(u)=2 car il y a un changement de signe
entre le 1er et le 2ième élément et un changement entre le 3ième et le 4ième.
Quel est l’intérêt de travailler avec des nombres égaux à 1 ou -1 plutôt qu’avec
des nombres quelconques ?
3) Ecrire une procédure varsigne2(u) qui pour une liste u de nombres calcule le
nombre de changements de signe dans u, en ne considérant que les nombres non
nuls.
Ainsi, si u=[-1,2,1,0,-5], varsigne2(u)=2, car il y a un changement de signe entre
le 1er et le 2ième élément et un changement entre le 3ième et le 5ième.
Indication : La fonction sign(n) retourne 1 si le nombre n est positif ou nul et
-1 sinon.
4) La suite de Sturm d’un polynôme p non nul (à coefficients rationnels) en la
variable x est définie de la façon suivante :
p0 =p
p1 = p’ où p’ désigne le polynôme dérivé de p
pi = - reste(pi−2 , pi−1 ) pour pi−2 non nul (autrement dit, pi est l’opposé
du reste de la division du polynôme pi−2 par le polynôme pi−1 )
Les polynômes de cette suite ont des degrés strictement décroissants et son
dernier terme est nul, on désigne par k l’indice du dernier terme non nul.
Ecrire une procédure suite(p,x) qui pour un polynôme p en une variable x
détermine la liste des termes pi de sa suite de Sturm pour 0 ≤ i ≤ k.
Indication : La fonction rem(f,g,x), calcule pour des polynômes f et g en la
variable x, le reste de la division de f par g.
5) Soit p un polynôme non nul et y un nombre réel qui n’est pas racine de p.
On considère la liste des termes pi de la suite de Sturm de p pour 0 ≤ i ≤ k et
on remplace chaque élément de cette liste de polynômes par sa valeur au point
y. On note V(y) le nombre de changements de signes de la liste ainsi obtenue.
Si a et b, avec a¡b, ne sont pas des racines réelles de p, alors le nombre de racines
réelles de p dans l’intervalle [a,b] est égal à V(a)-V(b).
Ecrire une fonction nbracines(p,x,a,b) qui calcule le nombre de racines réelles
entre a et b du polynôme p en la variable x.
6) Calculer le nombre de racines réelles du polynôme x5 − 3x3 + 2 entre -2 et 2
et tracer la représentation graphique de la fonction qui à x associe x5 − 3x3 + 2
pour x variant de -2 à 2.
Seconde partie
1. Question de cours
(a) Rappeler la différence entre une primitive et une intégrale définie.
Comment traduire cette nuance dans la syntaxe de Maple ?
(b) Rappeler 1a différence entre une somme et une somme indéfinie.
Comment traduire cette nuance dans la syntaxe de Maple ?
(c) Différence entre taylor et series
(d) Différence entre solve et fsolve
2. Récursivité
On considère la suite réelle n 7→ un définie par la récurrence
un+1 = un +
n−1
X
uj un−1−j
j=0
et la condition initiale u0 = 1.
(a) Ecrire une procédure récursive pour le calcul des un .
(b) Justifier l’utilisation de l’option remember dans ce contexte.
3. Séries Génératrices
Avec les notations du § précédent on pose
U (z) :=
∞
X
un z n
n=0
(a) Comment exprimer U (z) en fonction de un en Maple ?
(b) Admettons l’équation fonctionnelle
U − 1 = z(U + U 2 )
Comment résoudre cette équation en Maple ? Comment choisir entre
les deux solutions ?
Carte à Mémoire et Contrôle d’Accès
juin 2002
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. Les contacts de la carte à puce avec le monde extérieur comporte 9 ou 10
fils distincts.
(a) Quelles sont les fonctions de ces fils ?
(b) A quelle vitesse maximum (en bit par sec.) une carte à puce communiquet-elle avec le monde extérieur ?
(c) Cette vitesse est-elle une limitation aux performances de la carte ?
3. Dans le protocole de validation des transactions commerciales pour les
cartes à puce :
(a) les données reçues par le centre de contrôle sont-elles chiffrées ?
(b) Quelles seraient les conséquences de leur modification par un tiers
malveillant ?
(c) Les données renvoyées par le centre de contrôle sont-elles chiffrées
pour la transmission ?
(d) Quelles seraient les conséquences de leur modification par un tiers
malveillant ?
4. (a) Pour quelle raison le système de contrôle des transactions sur les
cartes à puce n’est-il pas exportable ?
(b) Une augmentation de la longueur de la clé à 128 bits est-elle susceptible de le rendre exportable ?
C++/Java
3 septembre 2002
Durée 3 heures
Barème :
Partie 1 sur 12 points Partie 2 sur 8 points Tous documents, sauf
livres, autorisés.
Partie I. Connaissance de java.
1.1 Décrivez brièvement le fonctionnement d’une machine virtuelle Java. Quels
sont les avantages et inconvénients de cette approche ?
1.2 A quoi sert le Garbage Collector ?
1.3 Citez deux différences qui vous semblent fondamentale entre C++ et Java.
Justifiez votre réponse.
1.4 Etudiez attentivement la classe ci dessous :
1 public c l a s s Test {
2
3
public s t a t i c void main ( S t r i n g [ ] a r g s ) {
4
Test t e s t 1 = new Test ( ) ;
5
test1 . test ();
6
}
7
8
c l a s s ClasseA {
9
private S t r i n g name = ” C l a s s e A” ;
10
public S t r i n g getName ( ) {
11
return name ;
12
}
13
}
14
15
c l a s s ClasseB extends ClasseA {
16
public S t r i n g name = ” C l a s s e B” ;
17
public S t r i n g getName ( ) {
18
return name ;
19
}
20
}
21
22
void t e s t ( ) {
23
ClasseB b=new ClasseB ( ) ;
24
System . out . p r i n t l n ( ”b . name
: ”+b . name ) ;
25
System . out . p r i n t l n ( ”b . getName ( ) : ”+b . getName ( ) ) ;
26
ClasseA a ;
27
a=(ClasseA ) b ;
28
System . out . p r i n t l n ( ” a . name
: ”+a . name ) ;
29
System . out . p r i n t l n ( ” a . getName ( ) : ”+a . getName ( ) ) ;
30
31 }
}
Question 1 : Complétez les messages qui s’affichent à la console lors de l’exécution
du main de Test :
b.name :
b.getName() :
a.name :
a.getName() :
Question 2 : Le cast en ligne 27 est-il indispensable ? pourquoi ?
Question 3 : Quelle est l’erreur de modélisation et donc d’écriture qui produit
cette difficulté à anticiper le comportement du programme ?
Question 4 : Pourquoi en ligne 3 la méthode main est elle static ? Précisez ce
qu’est un membre static en Java.
Partie II. Déclenchement et traitement d’une exception
On se propose de développer une classe EntierNaturel permettant de manipuler des entiers naturels (positifs ou nuls). Cette classe disposera simplement :
• D’un constructeur à un argument de type int qui sera contrôlé par une exception, ErrConstruction (classe à définir par vos soins)
• Une méthode getN() fournissant sous la forme d’un int la valeur encapsulée
dans EntierNaturel
Question 1 : Ecrire les classes EntierNaturel et ErrConstruction. La classe
EntierNaturel possédera une méthode main pour tester vos développements.
Vous devrez dans cette méthode traiter l’exception ErrConstruction en affichant un message et en interrompant l’exécution. La gestion des erreurs dans
le constructeur devra mémoriser la valeur fournie à tort et cette valeur devra
faire partie du message d’erreur affché sur la console.
Question 2 : la classe ErrConstruction devra hériter soit de RuntimeException
soit de Exception. Justifiez clairement votre choix et dessinez l’arbre d’héritage
des Exception.
L2, Sytèmes d’exploitation.
4 septembre 2002
La précision et la clarté de votre rédaction sont fondamentales. Respectez les notations des exercices. Aucun document autorisé. Durée
3 heures.
Cours
1. Citez deux problèmes posés par la gestion d’un système d’exploitation
pour lesquels, bien qu’il existe une solution optimale, elle n’est pas appliquée. Dans les deux cas, justifiez rapidement pourquoi les méthodes
optimales ne sont pas utilisées.
2. Quel est le rôle des protocoles NFS et NIS ?
3. A partir d’un shell interactif s, vous lancez la commande :
gcc monproc.c -o monprog &
Parmi ces affirmations, une ou plusieurs sont correctes, indiquez lesquelles
(ou laquelle). Justifiez votre choix.
• Le shell s se transforme en un processus qui exécute la commande
gcc.
• Le shell s crée un fils f qui exécute gcc, et s attend la terminaison
de f avant de reprendre son exécution.
• Le shell s crée un fils f qui exécute gcc, et s attend la terminaison
de f avant de terminer lui-même.
• Le shell s crée un fils f qui exécute gcc et qui attend la terminaison
de s avant de terminer lui-même.
• Le shell s crée un fils f qui exécute gcc et s reprend son exécution
sans attendre la terminaison de f .
Exercice
On considère une méthode d’ordonnancement à multi-files basée sur les priorités. Chaque processus P est doté d’une priorité de base P (b) , et d’une priorité courante P (c) égale à P (b) à sa création. Les niveaux de priorité varient
de 1 (la plus faible) à n (la plus élevée). A chaque priorité i correspond une file
d’attente fi , dont l’ordonnancement est assuré par la méthode du tourniquet
avec un quantum q identique pour chaque file. L’ordonnanceur principal suit
les deux règles suivantes :
1) soit m le plus grand entier tel que la file fm ne soit pas vide, le processeur est donné au premier processus de cette file.
2) tout autre processus prêt P tel que P (c) = i < m passe de la file fi à
fi+1 (sa priorité courante est donc incrémentée).
1. Quel est le rôle de la seconde règle (2 lignes d’explication) ?
2. Lorsqu’un processus bloqué (par exemple en attente de la saisie de donnés
au clavier) est réveillé par un événement extérieur (l’utilisateur a saisi
des données), comment doit réagir l’ordonnanceur, notamment en ce qui
concerne le calcul de P (c) ? (2 lignes d’explication).
On pose n = 3 et on considère 4 processus P1 , P2 , P3 et P4 . Ces 4 processus
(b)
sont tous présents au démarrage du système avec pour paramètres P1 =
(b)
(b)
(b)
P2 = 3, P3 = 2 et P4 = 1. On suppose de plus que ces processus
tournent en boucle infinie et qu’ils ne font aucune opération d’entrée-sortie.
Lorsqu’un processus P épuise son quantum de temps, sa priorité redevient
P (b) et il est placé dans la file correspondante. L’ordonnanceur applique
alors les deux règles explicitées ci-dessus.
3. Simulez l’action de l’ordonnanceur jusqu’à détecter un comportement périodique. Pour cela vous complèterez le tableau fourni en annexe. Ce
dernier comporte 5 colonnes. La première colonne indique le nombre s
de quanta qui se sont écoulés, au démarrage du système ce nombre vaut
0. Les 3 colonnes suivantes indiquent l’état des files d’attente lorsque s
quanta se sont écoulés (en ayant appliqué les règles énoncées ci-dessus).
La dernière colonne indique quel processus utilisera le processeur pendant
le quantum courant.
4. Donnez pour chacun des processus le nombre de fois où il utilise le processeur au cours de la période trouvée.
5. La méthode est-elle performante ? (Justifiez en deux lignes).
L4 : Anglais
4 septembre 2002
durée : 1 h 30
Q.C.M. Choisir la bonne réponse. (9pts)
1. While formerly a member of the sports club, Mr Teeters ...............
tennis there regularly.
a) is used to playing
b) used to play
c) was used to play
d) used to playing
2. Having arrived at the football stadium barely in time, ............... .
a) the two teams were just starting as we sat down
b) we reached our seats just as the game started
c) the officials had already blown the whistle for the game to start
d) the gatekeeper took our tickets as we passed
3 ............... the rhinoceros is carefully protected, it will soon go the way
of other extinct species.
a) If
b) As long as
c) Therefore
d) Unless
4. Most of the courses at the banquet were completely consumed, but
there ............... food still remaining.
a) were few
b) were a few
c) was little
d) was a little
5. A person probably picks up any language most easily ............... it as
a child outside a classroom.
a) learn
b) by learning
c) to learn
d) for learning
6. The boys’father built them a large sandbox ............... .
a) to play in
b) to play in there
c) to play in it
d) in which to play in there
7. The beach is usually closed ............... a rainy day.
a) in
b) at
c) on
d) while
8. The movie was very boring and many people began to leave early.
By the end, most people ............... .
a) had already left
b) were already left
c) were already leaving d) had already been leaving
9. The little boy first took off one shoe and then took off ............... .
a) other
b) the other
c) another
d) each other
10. That’s not the butcher we always buy our meat from; you’ve gone
to ............... one.
a) wrong
b) the wrong
c) a wrong
d) some wrong
11. After years of great unhappiness in her life, Mrs. Palmer one day
just seemed to go ............... .
a) mad
b) madder
c) madly
d) madness
12. The police are accusing this businessman of having his store ...............
up so that he could collect the insurance.
a) blew
b) blow
c) blown
d) blowing
13. Hardly ever ............... get a good job these days without a good education.
a) people might
b) people can
c) do people
d) have people
14. The Joneses’corn did very well this year, so at harvest time they gave us
quite ............... .
a) many of them
b) much of it
c) a few of them
d) a lot of it
15. Computers can process data extremely fast, ............... of this, they have
several serious drawbacks.
a) in spite
b) whereas
c) consequently
d) despite
16. Even an autopsy, had one ............... ordered, would probably have
revealed nothing.
a) be
b) should be
c) have been
d) been
17. ............... opinion would have counted.
a) Nobody else’s
b) Nobody else
c) Everyone else
d) Anything else’s
18. ............... farming is a business unlike any other can be seen from
its institutions.
a) But
b) So
c) And
d) That
19. They’ve become the 4th ............... producer of copper.
a) largest
b) at large
c) larger
d) in large
20. As ............... supplies, the problem is entirely different.
a) regard to
b) regard
c) regards
d) regarding
21. In theory, ............... techniques are equally valuable.
a) the three all
b) whole the three
c) whole three
d) all three
22. Eight Britons ............... ten agreed to this.
a) out
b) from
c) in
d) on
23. Before ............... this device, read the instructions carefully.
a) use
b) to use
c) using
d) have used
24. Twenty young people are involved, ............... are under 15.
a) of which most
b) most of which
c) whose most
d) most of whom
25. In the last week of August the Dow-Jones ............... 70 points.
a) felt
b) has fallen
c) has felt
d) fell
26. The Japanese have invested ............... $7 billion in office towers.
a) estimated
b) an estimated
c) estimating
d) an estimate
27. He would like to obtain ............... information.
a) farther
b) the more
c) further
d) the farther
28. This car costs ............... in Copenhagen as in Brussels.
a) twice as many
b) half as many
c) twice so
d) twice as much
29. Going via Dover is ............... far the shortest route.
a) from
b) by
c) not
d) much
30. The new facility, ............... , would increase capacity by 20%.
a) if built
b) to build
c) of building
d) it builds
31. The ............... you say about it, the better.
a) least
b) lest
c) lesser
d) less
32. This railway line is no ............... in use.
a) further
b) any more
c) farther
d) longer
33. The decision was made after ............... .
a) an one-hour meeting b) an one hour’s meeting
c) a one-hour meeting
d) one-hour meeting
34. Faster growth would ............... easier to reduce the subsidies.
a) do it
b) cause it
c) make
d) make it
35. ............... he was seventy, he was still a remarkable swimmer.
a) However
b) Yet
c) Although
d) Since
36. Curiously, researchers have found ............... indications of warfare
among the clans of the Ice age.
a) a little
b) little
c) few
d) a lot
Texte
Teaching goes virtual in Pakistan
By Alfred Hermida
BBC News Online technology staff
Thousands of Pakistanis are being offered the chance to learn the skills they
need to thrive in the computer age thanks to a new virtual university.
The US$40m project is providing distance learning over the television and
internet so that anyone can take part in the classes, regardless of where they
live in Pakistan.
The aim is to create a generation of software programmers and computer engineers who can rival the best in countries like the US.
Pakistan is eager to develop an informatin technolog industry, much like India
has done. Experts estimate the country needs at least 60,000 computer science
graduates to achieve this aim.
“India is a very inspiring cse. They got their act together very early,” said
Salman Ansari, adviser to Pakistan’s Ministry of Science and Technology.
“We are leveraging technology to get the level that we need to get to,” he told
the BBC programme Go Digital.
Exciting education
The Virtual University combines television, video-conferencing and the internet to provide lessons, tutorials and guidance to students all over Pakistan.
The lectures are produced in a professional studio, carefully put together to
ensure that they are clear and accessible.
Students can log on to the university over the internet and discuss the subject
with a lecturer.
“The students feel empowered by sitting in front of a PC and being able to to
shoot off questions or put their comments on a discussion board,” said Naveed
Malik, the rector of the Virtual University.
“It’s a very exciting experience. Students are realising that they are having
a better educational expenence than most of our conventional institutions.”
Cheap and friendly
Currently around 500 people are taking part in a pilot project. The organisers
hope to have 5,000 students by September, rising to 25,000 by the end of 2003.
One of the key aspects or the project is to ensure that anyone, regardless of
their income and where they ]ive, can take part in the lessons.
“We have opened up access to the Virtual University to all segments of the
population by keeping the prices extremely low,” said Mr Malik.
To this end, educational centres are being set up where students can view the
courses and access the internet.
The plan is to set up a high speed computer network linking 60 universities
and 2,500 schools and colleges. A further 10,000 schools will be able to access
the lessons through the internet.
“We realised that we had to build up the internet in Pakistan very rapidly,” said
Mr Ansari.
“So two years ago we had about 29 cities on the internet; today we have 580
online and it will be 1,000 by the end of the year.”
The government has also worked to ensure that the cost of going online is
within reach of most.
“I could be sitting in the middle of nowhere, hundreds of miles from anywhere,
but when I log in, the cost would be six rupees (10 cents) an hour,” he said.
Vocabulaire :
To thrive : to prosper
Income : revenu
Tutorials : travaux dirigés
Within reach : abordable
1. What is a “virtual university” ? How does it operate? Explain Pakistan’s
project and its objectives. (5pts)
2. What are the advantages – and possible limitations – of distance learning?
Would you rather attend12 a virtual university than a conventional one ?
Why or why not? (6pts)
12 to
attend : fréquenter, suivre des cours dans. . .
L1 : Mathématiques (Wolfmann)
septembre 2002
Durée : 3 heures
Tous documents autorisés.
Les trois parties ne sont pas indépendantes mais peuvent être traitées
séparément.
Soit n un entier, n ≥ 2. On considère l’ensemble En = {−1, +1}n
Puisque {−1, +1} est un sous-ensemble de Z stable pour le produit, on définit
une loi interne ? dans En comme suit :
Si x = (x1 , x2 , . . . , xi , . . . , xn ) et y = (y1 , y2 , . . . , yi , . . . , yn ) sont deux éléments
de En alors :
x ? y = (x1 y1 , x2 y2 , . . . , xi yi , . . . , xn yn )
PARTIE I
0) Question pour fixer les idées (0 point)
Etablir la table de la loi ? pour n = 2.
n est maintenant quelconque, n ≥ 2.
1) Montrer que (En , ?) est un groupe commutatif en précisant l’élément neutre
et le symétrique de chaque élément.
2) Pour n = 3, déterminer tous les sous-groupes qui contiennent l’élément (-1,
-1, -1)
PARTIE II
On définit dans En une relation R par :
si x = (x1 , x2 , . . . , xi , . . . , xn ) ∈ En et y = (y1 , y2 , . . . , yi , . . . , yn ) ∈ En alors
xRy ⇔ ∀i ∈ {1, 2, . . . , i, . . . , n} : xi ≥ yi
où ≥ désigne la relation d’ordre habituelle dans Z.
1) Montrer que R est une relation d’ordre dans En .
2) Si z = (z1 , z2 , . . . , zi , . . . , zn ) ∈ En , on définit S − (z) comme étant l’ensemble
des indices pour lesquels la composante correspondante de z est égale à -1. C’est
à dire
S − (z) = {i, 1 ≤ i ≤ n | zi = −1}
Montrer que
xRy ⇔ S − (x) ⊂ S − (y)
3) Montrer que (En , R) est un treillis en précisant pour chaque ensemble de
deux éléments sa borne inférieure et sa borne supérieure.
PARTIE III
Soit σ l’application de En dans En (shift ou décalage circulaire) telle que :
si z = (z1 , z2 , . . . , zi , . . . , zn ) alors σ(z) = (zn , z1 , . . . , zi−1 , . . . , zn−1 ).
On se propose de trouver le nombre d’éléments x de la forme
(y1 yn , y2 y1 , . . . , yi yi−1 , . . . yn yn−1 )
c’est à dire tel qu’il existe y satisfaisant à x = y ? σ(y).
Soit f l’application de En dans En telle que f (u) = u?σ(u). Soit F l’équivalence
d’application de f .
1) Montrer que pour chaque x de En , la classe d’équivalence de x pour F contient
exactement deux éléments que l’on précisera en fonction de x.
On pourra commencer par examiner la classe de (1, 1, 1, . . . , 1, . . . , 1)
2) Déterminer le cardinal de En /F puis celui de f (En ) et en déduire le nombre
d’éléments x de En de la forme y ? σ(y).
3) Question supplémentaire (avec points supplémentaires) : Montrer que x est
de la forme y ? σ(y) si et seulement si le nombre de composantes de x qui sont
égales à -1 est un nombre pair.
C++
septembre 2002
Durée 1h30
Cours autorisé
ATTENTION : soignez la présentation et l’écriture. Chaque réponse
doit être accompagnée d’une justification. Le barème est donné à
titre indicatif.
Exercice 1. (6 pts) Questions de cours
Répondre aux questions suivantes de manière concise (i.e. 3-4 lignes maximum).
Eviter d’utiliser telles quelles des phrases tirées du cours, ces questions sont là
pour évaluer votre maı̂trise du langage, évaluation nulle dans le cas pré-cité.
1. Pourquoi est-il conseillé de passer par valeur un paramètre dont le type
est une classe à une fonction ?
2. Dans une classe, comment fait-on pour initialiser un attribut dont le type
est une classe (par opposition à un type fondamental) ?
3. Vous voulez écrire une fonction qui calcule le carré de deux entiers, de
deux réels, de deux fractions, de deux matrices, etc. Comment faites-vous
?
Exercice 2. (14 pts) Comptes bancaires
L’objectif de cet exercice est de définir différentes sortes de comptes bancaires.
1. Compte simple. Tout d’abord, nous nous intéressons à un compte simple
caractérisé par un solde exprimé en centimes (ou cents), positif ou négatif,
et son titulaire (on suppose qu’il existe une classe Personne). Il est possible de créditer ce compte ou de le débiter d’un certain montant. Définir
en C++ la classe correspondant à ce compte (classe Compte).
2. Compte courant. En fait, une banque conserve, pour chaque compte,
l’historique des opérations qui le concernent (on se limite ici aux opérations
de crédit et de débit). Cet historique est utilisé pour éditer les relevés de
compte envoyés à ses clients. Le service télématique de la banque donne
la possibilité au client de consulter l’historique. Le client peut choisir de
voir toutes les opérations, les opérations de crédit seules ou les opérations
de débit seules.
On souhaite modéliser un tel compte qu’on appelle compte courant. Il peut
être défini comme un compte pour lequel l’historique des opérations est
conservé. Un compte courant offre des opérations pour afficher l’ensemble
des opérations effectuées (afficher) ou seulement les opérations de crédit
(afficher crédit) ou de débit (afficher débit).
Indiquer quelle est la relation entre un compte simple et un compte courant.
Écrire la classe C++ correspondant à un compte courant (classe
Compte Courant).
Indication : pour représenter l’historique on utilisera un tableau d’entiers.
Le signe de l’entier indique le type d’opération (positif pour crédit et
négatif pour débit). La valeur absolue de l’entier correspond au montant
de la transaction.
3. Numéro de compte. Pour identifier ses comptes, une banque leur affecte
des numéros qui doivent bien entendu être uniques. On suppose que les
numéros sont des entiers et qu’ils sont attribués par ordre croissant en
commençant à 10001. Les numéros de compte sont donc 10001, 10002,
10003, etc. Un numéro doit être attribué à tout compte qui est ouvert
(créé). Il est donc naturel de le définir dans la classe Compte.
Indiquer précisément où ce numéro doit être affecté. Proposer une solution
pour déterminer ces numéros et modifier la classe Compte en conséquence.
Indiquer quelles sont les modifications à apporter à la classe modélisant
les comptes courants.
Carte à Mémoire et Contrôle d’Accès
septembre 2002
Durée 1h
I) Lorsque une carte est introduite dans un lecteur, des données sont échangées.
Quel nom est donné à cette phase. Ces données sont-elles transmises depuis la
carte ou vers la carte ?
II) Donner le nom et le rôle de deux types de fichiers dans le système de fichiers.
Préciser leur rôle.
III) Dans le protocole de validation des transactions commerciales pour les cartes
à puce, quelles données sont créées par la carte ? A quelles entités sont elles
transmises ?
IV) 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. Cette fraude est-elle possible sans complicité ?
L2 : Systèmes d’exploitation
septembre 2002
Partie 2
Aucun document, ni calculette ne sont autorisés.
Les parties 1 et 2 seront traitées sur des feuilles séparées.
Utilisation sous Linux d’un ensemble de sémaphores
Le travail consiste à remplir le programme suivant, par rapport aux commentaires.
Key_t ma_cle
Int id_ens_sem
Union semun {
Int val ;
Struct semid_ds *buf ;
Ushort *array ;
} init_sem ;
ma cle = - - - - - - - - - - - - - - - - - - - //
id ens sem = - - - - - - - - - - - - - - - - -//
- - - - - - - - - - - - - - - - - - - - - - - - - -//
-------------------------struct sembuf operation[] = - - - - - - - //
------------------------
sur un fichier existant quelconque
création d’un ensemble de 2 sémaphores
on initialise la valeur de tous les sémaphores
de l’ensemble à ’2’.
on définit un ensemble d’opérations :
P (sem0,1) & V (sem1,2)
// on applique cet ensemble de deux opérations
à l’ensemble de sémaphores de id ens sem
Questions de cours
2. A quoi peuvent servir les sémaphores ?
3. Donnez l’algorithme des deux primitives de manipulation des sémaphores.
4. Quelles sont les opérations possibles sur un sémaphore privé
5. Décrivez succinctement la primitive supplémentaire de manipulation de
sémaphore qui est implémentée sous UNIX.
Manipulations de sémaphores
6. Ecrire l’algorithme qui permettent de synchroniser deux classes de processus :
Consommateurs et producteurs. Vous utiliserez les primitives prédéfinies de
manipulations de sémaphores.
7. Montrez le bon fonctionnement de votre algorithme sur un exemple concret.
L3 : Bases de données
2e session 2002
Durée 2 heures
Ci-dessous, le texte de l’examen de juin. Je vous demande de traiter
uniquement les questions auxquelles vous n’avez pas su répondre ou
bien auxquelles vous estimez n’avoir pas répondu correctement, lors
de l’examen de juin.
1. On considère une application informatique utilisant plusieurs bases de
données relationnelles. Pour faciliter l’accès à ces bases de données on
construit une “métabase” qui décrit ces bases de données de la façon suivante. Une base de données est décrite par son nom (une chaı̂ne de caractères) qui l’identifie et par l’ensemble de ses relations. Une relation est
décrite par son nom (une chaı̂ne de caractères) qui l’identifie au sein d’une
base de données, par l’ensemble de ses attributs et par sa clé primaire
qui rappelons-le est un sous-ensemble des attributs de cette relation. Un
attribut d’une relation est décrit par son nom (une chaı̂ne de caractères)
qui l’identifie au sein de cette relation et par son type (une chaı̂ne de
caractères). On demande :
(a) de construire le schéma de classes UML qui spécifie cette métabase ;
(b) de traduire ce schéma en schéma relationnel.
2. Soit un index organisé en arbre B+, constitué de 80000 enregistrements
dont les clés ont une longueur maximum de 30 octets. On suppose de plus
que les pages doivent avoir une longueur qui est une puissance de 2 (32, 64,
128, . . . ) et qu’un pointeur occupe 4 octets. Calculer la taille minimum
des pages pour que l’index ait une hauteur maximum de 3 (racine + 1
niveau de nœuds non terminaux + 1 niveau de feuilles).
3. Soit deux relations de base P et Q telles que P possède un attribut A
qui constitue sa clé primaire et Q possède un attribut B qui est une clé
étrangère qui réfère la clé primaire de P . On suppose qu’il n’existe pas
d’index sur les attributs A et B.
(a) Proposer une méthode basée sur la construction d’un fichier de hachage
avec répertoire pour effectuer l’équijointure join(P, Q, A = B).
(b) Evaluer le coût de cette méthode en supposant connus les temps de
lecture et d’écriture d’une page, les cardinalités de P et Q, le nombre
de pages qu’elles occupent et la taille du répertoire dont on suppose
qu’elle a été choisie de façon à ce qu’une seule page soit liée à chaque
case du répertoire.
4. Soit les trois transactions suivantes :
T1
start
lock X C1
read C1
C1 := C1 - A
write C1
unlock C1
lock X C2
read C2
C2 := C2 + A
write C2
unlock C2
commit
T2
start
lock X C1
read C1
C1 := C1 - B
write C1
lock X C2
read C2
unlock C1
C2 := C2 + B
write C2
unlock C2
commit
T3
start
lock S C1
read S C2
read C1
read C2
display C1 + C2
unlock C1
unlock C2
commit
(a) Ces trois transactions sont-elles bien formées ? Justifiez votre réponse.
(b) Lesquelles de ces trois transactions sont à deux phases ? Justifiez
votre réponse.
Considérons maintenant les deux exécutions suivantes de ces transactions :
E1
(T1 )
(T1 )
(T1 )
(T1 )
(T1 )
(T1 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T1 )
(T1 )
(T1 )
(T1 )
(T1 )
(T1 )
start
lock X C1
read C1
C1 := C1 - A
write C1
unlock C1
start
lock S C1
lock S C2
read C1
read C2
display C1 + C2
unlock C1
unlock C2
commit
lock X C2
read C2
C2 := C2 + A
write C2
unlock C2
commit
E2
(T2 )
(T2 )
(T2 )
(T2 )
(T2 )
(T2 )
(T2 )
(T2 )
(T3 )
(T3 )
(T2 )
(T2 )
(T2 )
(T2 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
(T3 )
start
lock X C1
read C1
C1 := C1 - B
write C1
lock X C2
read C2
unlock C1
start
lock S C1
C2 := C2 + B
write C2
unlock C2
commit
lock S C2
read C1
read C2
display C1 + C2
unlock C1
unlock C2
commit
(c) Lesquelles de ces deux exécutions sont-elles sérialisables ? Justifiez
votre réponse.
(d) Vérifier la réponse à la question précédente en traçant les graphes de
dépendance de ces deux exécutions.