You are on page 1of 33

Analyse et programmation 1

Les structures de contrle

O en sommes-nous ?
Thme Introduction I t d ti Aperu du fonctionnement dun ordinateur Introduction au langage C Reprsentation et traitement de linformation
Les types de donnes de base et leurs oprations

Contrle du droulement dun d un programme


Les structures de contrle

Dcomposition dun algorithme complexe


Les fonctions

Approfondissements
Analyse et programmation 1 - Les structures de contrle 1

Thmes abords
Les blocs Choisir Ch i i entre t diff diffrents t t traitements it t
Les instructions de choix : test, slection.

Rpter des traitements


Les instructions itratives : boucles while, do while, for. Le contrle de lexcution des boucles. goto.

Analyse et programmation 1 - Les structures de contrle

Prcisions sur la notion dinstruction


Expression et instruction

En C, une expression est un instruction


i++; // Valeur de i incrmente

Mme si elle na pas deffet sur les variables


i + 2; // Calcul effectu, mais rsultat perdu

Analyse et programmation 1 - Les structures de contrle

Prcisions sur la notion dinstruction


Le bloc dinstructions

Un bloc dinstructions
Est dlimit par les accolades o ouvrantes rantes et fermantes fermantes. Est considr comme une instruction unique dans les structures de contrle. Peut comporter des dclarations de variables au dbut. Les instructions sont excutes de faon squentielle.

Exemple
{ int i, j; i = 2; j = i + 1; printf("%d\n", j); }

Analyse et programmation 1 - Les structures de contrle

Prcisions sur la notion dinstruction


Linstruction vide

Il existe en C une instruction vide


Elle ne fait rien. rien Elle se note tout simplement ;

Autres formes
Le bloc vide
{ }

Le bloc contenant une ou plusieurs instructions vides


{ ; }

Utilit
Boucle dattente.
On attend quune condition apparaisse. Pendant ce temps, on ne fait rien.
Analyse et programmation 1 - Les structures de contrle 5

Linstruction de test if
Prsentation

Structure de base
if (expression) instruction;

Signification de if
si

Fonctionnement
Linstruction if value lexpression entre parenthses. Si la condition est vraie, linstruction suivant le if est excute. Vrai voulant dire, en langage C, diffrent de 0. Sinon, lexcution continue la ligne suivante.
if (x < 0.0) printf("Les valeurs negatives ne sont pas admises.\n");

Exemple

Analyse et programmation 1 - Les structures de contrle

Linstruction de test if
Illustration

if Expression
[Vraie (!= 0)] [Fausse (== 0)]

instruction

Analyse et programmation 1 - Les structures de contrle

Linstruction de test if
Conditions complexes

