Exercices algorithmique boucles for et while

Objectif : Testez vos connaissances dans le domaine d'Algorithmique.

Exercice 1 : Algorithme mystère
----------------------------------------------
1.  Action Dessin() 
2.  Début 
3.  i : entier  {compteur} 
4.  x0,y0, c0, n0 : entier  {coordonnées}
5.  x0?50 
6.  y0?50 
7.  n0 ?3 
8.  c0 ?25 
9.  pour i=1 jusqu’à 4 faire 
10.           Objet2(x0, y0, c0, n0) 
11.           x0 ?x0+c0*n0 
12. Fin pour 
13. Fin 

14. Action Objet2(x, y, c, n : entiers) 
15. Début 
16. pour j=1 jusqu’à n faire 
17.         Carre(x, y, c*j) 
18.         Couleur (transparent) 
19. fin pour 
20. Fin
----------------------------------------------
Fig. 1

Rappel : Instruction algorithmique pour la création d’un carré :       Carré(X,Y,D)  
avec X et Y les coordonnées du coin supérieur gauche du carré et D le coté.



Q1. On  souhaite  transformer  la boucle « pour  i »  (entre  les  lignes 9 et 12) en une boucle  tant que. 
Parmi les solutions ci-dessous, lesquelles donnent le même résultat que l’algorithme original ? 



Q2. Quelle est la suite des valeurs successives de la variable x0, après l’exécution de la ligne n°11 de 
la figure 1. 



Q3. Dessinez  ce  que  vous  obtiendrez  en  exécutant  le  programme  correspondant  à  la  Fig.  1  sur  la 
feuille de réponse quadrillée jointe. On considérera que les carreaux font 25 pixels de large et 25 pixels de haut. 

Q4. Dans l’action Dessin de la figure 6, on remplace l’instruction « x0 ? x0+c0*n0» par  
« y0 ?  y0+c0*n0 ».  On  exécute  Dessin.  Par  rapport  au  résultat  obtenu  après  l’exécution  de Dessin  (algo  original  sans  aucune  modification),  quelle  partie  de  la  figure  va-t-elle  être modifiée ? 


Exercice 2 : La suite de Lucas

Dans  un  tableau  Excel,  on  souhaite  faire  une Macro  inscrivant  dans  la  troisième  colonne  du tableau  des  15  premières  valeurs  de  la  suite  de  Lucas.  Cette  suite  est  définie  par  l’équation suivante : 

U0 = 0 
U1 = 3 
Un = Un-1 + Un-2 
On rappelle que pour écrire la valeur « 0 » dans la cellule C1, on écrit en algorithmique : 
Cellule(1,3) ? 0


Q5. Donner l’algorithme correspondant à cette macro.

Exercice 1 : Algorithme mystère

Q1. On  souhaite  transformer  la boucle « pour  i »  (entre  les  lignes 9 et 12) en une boucle  tant que. 
Parmi les solutions ci-dessous, lesquelles donnent le même résultat que l’algorithme original ? 

Code N° 2 ET N° 3

Q2. Quelle est la suite des valeurs successives de la variable x0, après l’exécution de la ligne n°11 de 
la figure 1. 

La réponse n° 4

Q3. Dessinez  ce  que  vous  obtiendrez  en  exécutant  le  programme  correspondant  à  la  Fig.  1  sur  la 
feuille de réponse quadrillée jointe. On considérera que les carreaux font 25 pixels de large et 25 pixels de haut. 

Q4. Dans l’action Dessin de la figure 6, on remplace l’instruction « x0 ? x0+c0*n0» par  
« y0 ?  y0+c0*n0 ».  On  exécute  Dessin.  Par  rapport  au  résultat  obtenu  après  l’exécution  de Dessin  (algo  original  sans  aucune  modification),  quelle  partie  de  la  figure  va-t-elle  être modifiée ? 

Les figures obtenues par les appels successifs de la procédure Objet2, seront disposées verticalement.


Exercice 2 : La suite de Lucas

Q5. Donner l’algorithme correspondant à cette macro. 

----------------------------------------------- 
Algo Lucas 
début 
i : un entier 
Cellule(1,3) = 0 
Cellule(2,3) = 3 
Pour i = 3 à 15 
Cellule(i,3) = Cellule(i-1,3) + Cellule(i-2,3) 
Fin pour 
Fin
-----------------------------------------------