next up previous contents index
Next: Itération while Up: No Title Previous: Programmation applicative et programmation

Itération for

     

La structure d'itération for est particulièrement 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 d'instructions 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 tex2html_wrap_inline5001 , 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 tex2html_wrap_inline5001 , 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;
}


Rene Lalement
Mon Sep 30 18:22:54 MET 1996