INTRODUCTION AU LANGAGE C, C++ Les Conditions et les Boucles
La sélection alternative : Les structures de contrôle : L'instruction if évalue l'expression; si la valeur résultant de l'expression est vraie (c'est à dire différente de zéro), alors l'instruction1 est exécutée; sinon, elle est omise (s'il n'y a pas de else) et l'exécution est transférée à la prochaine instruction. Structure alternative en algorithme : Si <condition > alors <bloc d instruction 1> Sinon <bloc d instruction 2> FinSi Structure alternative en langage C : if ( condition ) bloc d instruction 1 ; else bloc d instruction 2 ;
Exemples Exemple avec une seule condition: Algorithme : Si a>b alors max a Exemple avec une seule instruction : Algorithme : Si a>b alors max a Sinon max b Fin Si Langage C : if (a>b) max=a ; Langage C : if (a>b) max=a ; else max= b ;
Remarque : Lorsqu il n y a qu une instruction après la condition (où la boucle) alors les accolades ne sont pas obligatoires. Langage C : if (a>b) max=a ; else max= b ; Langage C : if (a>b) max=a ; else max= b ;
Autre remarque : La partie else peut être facultative Algorithme : Si a>b alors max a FinSi Langage C : if (a>b) max=a ;
Exercice : Écrire l algorithme suivant : Lorsque vos ventes sont supérieures où égales aux cibles vos ventes sont satisfaisantes. Le bonus est égal à : 100 + 0,01 * (vosventes - cible ). Si ce n est pas le cas la performance est déclarée insatisfaisante, le bonus est égal à 0. Traduire l algorithme en programme C :
Exercice : Compléter les commentaires : L'expression suivante peut être interprétée de deux façons : avec N=0, A=1 et B=2 : if (N> 0) if (A>B) max=a; else max=b ; Max reste inchangé // ------------------------ if (N>0) If (A>B) max=a; else max=b ; // Max obtiendrait B // ---------------------------
Convention : En C++ une partie else est toujours liée au dernier if qui ne possède pas de partie else. Dans notre exemple, C++ utiliserait donc la première interprétation. Solution : Toutefois, pour éviter toute confusion, il est souvent recommandé d'utiliser les accolades. La deuxième expression doit être modifié. if (N>0) if (A>B) max=a; else max=b ; // max obtient B
Exercice : Faire l algorithme puis le code suivant : Saisir un caractère au clavier et afficher s'il s'agit d une majuscule ou d une minuscule.
La forme : Opérateur Conditionnel:?: résultat = condition? valeur à prendre si c'est vrai : valeur à prendre si c'est faux ; Exemple : if (A>B) max =A ; else max= B; ce qui équivaut à: max = A>B? A : B ; Si A est plus grand que B, alors MAX prend la valeur de A, sinon MAX prend la valeur de B.
Exercice: Déterminez la valeur minimale entre deux nombres a et b, placer le résultat dans la variable min. Déterminer la valeur maximale entre deux nombres, placer le résultat dans la variable max.
La sélection s multiple : L'opérateur qui traite la sélection multiple est le mot réservé switch. La sélection de la valeur est précédée du mot réservé case. Algorithme : Suivant choix faire cas X1 : bloc instruction 1 cas X2 : bloc instruction 2 cas X3 : bloc instruction 3 autre : instruction de défaut Fin Suivant Langage C, C++ : switch (Choix) case X1 : bloc instruction 1 ; break; case X2 : bloc instruction 2 ; break; case X3 : bloc instruction 3 ; break; default : instruction de défaut ; Remarque : ATTENTION : C++ exécute tout le code qui suit la directive case, jusqu'à la sortie du switch ou jusqu'à une instruction break.
Exercice : Écrire l algorithme de ce programme : switch (chiffre) case 1 : puts( on est dans le cas 1 ) ; break; case 2 : puts( on est dans le cas 2 ) ; case 3 : puts( on est dans le cas 3») ; break; default : puts( on est dans le defaut ) ;
Les structures itératives : En algorithmique il existe trois structures de boucle principales, elles sont : Tant que Faire tant que. Pour L'itérative - Tant que... : Algorithme : Tant que (<instruction de contrôle>) faire <bloc instruction > Fin tant que Langage C : while (<instruction de contrôle>) <bloc instruction >
début Organigramme : Évaluation de l'expression FAUX Test du résultat de l'expression VRAI Exécuter instruction1 Fin de la boucle
Exemple : Calcul de la somme des nombres entiers de 1 à 10 #define N 10 int main() int somme=0, x=1; while (x <= N) somme = somme + x; x = x + 1; printf ("La somme des %d premiers nombres est egale a %d \n", N, somme);
Exercice: Soit deux nombres entiers x et y. Élever x à la puissance y
L'itérative : Faire... tant que... Algorithme : langage C : Faire <bloc instruction > Do <bloc instruction > Tant que (<instruction de controle>) Fin Faire tant que while(<instruction de controle>) ;
début Organigramme : Exécuter instruction1 Évaluation de l'expression Fin de la boucle FAUX Tester le résultat de l'expression2 VRAI
Exercices n 1: Donnez le codage en C, C++ des structures proposées ci-dessous : Algorithmes Résultats en C++ Répéter Acquérir(valeur) Jusqu'à valeur = 2 Répéter Acquérir(valeur) Jusqu'à valeur >= 12 Répéter Acquérir Jusqu'à valeur différent de -23 Répéter Acquérir(valeur) Jusqu'à -23 < valeur <12
Exercice n 2 : Écrivez un algo puis un programme qui lit N nombres entiers au clavier et qui affiche leur somme, leur produit et leur moyenne. Choisissez un type approprié pour les valeurs à afficher. Le nombre N est à entrer au clavier.
L'itérative Pour Algorithme : (Pour var allant de début à fin par pas de X incrément ) faire Fin Pour <bloc d instruction> Langage C : for (initialisation ; test ; incrément ) <bloc d instruction> Le début de la boucle for est constitué de trois éléments : 1. initialisation 2. test 3. incrément
Remarque : La partie traitement de la boucle for est l'instruction exécutée chaque fois que la boucle se répète. Comme pour les instructions d un si, vous pouvez inclure une instruction isolée ou un bloc. Exemple : Comme le montre l algorithme ci-dessous, le code suivant affiche les nombres 1 à 10 sur l'écran. Algorithme : Pour ( i allant de 1 à 10 par pas de 1) Faire Fin Pour écrire i Langage C ++ : for (int i= 1 ; i<=10 ; i++) printf(«%d»,i) ; Remarque : Comme l'itérative ne contient qu'une seule instruction, il n'est pas nécessaire de créer un bloc d'instructions à l'aide des accolades.
Exercice : Éditez le nombre de secondes avant le décollage d'un avion (10,9,8 )
Opérateurs de boucle - break - continue Le break termine l'exécution des instructions while, for, switch et do while et reprend à la prochaine instruction. L'instruction continue remonte à la condition de la boucle. On peut ainsi ne pas exécuter une partie des instructions du corps de la boucle. Exemple :