chapitre i

12
1 la programmation Pour résoudre un problème donné par l’informatique l’utilisateur de l’ordinateur doit mettre au point un programme et le faire exécuter par la machine programme et le faire exécuter par la machine. Un programme est une succession logique et ordonnée dinstructions d instructions. L’ordinateur se chargera de traiter les instructions des programmes et restituer les résultats demandés en fonction des données qui lui sont fournies. fonction des données qui lui sont fournies. 2 Définition et objectif dun algorithme Définition et objectif dun algorithme Un algorithme est la description de la solution dun Un algorithme est la description de la solution dun problème sous la forme d’une suite finie d’opérations à ff l d é d blè effectuer sur les données du problème. un algorithme doit contenir uniquement les instructions compréhensibles par celui qui devra instructions compréhensibles par celui qui devra l’exécuter. Son fonctionnement nécessite un certain nombre Son fonctionnement nécessite un certain nombre d’objets, cette ensemble s’appelle : environnement de l’algorithme l’algorithme. 3 Définition et objectif dun algorithme Définition et objectif dun algorithme Un algorithme c’est une suite d’instructions qui une fois Un algorithme, c’est une suite d’instructions, qui une fois exécutée correctement, conduit à un résultat donné lalgorithmique exprime les instructions résolvant un problème lalgorithmique exprime les instructions résolvant un problème donné indépendamment des particularités de tel ou tel l langage 4 St t d’ l ith Structure d’ unalgorithme Algorithme Nom_Algorithme Var XY : entier X, Y ,… : entier réel Caractère Caractère Début instructions instructions ................. instructions Fin 5 É d d i Étapes du processus de programmation Problème { Analyse, proposition de solutions, Algorithme decompositions } { Traduction de l l h l’algorithme en un language de i Programme programmation } Résultats 6

Upload: mahir-saky

Post on 20-Feb-2016

11 views

Category:

Documents


1 download

DESCRIPTION

Programmation

TRANSCRIPT

Page 1: Chapitre I

1

la programmation

Pour résoudre un problème donné par l’informatiquel’utilisateur de l’ordinateur doit mettre au point unprogramme et le faire exécuter par la machineprogramme et le faire exécuter par la machine.

Un programme est une succession logique et ordonnéed’instructionsd instructions.

L’ordinateur se chargera de traiter les instructions desprogrammes et restituer les résultats demandés enfonction des données qui lui sont fournies.fonction des données qui lui sont fournies.

2

Définition et objectif d’un algorithmeDéfinition et objectif d un algorithme

Un algorithme est la description de la solution d’un Un algorithme est la description de la solution d unproblème sous la forme d’une suite finie d’opérations àff l d é d blèeffectuer sur les données du problème.

un algorithme doit contenir uniquement lesinstructions compréhensibles par celui qui devrainstructions compréhensibles par celui qui devral’exécuter.

Son fonctionnement nécessite un certain nombre Son fonctionnement nécessite un certain nombred’objets, cette ensemble s’appelle : environnement del’algorithmel’algorithme.

3

Définition et objectif d’un algorithmeDéfinition et objectif d un algorithme

Un algorithme c’est une suite d’instructions qui une foisUn algorithme, c’est une suite d’instructions, qui une foisexécutée correctement, conduit à un résultat donné

l’algorithmique exprime les instructions résolvant un problèmel algorithmique exprime les instructions résolvant un problèmedonné indépendamment des particularités de tel ou telllangage

4

St t d’ l ithStructure d’un algorithme

Algorithme Nom_Algorithme

VarX Y : entierX, Y,… : entier

réelCaractèreCaractère

Débutinstructionsinstructions.................instructions

Fin 5

É d d iÉtapes du processus de programmation

Problème{Analyse, proposition de solutions,

Algorithmedecompositions}

{Traduction del l hl’algorithme en unlanguage de

iProgramme

programmation}

Résultats

6

Page 2: Chapitre I

L C CLangage C , C++g g

7

Le Language C

Le langage C a été conçu 1972 par Denis Ritchie avec un

g g

g g ç pobjectif précis: Ecrire un système d’exploitation (UNIX).A cet effetA cet effet, :‐) il s’est inspiré du langage B (créé par K Thompson)

) il l’a amélioré pour être au niveau de langages évolués‐) il l a amélioré pour être au niveau de langages évolués,en l’enrichissant de structures et de types,

‐ Il lui a conserver ses aptitudes de programmation de basIl lui a conserver ses aptitudes de programmation de basniveau

