Structures de contrôle de lexécution bloc séquence exécution conditionnelle exécution...

Post on 04-Apr-2015

116 views 0 download

Transcript of Structures de contrôle de lexécution bloc séquence exécution conditionnelle exécution...

Structures de contrôle de l’exécution

blocséquence

exécution conditionnelleexécution répétée

Un bloc d’instruction

• Un bloc d’instructions peut-être composé – de séquences d’instructions– de structures de contrôles conditionnelles et

itératives• Les structures de contrôles conditionnelles

conditionnent l’exécution de blocs d’instructions• les structures des contrôles itératives

conditionnelles la répétition de blocs d’instructions

Séquence

• la séquence est composé d’une suite d’instructions dont l’exécution sera réalisé les unes après les autres

• aucune rupture dans la séquence• toutes les instructions de la séquence seront

réalisées• exemple :– demander un rayon d’un disque– calculer la circonférence– afficher la circonférence

EXÉCUTION CONDITIONNELLEtant que, pour x variant de a à b

Exécution conditionnelle

• la structure de contrôle conditionnelle crée une rupture en permettant– l’exécution d’un bloc d’instructions de manière

optionnelle– l’exécution d’un bloc ou d’un bloc alternatif

• cette rupture est « pilotée » par une expression conditionnelle– expression booléenne calculée à partir d’opérateurs

relationnels (=,!=,<, <=, >,>=) et d’opérations logiques (et, ou , non)

Exécution conditionnelle

• Syntaxe :– SI expression de la condition

• ALORS– bloc d’instructions exécuté si la condition est vraie

– fin SI• Syntaxe avec alternative :– SI expression de la condition

• ALORS– bloc d’instructions exécuté si la condition est vraie

• SINON– bloc d’instructions exécuté si la condition n’est pas vraie

– fin SI

Exécution conditionnelle

• Exemple :– demander l’âge– si l’âge est inférieur à 18• alors

– afficher « mineur »

– fin si

?vrai faux

Exécution conditionnelle

• Exemple C++ :cin >> age;if (age < 18)

{cout << "mineur";

}

?vrai faux

Exécution conditionnelle

• Exemple avec alternative :– demander l’âge– si l’âge est inférieur à 18• alors

– afficher « mineur »

• sinon– afficher « majeur »

– fin si

?vrai faux

Exécution conditionnelle

• Exemple C++ avec alternative :cin >> age;if (age < 18)

{cout << "mineur";

}else{

cout << "majeur";}

?vrai faux

EXÉCUTION RÉPÉTÉEtant que, pour x variant de a à b

Exécution répétée

• la structure de contrôle itérative (ou boucle) permet la création d’une rupture en permettant– l’exécution répétée d’un bloc d’inscription

• cette répétition est « pilotée » par une expression conditionnelle – expression booléenne calculée à partir d’opérateurs relationnels

(=,!=,<, <=, >,>=) et d’opérations logiques (et, ou , non)– si la condition est vraie, le bloc est exécuté puis la condition est à

nouveau vérifiée, et ainsi de suite, et ceci tant que la condition reste vraie

• Cette condition détermine le nombre de répétitions

Exécution répétée

• Exemple :– i 0– tant que i < 4 répéter• afficher « hello »• i i + 1

– fin tant que

?vrai faux

initialiser les variables utiles à

la condition

1X : initialiser les variables utiles à

la condition

nX : modifier les variables utiles à

la condition

Exécution répétée

• Exemple C++ :i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

initialiser les variables utiles à

la condition

1X : initialiser les variables utiles à

la condition

nX : modifier les variables utiles à

la condition

TRACE D’EXÉCUTION D’UNE RÉPÉTITION AVEC WHILE

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

?

hello

0valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

? 0 < 4 ? 0valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

?

hello

0valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

hello

i vaut maintenant 1

1valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

?

hello

1valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

? 1 < 4 ?

hello

1valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

?

hellohello

1valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

hellohello

i vaut maintenant 2

2valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

?

hellohello

2valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

? 2 < 4 ?

hellohello

2valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

?

hellohellohello

2valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

hellohellohello

i vaut maintenant 3

3valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

?

hellohellohello

3valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

? 3 < 4 ?

hellohellohello

3valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

?

hellohellohellohello

3valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

hellohellohellohelloi vaut maintenant 4

4valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

?

hellohellohellohello

4valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

? 4 < 4 ?

hellohellohellohello

faux4

valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;while (i < 4) {

cout << "hello";i = i + 1;

}

?

hellohellohellohello

faux4

valeur de i

la répétition est terminé, on passe à l’instruction qui suit

TRACE D’EXÉCUTION D’UNE RÉPÉTITION AVEC FOR

Exécution répétée

• Exemple C++ :int i;for( i=0 ; i<4 ; i=i+1 ) {

cout << "hello";

}

initialiser les variables utiles à

la conditionmodifier les

variables utiles à la condition

1X : initialiser les variables utiles à

la conditionnX : modifier les variables utiles à

la condition

Exécution répétée – trace d’exécution

• Exemple C++ :int i;for(i=1;i<=4;i++) {

cout << "hello";

}

1valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

? 1 <= 4 ? 1valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

hello

1valeur de i

vrai?

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

hello

i vaut maintenant 22

valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

? 2 <= 4 ?

hello

2valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

?

hellohello

2valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

hellohello

i vaut maintenant 33

valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

? 3 <= 4 ?

hellohello

3valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

?

hellohellohello

3valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

hellohellohello

i vaut maintenant 44

valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

? 4 <= 4 ?

hellohellohello

4valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

?

hellohellohellohello

4valeur de i

vrai

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

hellohellohellohello

i vaut maintenant 55

valeur de i

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

? 5 <= 4 ?

hellohellohellohello

5valeur de i

faux

Exécution répétée – trace d’exécution

• Exemple C++ :int i = 0;for(i=1;i<=4;i++) {

cout << "hello";

}

?

hellohellohellohello

faux5

valeur de i

la répétition est terminé, on passe à l’instruction qui suit