initiation aux langages c et c++

27
1 Programmation Un avenir une formation , Initiation Aux Langages C et C++ Bruno Permanne 2006 Programmation Sommaire Premier exemple C Premier exemple C++ L'environnement wxDevCPP Algorithmique Algorithmique: exemple Les langages C et C++ Les structures de contrôle Bruno Permanne 2006

Upload: others

Post on 08-Feb-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

1

Programmation

U n a ven ir un e f o rm a t io n,

Initiation Aux Langages C et C++

Bruno Permanne 2006

Programmation

Sommaire

Premier exemple C

Premier exemple C++

L'environnement wxDevCPP

Algorithmique

Algorithmique: exemple

Les langages C et C++

Les structures de contrôle

Bruno Permanne 2006

2

Motivation Initiale

� Pour des raisons intellectuelles� Devenir acteur du processus informatique

� Pour des raisons culturelles� Mieux comprendre la culture du monde informatique

� Pour des raisons sociales� L’informatique est imbriquée à l’extrême dans tous les processus sociaux

� Pour des raisons professionnelles� Maîtrise(de la machinerie) pour la maintenance des réseaux de terrain

� Pour bénéficier d’un logiciel sur mesure� Application comportant la convivialité et juste les fonctionnalités nécessaires

Pourquoi apprendre à programmer ?

Retour sommaire Bruno Permanne 2006

Motivation Initiale

� C’est un langage de haut niveau� Plus proche du langage naturel

� C’est un langage de bas niveau� Plus proche de la machine

� C’est un langage pouvant être structuré� Le découpage en fonctions, modules permet une meilleure maintenabilité

� C’est le langage (de tous) les systèmes d’exploitation modernes� Windows, Unix, Linux, MacOs, etc.

� C’est un langage qui en a inspiré beaucoup d’autres� En particulier pour le développement de l’internet: PHP, JAVA

� Beaucoup d’outils et de manuels sont gratuits� Environnements disponibles et téléchargeables sur internet: DevCPP,Eclipse, etc.

Pourquoi les langages C et C++ (version moderne du C) ?

Retour sommaireBruno Permanne 2006

3

Idées reçues

� Il faut être matheux !� Non (en dehors des problèmes mathématiques), mais il faut être:

o Logique

o Rigoureux

o Inventif, créatif, imaginatif

� La programmation est une affaire de spécialistes (informaticiens ?)� Non, c’est un peu comme si seuls les professeurs de lettre étaient autorisés à lire

� Il faut être un intellectuel� Non, il ne faut pas nécessairement faire de longues études, ni manipuler des concepts

abstraits

� Il faut étudier longtemps avant d’écrire son premier programme� Non, au bout de 10 minutes, on peut tester son premier (très petit) programme; au bout

de quelques heures on peut tester son premier programme qui fait quelque chose d’utile.

Sur les compétences supposées des programmeurs !

Retour sommaireBruno Permanne 2006

Objectifs, moyens

� Organisation du cours� 3 séances de cours de de 2H (parmi les 7 prévues dont réseaux et superviseurs)

� Quelques séances de travaux pratiques (sur les 6 prévues)

� Apprentissage par l’exemple

� Outils� Environnement de développement wxDevCPP

Et organisation pédagogique

Retour sommaireBruno Permanne 2006

4

Premier exempleLe programme « Bonjour monde ! »

Retour sommaireBruno Permanne 2006

Premier exemple CLe programme « Bonjour monde ! »

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

� Ce programme est un programme ‘source’� Il est écrit dans un fichier texte (fichier ‘ascii’)� Ce fichier s’appelle par exemple Hello.c

� Par convention et pour une meilleure lisibilité, on réalise une indentation (un décalage) des portions de code de niveau inférieur, ici les lignes printf et return.

Retour sommaireBruno Permanne 2006

5

Premier exemple CLe programme « Bonjour monde ! »

� Le programme source à besoin d’être traduit pour pouvoir être exécutécar la machine (le microprocesseur) ne sait pas lire un texte !)

� Il y a deux méthodes:

– l’utilisation d’un INTERPRETEUR

– l’utilisation d’un COMPILATEUR

Fichiers source Interpréteur Exécution

non autonome

Traduction et exécution

ligne par ligne

Fichiers source Compilateur Fichier exécutable

Exécution

autonome