8

Le Language CEn 1978, Kernigham et Ritchie, couramment appelés

g g

K&R, ont fait apparaître un ouvrage .

“The C programming langage”

qui constitue un standard fixant les définitions et Lesqcaractéristiques du langage.

Actuellement, il existe une norme pour le langage C (lap g g (norme ANSI). Les éditeurs de compilateurs, touten respectant cette norme apportent quelquesen respectant cette norme, apportent quelquesextensions pour l’enrichir. 9

Le Language C Langage polyvalent permettant le développement de

tè d' l it ti d li tif

g g

systèmes d'exploitation, de programmes applicatifsscientifiques et de gestion.

Langage structuré..L é l é i d' ff d é i d Langage évolué qui permet d'effectuer des opérations debas niveau (<< assembleur d'Unix >>).

Portabilité liées à l'emploi de bibliothèques dans lesquellessont reléguées les fonctionnalités de la machine Unsont reléguées les fonctionnalités de la machine. Unprogramme développé en C sur une machine donnée peutêt té d' t hi l difiêtre porté sur d'autres machines sans le modifier.

Grande efficacité et puissance.p Langage permissif 10

Le Language Cg g

• Modulaire: peut être découpé en modules quit êt ilé é tpeuvent être compilés séparement

• Universel: n'est pas orienté vers un domaineUniversel: n est pas orienté vers un domained'application particulier

• Typé: tout objet C doit être déclaré avant d’êtreutiliséutilisé

• Portable: sur n'importe quel système enpossession d'un compilateur C

11 12

Page 3: Chapitre I

Langage et bibliothèque standardg g q

Le langage C a été conçu pour l'écriture de systèmes, enparticulier le système Unix Pour cette raison sesparticulier le système Unix. Pour cette raison, sesconcepteurs ont fait une séparation nette entre ce qui estpurement algorithmique (déclarations, instructions, etc.)et tout ce qui est interaction avec le système (entréeset tout ce qui est interaction avec le système (entréessorties, allocation de mémoire, etc.) qui est réalisé par

l d f ti t t d bibli thèappel de fonctions se trouvant dans une bibliothèquedite bibliothèque standard.q

13

Langage et bibliothèque standard

• Entrées sorties <stdio h>

g g q

• Entrées sorties <stdio.h>–Opérations sur les fichiersOpérations sur les fichiers –Accès aux fichiers– Entrées‐sorties formatéesE é i è– Entrées‐sorties caractères

– Entrées‐sorties binairesEntrées sorties binaires–Position dans un fichier–Gestion des erreurs .

14

Langage et bibliothèque standardg g q

• Manipulation de caractères :  <ctype.h>

M thé ti th h• Mathématiques : <math.h> – Fonctions trigonométriques et hyperboliquesFonctions trigonométriques et hyperboliques – Fonctions exponentielles et logarithmiques – Fonctions diverses

15

Langage et bibliothèque standard

• Utilitaires divers : <stdlib.h> 

g g q

– Conversion de nombres –Génération de nombres pseudo‐aléatoires

ti d l é i– gestion de la mémoire –Communication avec l'environnementCommunication avec l environnement –Recherche et tri –Arithmétique sur les entiers

d è l–Gestion des caractères multi‐octets

16

Langage et bibliothèque standardg g q

• Manipulation de chaînes : <string.h>• Manipulation de la date et de l'heure  : <time.h>• Branchements non locaux : <setjmp h>• Branchements non locaux : <setjmp.h>• Manipulation des signaux : <signal.h>p g g• Nombre variable de paramètres : <stdarg.h>• Environnement local :  <locale.h>

17

Les unités lexicales  du langage C

Le langage comprends 6 types d'unités lexicales:– les mots‐clés, l id tifi t– les identificateurs, 

– Les constantes,Les constantes, – les chaînes, – les opérateurs l d– les signes de ponctuation

18

Page 4: Chapitre I

Mots clés

Auto break case char const continuedefault do double else enum

extern float for gotoif int long register returng gshort signed sizeof static struct switch

typedef union unsigned void volatileyp gwhile

• RemarqueRemarqueSi le compilateur produit un message d'erreursyntaxique incompréhensible il est recommandé d'avoirsyntaxique incompréhensible il est recommandé d avoirle reflexe de consulter la liste des mots clés pourvérifier que l'on a pas pris comme identificateur unvérifier que l on a pas pris comme identificateur unmot‐clé. 19 20

Les Identificateurs

b d' d f d d• Le but d'un identificateur est de donner un nomà une entité du programme (variableà une entité du programme (variable,procédure, etc.)

• Les identificateurs sont formés d'une suite del tt d hiff t d i li é itlettres, de chiffres et du signe souligné, suitedont le premier caractère ne peut pas être undont le premier caractère ne peut pas être unchiffre.

21

Les Identificateurs

l f l d f• Les lettres formant les identificateurs peuventêtre majuscules ou minuscules mais doiventêtre majuscules ou minuscules, mais doiventfaire partie de l'alphabet anglais :les lettres accentuées sont interdites.

• Les noms var1, PremierIndex, i_tab, _deb sontdes identificateurs valides mais 1i et i:j ne le sontdes identificateurs valides, mais 1i et i:j ne le sontpas.

22

Les commentaires• Les commentaires débutent par

/* et se terminent par */. Exemple :

/* Ceci est un commentaire *//* Ceci est un commentaire */

23

Les commentaires

/* premier commentaire/  premier commentaireinstruction...instruction/* second commentaire */Instruction

tout un ensemble d'instructions sera ignoré par le compilateur sans générer le moindre message d'erreur

24

Page 5: Chapitre I

Les constantes,

• Voici un exemple de commentaires qui situé au• Voici un exemple de commentaires qui, situé au sein d’une instruction de déclaration: 

int nb_ points /* nombre de valeurs à calculer */float début , /* abscisse de début */fin /* abscisse de fin */fin, /* abscisse de fin */

….;;

25

La compilationLa compilation

La compilation se déroule en 4 phases :1 L t it t l é L fi hi1. Le traitement par le préprocesseur : Le fichier sourceest analysé par le préprocesseur qui effectue desy p p p qtransformations purement textuelles.

l é l d l’é d2. La compilation : Le résultat de l’étape ci‐dessus esttraduit en assembleur.adu e asse b eu

3. L’assemblage : Cette opération transforme le résultatde l’étape précédente en fichier binaire.

4 L’édition de lien : On obtient le fichier exécutable4. Lédition de lien : On obtient le fichier exécutable26

Compilateur Cp

Codeassembleur

AssembleurAssembleur

C dCodeobjet

Linker

Codeexecutable 27

Comment créer un programme « exécutable » ?

prog principal c sous prog1 c sous prog2 c(fichiers sources)prog_principal.c sous_prog1.c sous_prog2.c

1) Compilation

(fichiers sources)

prog principal o sous prog1 o sous prog2 o

1) Compilation (fichiers objets)prog_principal.o sous_prog1.o sous_prog2.o

prog executable

2) Edition des liens

