Cours Programmation en Langage C PDF
Document Details
École nationale des sciences appliquées de Tétouan
Pr. HACHCHANE Imane
Tags
Related
- Intelligence Artificielle - Chapitre 2 PDF
- Cours de Programmation en Python - Université Moulay Ismail - 2024
- Programmation Structuée - Chapitre 1 PDF
- Chapitre 3: Classes et objets JAVA PDF 2024-2025
- Chapitre II : Eléments de base du langage C PDF
- Chapitre 3 Manipulation des Classes et Objets - POO JAVA GI2
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