La condition entre parenthses peut tre complexe Seulement S l t dlimite dli it par l les parenthses th
if ( ( (x >= ( (x >= ( (x >= ( (x >= print("x p t( 0) 20) 40) 60) est && (x <= 10) && (x <= 30) && (x <= 50) && (x <= 70) valide\n"); a de\ ); ) ) ) ) || || || )

Analyse et programmation 1 - Les structures de contrle

Linstruction de test if
Plusieurs instructions

if naccepte quune seule instruction.


if (x < 0 0.0) 0) printf("Attention, x est ngatif\n"); printf("Valeur refuse\n"); // toujours excute !

Pour placer plusieurs instructions dans un if


Utiliser un bloc de code
if (x < 0.0) { printf("Attention, x est ngatif\n"); printf("Valeur refuse\n"); // contrle par if }

Analyse et programmation 1 - Les structures de contrle

Linstruction de test if
Alternative Structure de base
if (expression) instruction_1; else instruction_2;

Signification de else:
Autrement (sinon)

Fonctionnement
Linstruction if value lexpression entre parenthses. Si la condition est vraie, vraie instruction_1 instruction 1 est excute. excute Sinon, instruction_2 est excute.

Exemple
if (x < 0.0) printf("Les valeurs negatives ne sont pas admises.\n"); else printf("racine carre : %f.\n" , sqrt(x));
Analyse et programmation 1 - Les structures de contrle 10

Linstruction de test if
Illustration

if Expression
[Vraie (!= 0)] [Fausse (== 0)]

instruction 1 instruction_1

instruction 2 instruction_2

Analyse et programmation 1 - Les structures de contrle

11

Linstruction de test if
Chanage - principe if (tension < 0) printf("Cas p t ( Cas non o g gr\n"); \ ); else if (tension < 50) printf("basse tension\n"); else if (tension < 1500) printf("moyenne tension\n"); else if (tension < 15000) printf("haute tension\n"); else printf("trs haute tension\n");
Analyse et programmation 1 - Les structures de contrle 12

Linstruction de test if
Chanage forme recommande

if (tension < 0) printf("Cas i tf("C non gr\n"); \ ") else if (tension < 50) printf("basse tension\n"); else if (tension < 1500) printf("moyenne tension\n"); else if (tension < 15000) printf("haute tension\n"); else printf("trs haute tension\n");
Analyse et programmation 1 - Les structures de contrle 13

Linstruction de test if
Imbrications

A quel if se rapporte le else ?


if (expression (expression_1) 1) if (expression_2) instruction_1; else instruction_2;

Ou
if (expression_1) if (expression_2) instruction 1; instruction_1; else instruction_2;

Rgle :
else se rapporte toujours au if le plus proche qui na pas encore de else.
Analyse et programmation 1 - Les structures de contrle 14

Linstruction de test if
Imbrications associer un else avec un if lointain

Il est possible de forcer lassociation dun else. Utilisation Utili ti d de l la structure t t d de bl bloc.
if (expression_1) { if (expression_2) instruction_1; } else instruction_2;

Analyse et programmation 1 - Les structures de contrle

15

Linstruction de test if
Piges courants

Affectation dans une expression


if (i = 0) // Attention -> > on donne la valeur 0 i printf("i vaut zero.\n");

Point virgule la fin du if


if (i == 0); // Attention, if se termine au ; ! printf("i vaut zero.\n"); // toujours excut

Analyse et programmation 1 - Les structures de contrle

16

Linstruction de slection switch


Prsentation Structure de base
switch (expression_entire) { case valeur1: instruction_1a; instruction_1b; ...; case valeur2: instruction_2a; instruction_2b; ...; ... default: instruction_defaulta; instruction_defaultb; ...; }

Expression entire entre parenthses Accolades

Les diffrents cas

La branche par dfaut

Analyse et programmation 1 - Les structures de contrle

17

Linstruction de slection switch


Prsentation

Linstruction switch value lexpression entire entre parenthses. parenthses En fonction de la valeur de lexpression
Se branche sur le case portant cette valeur. Commence lexcution ce point.

Si aucune valeur ne correspond lexpression


si le cas default existe, se branche sur ce cas.

Particularit
Lexcution ne sarrte pas automatiquement la fin du cas. Elle poursuit sur les cas suivants !

Analyse et programmation 1 - Les structures de contrle

18

Linstruction de slection switch


Illustration

switch Expression
[valeur1] [valeur2]

instruction cas 1

instruction cas 2

...

instruction default

Analyse et programmation 1 - Les structures de contrle

19

10

Linstruction de slection switch


Exemple int choix; choix c o = getc getchar(); a (); switch (choix) { case 's': case 'S': printf("la somme des entiers est %d\n", i + j); case 'p': continue lexcution case 'P': P : printf("le produit des entiers est %d\n", i * j); continue lexcution default: printf("Choix incorrect\n"); }
Analyse et programmation 1 - Les structures de contrle 20

Linstruction de slection switch


break

Constat
Dans la plupart pl part des programmes rels rels, on so souhaite haite e excuter c ter les instructions correspondant un cas. Mais on ne souhaite pas enchaner le suivant

Linstruction break
Permet de sortir du switch. Permet donc de sparer les cas.

Analyse et programmation 1 - Les structures de contrle

21

11

Linstruction de slection switch


Exemple avec break
int choix; choix = getchar(); switch (choix) { case 's': case 'S': printf("la somme des entiers est %d\n", i + j); break; case 'p': case 'P': P : printf("le produit des entiers est %d\n", i * j); break; default: printf("Choix incorrect\n"); }
Analyse et programmation 1 - Les structures de contrle 22

Linstruction de slection switch


Illustration avec break

switch Expression
[valeur1] [valeur2]

instructions1; ; break;

instructions2; ; break;

...
break;

instruction default

Analyse et programmation 1 - Les structures de contrle

23

12

Linstruction de slection switch


Cas multiples

Daprs ce quon a vu, il est possible de chaner les cas.


Cest utile tile pour po r excuter e c ter le mme traitement pour po r pl plusieurs sie rs cas cas.
switch (choix) { case 's': // pas de break, mme traitement que S case 'S': printf("la somme des entiers est %d\n", i + j); break; case 'p': ' ' // pas d de b break, k mme t traitement it t que P case 'P': printf("le produit des entiers est %d\n", i * j); break; }
Analyse et programmation 1 - Les structures de contrle 24

Linstruction de slection switch


Le cas par dfaut

Syntaxe
Utiliser
default:

et non pas
case default:

Ce cas nest pas obligatoire. Sil nexiste pas et que le cas ne figure pas dans la liste
Aucun traitement nest effectu par switch. switch

Analyse et programmation 1 - Les structures de contrle

25

13

Linstruction de slection switch


Traduction en if

Il est toujours possible de traduire un switch avec if.


if (choix == 's' || choix == 'S') printf("la somme des entiers est %d\n", i + j); else if (choix == 'p' || choix == 'P') printf("la somme des entiers est %d\n", i + j); else printf("le produit des entiers est %d\n", i * j);

Cest moins efficace lexcution. Cela traduit visuellement moins la slection 1 parmi N.

Analyse et programmation 1 - Les structures de contrle

26

Linstruction de slection switch


Utilisation recommande

Avantage par rapport aux if


Codage en mmoire plus pl s compacte compacte. Evaluation plus rapide.

Utilisation propre
Prfrer switch avec un break la fin de chaque cas. Possibilit cependant de mettre plusieurs case avant un bloc dinstructions.

Conditions d dutilisation utilisation du chanage


Si un chanage est voulu dun cas sur lautre, le mentionner explicitement par un commentaire.

Analyse et programmation 1 - Les structures de contrle

27

14

Organisation du code pour la lisibilit


Indentation

Rappels
Le compilate compilateur r ignore les espaces dans le code so source. rce On peut mettre autant despaces et de sauts de lignes sans changer la signification du code source.

Indentation
Disposer le code source pour mettre en vidence sa structure logique. Exploiter p p pour cela la libert q que nous laisse le compilateur. p

Exemple
if (x < 0.0) printf("Les valeurs negatives ne sont pas admises.\n"); else printf("racine carre : %f.\n" , sqrt(x));
Analyse et programmation 1 - Les structures de contrle 28

Organisation du code pour la lisibilit


Indentation les diffrentes formes Style C
if (x < 0.0) { printf("Les valeurs negatives ne sont pas admises.\n"); printf("Donnez une valeur positive.\n"); } else { printf("Valeur correcte.\n"); printf("racine carre : %f.\n" , sqrt(x)); }

Style Pascal
if (x < 0.0) { printf("Les valeurs ale rs negati negatives es ne sont pas admises admises.\n"); \n") printf("Donnez une valeur positive.\n"); } else { printf("Valeur correcte.\n"); printf("racine carre : %f.\n" , sqrt(x)); }
Analyse et programmation 1 - Les structures de contrle 29

15

Organisation du code pour la lisibilit


Indentation - Recommandations

Indentez toujours le code


Le code ci desso dessous s fonctionne trs bien
if (x < 0.0) { printf("Donnez printf("Valeur printf("racine printf("valeurs negatives pas admises.\n"); une valeur positive.\n") } else { correcte.\n"); carre : %f.\n" , sqrt(x)); }

Mais il est fatigant lire !

Attention, au dcalage entre lindentation et la logique


if ( (x < 0 0.0) 0) printf("Les valeurs negatives ne sont pas admises.\n"); printf("Donnez une valeur positive.\n");

Analyse et programmation 1 - Les structures de contrle

30

Organisation du code pour la lisibilit


Les commentaires

Essayez dabord de rendre votre code limpide


Sans recourir reco rir aux a commentaires. commentaires En indentant correctement. En utilisant des identificateurs senss et clairs.

Commentez
Seulement lorsquil ny a pas dautre moyen de rendre le code clair.

Analyse et programmation 1 - Les structures de contrle

31

16

Organisation du code pour la lisibilit


Les commentaires - en tte de fichier
/* ----------------------------------------------------------------------------- But : Labo d'introduction permettant d'utiliser l'outil de dveloppement. - Auteur : - Date cration : 20.10.2010 - Modifications : ----------------------------------------------------------------------------*/

Analyse et programmation 1 - Les structures de contrle

32

Organisation du code pour la lisibilit


Les commentaires - en tte de fichier En tte de fichier : commentaire pouvant contenir
le nom du fichier le nom de lauteur la date de cration la date de dernire modification la liste des modifications le rle du fichier dans le programme

Super ! Mais M i
Il nest en gnral pas maintenu jour. Il existe des outils qui permettent automatiquement
de mettre jour la date de modification. de retrouver toutes les modifications dun code source depuis une date.

Analyse et programmation 1 - Les structures de contrle

33

17

Analyse et programmation 1 - Les structures de contrle

34

Les structure itratives


Introduction

Les structures itratives


Elles permettent de rpter un n traitement plusieurs pl sie rs fois Il en existe principalement 3 en langage C
do while goto while for

Accessoirement, une boucle peut tre ralise avec un saut

Des instructions permettent de contrler les itrations


break continue

Analyse et programmation 1 - Les structures de contrle

35

18

La boucle do while
Prsentation Structure de base
do instruction; while (expression)

Signification
do : faire while : tant que

Fonctionnement
Linstruction est excute. Ensuite, lexpression est value. Si elle est vraie, vraie on reprend lexcution l excution de linstruction l instruction, etc etc Il est donc souhaitable que linstruction agisse sur la condition.
do scanf("%d", &i); while (i <= 0);

Exemple

Analyse et programmation 1 - Les structures de contrle

36

La boucle do while
Illustration

do while instruction Expression

[Vraie (!= 0)]

[Fausse (== 0)]

Analyse et programmation 1 - Les structures de contrle

37

19

La boucle do while
Plusieurs instructions

do while naccepte quune seule instruction.


do i = 0; scanf("%d", &i); // erreur syntaxe while (i <= 0);

Pour placer plusieurs instructions dans un do while


Utiliser un bloc de code
do { i = 0; scanf("%d", &i); } while (i <= 0);
Analyse et programmation 1 - Les structures de contrle 38

La boucle do while
Particularits autorises par le C

Par lusage doprateurs


On peut pe t placer des instructions instr ctions dans la condition condition. Ce nest pas favorable la lisibilit. (Mauvais) exemple
int i = 10; do ; while (printf ("%d\n", i--), i);

Boucle infinie
Certains compilateurs dtectent que la condition est invariable.
do ; while (1);
Analyse et programmation 1 - Les structures de contrle 39

20

La boucle while
Prsentation Structure de base
while (expression) instruction;

Signification
while : tant que

Fonctionnement
Lexpression est value dabord. Si elle est vraie, on excute linstruction. Et on recommence. Si lexpression est fausse fausse, la boucle sarrte sarrte. Il est donc souhaitable que linstruction agisse sur la condition.
i = 0; while (i <= 0); scanf("%d", &i);
Analyse et programmation 1 - Les structures de contrle 40

Exemple

La boucle while
Illustration

while Expression
[Fausse (== 0)]

[Vraie (!= 0)]

instruction

Analyse et programmation 1 - Les structures de contrle

41

21

La boucle while
Plusieurs instructions while naccepte quune seule instruction.
while (i <= 0) i = 0; scanf("%d", &i); // pas controle par while !

Pour placer plusieurs instructions dans un while


Utiliser un bloc de code
while (i <= 0) { i = 0; scanf("%d", &i); }

Analyse et programmation 1 - Les structures de contrle

42

La boucle while
Particularits autorises par le C

Par lusage doprateurs


On peut pe t placer des instructions instr ctions dans la condition condition. Ce nest pas favorable la lisibilit. (Mauvais) exemple
int i = 10; while (printf ("%d\n", i--), i) ;

Boucle infinie
Certains compilateurs dtectent que la condition est invariable.
while (1) ;

Analyse et programmation 1 - Les structures de contrle

43

22

La boucle for
Prsentation

Structure de base
for (expression1 ; expression2 ; expression3) instruction;

Signification
for : pour

Fonctionnement
Lexpression 1 est value une seule fois au dbut. Lexpression 2 est value ensuite. ensuite Si elle est vraie, on excute linstruction, puis lexpression3. Et on recommence lvaluation de lexpression 2. Si lexpression 2 est fausse, la boucle sarrte. Il est donc souhaitable que linstruction agisse sur la condition.
44

Analyse et programmation 1 - Les structures de contrle

La boucle for
Prsentation
for (expression1 ; expression2 ; expression3) instruction;

Rle habituel des expressions


expression1 : initialisation expression2 : condition de sortie expression3 : post incrmentation de variable.

Utilisations habituelles
for (i = 0; i < 10; i++) printf("%d, ", i); for (i = 1; i <= 10; i++) printf("%d, ", i); for (i = 10; i >= 1; i--) printf("%d, ", i);

Analyse et programmation 1 - Les structures de contrle

45

23

La boucle for
Illustration for expression1 p Expression2

[Fausse (== 0)]

[Vraie (!= 0)]

instruction expression3

Analyse et programmation 1 - Les structures de contrle

46

La boucle for
Illustration for i=0 i < 10

[Fausse (== 0)]

[Vraie (!= 0)]

printf("%d", printf( %d , i) i++

Analyse et programmation 1 - Les structures de contrle

47

24

La boucle for
Plusieurs instructions for naccepte quune seule instruction.
for (i = 1; i <= 10; i++) printf("%d", i); printf(", "); // pas controle par for !

Pour placer plusieurs instructions dans un for


Utiliser un bloc de code
for (i = 1; i <= 10; i++) { printf("%d", i); printf(", "); }

Analyse et programmation 1 - Les structures de contrle

48

La boucle for
Particularits autorises par le C

Par lusage doprateurs


On peut pe t placer des instructions instr ctions dans la condition condition. Ce nest pas favorable la lisibilit. (Mauvais) exemple
// Affiche les entiers de 1 10 for (i = 0; i < 10; i++, printf("%d, ", i)) ;

Dclaration intgre g de la variable de boucle


for (int i = 1; i <= 10; i++) printf("%d, ", i);

Supporte partir de la norme C99. La variable nexiste qu lintrieur de la boucle


Analyse et programmation 1 - Les structures de contrle 49

25

La boucle for
Particularits autorises par le C

Chacune des expressions du for peut tre laisse vide.


Pas d dinitialisation initialisation.
i = 1; // ici, la variable est initialise avant for for ( ; i <= 10; i++) printf("%d", i);

Pas de condition de sortie.


for (i = 1 ; ; i++) // condition vide considre vraie printf("%d", i); // boucle linfini

Pas dincrmentation.
for (i = 1 ; i <= 10 ; ) printf("%d", i++); // incrmentation ici

Boucle infinie
for (;;) // forme recommande de la boucle infinie ;

Analyse et programmation 1 - Les structures de contrle

50

La boucle for
Particularits autorises par le C

Encore quelques bizarreries


En utilisant tilisant loprateur loprate r sq squence ence ( (,) )
for (i = 1, j=10 ; i <= 10 ; i++, j--) printf("%d, %d\n", i, j);

A retenir
for a t conu pour traduire la boucle POUR i = 1 N FAIRE . Son implmentation en C permet den faire bien dautres choses. Prfrer en g gnral les usages g normaux du for. On trouve les formes bizarres dans du code industriel. Donc, il est important de connatre la smantique du for en C.

Analyse et programmation 1 - Les structures de contrle

51

26

Le contrle des boucles


Linstruction break

Effet
Arrt immdiat de la boucle. bo cle Poursuite du programme sur linstruction suivant la boucle.

Exemple
int i; float somme = 0.0, f; for (i = 0; i < 100; i++) { if (scanf("%f", &f) == 0) // saisie incorrecte => sortie de boucle break; somme += f; }
Analyse et programmation 1 - Les structures de contrle 52

Le contrle des boucles


Linstruction continue

Effet
Passe immdiatement l litration itration suivante de la boucle. boucle Sans terminer les instructions de litration en cours. Usage peu recommand.

Exemple
int i; float somme = 0.0, f; for (i = 0; i < 100; i++) { if (scanf("%f", &f) == 0) // saisie incorrecte => iteration suivante continue; somme += f; }
Analyse et programmation 1 - Les structures de contrle 53

27

Le contrle des boucles


Linstruction continue

Dans le cas de la boucle while


le contrle passe en db dbut t de bo boucle cle po pour r valuer al er la condition et dcider de la suite

Dans le cas de la boucle do ... while


le contrle passe la fin de la boucle pour valuer la condition et dcider de la suite

Dans le cas de la boucle for


le contrle passe d d'abord abord en fin de boucle pour valuer expression3 puis il revient en dbut de boucle pour valuer et tester expression2 afin de dcider de la suite

Analyse et programmation 1 - Les structures de contrle

54

Le contrle des boucles


Recommandations

Les instructions de contrle de boucle


Modifient le comportement normal de la structure de contrle. contrle Utilises intensivement, elles nuisent lintelligibilit du code.

Conseil
Prfrer le contrle normal des boucles
condition pour while et do while. nombre ditrations pour for.

Utiliser break et continue


Seulement lorsque cest vraiment utile. utile Lorsque cela simplifie notablement lcriture du code.

Attention aux boucles sans fin


Un programme qui tombe dans une boucle sans fin devient incontrlable. Il doit tre tu, les donnes saisies sont perdues.
Analyse et programmation 1 - Les structures de contrle 55

28

Comparaison des 3 boucles


do while, while, for

Nombre ditrations connu lavance


Utiliser la boucle bo cle for for. Exemple : faire la moyenne de 10 valeurs.

Nombre ditrations dpendant dune condition


Utiliser while ou do while. Avec do while, linstruction est excute au moins une fois.
mme si la condition est initialement fausse !

Avec while while, linstruction l instruction peut tre excute 0 fois


si la condition est initialement fausse.

Dans la pratique, les 3 types de boucles permettent chacun de recrer les autres.

Analyse et programmation 1 - Les structures de contrle

56

Linstruction goto
Prsentation Structure de base
goto etiquette; etiquette:

Signification
goto : aller

Fonctionnement
Aprs lexcution de goto, le programme continue linstruction suivant ltiquette mentionne. Ltiquette doit se trouver dans la mme fonction que le goto. Il est possible de sauter au milieu dune structure de contrle !!!

Exemple
goto gestion_erreur; . . . . . . gestion_erreur: printf("Une erreur est survenue. Impossible de" "continuer\n");
Analyse et programmation 1 - Les structures de contrle 57

29

Linstruction goto
Exemple la boucle for avec goto

int i; i = 0; boucle: printf("%d\n", i); i++; if (i < 10) goto boucle; A viter absolument

Analyse et programmation 1 - Les structures de contrle

58

Linstruction goto
Que fait ce programme ?
int main() { int i, j; i = 0; j = 9; goto debut; affiche: printf("%d\n", i); debut: i++; goto test; milieu: j--; test: if (i > j) goto debut; else if (i > 7) goto milieu; goto affiche; fin: _getch(); return 0; }
Analyse et programmation 1 - Les structures de contrle 59

30

Linstruction goto
Critique

La programmation utilisant goto amne des problmes. goto t nest t pas une structure t t d de contrle. t l
Ne structure pas le programme de faon hirarchique. Les autres structures de contrle sparent 2 niveaux :
Le niveau contrle : condition. Le niveau contrl : instructions.

Lenchanement de nombreux sauts


Devient un vritable jeu de piste. piste Trs difficile de comprendre lintention du programmeur. Les programmeurs utilisant beaucoup goto ne comprennent gnralement pas pourquoi leurs programmes fonctionnent. lorsquils fonctionnent.
Analyse et programmation 1 - Les structures de contrle 60

NE PAS UTILISER goto


sauf si cela apporte vraiment quelque chose
Analyse et programmation 1 - Les structures de contrle 61

31

Linstruction goto
Pourquoi existe-t-elle ?

Dans certains environnements trs contraints


En taille mmoire. mmoire En temps dexcution.

Linstruction goto
peut permettre dcrire du code dune faon optimise. en consommant le moins de ressources possibles. cest une programmation proche de la machine.

Ce C cas ne se prsentera t pas d dans APR1 APR1. Donc

Analyse et programmation 1 - Les structures de contrle

62

Quavons-nous appris ?
Les structures de contrle de test/slection
if, if s switch itch case case.

Les structures de contrle itratives


do while, while, for break, continue goto

Quelques recommandations pour organiser le code


Amliorer la lisibilit par lindentation. Utiliser judicieusement les commentaires.

Analyse et programmation 1 - Les structures de contrle

63

32

Vos questions

Analyse et programmation 1 - Les structures de contrle

64

Analyse et programmation 1 - Les structures de contrle

65

33

You might also like