Vous êtes sur la page 1sur 3

STPI

Mercredi 23 Juin 2010

I3 - Algorithmique
Dur e : 3h00 e Documents autoris s : AUCUN (calculatrice comprise) e Remarques : Veuillez lire attentivement les questions avant de r pondre. e Le bar` me donn est un bar` me indicatif qui pourra evoluer lors de la correction. e e e Rendez une copie propre. ` Nutilisez pas de crayon a papier.

1
1.1

Question de cours (4 points)


Compr hension e

Nous avons vu en cours que le tri rapide avait lalgorithme suivant : proc dure triRapide (E/S t : Tableau[1..MAX] dEntier ,E nb :Naturel) e debut triRapideRecursif(t,1,nb) n proc dure triRapideRecursif (E/S t : Tableau[1..MAX] dEntier ,E d,f :Naturel) e D claration indicePivot : Naturel e debut si d<f alors partionner(t,d,f,indicePivot) triRapideRecursif(t,d,indicePivot-1) triRapideRecursif(t,indicePivot+1,f) nsi n ` La gure donn e en derni` re page (` rendre avec votre copie) repr sente a laide de ` ches les diff rents e e a e e e appels de proc dures. Num rotez chronologiquement lordre de ces appels. e e

1.2

Complexit e

Sachant que la complexit dans le pire et le meilleur des cas de la proc dure partitionner est respece e tivement en O(n) et (n), rappelez et justiez les complexit s dans le pire et dans le meilleur des cas de la e proc dure triRapide. e

Palindrome (4 points)

` ` Une chane de caract` res est un palindrome si la lecture de gauche a droite et de droite a gauche est iden e tique. Par exemple radar, t , rotor, etc. sont des palindromes. ee On suppose poss der les fonctions suivantes : e fonction longueur (uneChaine : Chaine de caracteres) : Naturel avec longueur() = 0 fonction iemeCaractere (uneChaine : Chaine de caracteres, iemePlace : Naturel) : Caractere avec 0 < iemeP lace longueur(uneChaine) fonction sousChaine (uneChaine : Chaine de caracteres, debut, longueur : Naturel) : Chaine de caracteres avec : 1

0 < debut longueur(uneChaine), debut + longueur longueur(uneChaine), sousChaine(s, d, 0) = 1. Proposez une fonction it rative qui permet de savoir si une chane est un palindrome. e 2. Proposez une fonction r cursive qui permet de savoir si une chane est un palindrome. e

R solution dune equation par dichotomie (4 points) e


Soit le type FonctionDeRDansR d ni de la facon suivante : e Type FonctionDeRDansR = fonction(x : Reel) : Reel 1. Proposez le corps de la fonction suivante qui r soud de mani` re dichotomique et r cursive l quation e e e e ` ` f (x) = 0 sur lintervalle [a, b] a pr` s (sachant que la solution est unique et appartient bien a lintervalle e [a, b]) : fonction resoudre (f : FonctionDeRDansR, a,b : Reel, epsilon : Reel) : Reel 2. Votre algorithme r cursif est terminal ou non terminal ? Justiez. e

Jeu de la vie (8 points)

R` gles e
En pr ambule, il faut pr ciser que le jeu de la vie nest pas vraiment un jeu au sens ludique, puisquil ne e e ` n cessite aucun joueur ; il sagit dun automate cellulaire, un mod` le o` chaque etat conduit m caniquement a e e u e ` l tat suivant a partir de r` gles pr - tablies. e e ee ` Le jeu se d roule sur une grille a deux dimensions, th oriquement innie (mais de longueur et de largeur e e nies et plus ou moins grandes dans la pratique), dont les cases, quon appelle des cellules , par analogie avec les cellules vivantes, peuvent prendre deux etats distincts : vivantes ou mortes . ` A chaque etape, l volution dune cellule est enti` rement d termin e par l tat de ses huit voisines de la e e e e e facon suivante : une cellule morte poss dant exactement trois voisines vivantes devient vivante (elle nat) ; e une cellule vivante poss dant deux ou trois voisines vivantes le reste, sinon elle meurt. e
1

La gure 1 pr sente un exemple de calcul dune nouvelle g n ration (en gris clair les cellules mortes et en e e e gris fonc les cellules vivantes). e

(a) ancienne g n ration e e

(b) nouvelle g n ration e e

F IGURE 1 Calcul dune nouvelle g n ration du jeu de la vie e e


1. Wikip dia e

4.1

Analyse

On suppose que lon poss` de un type Grille avec les fonctions et proc dures suivantes : e e fonction grille (largeur, hauteur : Naturel) : Grille fonction obtenirLargeur (g : Grille) : Naturel fonction obtenirHauteur (g : Grille) : Naturel fonction estUneCelluleVivante (g : Grille, x,y : Naturel) : Booleen avec 0 < x obtenirLargeur(g) et 0 < y obtenirHauteur(g) proc dure faireMourirUneCellule (E/S g : Grille,E x,y : Naturel) e avec 0 < x obtenirLargeur(g) et 0 < y obtenirHauteur(g) proc dure faireNaitreUneCellule (E/S g : Grille,E x,y : Naturel) e avec 0 < x obtenirLargeur(g) et 0 < y obtenirHauteur(g) Pour r soudre le probl` me simulerJeuDeLaVie qui afche les n premi` res g n rations dune grille dune e e e e e certaine largeur et dune certaine hauteur, initialement remplie al atoirement dun certain pourcentage de e cellules vivantes, il faut savoir r soudre les sous-probl` mes suivants : e e initialiser une grille avec le certain pourcentage de cellules vivantes (sous-programme initialiser) calculer la prochaine g n ration dune grille (sous-programme nouvelleGeneration), sachant que pour e e r soudre ce probl` me il faut savoir r soudre le sous-probl` me suivant : e e e e ` savoir si une cellule va natre ou continuer a vivre (sous-programme vaNaitreOuContinuerAVivre), sachant que pour r soudre ce probl` me il faut savoir r soudre le sous-probl` me suivant : e e e e d terminer le nombre de cellules voisines vivantes (sous-programme nbVoisinsVivants) e afcher une grille (sous-programme afcher) Questions 1. Proposez une analyse descendante du (sous-)programme simulerJeuDeLaVie. 2. Pour chaque (sous-)programme de votre analyse descendante, d terminez si cest un (sous-)programme e de la logique m tier ou de linterface homme-machine (IHM). e 3. Comment pourriez vous navoir aucun (sous-)programme g rant les aspects IHM. e

4.2

Conception pr liminaire e
Donnez les signatures des proc dures ou fonctions issues de votre analyse descendante. e

4.3

Conception d taill e e e

1. Donnez le corps des proc dures ou fonctions associ es aux (sous-)programme : e e simulerJeuDeLaVie ; nouvelleGeneration. 2. Proposez une conception du type Grille.

Vous aimerez peut-être aussi