Traduction

Globale

Retour sommaireBruno Permanne 2006

Premier exemple CLe programme « Bonjour monde ! »

>Bonjour Monde

>>Bonjour Monde

>

� Voilà le résultat de l’exécution de ce programme� Le programme s ’exécute en mode console c’est à dire en

mode texte non fenêtré

Retour sommaireBruno Permanne 2006

6

Premier exemple CLe programme « Bonjour monde ! »

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

� Ceci est un commentaire� Un commentaire est situé entre /* et */

� En dehors des commentaires, le C et le C++ sont sensibles à la casse (majuscule / minuscule).

� Par exemple, return est différent de Return

Retour sommaireBruno Permanne 2006

Premier exemple CLe programme « Bonjour monde ! »

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

� #include est une ‘directive d’inclusion’� Elle signifie qu’il faut placer ici le texte contenu dans le

‘fichier d’entête’ stdio.h

� Les balises <> signifient que ce fichier est un fichier faisant partie du C lui-même

� Un fichier d’entête écrit par vous sera placé entre “ et “

Retour sommaireBruno Permanne 2006

7

Premier exemple CLe programme « Bonjour monde ! »

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

� int main() est une entête de définition de fonction� Une fonction est une portion de code écrite une fois

identifiée par un nom et qu’on peut réutiliser plusieurs fois (appel à la fonction).

� La fonction main est la fonction par laquelle le programme commence à s’exécuter, elle est appelée par le système d’exploitation.

� Cette fonction est obligatoire pour tout programme

Retour sommaireBruno Permanne 2006

Premier exemple CLe programme « Bonjour monde ! »

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

� Les instructions sont placées entre accolades { }

� Ici les accolades déterminent aussi les limites des actions àeffectuer par la fonction main

Retour sommaireBruno Permanne 2006

8

Premier exemple CLe programme « Bonjour monde ! »

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

� Ceci est un appel à la fonction printf

� Il s’agit d’une instruction� Une instruction se termine toujours par un point-virgule� La fonction printf permet l’affichage sur l’écran de

l’ordinateur du texte (chaine de caractère) “Bonjour monde\n"

� La définition de la fonction printf se trouve dans le fichier stdio.h

� \n est un caractère de contrôle qui provoque un retour à la ligne

Retour sommaireBruno Permanne 2006

Premier exemple CLe programme « Bonjour monde ! »

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

/* Notre premier programme en C */

#include <stdio.h>

int main()

