Chapitre n°2 : Les boucles On veut afficher tous le nombres entiers de 1 à 5. Pour cela, on fait : #include <stdoi.h> main () { printf (“1”); ... printf (“5”); } ou on fait une boucle, ce qui est beaucoup plus rapide. while = tant que. Syntaxe de « while » : #include <stdoi.h> main () { while (condition) instruction } Exemples : #include <stdoi.h> main () { int i; //i:incrément (les nombres en entiers). I=0 ; while (i<=3) i=i+1; printf (“%i”,i); } ⇒ Ce programme affiche: 4 #include <stdoi.h> main () { int i; //i:incrément (les nombres en entiers). i=0; while (i<=3){ i=i+1; printf (“%i, ”,i); } ⇒ Ce programme affiche: 1, 2, 3, 4 Inventation: c’est la présentation avec les alinéas & c’est très important à l’écrit!!! Première application : calcul de « n ! » #include <stdoi.h> main () { int i, n, res; printf (“Entrez un nombre entier svp:\n”); 1 scanf (“%i”,&n); i=1; res=1; //initialisation while (i<=n){ res=res*i; //point d’observation 1 i=i+1; } //point d’observation 2 printf (“%i! vaut %i”, n, res); } Traçage si l’utilisateur rentre 4: Pt d’OBS i res 1 1 1 1 2 2 1 3 6 1 4 24 2 5 24 n 4 4 4 4 4 D'autres façons de faire les boucles: Instruction “for”: #include <stdio.h> main () { for (i=0; i<=10; i++) printf (“%i”, I); } Cela signifie que pour “i” allant de 0 à 10, de 1 en 1, afficher la valeur de i. For (A; B; C){ D; } Cela équivaut à: A while (B){ D; C; } Exemple: i=0; while (i<=10){ printf (“%i”, i); i++; } Calcul Boléen et instruction “if”: Cela vient d'un mathématicien anglais, Georges Boole, qui a travaillé sur le calcul des valeurs “Vrai” et “Faux”. ET: 2 V F V V F F F F OU: V F V V V F V F NON: V F F V En langage C: Vrai est codé par 1. Faux est codé par 0. « et » est codé par &&. « ou » est codé par ||. « non » est codé par !. Par exemple: printf (« %i », 1||1); cela affiche 1. Instruction IF: sert à contrôler le déroulement du programme selon une condition choisie. Exemple: int n; printf (« Entrez un nombre entier, svp\n »); scanf(« %i », &n); if (n>=10) printf (« Le nombre entré est au moins 10\n »); else printf (« Le nombre est au plus 9\n »); IF et ELSE sont des mots-clef du langage C. Comment tester qu'un nombre est compris entre 10 et 15: if (10<=n && n<=15); Fonctionnement de IF: if (Boléen) INSTRUCTION; Exemple: if (1) printf (« Bonjour\n »); Ce programme est stupide, car ici IF ne sert à rien. NB: <= est un opérateur qui prend 2 nombres et qui renvoie un boléen. 3 Diverses ruses utilisant IF: Tester si un nombre est impaire: n%2: cela calcule le reste de la division n/2. if (n%2==1) printf .......... ou if (n%2) printf ............ NB: ==: test d'égalité (opérateur prennant 2 nombres et renvoyant 1 boléen). =: opérateur d'affectation. CTRL C: arrpêter le programme en cours d'exécution dans shell. Programme testant si le nombre est premier: n=17; k=2; while (k<=n-1 && n%k!=0) k++; if (k==n) printf (« %i est premier\n », n); else printf (« %i n'est pas premier\n », n); Types: int, float, char. char = caractères. Exemple: char a; printf (« Entrez un caractère\n »); scanf (« %c ») 4