Structures de contrôle

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Introduction au Langage C,C++
Rappels C.
Algorithmique (suite)
Algorithmes et structures de données Cours 9 Patrick Reuter
Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.
DECLARATION DE VARIABLES
BUT DE LALGORITHME Afficher la table de multiplication dune valeur saisie au clavier (valeur comprise entre 1 et 9). Gérer lerreur de saisie.
GEF 243B Programmation informatique appliquée
Tests et itérations Programmes séquentiels ne résolvent pas tous les problèmes exemple simple : calcul des racines d'un polynôme de d° 2 dans R Algorithme.
Tableaux Certains problèmes nécessitent beaucoup de variables du même type. Exemple : relevé de températures matin et soir dans 10 villes pour 10 jours.
FLSI602 Génie Informatique et Réseaux
5. Les structures répétitives
CYCLE 6 : FONCTIONS FONCTIONS avec paramètres en Entrée 1- Pourquoi les FONCTIONS peuvent échanger des données en E entre elles ? 2- Comment écrire des.
1)Boucle for 2)Boucle while
Section VI Structures répétitives (suite)
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Semaine #1 INF155 par Frédérick Henri.
Langage C Révision.
La structure conditionnelle simple
Récursivité.
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
Les dates Recherche d’un algorithme pour déterminer si une année est bissextile ou non.
Les structures de contrôle conditionnelles
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
TRAITEMENT DE STRUCTURES
Bases de la programmation en C++ 1 Les enchaînementsdinstruction Séquentiels. Exécutions dinstructions les unes à la suite des autres. Instructions séparées.
Instruction sélective switch-case Instruction répétitive do-while For
CSI 1502 Principes fondamentaux de conception de logiciels
ECP – Option SA Henri Fallon
Plan troisième cours Instruction sélective Instruction répétitive
Répéter dans un programme avec une Instruction itérative
Programmation Orienté Objet en C++ Ricard julien.
Procédures et fonctions
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
Structures alternative et répétitive
L’essentiel du langage C
B.Shishedjiev - Informatique II
Algorithmique Les structures Rappel L'enchaînement séquentiel
Sous-programmes.
CYCLE 6 : FONCTIONS Faire un programme en C avec des FONCTIONS 1- A quoi servent les FONCTIONS ? 2- Comment écrire un programme avec FONCTIONS ? 3- Comment.
Les adresses des fonctions
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
SIF-1053 Architecture des ordinateurs
Scripts shell intro Un script bash est un fichier contenant une suite de commandes shell, exécutables par l'interpréteur (ici le programme /bin/bash),
Les structures répétitives en PHP Réfs : manuel p 317.
Un survol du language C.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Cours n° 3 Traitements en Java
Fiabilisation des lectures au clavier. Problèmes liés à scanf: rencontre de caractères invalides Sans arrêt prématuré: compte = scanf(``%d%c``;&n,&c);
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Les structures de contrôle
Ecrire 10 fois "Bonjour" sur 10 lignes différentes
Programmation en C.
Module algorithmique et programmation
Introduction à la programmation (420-PK2-SL) cours 8
PRO-1027 Programmation Scientifique en C
Les chaînes de caractères
Éléments de base du langage C
02/10/2015Les structures de contrôle1 COURS A2I12 Initiation à l'algorithmique illustrée par le langage C Guillaume BOURLET Département GEII IUT Sénart/Fontainebleau.
Philippe Gandy – 6 octobre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Algorithmique Boucles et Itérations
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
BASE DE L’ALGORITHMIE.  Un système d’instructions.  Pour résoudre d’un problème ou d’une classe de problèmes  Recette de cuisine pour faire un gâteau.
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Eléments de base du langage C
Eléments de base du langage C
Transcription de la présentation:

Structures de contrôle Gestion du point d’exécution

Qu’est-ce que est géré par le programme? Données Espace des données Affectation Lecture Point d’exécution Structures de contrôle Instructions exécutables B.Shishedjiev -Structures du contrôle

