Chapitre n°2: les boucles

publicité
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
Téléchargement