Instruction sélective switch case Instruction répétitive Rappel: while / do while for Fonctions Introduction
switch-case Instruction de choix multiple Le bloc commence par le mot switch et sa variable de contrôle La variable de contrôle est placée entre parenthèses La sélection se comporte comme un if qui évalue des cas d égalité (==) Les instructions à exécuter se terminent par le mot break Le dernier break est optionnel Exemple : switch(choix){ h i case a : printf(" vous avez choisi a ");break; case b : printf(" vous avez choisi b "); break; case q : printf(" vous avez choisi q "); break;
switch-case On peut mettre plusieurs case : consécutifs Exemples : switch(choix){ case a : case b : case q : printf(«choix valide»);break; switch(choix){ case a : case b : case q : printf(«choix valide»);break;
switch case On peut ajouter une option default à la fin Le cas default est exécuté si tous les cas précédents sont faux default agit comme un else Exemple : switch(choix){ case a : printf(«vous avez choisi a»);break; case b : printf(«vous avez choisi b»); break; case q : printf(«vous avez choisi q»); break; default : printf(«choix invalide»);
switch case Toutes les instructions entre case : et break sont exécutées. Exemple : switch(choix){ case a : printf(«vous avez choisi a»); case b : printf(«vous avez choisi b»); case q : printf(«vous avez choisi q»); default : printf(«choix invalide»); Les quatre messages seront affichés si a est choisit
Forme générale : switch(expression){ case option1 : instruction(s); break; case option2 : case option3 : instruction(s); break; default : instruction(s); ti
Quel message affiche ce programme pour chaque chiffre (0-9)? printf("\nentrez un chiffre (entre 0 et 9):\n"); scanf("%d,&n); switch(n) { case 0: printf(«vous avez entre 0.\n \n"); break; case 3: case 5: case 7: printf("%d est premier\n",n); break; case 2: printf("%d est premier\n",n); case 4: case 6: case 8: printf("%d est pair\n",n); break; case 1: case 9: printf("%d est un carré parfait\n«,n); break; default: printf(«seuls les valeurs de 0 a 9 sont permises\n"); break;
while La condition i de répétition é i est évaluée é au début du bloc Si la condition est fausse, le bloc n est pas exécuté while(expression booléenne){ tâches à répéter tant que l expression, qui suit le while, est différente de zéro do while La condition de répétition est évaluée à la fin du bloc Le bloc est exécuté au moins une fois même si la condition est fausse do{ tâches à répéter tant que l expression, qui suit le while, est différente de zéro while(expression booléenne);
while do do while
Exemple : Validation d un nombre entré qui doit être entre 1 et 10 #include <stdio.h> #include <stdlib.h> int main(void){ int nombre; do{ printf(" Entrez un nombre entre 1 et 10 svp : "); scanf ("%d", &nombre); if(nombre < 1 nombre > 10) printf(" Votre nombre est invalide "); while(nombre < 1 nombre > 10); printf(" Votre nombre est valide "); return EXIT_SUCCESS;
Cas particulier: Souvent on connaît le nombre d itérations Exemple de réalisation avec un while : int tour = 1; while (tour <= 10 ){ printf("%d ",tour); tour++; initialisation Analyse de la condition d arrêt de la boucle Convergence vers la condition d arrêt
for Sert lorsqu on connaît le nombre d itérations Peut être remplacé par while ou do while Forme générale for (initialisation;expression booléenne;itération ){ Instructions
Forme générale for (initialisation;expression booléenne;itération ){ Instruction(s) ti \\ traitement t Initialisation : i=1 Condition d arrêt: i<=10 Itération: i++ int i; for(i=1; i<=10; i++) { printf( i=%d\n,i);
Initialisation : i=1 Condition d arrêt : i<=10 Itération : i++ L initialisation est faite une fois avant l évaluation de l expression booléenne L expression booléenne est évaluée avant chaque boucle et doit se lire «tant que» int i; for(i=1; i<=10; i++) { printf( i=%d\n,i); i=1 i++ L itération est faite en dernier, à chaque tour de boucle, après le traitement Les accolades sont optionnelles s il n y a qu une instruction dans la boucle i<=10 FAUX VRAI printf
Écrire une boucle for qui calcule le factoriel d un nombre. Définition du factoriel: 0! = 1 1! = 1 n! = n * (n-1)! Exemple : 5! = 5 * 4 * 3 * 2! = 120
int i; long fact = 1; long n; //compteur de boucle //sert à calculer le factoriel //nombre à lire scanf(" %ld ", &n); //lecture du nombre if(n == 0 n == 1) printf("1 "); else for(i = 2; i<=n;i++) fact = fact * i; printf("%ld ",fact); //le cas limites //calcul du factoriel //affichage du résultat
Vous devez être en mesure de comprendre et d utiliser: Les instructions de sélection : if else switch case default Les instructions de répétition: while do... While for
Utilisation de procédures et de fonctions Définition : Les procédures et les fonctions sont des sous-programmes qui se démarrent à partir d un programme (ex: pow, printf, scanf, cos,...) Une fonction renvoie une valeur : le résultat de la fonction Une procédure ne renvoie rien (void) Les sous-programmes peuvent nécessiter des valeurs qu il faut leur fournir à l appel : les paramètres effectifs
Pour utiliser un sous-programme, on doit connaître Son nom Le type et la signification de la valeur de retour (s il y a lieu) Le nombre, le type et la signification des paramètres effectifs Le traitement qui sera effectué On retrouve ces informations dans ce qu on appelle un prototype de sous-programme
Exemple de prototypes : double cos(double x) double sin(double x) double pow(double x, double y) Les librairies du C (stdio.h, math.h,...) vous offrent une panoplie p de sous-programmes Consultez l aide de Turbo-C (f1)