• Aucun résultat trouvé

Composition d’Informatique Les Principes des Langages de Programmation (INF 321) Promotion 2008

N/A
N/A
Protected

Academic year: 2022

Partager "Composition d’Informatique Les Principes des Langages de Programmation (INF 321) Promotion 2008"

Copied!
3
0
0

Texte intégral

(1)

Composition d’Informatique

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

Sujet propos´e par Gilles Dowek 6 juillet 2009

Les exercices qui suivent sont ind´ependants et peuvent ˆetre trait´es dans n’importe quel ordre.

On attachera une grande importance `a la clart´e, `a la pr´ecision et `a la concision de la r´edaction.

Exercice 1 (3 points)

On se donne la classe des listes d’entiers class List {

int hd;

List tl;

List (int h, List t) {hd = h; tl = t;}}

1. ´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 (2 points)

1. Simplifier le programme suivant static int f(int n) {

if (n % 2 == 1) return 0;

if (n == 4) return 4;

if (n == 5) return 5;

else return 6;}

Exercice 3 (7 points)

On ´etend la classe des listes d’entiers de l’exercice 1 avec les m´ethodes static List append(List l1, List l2) {

if (l1 == null) return l2;

return new List(l1.hd,append(l1.tl,l2));}

static void print(List l) {

if (l != null) {System.out.print(l.hd); print(l.tl);}}

(2)

Et on se donne une classe des arbres binaires `a contenu entier class Arbre {

int val;

Arbre gauche;

Arbre droite;

Arbre (int v, Arbre g, Arbre d) {val = v; gauche = g; droite = d;}}

Siaest un arbre non vide dont chaque nœud a ou bien z´ero ou bien deux enfants etnun entier, on associe `a l’arbrea et `a l’entiern la listel ainsi d´efinie :

– si aest une feuille de contenu v, alorsl est la liste contenant2n fois la valeur v,

– sinonlest la liste obtenue en concat´enant la liste associ´ee `a l’arbrea.gaucheet `a l’entier n-1et la liste associ´ee `a l’arbre a.droiteet `a l’entiern-1.

1. Quelle est la longueur de la liste associ´ee `a l’arbreaet `a l’entier n? 2. Quelle est la liste associ´ee `a l’arbre

1

0 1

et `a l’entier 3?

3. ´Ecrire une fonction qui prend en argument un arbre et un entier et retourne la liste associ´ee.

4. Dessiner le plus petit arbre associ´e `a la liste 0 0 0 0 1 1 1 1.

5. Dessiner le plus petit arbre sans partage associ´e `a la liste 0 1 0 1 0 1 0 1.

6. Dessiner le plus petit arbre avec partage associ´e `a cette liste.

7. `A quoi cette fonction peut-elle servir ?

Exercice 4 (4 points)

On se donne une fonction

static void noir (int x, int y, int n)

qui dessine un carr´e noir de cot´e ndont l’angle sup´erieur gauche est le point de coordonn´ee x, y.

1. ´Ecrire un programme dont l’ex´ecution produit ce dessin qui s’inscrit dans un carr´e de256 points de cot´es.

2

(3)

Exercice 5 (4 points)

1. Combien de cellules le glaneur de cellules peut-il recycler dans cet ´etat ?

m l

1 2 3 4

2. Et dans celui-ci ?

m l

1 2 3 4

3

Références

Documents relatifs

(2) En d´ eduire la fonction supprime qui prend en arguments une liste L et un nombre n et supprime le premier ´ el´ ement de la liste ´ egal ` a n.. Cette fonction renverra True si

Déterminer en fonction de  le module et argument de chacun des nombres complexes a, b

Sujet propos´ e par Gilles Dowek 9 juillet 2007..

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

[r]

Sujet propos´e par Gilles Dowek 13 juillet 2010..

2.b) Ecrire la s´ ´ emantique d´ enotationnelle [[expr]] des expressions arithm´ etiques a ∈ AExpr, par r´ ecurrence structurelle sur AExpr. Si e est une expression d´ efinie,

a l’affichage V , la valeur de la m´ emoire M , et l’op´ eration courante dans {p, m, t, n}; E est un bool´ een indiquant si l’on est dans le mode programme (apr` es avoir tap´