prog_executable

28

Comment créer un programme « exécutable » ?

29

Types de variables manipulées en Cyp p

Toutes les variables doivent être explicitementToutes les variables doivent être explicitementtypées . Les Principaux types sont :

T élé t i–Types élémentairesT é l é–Types évoluésTypes dérivés–Types dérivés 

30

Page 6: Chapitre I

Types élémentaires

• Type entier : « long », « int », « short »

• Type caractère : « char »

• Types réel : « long double », « double » et « float »

• Type booléen : Type booléen :

• Rien : void• Rien … : void

31

Types évolués et dérivés

bl• Tableaux • Fonctions • Pointeurs • Structures• Unions 

32

LES OPERATEURS ET LES EXPRESSIONS

•Les opérateurs arithmétiques•Les opérateurs arithmétiques•La conversion implicite de type dans les expressions.•Les opérateurs relationnels•Les opérateurs logiques•Les opérateurs logiques•L’opérateur d’affectation simple•Les opérateurs d’incrémentations et de décrémentationdécrémentation•Les opérateurs de manipulations de bits•Les opérateurs d’affectation élargie•L opérateur conditionnelL opérateur conditionnel•Les con versions explicites 33

Les opérateurs arithmétiquesLes opérateurs arithmétiquesTYPE OPERATEUR ROLE

Binaire + somme‐ différence

* produits/ ti t/ quotient% reste de division 

(modulo)Les opérateurs relationnels( )

Unaire ‐ opposé

Les opérateurs relationnelsOPERATEUR SIGNIFICATION

+ Identité< Inférieur à

<= Inférieur ou égal à<= Inférieur ou égal à

> Supérieur à

>= Supérieur ou égal à34

Les opérateurs logiquesLes opérateurs logiques

