Cours Programmation en Langage C PDF
Document Details
Uploaded by Deleted User
École nationale des sciences appliquées de Tétouan
Pr. HACHCHANE Imane
Tags
Summary
Ce document propose un cours sur les structures de contrôle dans le langage de programmation C. On y trouve des exemples et exercices.
Full Transcript
1 Pr. HACHCHANE Imane [email protected] Chapitre IV : Les structures de contrôles Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 2 I....
1 Pr. HACHCHANE Imane [email protected] Chapitre IV : Les structures de contrôles Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 2 I. Les instructions de branchement conditionnel Branchement conditionnel if--else Branchement multiple switch--case II. Les boucles Boucle while Boucle do--while Boucle for III. L’instruction break IV. L’instruction continue Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 3 Introduction Les structures de contrôles conditionnent l’execution d’instructions par rapport à la valeur d’une ou plusieurs expressions Deux grandes familles de structures de contrôle: Les instructions de branchement conditionnel: permettent de déterminer quelles instructions seront exécutées et dans quel ordre (if--else, switch--case) Les boucles: permettent de répéter une série d’instructions tant qu’une certaine condition est vraie (while, do--while, for) Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 4 Branchement if--else Syntaxe: if (expression){ bloc-instruction1; } else { bloc-instruction2; } expression: Il s’agit de la condition d’exécution du branchement if -- else. Si l’expression est vraie alors bloc-instruction1 sera exécuté, sinon bloc-instruction2 sera exécuté bloc-instruction: peut être une ou plusieurs instructions. Dans le cas de plusieurs, les accolades {} sont nécessaires Exemples: int x = 14; int x = 5, y, r; if (x>=0) scanf(ʺ%dʺ, &y); printf(ʺx est positifʺ); if (y!=0){ else r = x/y; printf(ʺx est négatifʺ); printf(ʺ%dʺ, r); } else printf(ʺdivision impossibleʺ); Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 5 Branchement if--else Remarques: 1. Le else est facultatif. Il peut être omis s’il n’est pas nécessaire: Exemple: int x = 14; if (x>=0) printf(″x est un nombre positif″); 2. Il est possible d’imbriquer plusieurs branchements if--else (mettre des {} pour éviter toute confusion) Exemple: Afficher si x est positif, négatif ou nul if (x>=0) { if (x==0) printf(″x est nul″); else printf(″x est positif″); } else printf(″x est négatif″); Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 6 Branchement switch Switch permet de choisir un bloc d’instructions à exécuter selon la valeur de l’expression qui est toujours une constante entière Syntaxe: switch (expression) { Evaluation de la valeur de l’expression case constante_1: bloc d’instructions 1; break; case constante_2: bloc d’instructions 2; Si l’une des constante est vérifiée, son break; bloc d’instruction sera exécuté... case constante_n: bloc d’instructions n; break; break permet de sortir du switch default: bloc d’instructions ; bloc d’instruction par défaut } Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 7 Branchement switch Il est possible d’avoir une ou plusieurs instructions dans le bloc d’instruction Les instructions break et default sont optionnelles Exemple: Menu permettant d’incrémenter ou décrémenter la valeur de i int choix, i=0; printf(″1: incrémenter \n 2: décrémenter ″); printf(″\n faites un choix: ″); scanf(″%d″, &choix); switch (choix){ case 1: i++; printf("i=%d",i); break; case 2: i--; printf("i=%d",i); break; default: printf(″erreur de saisie\n″); } Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 8 Branchement switch Remarques: Un switch est équivalent à un if dans certaines conditions Exemple 1: refaire l’exemple du menu avec if--else int choix, i=0; printf(″1: incrémenter \n 2: décrémenter ″); printf(″\n faites un choix: ″); scanf(″%d″, &choix); if(choix==1){ i++; printf("i=%d",i); } else { if(choix==2) { i--; printf("i=%d",i); } else printf(″erreur de saisie\n″); } Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 9 Branchement switch Exemple 2: refaire avec un switch—case l’exemple du test de x positif, négatif ou nul #include int main(){ int x; printf(″saisissez x″); scanf(″%d″, &x); switch(x){ case 0: printf(″x est nul″); break; default: if(x>0) printf(″x est positif″); else printf(″x est negatif″); } return 0; } Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 10 Boucle while Permet de répéter une série d’instructions Syntaxe: while (condition){ instructions; } La condition est évaluée à chaque itération et les instructions sont exécutées tant que la condition est vérifiée vraie Quand la condition devient fausse: sortie de la boucle Si dès le départ la condition est fausse: les instructions ne seront jamais exécutées Exemple: impression des entiers 1 int i = 0; 2 while (i < 6) { 3 Toujours initialiser la variable de printf("%d \n",++i); 4 la condition while } 5 6 Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 11 Boucle do-while Syntaxe: do { instructions; } while(condition); Différence avec le while: le test de la condition est effectué après l’exécution des instructions une première fois Exemple : impression des entiers int i = 10; int i = 10; 11 while (i < 6) { do { printf("%d \n",++i); printf("%d \n",++i); } } while (i= 16) { printf("Mention : Très Bien\n"); } else { printf("Moyenne invalide.\n"); } return 0; } Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 25 Exercice d’application // Vérifier et afficher la mention correspondante if (moyenne < 10) { Est il possible d’utiliser le switch case ? printf("Mention : Recalé\n"); } else if (moyenne >= 10 && moyenne < 12) { printf("Mention : Passable\n"); } else if (moyenne >= 12 && moyenne < 14) { printf("Mention : Assez Bien\n"); } else if (moyenne >= 14 && moyenne < 16) { printf("Mention : Bien\n"); } else if (moyenne >= 16) { printf("Mention : Très Bien\n"); } else { printf("Moyenne invalide.\n"); } return 0; } Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 26 Exercice d’application L’ echelle de Richter permet de d ecrire la magnitude des tremblements de terre : Si le nombre n’est pas compris entre 1 et 9 c’est qu’il y a erreur de saisie (si inferieur a 1) ou que c’est l’appocalypse (si supérieur a 9). Vous ecrirez un programme permettant a l’utilisateur de saisir une valeur d’echelle et qui en réponse affichera a l’ecran la description associee a ce nombre. Vous n’oublierez pas de gérer le cas ou` le nombre tape par l’utilisateur est ”hors-echelle”. Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 27 case 4: Exercice d’application printf("Léger. Secousses notables d'objets à l'intérieur #include int main() { des maisons\n"); int magnitude; break; // Demander à l'utilisateur de saisir une valeur sur l'échelle case 5: de Richter printf("Modéré. Légers dommages aux édifices bien printf("Entrez la valeur de l'échelle de Richter (1 à 9) : "); construits\n"); scanf("%d", &magnitude); break; case 6: // Utilisation du switch pour afficher la description en printf("Fort. Destructeur dans des zones allant jusqu'à fonction de la magnitude 180 km à la ronde si elles sont peuplées\n"); switch (magnitude) { break; case 1: case 7: printf("Micro tremblement de terre, non ressenti\n"); printf("Majeur. Dommages modérés à sévères dans des break; zones plus vastes\n"); case 2: break; printf("Très mineur. Non ressenti mais détecté\n"); case 8: break; printf("Important. Dommages sérieux dans des zones à case 3: des centaines de kilomètres à la ronde\n"); printf("Mineur. Causant rarement des dommages\n"); break; break; Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 28 Exercice d’application case 9: printf("Dévastateur. Dévaste des zones sur des milliers de kilomètres à la ronde\n"); break; default: if (magnitude < 1) { printf("Erreur de saisie : Magnitude inférieure à 1\n"); } else { printf("C'est l'apocalypse !\n"); } break; } return 0; } Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 29 Exercice d’application Afficher tous les nombres compris entre 100 et 0 par ordre decroissant. #include int main() { // Boucle pour afficher les nombres de 100 à 0 for (int i = 100; i >= 0; i--) { printf("%d\n", i); } return 0; } Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 30 Exercice d’application Le but de ce jeu est de faire deviner le nombre de votre choix a un joueur qui ne le connait pas. 1. Vous inizaliserez un nombre ”secret” (entre 1 et 100) avec une valeur que vous coderez ”en dur” dans votre programme. 2. Votre programme demandera ensuite au joueur de deviner ce nombre. Il a 10 tentazves. 3. A chaque tentazve, le programme devra dire ”plus grand” ou ”plus pezt” ou ”gagn é !”. Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C // Boucle pour les tentatives 31 for (int i = 1; i