C_facile : Introduction au langage C
Cours

Conseils

Attention

Il faut prendre garde aux points suivants :

  •   Faire attention aux conditions initiales, aux conditions d'arrêt et à l'évolution des variables impliquées dans le test de sortie.

  • Pour mettre au point la boucle, il faut savoir exécuter la boucle à la main (simuler l'exécution de l'algorithme ou du programme, instruction par instruction), en faisant évoluer les valeurs des variables.

  • Les instructions contenues dans une boucle « while » ou « do...while » doivent permettre de modifier les variables impliquées dans le test d'arrêt de telle sorte que la boucle se termine. Pour la boucle « for », il ne faut pas que l'exécution des instructions de la boucle change la valeur de l'incrément. En effet, un tel changement risque de rendre la boucle non déterministe.

Pour le point 1, nous avons mis en évidence l'influence de ces éléments dans la présentation des boucles à bornes non définies en C en présentant plusieurs exemples avec la boucle while.

Pour le point 2, tant que l'on ne maîtrise pas le fonctionnement des boucles, il est utile d'effectuer des exemples à la main comme nous l'avons fait. éventuellement, vous pouvez dessiner un organigramme pour vous aider à dérouler la boucle que vous avez construite.

Le point 3 correspond à une erreur classique dont nous donnons un exemple simple ci-après.

Exemple

Considérons l'exemple suivant :

i=0 ;

while (i<3)

{ printf("\n i=%4d",i); }

Le programme reste bloqué dans une boucle infinie. En effet, i vaut 0 avant d'entrer dans la boucle. La valeur de i n'est jamais modifiée dans le corps de la boucle. La valeur reste à 0 et comme la condition logique évalue si i<3, elle est toujours évaluée à vrai.

La boucle est infinie.

Un exemple plus compliqué vous est fourni dans la proposition de modification de la solution du problème 5 (transvasement). Pour bien le comprendre, il faut suivre précisément les directives.

Solutions des problèmes en langage C (page suivante)Choix de la boucle (page Précédente)
AccueilImprimer creativecommons : by-nc-ndRéalisé avec SCENARI