OPERATEUR SIGNIFICATION

&& et

II ou(inclusif)( )

! négation

35

exemples

• if (a = b) : erreur fréquente• if (a = b) : erreur fréquente, • if (a == b) : a égal à b( ) g• if (a != b) : a différent de b• if (a > b) : a supérieur à b• if ((a > b)&&(a>0)) : a supérieur ou égal à b et a positif• if ((a >=b)&&(a>0)) : a supérieur ou égal à b et a positif• if ((a<=b)||(a>0)) : a inférieur ou égal à b ou a positifif ((a b)||(a 0)) : a inférieur ou égal à b ou a positif• ...

36

Page 7: Chapitre I

Les opérateurs d’incrémentations et de dé é idécrémentation

Dans des programmes écrits dans un langage autre que C, on rencontre souvent des expressions (ou des instructions) telles querencontre souvent des expressions (ou des instructions) telles que : 

i=i+1i=i+1i=i‐1

qui “incrémente” ou qui “décrémente” de 1 la valeur d’une “ variable”d une   variable  

En C ces actions peuvent être réalisées par des opérateurs unairesp p pportant sur cette “lvalue”. Ainsi, l’expression :

i i++i      ou   i++37

si la valeur de i est 5, l’expression :

• n =++i‐5affectera à i la valeur de 6 et à n la valeur de 1.• Par contre• Par contre, n = i++ ‐ 55

affectera à i la valeur de 6 et à n la valeur de 0 (car ici la valeur de l’expression i++ est 5).

• On dit que ++ est :• On dit que ++ est :‐ un opérateur de pré‐incrémentation : ++ip p‐ un opérateur de post‐incrémentation : i++

38

Les opérateurs d’affectation élargie

C dispose d’opérateurs encore plus puissants Ainsi vousC dispose d opérateurs encore plus puissants. Ainsi, vouspourrez remplacer : i=i+k

par: i+= kpar: i+= kou encore :

*b * ba=a*b par : a *= bou même

n = n <<3 par : n <<= 3

b l é l é bCette possibilité concerne tous les opérateurs binairesarithmétiques et de manipulation de bits. nommés “opérateursd’affectation élargie“ :

+ * / % I ^ & << >>+= ‐= *= /= %= I= ^= &= <<= >>=39

Pourquoi les ordinateurs sont‐ils « binaires » ?

qu’est‐ce qu’une information binaire ?C’ t i f ti i t i dC’est une information qui ne peut avoir que deuxétats : par exemple,états : par exemple,

•ouvert ‐ fermé,•libre – occupé,•blanc noir•blanc – noir,•vrai – faux,,•etc.

40

Pourquoi les ordinateurs sont‐ils « binaires » ?

Les dispositifs physiques permettant de stocker ce genred’information :d information, :

•chargé – non chargé, (mémoire vive « RAM »)•haut – bas, (disquette, disque durs, …)•troué – non troué (CD‐ROM)troué non troué. (CD ROM)

…..ce sont ceux dont se sert un ordinateur pour stocker lesinformations.informations.

41

base décimale.Lorsque on écrit 8439,  ? 

Décomposons la lecture chiffre par chiffre de gauche àDécomposons la lecture chiffre par chiffre, de gauche à droite:

8439, c’est 8000 + 400 + 30 + 9. 8000 8 x 1000 8 est le quatrième chiffre en partant de8000, :8 x 1000,  8 est le quatrième chiffre en partant de la droite400, : 4 x 100, 4 est le troisième chiffre30 : 3 x 10 3 est le deuxième chiffre30,   : 3 x 10,   3 est le deuxième chiffre9,      : 9 x 1,    9 est le premier chiffre

8 439 = 8 x 103 + 4 x 102 + 3 x 101 + 9 x 100 42

Page 8: Chapitre I

base binairele plus simple est d’utiliser : les fameux 0 et 1.le choix du 0 et du 1 est une pure convention,

Remarque : Une information binaire (0 ou 1) s’appelle unRemarque : Une information binaire (0 ou 1) s appelle un bit (bit).

Un groupe de huit bits s’appelle un octet (byte)Un groupe de huit bits s appelle un octet (byte). 

43

base binaire

Octet (Byte)

2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 = 28 = 256 possibilités

Octet ( yte)

2 x 2 x 2 x 2 x 2 x 2 x 2 x 2   2  256 possibilités

de 1 à 256, ou de 0 à 255, ou de –127 à +128., ,

