Plan troisième cours Instruction sélective Instruction répétitive Switch-case Instruction répétitive do-while for Fonctions Utilisation
Troisième cours Instruction sélective Exemple : switch-case Se comporte comme if qui n’évalue que des cas d’égalité (==) Les instructions à exécuter doivent se terminer par le mot réservé break sauf le dernier qui est optionnel. 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 »); }
Troisième cours Exemple : switch(choix){ } switch-case On peut mettre plusieurs case : consécutifs. Exemple : switch(choix){ case ‘a’ : case’b’ : case ‘q’ : printf(« choix valide »);break; }
Troisième cours Exemple : switch-case switch(choix){ } On peut ajouter une option default à la fin. Cette dernière est comme un else final qui sera exécuté si aucun autre cas précédent ne l’a été. 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; defaut : printf(« choix invalide»); }
Troisième cours Instruction sélective Exemple : 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 »); defaut : printf(« choix invalide»); } Les quatre messages seront affichés
Troisième cours Forme générale : switch(expression){ case option1 : instruction(s); break; case option2 : casse option3 : instruction(s); break; defaut : instruction(s); } S’Il y a plus d’une instruction dans un case, il faut des accolades.
Troisième cours Exercice Dites ce que le code suivant affichera choix == ‘b’ switch(choix){ case ‘a’ : printf(« vous avez choisi a »); case ‘b’ : printf(« vous avez choisi b »); case ‘q’ : printf(« vous avez choisi q »); defaut : printf(« choix invalide»); }
Troisième cours Instruction répétitive Forme générale : do-while do{ Il est possible d’évaluer l’expression de répétition à la fin d’un bloc au lieu du début. Forme générale : do{ tâches à répéter tant que l’expression, qui suit le while, est différente de zéro }while(expression booléenne);
Troisième cours #include <stdio.h> #include <stdlib.h> 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; }
Troisième cours Instruction répétitive for Sert lorsqu’on sait exactement le nombre de fois à itérer. Peut toujours être remplacée par while ou do-while.
Troisième cours Rappel du while int tour = 1; Étapes à réaliser lorsqu’on sait le nombre de fois à itérer int tour = 1; while (tour <= nombre ){ printf(«%d »,tour); tour++; } return EXIT_SUCCESS; initialisation Analyse de la condition d’arrêt de la boucle Convergence vers la condition d’arrêt
int i; for(i=1; i<=10; i++) { //traitement } Forme générale for (initialisation;expression booléenne;itération ){ Instructions } Exemple for : L’initialisation est faite une seule fois avant l’évaluation de l’expression booléenne. L’expression booléenne est évaluer avant chaque boucle et doit se lire « tant que » 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 int i; for(i=1; i<=10; i++) { //traitement }
Troisième cours Écrire une boucle qui calcule le factoriel d’un nombre. En utilisant la boucle for. Définition du factoriel 0! = 1 n! = n * (n-1)! Exemple : 5! = 5 * 4 * 3 * 2 * 1 * 0! = 120
Troisième cours int i; //compteur de boucle long fact = 1; //sert à calculer le factoriel long n; //nombre à lire scanf(« %ld », &n); //lecture du nombre if(n == 0 || n == 1) //le cas limites printf(« 1 »); else //calcul du factoriel for(i = 2; i<=n;i++) fact = fact * i; printf(« %ld »,fact); //affichage du résultat
Troisième cours Résumé : Vous devez être en mesure de comprendre et d’utiliser autant les instructions : if, switch, while, for, do-while.
Troisième cours 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 retourne une valeur. Une procédure ne retourne rien (void). Les sous-programmes peuvent nécessiter des valeurs qu’il faut leur fournir à l’appel. On parle de paramètres effectifs.
Troisième cours 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.
Troisième cours Exemple de prototype : double cos(double x) double sin(double x) double pow (double x, double y) ***Il y a un commentaire explicatif avec ça habituellement. ***Les librairies du C (stdio.h, math.h, ...) vous offrent une panoplie de prototypes.