Structures de contrôle Structures de base Chaîne (suite) Alternative (Branchement) Répétitive (boucle) Choix début Algorithme Action fin B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Chaîne Définition { Instruction 1 Instruction 2 Instruction 3 ... Instruction n } Action 1 Action 2 Action 3 ... Action n B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Chaîne Exemple – échanger le contenu des variables x et y 2 y x 5 4 t 1 3 début t=x #include <stdio.h> void main(void){ int x,y,t; /*initialisation de x et y*/ t = x; x = y; y = t; } x=y y=t fin B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Alternative Définition if (condition 1) Traduction de Action 1 else Action 2 vrai faux Condition Action1 Action2 B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Alternative Exemple – Trouver le maximum des 2 nombres début vrai faux a > b #include <stdio.h> void main(void){ int a,b,max; /*initialisation de a et b*/ if (a > b) max = a; else max = b; } max = a max =b fin B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Alternative Exemple – Echanger le contenu de la variable c avec le contenu de cette variable (a ou b) qui a plus grande valeur début vrai a > b faux #include <stdio.h> void main(void){ int a,b,max; /*initialisation de a, b et c */ if (a > b) { t = a; a = c; c = t; }else { t = b; b = c; c = t; } t = a t =b a=c b=c c=t c=t fin B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Alternative Alternative simple vrai faux Condi- tion if (condition) traduction de Action 1 Action 1 B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Alternative Exemple – Trouver la valeur absolue de a début vrai faux a < 0 #include <stdio.h> void main(void){ int a; /*initialisation de a */ if (a < 0) a=-a; } a = -a fin B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Alternative ambigu if (condition 1) if (condition2) Action 1 else Action 2 faux vrai Condi- tion1 vrai faux Condi- tion2 Action 1 Action 2 faux vrai Condi- tion1 if (condition 1) { if (condition2) Action 1 }else Action 2 vrai faux Condi- tion2 Action 2 Action 1 B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Les répétitives Actions répétées Sommer les premiers 10 nombres entiers début début début s =0 s =0 i=1 s = 0 i =1 s = s + 1 faux s = s + i i = i+1 i <= 10 s = s+2 s = s+i i=i+1 vrai s = s + i i = i+1 s = s+3 s = s+i i=i+1 ... ... fin s = s + 10 s = s+i i=i+1 fin fin B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Répétitive Tant-que – la boucle fondamentale vrai faux Condi- tion while (condition) traduction de Action Action(corps) B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Tant-que exemple Compter les nombres entiers lus jusq’au on lit -100 début Initialiser c = 0 #include <stdio.h> void main(void){ int n,c; c = 0; //initialisation scanf ("%d",&n); while (n !=-100) { c++; } printf("le nombre est : %d\n",c); Lire 1-er nombre en n Compter vrai faux n!=-100 c = c + 1 Lire n Afficher c fin B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle La boucle pour L’instruction for expr1 for (expr1;expr2;expr3) instruction non expr2 oui instruction expr3 B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Exemple for #include <stdio.h> void main(void){ int m,n,s,i; printf("Tapez deux nombres:"); scanf("%d %d", &m,&n); s = 0; i= m; while (i<=n) { s += i; i++; } printf("la somme est : %d\n", s); Sommer tous les entiers dans l’intervalle [M,N] début Lire m,n Initialiser s = 0 i = m vrai faux i<=n #include <stdio.h> void main(void){ int m,n,s=0,i; printf("Tapez deux nombres:"); scanf("%d %d", &m,&n); for (i= m;i<=n;i++) { s += i; } printf("la somme est : %d\n", s); } s = s + i i = i +1 Afficher s fin B.Shishedjiev -Structures du contrôle

Répétitive avec post condition Définition do{traduction de Action(condition) } while (condition) Action(corps) Condi- tion oui non B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Exemple Saisie d’un nombre qui doit être dans un intervalle #include <stdio.h> #define M 10 #define N 20 void main(void){ int x,y,d; do { printf ("Entrez un nombre entre %d et %d: ",M,N); y = scanf("%d",&x); if (y!=1) getchar(); }while (y !=1 || x < M || x > N); printf ("\nLa valeur entrée est %d\n",x); } B.Shishedjiev -Structures du contrôle

