dimanche 25 février 2018

Boucles imbriquées : boucle à l'intérieur d'une autre boucle

Pour ce petit code, je n'ai pas d'énnoncé. Je vais présenter, brièvement, la notion des boucles imbriquées.

Une boucle nous permet de faire un passage sur un ensemble de valeurs (intervalle, valeurs dans un tableau, etc.). Ce passage peut être vu comme le parcours d'une ligne; d'une seule dimension.

Les boucles imbriquées nous permettent de faire un peu plus de cela. Elles nous permettent d'effectuer un parcours dans deux dimensions : pour chaque valeur de la première boucle (boucle extérieure), nous faisons un parcours (passage) entier dans la deuxième boucle (boucle intérieure).

Un code exemple (en Pascal) :

Program ExempleBI;

Const 
 n = 10;
 
Var 
 i, j : Integer;

Begin
 
 For i := 1 to n do
 Begin
  For j := 1 to n do
   Write(j, ' ');
  WriteLn;
 End; 
 
End.

Le résultat d'exécution est :


Le parcours peut ne pas être complet : il se peut que les limites des deux boucles ne soient pas basées sur les mêmes variables :


Program ExempleBI2;

Const 
 n = 9;
 m = 15;
Var 
 i, j : Integer;

Begin
 
 For i := 1 to n do
 Begin
  Write(i, ' : ');
  For j := 1 to m do
   Write(j, ' ');
  WriteLn;
 End; 
 
End.


Il se peut même que la deuxième boucle fait appel à l'indice de la première boucle. Cela veut dire que les passages effectués par la deuxième boucle ne sont pas de même taille, néanmoins, cela ne change pas la structure du programme et cela reste un parcours en deux dimensions. Exemple :


Program ExempleBI3;

Const 
 n = 10;
 
Var 
 i, j : Integer;

Begin
 
 For i := 1 to n do
 Begin
  For j := 1 to i do
   Write(j, ' ');
  WriteLn;
 End; 
 
End.