next up previous contents index
suivant: Itération while monter: main précédent: Trois styles de programmation   Table des matières   Index


Itération for

La structure d'itération for est spécialement adaptée au parcours de certaines structures de données, notamment un intervalle d'entiers, un tableau, une liste, etc.

Par exemple, pour calculer la somme des entiers entre 1 et $N$ on écrira


  const int N = 10;
  int somme = 0;
  int i;

  for (i=1; i<=N; i++) {
    somme = somme + i;
  }

Une boucle for est spécifiée par trois expressions d'en-tête qui sont, dans l'ordre, une initialisation, une condition d'exécution, et une itération. Le corps d'une boucle est un bloc quelconque ; le corps est exécuté un certain nombre de fois, ceci étant contrôlé par les expressions d'en-tête ; chaque exécution du corps est appelée une itération de la boucle.

Dans cet exemple, la variable d'itération i est initialisée à 1 ; si la valeur de i est $\le N$, le corps de la boucle est exécuté, puis i est incrémentée par i++, instruction équivalente à i = i+1 ; si la valeur i n'est pas $\le N$, la boucle est terminée ; il y a ici 10 itérations. La nature impérative de cette structure provient de l'utilisation de la variable somme qui est affectée à chaque itération d'une nouvelle valeur.

Dans ce cas particulier, il existe une expression, $N(N+1)/2$, dont la valeur est la somme des $N$ premiers nombres entiers, ce qui dispense d'une formulation itérative. Mais le même problème, avec << produit >> remplaçant << somme >>, ne peut pas être résolu par une expression, une formulation itérative ou une formulation récursive est donc nécessaire ; c'est l'inévitable factorielle, dont voici la version itérative :


int fact_iter(int n) {
  int produit = 1;
  int i;

  for (i=1; i<=n; i++) {
    produit = produit * i;
  }
  return produit;
}


next up previous contents index
suivant: Itération while monter: main précédent: Trois styles de programmation   Table des matières   Index
R Lalement