if-then
VARIABLE
ENTIER a
DEBUT
a <-- LIRE
SI a == 0 ALORS
ECRIRE "a est nul"
FIN SI FIN
Noter l’indentation (décalage de la marge gauche avec des espaces/tabulations)
int a = -1;
("Saisir un nombre: ");
printf("%d", &a);
scanfif(a == 0){
("a est nul\n");
printf}
if-then-else
VARIABLE
ENTIER a
DEBUT
a <-- LIRE
SI a == 0 ALORS
ECRIRE "a est nul"
SINON
ECRIRE "a est différent de zéro"
FIN SI FIN
On cherche à créer un algorithme qui demande un nombre à l’utilisateur et qui affiche la racine carrée de ce nombre s’il est positif. Compléter la ligne 6 dans l’algorithme ci-dessous pour qu’il réponde au problème.
VARIABLES
x EST_DU_TYPE NOMBRE
racine EST_DU_TYPE NOMBRE
DEBUT
LIRE x
SI (.........) ALORS
DEBUT_SI
racine PREND_LA_VALEUR sqrt(x)
AFFICHER racine
FIN_SI FIN
On cherche à créer un algorithme qui demande à l’utilisateur d’entrer
deux nombres (stockés dans les variables x
et
y
) et qui affiche le plus grand des deux. Compléter les
ligne 9 et 13 dans l’algorithme ci-dessous pour qu’il réponde au
problème.
VARIABLES
x EST_DU_TYPE NOMBRE
y EST_DU_TYPE NOMBRE
DEBUT
LIRE x
LIRE y
SI (x > y) ALORS
DEBUT_SI
AFFICHER .......
SINON
AFFICHER ......
FIN_SI FIN
int a = -1;
("Saisir un nombre: ");
printf("%d", &a);
scanfif(a == 0){
("a est nul\n");
printf}
else {
("a est différent de zéro\n");
printf}
Observons cet algorithme:
VARIABLES
ENTIER temp
DEBUT
AFFICHER "Entrez la température de l’eau :"
temp <-- LIRE
SI Temp <= 0 ALORS
AFFICHER "C’est de la glace"
FIN_SI
SI Temp > 0 ET Temp < 100 ALORS
AFFICHER "C’est du liquide"
FIN_SI
SI Temp > 100 ALORS
AFFICHER "C’est de la vapeur"
FIN_SI FIN
Et maintenant celui-ci qui donne a priori le même résultat:
VARIABLES
ENTIER temp
Début
Ecrire "Entrez la température de l’eau :"
temp <-- LIRE
SI Temp <= 0 ALORS
AFFICHER "C’est de la glace"
SINON
SI Temp < 100 ALORS
AFFICHER "C’est du liquide"
SINON
AFFICHER "C’est de la vapeur"
FIN_SI
FIN_SI FIN
Observons ce qu’est devenu l’opération logique ET
de la
première version
On aurait aussi pu écrire cet algorithme:
VARIABLES
ENTIER temp
Début
Ecrire "Entrez la température de l’eau :"
temp <-- LIRE
SI Temp <= 0 ALORS
AFFICHER "C’est de la glace"
SINON_SI Temp < 100 ALORS
AFFICHER "C’est du liquide"
SINON
AFFICHER "C’est de la vapeur"
FIN_SI FIN
Représenter sous la forme d’un logigramme (ou algorigramme) ces trois versions.
Observer les différences
switch
ou selon
VARIABLE
ENTIER a
DEBUT
ECRIRE "Saisir un nombre"
a <-- LIRE
SELON a
CAS 1:
ECRIRE "a"
ALLER À LA FIN DU SELON
CAS 2:
ECRIRE "b"
ALLER À LA FIN DU SELON
CAS 3:
ECRIRE "c"
ALLER À LA FIN DU SELON
DEFAUT:
ECRIRE "-"
FIN SELON FIN
Exécution du programme si a vaut 2
Saisir un nombre: 2
b
int a = -1;
("Saisir un nombre: ");
printf("%d", &a);
scanfswitch(a){
case 1:
(" a\n");
printfbreak;
case 2:
(" b\n");
printfbreak;
case 3:
(" c\n");
printfbreak;
default:
("-\n");
printf}
La sortie du code précédent, si le premier argument vaut “2”:
b
break
/ aller à la fin du selon
)La sortie est ici très différente si le premier argument vaut “2”:
b
c
-
VARIABLE
ENTIER a
DEBUT
ECRIRE "Saisir un nombre"
a <-- LIRE
SELON a
CAS 1:
ECRIRE "a"
CAS 2:
ECRIRE "b"
CAS 3:
ECRIRE "c"
DEFAUT:
ECRIRE "-"
FIN SELON FIN
Exécution du programme si a vaut 2
Saisir un nombre: 2
b
c
-
Attention, le mot clé break
ne doit pas être oublié
(sauf si c’est voulu).
int a = -1;
("Saisir un nombre: ");
printf("%d", &a);
scanf
switch(a){
case 1:
(" a\n");
printfcase 2:
(" b\n");
printfcase 3:
(" c\n");
printfdefault:
("-\n");
printf}
Faire les exercices de cette série : série d’exercices