{

printf(“Bonjour Monde\n");

return 0;

}

� Ceci est une autre instruction puisqu’elle se termine par un point-virgule

� Elle indique que la fonction main doit se terminer et retourner la valeur entière 0 (le int avant main), ce qui signifie que tout s’est bien passé

Retour sommaireBruno Permanne 2006

9

Premier exemple CLe programme « Bonjour monde ! »

/* Notre premier programme en C */

#include <stdio.h> int main(){ printf(“Bonjour Monde\n");return 0;}/* Notre premier programme en C */

#include <stdio.h> int main(){ printf(“Bonjour Monde\n");return 0;}

� En fonction des règles sur le point-virgule et sur les accolades, ce programme est le même que le précédent

Retour sommaireBruno Permanne 2006

Premier exempleLe programme « Bonjour monde ! »

Retour sommaireBruno Permanne 2006

10

Premier exemple C++Le programme « Bonjour monde ! »

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

� // est un commentaire C++, il est actif jusqu’à la fin de la ligne courante

Retour sommaireBruno Permanne 2006

Premier exemple C++Le programme « Bonjour monde ! »

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

� 2 fichiers sont inclus� Il n’est pas obligatoire de spécifier l’extension qui peut être

en fait souvent .hpp

� On peut stocker ce fichier source dans un fichier texte nommé Hello.cpp

Retour sommaireBruno Permanne 2006

11

Premier exemple C++Le programme « Bonjour monde ! »

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

� On spécifie ici l’utilisation d’un espace de noms

� L’espace de noms permet une meilleure gestion des fichiers d’entête inclus

� L’espace de noms std contient les noms des fonctions et variables standards du C++

Retour sommaireBruno Permanne 2006

Premier exemple C++Le programme « Bonjour monde ! »

� La fonction principale int main()

� Elle peut être définie aussi par int main(int argc, char *argv[])

� C’est une définition avec des paramètres� Les paramètres de la fonction main (si nécessaires) sont

passés par l’utilisateur lors du lancement du programme

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

Retour sommaireBruno Permanne 2006

12

Premier exemple C++Le programme « Bonjour monde ! »

� Toujours les accolades qui délimitent le traitement àeffectuer

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

Retour sommaireBruno Permanne 2006

Premier exemple C++Le programme « Bonjour monde ! »

� La fonction cout << est l’équivalent C++ du printf mais cout << est plus facile à utiliser.

� Cette fonction est définie dans le fichier iostream

� endl correspond au \n utilisé dans le printf

� Un programme en C fonctionne en C++ (compatibilitéascendante)

� On aurait donc pu ici utiliser le printf, mais cela n’aurait pas eu d’intérêt

Retour sommaire

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

Bruno Permanne 2006

13

Premier exemple C++Le programme « Bonjour monde ! »

� Voilà comment écrire ce programme si on n’utilise pas le namespace, la fonction cout devient std::cout

� :: est l’opérateur de résolution de portée dont nous parlerons beaucoup plus tard.

Retour sommaire

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

int main()

{

std::cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

int main()

{

std::cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

Bruno Permanne 2006

Premier exemple C++Le programme « Bonjour monde ! »

� return EXIT_SUCCESS veut dire la même chose que return 0, mais est plus évident.

Retour sommaire

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

// Notre premier programme en C ++

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, world" << endl;

return EXIT_SUCCESS;

}

Bruno Permanne 2006

14

Premier exempleLe programme « Bonjour monde ! »

Retour sommaireBruno Permanne 2006

AlgorithmiqueComment bien poser un problème

Retour sommaireBruno Permanne 2006

15

AlgorithmiqueL’algorithme

� Un algorithme est la traduction en langage naturel du découpage séquentiel d’une action

� Il ne décrit donc que des actions pouvant être identifiées comme ayant un début et une fin

� On parle d’approche neumannienne du mathématicien John Von Neumann (1903/1957), qui en est l’inventeur .

� Cette approche est différente de l’approche évènementielle que nous aborderons plus tard.

Retour sommaire

1. Commencer le programme

2. Afficher "Bonjour“

3. Demander un nombre n

4. Afficher le nombre n

5. Finir le programme

1. Commencer le programme

2. Afficher "Bonjour“

3. Demander un nombre n

4. Afficher le nombre n

5. Finir le programme

Bruno Permanne 2006

AlgorithmiqueL’arbre programmatique

Retour sommaire

Bonjour

n: entierBonjour

n: entier

Saluer

Sortir: ‘Bonjour’Saluer

Sortir: ‘Bonjour’Résultat

Sortir ‘Le nombre est: ‘

Sortir n

Résultat

Sortir ‘Le nombre est: ‘

Sortir n

SEQSEQ

Début Fin

Demander

Sortir ‘Entrez un nombre’

Entrer n

Demander

Sortir ‘Entrez un nombre’

Entrer n

Bruno Permanne 2006

16

AlgorithmiqueL’arbre programmatique

Retour sommaire

Bonjour

n: entierBonjour

n: entier

Saluer

Sortir: ‘Bonjour’Saluer

Sortir: ‘Bonjour’Résultat

Sortir ‘Le nombre est: ‘

Sortir n

Résultat

Sortir ‘Le nombre est: ‘

Sortir n

SEQSEQ

Nom du programme

Déclaration d’une variable

Demander

Sortir ‘Entrez un nombre’

Entrer n

Demander

Sortir ‘Entrez un nombre’

Entrer n

Connecteur (séquence)

Bruno Permanne 2006

AlgorithmiqueL’arbre programmatique

Retour sommaire

Bonjour

n: entierBonjour

n: entier

Saluer

Sortir: ‘Bonjour’Saluer

Sortir: ‘Bonjour’

Demander

Sortir ‘Entrez un nombre’

Entrer n

Demander

Sortir ‘Entrez un nombre’

Entrer n

Résultat

Sortir ‘Le nombre est: ‘

Sortir n

Résultat

Sortir ‘Le nombre est: ‘

Sortir n

SEQSEQ

Nom du bloc

Affichage d’un texte

Acquisition clavier

Bruno Permanne 2006

17

AlgorithmiqueL’arbre programmatique: les choix

Retour sommaire

Action

(Si condition vraie)Action

(Si condition vraie)

SISIConditionCondition

Action

(Si condition fausse)Action

(Si condition fausse)

Connecteur (SI)

Bruno Permanne 2006

AlgorithmiqueL’arbre programmatique: les choix

Retour sommaire

Action 1

(Si condition 1 vraie)Action 1

(Si condition 1 vraie)

CASCASConditions 1,2,3Conditions 1,2,3

Action

(Si conditions fausse)Action

(Si conditions fausse)

Connecteur (CAS)

Action 2

(Si condition 2 vraie)Action 2

(Si condition 2 vraie)

Action 3

(Si condition 3 vraie)Action 3

(Si condition 3 vraie)Bruno Permanne 2006

18

AlgorithmiqueL’arbre programmatique: les boucles

Retour sommaire

Action

(Tant que condition vraie,

test avant l’action)

Action

(Tant que condition vraie,

test avant l’action)

TTQTTQConditionCondition

Connecteur (Tant Que)

Bruno Permanne 2006

AlgorithmiqueL’arbre programmatique: les boucles

Retour sommaire

Action

(Tant que condition vraie,

test après l’action)

Action

(Tant que condition vraie,

test après l’action)

TTQTTQConditionCondition

Bruno Permanne 2006

19

AlgorithmiqueL’arbre programmatique: les boucles

Retour sommaire

Action 1

(exécutée un fois puis

répétée jusqu’à ce que

la condition soit vraie,

test après l’action)

Action 1

(exécutée un fois puis

répétée jusqu’à ce que

la condition soit vraie,

test après l’action)

REPREP

ConditionCondition

Action 2

(Répétée jusqu’à ce que

la condition soit vraie,

test avant l’action)

Action 2

(Répétée jusqu’à ce que

la condition soit vraie,

test avant l’action)

Connecteur (Répéter)

Bruno Permanne 2006

AlgorithmiqueL’arbre programmatique: les boucles indexées

Retour sommaire

Action

(Tant que condition vraie,

Après une seule initialisation,

test avant l’action,

évolution après l’action)

Action

(Tant que condition vraie,

Après une seule initialisation,

test avant l’action,

évolution après l’action)

POURPOURInitialisation; Condition; EvolutionInitialisation; Condition; Evolution

Connecteur (d’itération)

Bruno Permanne 2006

20

AlgorithmiqueL’arbre programmatique: les boucles indexées

Retour sommaire

Action 1

Afficher i;Action 1

Afficher i;

POURPOUR(Entier) i0; i<10; i i+1(Entier) i0; i<10; i i+1

>0

>1

>2

>3

>4

>5

>6

>7

>8

>9

>

>0

>1

>2

>3

>4

>5

>6

>7

>8

>9

>

SEQSEQ

Action 2

Aller à la ligne;Action 2

Aller à la ligne;

Bruno Permanne 2006

AlgorithmiqueL’arbre programmatique: exemple

1. Commencer le programme

2. Afficher "bonjour",

3. Demander un nombre n,

4. Afficher le nombre n,

5. Demander "voulez vous recommencer VRAI/FAUX",

6. TANT QUE réponse == VRAI aller en (3),

7. Afficher "au revoir",

8. Finir le programme.

1. Commencer le programme

2. Afficher "bonjour",

3. Demander un nombre n,

4. Afficher le nombre n,

5. Demander "voulez vous recommencer VRAI/FAUX",

6. TANT QUE réponse == VRAI aller en (3),

7. Afficher "au revoir",

8. Finir le programme.

Retour sommaireBruno Permanne 2006

21

AlgorithmiqueL’arbre programmatique: exemple

Retour sommaire

r == VRAIr == VRAI

SEQSEQ

Bonjour

n: entier

r: booléen

Bonjour

n: entier

r: booléen

Saluer 1

Sortir « bonjour »;Saluer 1

Sortir « bonjour »;

TTQTTQ

SEQSEQ

Demander

Sortir « Entrez un nombre »;

Entrer nb;

Demander

Sortir « Entrez un nombre »;

Entrer nb;

Afficher 1

Sortir « Le nombre est: »;

Sortir nb;

Afficher 1

Sortir « Le nombre est: »;

Sortir nb;Afficher 2

Sortir « Recommencer ?

(VRAI / FAUX): »;

Entrer r;

Afficher 2

Sortir « Recommencer ?

(VRAI / FAUX): »;

Entrer r;

Saluer 2

Sortir « Au revoir »;Saluer 2

Sortir « Au revoir »;

Bruno Permanne 2006

Les langages C et C++Comprendre les bases

Retour sommaireBruno Permanne 2006

22

Les langages C et C++

� Toute variable doit être déclarée avant d’être utilisée

� La déclaration réserve la quantité de mémoire nécessaire au type demandé

Les variables (et les constantes)

Retour sommaire

int tab[56], tab2[10][12];

tab[34]=32000;

int[n]

int [n][m]

Tableau de n ou n*m entiers

(2*n ou 2*n*m octets)

const double pi=3.141592653589793;

double x = 4.56E-7;

doubleNombre flottant double

(8 octets)

char mc[]="Ma chaine";

charreponse[10];

char[n]Chaine de n caractères

(n+1 octets)

unsigned char c='A';charCaractère signé

string mc="Ma chaine";stringChaine de caractères C++

int total, n=0;

total = -45678;

intEntier

(2 octets)

unsigned char c, d;

c=0x4D; d=48;

unsigned

charCaractère non signé

(1 octet)

Exemples

(déclarations / affectations)

DéclarationType

Bruno Permanne 2006

Les langages C et C++

� unaires, binaires ou ternaires

� attention au types retournés en cas de mélange de variables

Les expressions

Retour sommaire

int n;

double a,b;

a=b=56.9; // affectation multiple

n = (a!=b) ? 10 :-1;

affecter conditionnellement

double x;

int i=33, j=2;

x = (n==2) ? 3*a : 0.0;

x = (n=j) ? 3*i : 0.0;

x = (double) ((n=2) ? 3*i : 0.0);

un calcul avec affectation conditionnelle et changement de type de variable

compteur = compteur+10;

compteur+=10 // écriture condensée

additionner

int compteur=0;

compteur++;

incrémenter

ExemplesFonction

Bruno Permanne 2006

23

Les langages C et C++

� Entrée par le clavier cin >> pour le C++ et scanf pour le C

� Sortie écran cout << pour le C++ et printf pour le C

� Inclure iostream ou stdlib.h

Les instructions d'entrée/sortie

Retour sommaire

cout<<"resultat de "<<x<<"/10="<<y<<endl;Affichage C°°

cin>>compteur;lire un nombre C++

scanf("%d",&compteur);lire un nombre C

int x=67, compteur;

float y;

y=(float)x/10;

printf("résultat de %d/10 =%f\n",x,y);

Affichage C

ExemplesFonction

Bruno Permanne 2006

Les langages C et C++Exemples de synthèse

Retour sommaire

f2+=0x30;

cout <<f2<<endl;

cout <<hex;

cout <<(int)f2<<endl;

cout <<dec;

cout <<b<<1<<endl;

cout <<(b<<1)<<endl;

cout <<"b<<1"<<endl;

flux de sortie standard

unsigned char f2, f3=2;

flag=!flag;

f2=~(unsigned char)++flag;

f2 ^= 0xFF;

f3 |= f2;

f2=(unsigned char)flag<<2|f3;

logiques

bool flag;

int a=4, b=5, c;

flag=(a==b); flag=(a!=b);flag=(a>b);

flag=(a>=b);flag=(a<b);flag=(a<=b);

flag=(c=b);

flag=(a==b)||(b==c);

flag=(a>=b)&&(b<c);

comparaison

ExemplesFonction

Bruno Permanne 2006

24

Les langages C et C++Les structures de contrôle

Retour sommaire

Action

(Si condition vraie)Action

(Si condition vraie)

SISICondition

Condition

// test de l'instruction if

If(c==4) cout<<"c vaut 4"<<endl; // test de l'instruction if

If(c==4) cout<<"c vaut 4"<<endl;

Bruno Permanne 2006

Les langages C et C++Les structures de contrôle

Retour sommaire

Action

(Si condition vraie)Action

(Si condition vraie)

SISICondition

Condition

// test de l'instruction if else

If(c==4) cout<<"c vaut 4<<endl;

else cout<<"c ne vaut pas 4"<<endl;

// test de l'instruction if else

If(c==4) cout<<"c vaut 4<<endl;

else cout<<"c ne vaut pas 4"<<endl;

Action

(Si condition fausse)Action

(Si condition fausse)

Bruno Permanne 2006

25

Retour sommaire

Action 1

(Si condition 1 vraie)Action 1

(Si condition 1 vraie)

CASCAS

Conditions 1,2,3Conditions 1,2,3

Action

(Si conditions fausse)Action

(Si conditions fausse)

Action 2

(Si condition 2 vraie)Action 2

(Si condition 2 vraie)

Action 3

(Si condition 3 vraie)Action 3

(Si condition 3 vraie)

// test de l'instruction switch

char choix;

cin >> choix;

switch(choix)

{

case 'A':cout <<"c'est A!";

break;

case 'B':cout <<"c'est B!";

break;

case 'C':cout <<"c'est C!";

break;

default: cout <<"c'est quoi ?";

}

// test de l'instruction switch

char choix;

cin >> choix;

switch(choix)

{

case 'A':cout <<"c'est A!";

break;

case 'B':cout <<"c'est B!";

break;

case 'C':cout <<"c'est C!";

break;

default: cout <<"c'est quoi ?";

}Bruno Permanne 2006

Retour sommaire

// test de l'instruction while

int i[6]={0,6,78,9,52,-1};

unsigned int j=0;

while(i[j]>0)

{

j++;

cout <<"i[j] est positif! "<<endl;

}

// test de l'instruction while

int i[6]={0,6,78,9,52,-1};

unsigned int j=0;

while(i[j]>0)

{

j++;

cout <<"i[j] est positif! "<<endl;

}

Action

(Tant que condition vraie,

test avant l’action)

Action

(Tant que condition vraie,

test avant l’action)

TTQTTQ

ConditionCondition

Les langages C et C++Les structures de contrôle

Bruno Permanne 2006

26

Retour sommaire

// test de l'instruction do while

unsigned int j=0;

do cout << j++; while(TRUE!=FALSE);

// test de l'instruction do while

unsigned int j=0;

do cout << j++; while(TRUE!=FALSE);

Action

(Tant que condition vraie,

test après l’action)

Action

(Tant que condition vraie,

test après l’action)

TTQTTQ

ConditionCondition

Les langages C et C++Les structures de contrôle

Bruno Permanne 2006

Retour sommaire

// test de l'instruction repeat until break

double x;

x=1.1;

repeat

{

x*=1.1;

cout<<x<<' '; // action 1

if (x>100.0) break;

cout<<x<<endl; // action 2

} until (TRUE==FALSE);

// test de l'instruction repeat until break

double x;

x=1.1;

repeat

{

x*=1.1;

cout<<x<<' '; // action 1

if (x>100.0) break;

cout<<x<<endl; // action 2

} until (TRUE==FALSE);

Action 1

(exécutée un fois puis

répétée jusqu’à ce que

la condition soit vraie,

test après l’action)

Action 1

(exécutée un fois puis

répétée jusqu’à ce que

la condition soit vraie,

test après l’action)

REPREP

ConditionCondition

Action 2

(Répétée jusqu’à ce que

la condition soit vraie,

test avant l’action)

Action 2

(Répétée jusqu’à ce que

la condition soit vraie,

test avant l’action)

Les langages C et C++Les structures de contrôle

Bruno Permanne 2006

27

Retour sommaire

// test de l'instruction for

double x,phi;

const double pi=3.141592;

for(phi=0;phi<2*pi;phi+=pi/60)

{

x=sin(phi);

cout<<"sin("<<phi<<")="<<x<<endl;

}

// test de l'instruction for

double x,phi;

const double pi=3.141592;

for(phi=0;phi<2*pi;phi+=pi/60)

{

x=sin(phi);

cout<<"sin("<<phi<<")="<<x<<endl;

}

Action

(Tant que condition vraie,

Après une seule initialisation,

test avant l’action,

évolution après l’action)

Action

(Tant que condition vraie,

Après une seule initialisation,

test avant l’action,

évolution après l’action)

POURPOUR

Initialisation; Condition; EvolutionInitialisation; Condition; Evolution

Les langages C et C++Les structures de contrôle

Bruno Permanne 2006

Programmation

U n a ven ir un e f o rm a t io n,

Fin de la première partie

Bruno Permanne 2006