• Aucun résultat trouvé

Corrig´e de la Composition d’Informatique Les Principes des Langages de Programmation (INF 321) Promotion 2006

N/A
N/A
Protected

Academic year: 2022

Partager "Corrig´e de la Composition d’Informatique Les Principes des Langages de Programmation (INF 321) Promotion 2006"

Copied!
2
0
0

Texte intégral

(1)

Corrig´ e de la Composition d’Informatique

Les Principes des Langages de Programmation (INF 321) Promotion 2006

Sujet propos´e par Gilles Dowek 9 juillet 2007

Exercice 1

1. 12727272727...

2. 3. 127272727 ... 27272727 ... 72727272 ...

3. 3.

4.

List l = new List (1, new List (2, new List (7, null)));

l.tl.tl.tl = l.tl;

exercice 2

1.

static int prod(Arbre a) { if (a == null) return 1;

return a.c * prod(a.g) * prod (a.d);}

2.210.

3.

static int prod2(Arbre a) throws Exception { if (a == null) return 1;

if (a.c == 0) throw new Exception ();

return a.c * prod(a.g) * prod (a.d);}

4.

static int prod3(Arbre a) { try {return prod2(a);}

catch (Exception e) {return 0;}}

(2)

Exercice 3

1.

static boolean equiv(Arbre a1, Arbre a2) { if (a1 == null) return (a2 == null);

if (a2 == null) return false;

return ((equiv(a1.g,a2.g) && equiv(a1.d,a2.d)) ||

(equiv(a1.g,a2.d) && equiv(a1.d,a2.g)));}

2.

Exercice 4

1.u(0,n) = 0,u(x+1,0) = 1 + u(x,0),u(x+1,n+1) = u(10,n) + u(x,n+1).

2. Par r´ecurrence sur x en utilisant la premi`ere et la deuxi`eme relations de r´ecurrence. Par r´ecurrence surx en utilisant la premi`ere et la troisi`eme relations de r´ecurrence.

3. En prenantx = 10dans la question 2., on d´eduitu(10,0) = 10etu(10,n+1) = 10 u(10,n). On en d´eduit, par r´ecurrence surn, la relation demand´ee.

4. De 2. et 3. on d´eduitu(x,n+1) = x 10n+1. Comme par ailleursu(x,0) = x 100, on en d´eduit u(x,n) = x 10n.

5.1017 secondes soit 3,17milliards d’ann´ees.

Exercice 5

1.e = [a = r1],m = [r1 = r2, r2 = (1,2)].

e’ = [p = r3],m’ = [r1 = r2, r3 = r2 ; r2 = (1,2)].

Σ(proj(a) ;,e,m) = [r1 = r2, r3 = r2 ; r2 = (1,10)].

10.

2.e = [a = r1],m = [r1 = (1,2)].

e’ = [p = r3],m’ = [r1 = (1,2), r3 = (1,2)].

Σ(proj(a) ;,e,m) = [r1 = (1,2)].

2.

2

Références

Documents relatifs

´ Ecrire une fonction qui prend en argument une liste d’entiers et qui indique le nombre de z´ eros par lequel cette liste commence.. Exercice 2

´ Ecrire une fonction qui prend en argument deux listes de bool´ eens repr´ esentant deux ensembles A et B et retourne un bool´ een indiquant si l’ensemble A est un sous-ensemble

Un tel entier sera donc repr´ esent´ e par une variable X de type List qui d´ ecrit dans l’ordre, les digits en base N.. Comment d´ eclarer la variable N dans la

• (2.c) ´ Ecrire le code de la m´ ethode dynamique et r´ ecursive Eval de la classe AExpr prenant en argument une feuille C, et permettant d’´ evaluer l’expression sur laquelle

Pour donner une partie de la s´ emantique de la calculatrice programmable, on doit changer un peu la repr´ esentation de l’´ etat courant de la calculatrice: c’est maintenant

Sujet propos´ e par Gilles Dowek 5 juillet 2005.

On retourne la liste l2 qui devient la nouvelle liste l1, puis on lit le premier ´ el´ ement de cette liste et on le retire.. L’acc` es au premier ´ el´ ement de la liste se fait

Une m´ ethode, parmi d’autres, consiste ` a remarquer que les L(p+1,m+1) listes croissantes de p+1 entiers compris entre 0 et m+1 se partitionnent entre celles qui commencent par 0