Si le nombre  > 256 ?on va donc être contraint de mobiliser plus d’un octet.

44

base binaire

E ff tEn effet,avec deux octets, on a 256 x 256 = = 216 = 65 536 possibilités.

En utilisant 4 octetsEn utilisant 4 octets, on passe à 256 x 256 x 256 = = 232 = 16 777 216 possibilités.

45

Prenons un octet au hasard

1 1 0 1 0 0 1 1

1 x 27 + 1 x 26 + 0 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 200 0 0

= 1 x 128 + 1 x 64 + 1 x 16 + 1 x 2 + 1 x 1

= 128 + 64 + 16 + 2 + 1 = 211

46

Inversement, Prenons, par exemple, 186.

Dans 186, on trouve 1 x 128, soit 1 x 27. on retranche 128 de 186 et on obtiens 58et on obtiens 58.Dans  58, on trouve 0 x 64, soit    0 x 26. on ne retranche rien.

‘’    58,  ‘’ 1 x 32,     ‘’ 1 x 25 :  58 ‐32 = 26.‘’    26,  ‘’ 1 x 16,     ‘’ 1 x 24 : 26 ‐16 = 10.‘’  10,  ‘’ 1 x 8,       ‘’ 1 x 23 :  10‐8 =  2.‘’ 2, ‘’ 0 x 4, ‘’ 0 x 22. on ne retranche rien.    2,  0 x 4,        0 x 2 . on ne retranche rien.‘’    2,  ‘’ 1 x 2,      ‘’ 1 x 21 : 2 – 2 = 0.‘’ 0 ‘’ 0 x 1 soit 0 x 20 on ne retranche rien    0,  0 x 1, soit 0 x 20. on ne retranche rien.

186 est représenté par : 1 0 1 1 1 0 1 0 47

Déclaration des variablesDéclaration des variables

• La première chose à faire avant de pouvoir utiliser unevariable est de créer la boîte et de lui coller unevariable est de créer la boîte et de lui coller uneétiquette. C’est ce qu’on appelle la déclaration desvariables.

• réserver un emplacement mémoire ; on doit préciser• réserver un emplacement mémoire ; on doit préciserce que l’on voudra mettre dedans,

48

Page 9: Chapitre I

Organisation de la mémoire

• La mémoire (RAM) est un immense tableau de cases contenant chacune 1 octet (ou byte) = 8 bitscontenant chacune 1 octet (ou byte) = 8 bits

……

• Une variable est stockée sur une ou plusieurs cases en fonction de son type et de la machine. En général :– Entiers « courts » (short int): 2 octetsEntiers « courts » (short int): 2 octets– Entiers (int) et réels en simple précision (float): 4 octetsRé l d bl é i i (d bl ) 8 t t– Réels en double précision (double): 8 octets

Intervalle de valeurs possibles plus ou moins grand

49

Types variables

50

Types variables

51

Notion d’adresse• L’adresse d’une variable correspond au numéro de la premièreLadresse d une variable correspond au numéro de la première case stockant cette variableEx: entier à l’adresse 103 est en fait stocké dans les cases 103 104 105 etEx: entier à l adresse 103 est en fait stocké dans les cases 103, 104, 105 et 106

…0x1070x1060x1050x1040x103…0

……

• Le nombre d’adresses disponibles dépend de la taille de la mémoire mesurée en Gola mémoire mesurée en Go 109 octets milliards de cases…

52

Type de Fonctions pré‐definies en C

l f é déf• Plusieurs fonctions pré‐définies:printf() sin() sqrt()–printf(), sin(), sqrt(), …

• Le prototype de ces fonctions sont dans fichiers d’entête (header file)

i f() d di h–printf() dans stdio.h– sin() dans math hsin() dans math.h

53

Fonctions en CExtrait de stdio.h

/*************************************************************/***//* FORMATTED INPUT/OUTPUT FUNCTIONS *//  FORMATTED INPUT/OUTPUT FUNCTIONS              //****************************************************************//extern int fprintf(FILE *_fp, const char *_format, ...);extern int fscanf(FILE *_fp, const char *_fmt, ...);( _ p _ )extern int printf(const char *_format, ...);extern int scanf(const char *_fmt, ...);extern int sprintf(char *_string, const char *_format, ...);extern int sscanf(const char *_str, const char *_fmt, ...);extern int vfprintf(FILE *_fp, const char *_format, char *_ap);extern int vprintf(const char *_format, char *_ap);

54