Particularités de scanf do {scanf("%d",&x); }while (x < M || x > N); 23 12 L'écran le programme Mémoire ' ' '2' '3' ' ' '1' '2' '\n' x 12 ? 23 ' ' 'a' ' ' ' ' '2' '3' '\n' B.Shishedjiev -Structures du contrôle

Particularités de scanf do{ y=scanf("%d",&x); if (y!=1) fflush(stdin) }while (y !=1 || x < M || x > N); Mémoire x ? le programme y ? ' ' 'a' ' ' ' ' '1' '2' '\n' do{scanf("%d",&x); if (y!=1) getchar(); }while (y !=1 || x < M || x > N); Mémoire x ? 12 y ? 1 ' ' 'a' ' ' ' ' '1' '2' '\n' B.Shishedjiev -Structures du contrôle

Répétitive avec post condition Exemple – la racine carrée calculée par la formule de Héronne début Lire c, #include <stdio.h> #include <math.h> void main(void){ double c,xv,xn=1,eps; scanf("%lf %lf", &c,&eps); do { xv = xn; xn = 0.5*(xv+c/xv); }while (fabs(xn-xv)>eps); printf("le résultat est %9.3f\n", xn); } Initialiser xn = 1 xv = xn xn = 0.5*(xv+c/xv) oui |xn-xv|>  non Afficher xn fin B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Instruction break début Compter les nombres entiers lus jusq’au on lit -100 mais pas plus de 15 nombres Initialiser c = 0 #include <stdio.h> void main(void){ int n,c; c = 0; //initialisation scanf ("%d",&n); while (n !=-100) { c++; if (c>=15) break; } printf("le nombre est : %d\n",c); Lire 1-er nombre en n Compter vrai faux n-100 c = c + 1 c>=15 vrai faux Lire n Afficher c B.Shishedjiev -Structures du contrôle fin

B.Shishedjiev -Structures du contrôle Boucle mixte while (1){ A1; if (cond) break; A2; } A1 A1 Condi- tion Condi- tion non non oui oui A2 A2 A1 B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Instruction continue Sommer tous les entiers dans l’intervalle [M,N] mais sans ces nombres qui se divisent à 5 #include <stdio.h> void main(void){ int m,n,s=0,i; printf("Tapez deux nombres:"); scanf("%d %d", &m,&n); for (i= m;i<=n;i++) { if (i % 5 == 0) continue; s += i; } printf("la somme est : %d\n", s); B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle Le choix Définition oui cond.1 A1 if (cond.1) A1 else if (cond.2) A2 else if ... ... else if (cond.N) AN else B ; non oui cond.2 A2 non ... oui cond.N AN non B B.Shishedjiev -Structures du contrôle

B.Shishedjiev -Structures du contrôle L’instruction switch Switch expr. c1 default c2 cn A1 A2 ... AN B switch (expr.){ case c1: A1; break; case c2: A2; break; ... case cn : AN; break; default: B; } B.Shishedjiev -Structures du contrôle

Exemple de switch Compter la fréquence des chiffres, des blancs, des points et tous les autres caractères dans un texte. #include <stdio.h> void main(void){ int nb_ch, nb_bl, nb_p, nb_aut,c; nb_ch= nb_bl= nb_p=nb_aut=0; while ((c=getchar())!=EOF){ switch(c){ case '0': case '1': case '2': ... case '9': nb_ch++;break; case ' ': case '\t':nb_bl++;break; case '.': nb_p++; break; default : nb_aut++; } printf("\n%d %d %d %d \n", nb_ch,nb_bl,nb_p,nb_aut); début nb_ch=nb_bl =nb_p=nb_aut =0 Lire c c != EOF non oui Switch c chiffre default blanc point nb_ch++ nb_bl++ nb_p++ nb_aut++ Lire c Afficher compteurs fin B.Shishedjiev -Structures du contrôle