Initiation Aux Langages C et C++
Transcript of Initiation Aux Langages C et C++
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