extern int vsprintf(char *_string, const char *_format, char *_ap);

Page 10: Chapitre I

Les entrées sorties : printf, scanf

• Le prototype de ces fonctions est dans <stdio.h>

printf permet d ’afficher du texte à l ’écran f t d ’ t d t t l iscanf permet d ’entrer du texte au clavierfprintf et fscanf permettent de lire et d ’écrirefprintf et fscanf permettent de lire et d écrire dans des fichiers

55

printf, scanf (suite)

• Ces fonctions utilisent des formats qui• Ces fonctions utilisent des formats qui permettent de lire/écrire des variables de différents types :

%e , %f : réels%le, %lf : réels de type double%d : entiers%d : entiers%ld : entiers long int%s : chaîne de caractères%c : un caractère%c : un caractère

56

printf, scanf : exemples

#include<stdio.h>i iint i;printf(" i = %d \n",i); /* Imprime i = valeur de iprintf( i %d \n ,i); / Imprime i valeur de i

et va à la ligne */

fscanf(infile, "%d ",&i); /* lit dans le fichier infile( , , );la valeur de i, on passe

à fscanf l ’adresse de ià fscanf l adresse de i c ’est à dire &i */

57

Structure générale d’un programme :g p g

/* commentaires */

#include <stdio.h>Appel des fonctions de base du cstdio.h : fichier « header »#include stdio.h

#define Pi 3.14 Constante symbolique

main() Fonction main

{

Déclaration des variables; Types de données: int, float, char

début

Déclaration des variables;

Initialisations;

yp , ,

f ( ) { }Instructions;

for ( ; ;) { …. ;}while (condition) { … ;}if (condition) { … ;}

}fin

58

Exemple de Programme en C

Début du programme

Inclusion de la bibliothèque#include <stdio.h>

qcontenant la fonction printf

void main()

{

Point d'entré du programme{

printf(’’Expression’’\n");}

premièreinstruction}

Fin du programmeFin du programme

59

LES INSTRUCTIONS DE CONTROLE

• L’instruction : ifit h•  switch

•  do … while•  while• for•  for• Les instructions de branchement inconditionnel : break, continue et goto.

60

Page 11: Chapitre I

Exemple 1

instruction conditionnelle simple si alors– instruction conditionnelle simple si alorsif (expression){{

instructions;}}

–exempleint i =5;int i  5;int n;if (i<=20)if (i<=20){

n =0;61

n =0;}

Exemple 2

– instruction conditionnelle simple si alors sinoninstruction conditionnelle simple si alors sinonif (expression){instructions1;

} sinon{{instrutions2;

}}

l– exempleint i =5;int n;if (i< 20)if (i<=20)n =0;

else62

elsen=5;

Exemple 3

if(++i <limite)printf(”ok’’)printf(”ok’’);

est équivalent à : i=i+1i=i+1if (i< limite) 

i f(” k’’)printf(”ok’’);

63

La boucle for …

int i,MAX=14;  /*compteur*/for (i 0 i < MAX i++)

for (expr1 ; expr2 ; expr3) { for (i=0; i < MAX ; i++) 

{{ 

instructions (1)

printf("Valeur de i : %i\n",i);}

...}instructions (2)instructions (2) …

64

Instruction  Whilest uct o e

#define MAX 14int i=0;while (i < MAX ){{printf("Valeur de i : %i\n",i);i++i++;} 65

Instruction do…Whilest uct o do… e

doInstruction 1

Instruction 2

{

i t ti 1Instruction 2 instruction 1;

instruction 2;Instruction n

;

…………..;

Condition est vraie ouiinstruction n;

} while (sortie !=‘s’);

non

} while (sortie != s );

non

Page 12: Chapitre I

Instruction do…Whilest uct o do… e#include <stdio.h>#d fi MAX 14#define MAX 14int main() (){int i MAXint i=MAX;

do {printf("Valeur de i : %i\n",i);i++;i++;} while (i < MAX);

return 0;return 0;} 67

Choisir la bonne boucleC o s a bo e bouc e

68

Choisir la bonne boucleC o s a bo e bouc eEn réalité une seule boucle suffirait suivant lanature du pb à résoudre.

Questions à se poser

Le nombre de tours de boucle est il connu ?OUI � utiliser la boucle forOUI � utiliser la boucle forNON � Peut on commencer l'action avant de tester une 

situation?OUI � utiliser la boucle do…whileNON � utiliser la boucle while

69

NON � utiliser la boucle while