Programmation en Service ILIA Faculté Polytechnique de Mons - Moodle UMONS
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Programmation en
Mohammed BENJELLOUN
Service ILIA
(Informatique, Logiciel & Intelligence Artificielle)
Faculté Polytechnique de Mons
Mohammed.Benjelloun@umons.ac.be
2020-2021
M. BENJELLOUN : BaB1 2020-2021 - 1 - UMONSObjectifs
Être capable de construire des bons programmes
Des programmes : corrects, efficaces, robustes, relativement faciles à
comprendre, à modifier et à maintenir.
→ → Programmer de manière modulaire
Qualités attendues d'un programme
Clarté, Simplicité, Efficacité, Modularité, Extensibilité.
Lors des séances de exercices, où la présence est obligatoire comme
aux TPs, un complément de matière sera abordé. On ne peut donc
considérer, le syllabus et ce document comme complets.
Pré-requis : Aucun
Microsoft VISUAL STUDIO COMMUNITY (2019) GRATUIT
M. BENJELLOUN : BaB1 2020-2021 - 2 - UMONSOrganisation du cours
En 1ere et 2d
TP4 5%
1ere Théorie : 50% et Pratique 50% Tests 5%
Examen 90%
TH
PRQ
Labos et Exercices Obligatoires
M. BENJELLOUN : BaB1 2020-2021 - 3 - UMONSOrganisation du cours
…
https://moodle.umons.ac.be/
Utilisation du débuggeur
Vidéos
Syllabus.pdf
Codes sources Document
C++ Programmes ‘’Environnement logiciel’’
Transp. Info I Note relative à l’organisation
de l’examen pratique
Énoncé des TPs
120 tests formatifs sur C++
Préparez les TPs
C'est en forgeant que l'on devient forgeron, et c'est en programmant que
euh... Peut-être …
M. BENJELLOUN : BaB1 2020-2021 - 5 - UMONSSyllabus
Codes
Ce qu’il faut au moins retenir :
L’affectation d’un tableau à un autre est interdite de la manière suivante :
int TabA[]= {1,2,3} , TabB[]={5,6,7};
TabA = TabB;
…
Chapitre 10: Quelques erreurs à éviter
Int i,j , Correction → int i, j ;
M. BENJELLOUN : BaB1 2020-2021 - 6 - UMONSUMONS - Faculté Polytechnique
Service d’ILIA Syllabus
Codes
Travaux Pratiques de
Structures de données et algorithmes
par
Mohammed BENJELLOUN
Avec la participation de :
E. Malengreau,
M. El Adoui, Ce qu’il faut au moins retenir :
O. Debauche
Y. Amkrane L’affectation d’un tableau à un autre est interdite de la manière suivante :
A. Guttadauria int TabA[]= {1,2,3} , TabB[]={5,6,7};
TabA = TabB;
…
Année académique 2019-2020
Chapitre 10: Quelques erreurs à éviter
Int i,j , Correction → int i, j ;
M. BENJELLOUN : BaB1 2020-2021 - 7 - UMONSOrganisation des TP
Consignes Préparez les TPs
Si malgré la préparation du TP, vous n’avez pas terminé à la fin de la séance, vous devrez le continuer
seul et poser vos éventuelles questions avant le TP suivant. Vous pouvez venir nous les poser
directement, durant les ateliers du mercredi ou les poser via le forum du cours.
Cette remarque est valable pour tous les travaux pratiques de ce cours.
Pour rappel, les travaux pratiques sont obligatoires.
Nos Emails :
Mohammed.Benjelloun@umons.ac.be
Edith.malengreau@umons.ac.be
...
But TP1:
manipuler les principales instructions de base → Séance Exercice 1
Microsoft VISUAL STUDIO COMMUNITY (2017, 2019) GRATUIT
M. BENJELLOUN : BaB1 2020-2021 - 8 - UMONSOrganisation des TP
Introduction
Consignes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TP 1 Instructions de base
1.1 Objectifs de la séance . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Rappels syntaxiques . . . . . . . . . . . . . . . . . . . . . .. . . . . . . .
1.3 Le jeu de l’urne (TP1_1). . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 Le jeu du nombre caché (TP1_2). .. . . . . . . . . . . . . . . . .
1.5 Pour ceux qui ont terminé: Polynôme du second degré (TP1_3)
TP 2 Tableaux et instruction switch
2.1 Objectifs de la séance . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Rappels théoriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Application (TP2_1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Pour ceux qui ont terminé: Calculer l’erreur absolue (TP2_2)
TP 3 Les Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 Objectifs de la séance . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Rappels théoriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Application . . . . . . . . . . . . . . . . . . . . . .
M. BENJELLOUN : BaB1 2020-2021 - 9 - UMONS➢TP1_1 Le jeu de l’urne
Le jeu de l’urne (cours théorique) consiste à tirer au sort 2 boules dans une urne.
- si les boules sont de même couleur, on remet une boule noire dans l'urne
- sinon, on remet une boule verte
Le jeu se termine lorsqu'il ne reste plus qu'une boule dans l'urne. Sa couleur?
NV 0,
NN 0,
NV+NN 1
Quelle est la couleur de la dernière boule connaissant les nombres
initiaux NV et NN?
M. BENJELLOUN : BaB1 2020-2021 - 10 - UMONS1.4 Le jeu du nombre caché (TP1_2)
Écrire un programme qui choisira un nombre entier aléatoire compris entre 0 et 100,
puis le fera deviner à l’utilisateur au moyen d’essais successifs :
– le programme demandera au joueur d’entrer un nombre ; si le joueur devine le bon
nombre, il a gagné, le programme lui affiche « Bravo, c’est trouvé ! » et s’arrête.
– si le joueur ne donne pas le bon nombre, le programme lui précise « Trop petit » ou
« Trop grand », puis lui demande un autre essai, jusqu’à ce que le joueur trouve.
Dans un premier temps, le nombre à deviner sera saisi au clavier et sera nommé
chifAcher.
Pour vous aider, voici le début du programme :
1 # include
2 using namespace std ;
3 void main () {
4 int chiffre , chifAcher ; / / chifAcher : c’est le chiffre que l’on cherche
5 cout chifAcher ;
7 cout1.5 Pour ceux qui ont terminé (TP1_3)
Écrire un programme C++ qui calcule les racines d’un polynôme du second degré à
coefficients réels. Examinez toutes les possibilités (racines réelles, complexes,
doubles, infinité ou inexistence de solutions).
ax2 + bx + c = 0
1 si a=b=c=0 // infinité de solutions
2 si a=b=0 et c !=0 // aucune solution
3 si a=0, b !=0 et c !=0 // racine réelle de valeur -c/b
4 si a!=0 , b !=0 et c !=0
5 delta = b*b - 4.0* a*c
6 si delta =0 // racine double
7 racine1 = racine2 = -b /(2* a)
8 sinon si delta > 0 //2 racines réelles
9 temp = sqrt ( delta )
10 racine1 = (-b + temp ) /(2* a)
11 racine2 = (-b - temp ) /(2* a)
12 afficher ( racine1 )
13 afficher ( racine2 )
14 sinon // 2 racines complexes conjuguées
15 temp = sqrt (- delta )
16 reel = -b /2* a imag = temp /2* a
17 afficher ("z1 = reel + imag *i")
18 afficher ("z2 = reel - imag *i")
M. BENJELLOUN : BaB1 2020-2021 - 12 - UMONS➢TP4
4.3.1 Première étape
Écrire un programme qui traite un vecteur de nombres entiers et de taille
maximale égale à vingt (taille max = 20) et qui gère en boucle le menu ci-dessous
composé de 7 opérations.
Les opérations 5 à 7 seront communiquées lors de la séance de travaux
pratiques.
1. Saisie du vecteur et affichage de ses données.
2. Calcul (1 seule fonction) et affichage du minimum et du maximum du vecteur.
3. Échange de position maximum → minimum et affichage du vecteur.
4. Ajout d’un élément au milieu du vecteur et affichage du vecteur.
5. …………………………………
6. …………………………………
7. …………………………………
8. Quitter.
Consignes
…
M. BENJELLOUN : BaB1 2020-2021 - 13 - UMONSExamen pratique:
TPs Exercices
Voir exemples fin du chapitre 8
….. + 4 dans Moodle
….
….
Note relative à l’organisation de
…. l’examen pratique d’Informatique :
Moodle
M. BENJELLOUN : BaB1 2020-2021 - 14 - UMONSQualité d’un programme
Architecture claire (conception répondant aux spécifications )
Algorithmes suite d'instructions permettant de résoudre un problème en
un nombre fini d'instructions et un temps fini d'exécution.
Structures de données
“Comment organiser au mieux l’information
dans un programme ?”
Tableaux !! Listes !!!
Structures !! Classes !?
Réutilisabilité
Tests de robustesse (identifier les comportements problématiques )
Documentation
M. BENJELLOUN : BaB1 2020-2021 - 15 - UMONS(suite finie d’opérations élémentaires) (langage)
(pseudo-code/organigramme)
{
char Rep;
Ce programme doit gérer en boucle Rep = ‘X’ ;
le menu suivant : coutPourquoi utiliser C++ ?
un langage relativement propre,
des objets pour structurer,
gestion précise de la mémoire,
un peu moins rapide que C mais plus rapide que Java ou Python,
un grand nombre de librairies disponibles.
M. BENJELLOUN : BaB1 2020-2021 - 17 - UMONSPourquoi utiliser C++ ?
Quel langage de programmation apprendre pour créer un jeu vidéo ?
• C et C++ : les langages de référence. Très efficaces, ils sont toutefois difficiles
à apprendre.
• C# : fortement inspiré du C++ et du Java, mais également complexe à apprendre.
• Java : légèrement plus facile à apprendre, mais un peu moins performant.
• Python : très facile à apprendre, mais moins performant.
Quel langage de programmation apprendre pour se lancer dans l’intelligence artificielle ?
• Python :
• C++ :
• Java :
• Prolog :
M. BENJELLOUN : BaB1 2020-2021 - 18 - UMONSMoi, ingénieur…
que vais-je bien pouvoir faire ?
Pour commencer, ?? programmer:
Y = X2, Z = X3 et
BaB1FPMs
M. BENJELLOUN : BaB1 2020-2021 - 19 - UMONSPour commencer
Fonction main() de type void ou int
Identificateurs (nom variables, …)
Types de données (entier, réel, …)
Variables : déclarations et initialisations
Entrées /sorties : cin et cout
Directives préprocesseur
M. BENJELLOUN : BaB1 2020-2021 - 20 - UMONSPour commencer
Tout programme doit avoir un point d’entrée nommé main()
void main() // Ceci est un commentaire sur 1 seule ligne
{ /* Ceci est un commentaire sur plusieurs lignes pour signaler
qu’il s’agit de notre premier programme qui est vide
on placera ici une liste d’instructions en C++ */
}
int main() // La fonction ‘main()’ peut être précédée par int au lieu de void
{
Type_de_donnée Donnée; // Déclaration des identificateurs/variables
Instruction 1;
/* Le programme principal commençant par main()
Instruction 2; peut contenir des instructions se terminant par ‘ ; ’ */
.. .
return 1; // Si on utilise int main(), il faut retourner un entier (p.e: return 1)
}
M. BENJELLOUN : BaB1 2020-2021 - 21 - UMONSPour commencer
Un identificateur ne peut pas être un mot réservé du langage :
Les mots réservés du langage C++
doivent être écrits en minuscules.
M. BENJELLOUN : BaB1 2020-2021 - 22 - UMONSPour commencer
Les identificateurs nomment les objets C++ (fonctions, variables ...).
Le C++ est sensible à la case (case sensitive; distingue les minuscules des majuscules)
Exemple: AB, Ab, ab
sont des identificateurs valides et tous différents.
Identificateurs valides :
xx y1 somme_5 _position Noms Prog_1_V0
Identificateurs invalides :
3eme commence par un chiffre
x#y caractère non autorisé (#)
no-commande caractère non autorisé (-)
taux change caractère non autorisé (espace)
M. BENJELLOUN : BaB1 2020-2021 - 23 - UMONSPour commencer
Types de données en langage C++
Type de donnée Signification Plage de valeurs acceptée
char Caractère -128 à 127
unsigned char Caractère non signé 0 à 255
short int Entier court -32 768 à 32 767
unsigned short int Entier court non signé 0 à 65 535
int Entier -32 768 à 32 767
-2 147 483 648 à 2 147 483 647
unsigned int Entier non signé 0 à 65 535
0 à 4 294 967 295
long int Entier long -2 147 483 648 à 2 147 483 647
unsigned long int Entier long non signé 0 à 4 294 967 295
float Flottant (réel) -3.4*10-38 à 3.4*1038
double Flottant double -1.7*10-308 à 1.7*10308
long double Flottant double long -3.4*10-4932 à 3.4*104932
bool Booléen Prend deux valeurs : 'true' et 'false' mais une conversion
implicite (valant 0 ou 1) est faite par le compilateur lorsque l'on
affecte un entier.
M. BENJELLOUN : BaB1 2020-2021 - 24 - UMONSPour commencer
void main()
{
int X, Y; // déclaration de deux variables X et Y. Instruction se termine par ‘;’
float racine = 1.2; // déclaration et initialisation de la variable ‘racine’ de type float
X= 5; // initialisation de la variable X à 5
// affectation de la valeur de -X à Y. Donc Y = -5
Y= -X;
}
Variables : déclarations Initialisations/Affectations
Syntaxe : Type identificateur1, id2,…. ;
int i=9; ou int i(9); int i;
Exemples: char c1, c2, c3 ; i=9;
int i, j, var_ent ;
float f, variable ; char c1= 'A'; ou char c1('A’); ou
double D, Mavariable ; char c1;
c1= 'A';
M. BENJELLOUN : BaB1 2020-2021 - 25 - UMONSPour commencer
void main()
{
int X, Y; // déclaration de deux variables X et Y. Instruction se termine par ‘;’
float racine = 1.2; // déclaration et initialisation de la variable ‘racine’ de type float
X= 5; // initialisation de la variable X à 5
// affectation de la valeur de -X à Y. Donc Y = -5
Y= -X;
}
Les entrées /sorties : cin et cout (saisie clavier/affichage écran)
• cout, le flux standard de sortie, habituellement associé à l'écran,
Syntaxe : cout var1 >> var2 >> var3 … ; 7
M. BENJELLOUN : BaB1 2020-2021 - 26 - UMONSPour commencer
void main()
{
int X, Y; // déclaration de deux variables X et Y. Instruction se termine par ‘;’
float racine = 1.2; // déclaration et initialisation de la variable ‘racine’ de type float
X= 5; // initialisation de la variable X à 5
// affectation de la valeur de -X à Y. Donc Y = -5
Y= -X;
}
#include // Directive préprocesseur/ Pour utiliser cout et cin
using namespace std;
void main( ) {
int X, Y;
cout > X ; // Attend une saisie de X au clavier
Y = - X ;
coutMoi, ingénieur…
que vais-je bien pouvoir faire ?
Pour commencer, j’aimerais programmer:
Y = X2, Z = X3 et
#include // pour cout et cin
#include // pour sqrt( )
using namespace std;
Variables : déclarations void main() {
int X, Y, Z ; // variables
Syntaxe : Type identificateur1, id2,…. ; float racine;
cout > X;
Y= X * X ; // X²
int i=9; ou int i; … i=9;
Z= Y * X ; // X³
racine = sqrt(X);
coutMoi, ingénieur…
que vais-je bien pouvoir faire ?
Pour commencer, j’aimerais programmer:
Y = X2, Z = X3 et
#include // pour cout et cin
Directives du préprocesseur #include // pour sqrt( )
accès avant la compilation
using namespace std;
Exemples de librairies standards: void main() {
int X, Y, Z ; // variables (ceci est un commentaire)
Gestion des Entrées-Sorties standard float racine;
cout > X;
Traitement de chaînes de caractères
Y= X * X ; // X²
Z= Y * X ; // X³
racine = sqrt(X);
Contrôler les paramètres d'affichage
coutMerci BaB1FPMs M. BENJELLOUN : BaB1 2020-2021 - 30 - UMONS
Pour commencer
Les entrées /sorties : cin et cout
Formatage de la présentation → écran
coutPour commencer
Les entrées /sorties : cin et cout
Formatage de la présentation → écran
coutPour commencer
Fonction main() de type void ou int
Identificateurs (nom variables, …)
Types de données (entier, réel, …)
Variables : déclarations et initialisations
Entrées /sorties : cin et cout
Directives préprocesseur
M. BENJELLOUN : BaB1 2020-2021 - 33 - UMONS#include
using namespace std; Exercice
void main() {
int x=5;
float y;
const int W = 6 ;
coutLes opérateurs
Les opérateurs arithmétiques : +, -, /, …
Les opérateurs de comparaison : >, =,Les opérateurs arithmétiques
Le C++ propose les opérateurs suivants :
+ addition
- soustraction
* multiplication
/ division
% modulo (reste de la division entière )
% ne peut être utilisé qu'avec des
entiers
7/2 3
7.0/2
7/2.0
7.0/2.0 3.5
M. BENJELLOUN : BaB1 2020-2021 - 36 - UMONSLes opérateurs arithmétiques
Le C++ propose les opérateurs suivants :
+ addition
- soustraction
* multiplication
/ division
% modulo (reste de la division entière )
% ne peut être utilisé qu'avec des
entiers
Modulo : C=A%B;
C = 4%2 = 0; 5%2 = 1; 8%3= 2;
C=A%2 Si C=0 alors A est pair sinon
Si C=1 A est impair
M. BENJELLOUN : BaB1 2020-2021 - 37 - UMONSLes opérateurs arithmétiques
Le C++ propose les opérateurs suivants :
+ addition
- soustraction
* multiplication
/ division
% modulo (reste de la division entière )
% ne peut être utilisé qu'avec des
entiers
…
void main() {
int i = 6, j = 4, k;
float f = 6.0, g = 4.0, h;
k = i / j; // k= 6/4 = 1
h = f / g; // h = 6.0/4.0 = 1.5
h = i / j; // h = 6/4 = 1.0
}
M. BENJELLOUN : BaB1 2020-2021 - 38 - UMONSLes opérateurs
Les opérateurs arithmétiques : +, -, /, …
Les opérateurs de comparaison : >, =,Les opérateurs de comparaison
< plus petit
plus grand
>= plus grand ou égal
== égal
! != différent
Le résultat d'une expression logique est un booléen. Il vaut true si elle est vraie et false sinon.
Réciproquement, toute valeur non nulle est considérée comme vraie et la valeur nulle comme fausse.
Les opérateurs logiques
&& et
!
|| ou (non exclusif)
! non
M. BENJELLOUN : BaB1 2020-2021 - 40 - UMONSContractions d'opérateurs
Pour += -= *= /= %= &= |= ^= =
a += 15; i *= j + 5;
a = a + 15; i = i * (j + 5);
Incrément et décrément
int i = 5, j = 4;
++ incrément : i++ ou ++i
est équivalent à i += 1 ou i = i + 1 i++; // i vaudra 6
- - décrément --j; // j vaudra 3
++i; // i vaudra 7
j++; // j vaudra 4
j++; // j vaudra 5
j += i ; // j vaudra 5 + 7
M. BENJELLOUN : BaB1 2020-2021 - 41 - UMONSLes structures de contrôle
Alternative: if-else
Itérations: for, while, do-while
Rupture de Contrôle: break, continue, return …
Choix Multiple: switch-case
M. BENJELLOUN : BaB1 2020-2021 - 42 - UMONSLes structures de contrôle
programme programme
oui non
Condition
vraie oui Condition non
Bloc
vraie d’instructions
Bloc 1 Bloc 2
d’instructions d’instructions Bloc Suite du
d’instructions programme
oui
Condition
vraie
non
Suite du programme
Suite du programme
if-else while do-while
M. BENJELLOUN : BaB1 2020-2021 - 43 - UMONSLes décisions - if … else
Selon qu’une certaine condition est vérifiée ou non, on exécutera une ou plusieurs instructions.
programme
if (Condition vraie) if ( X==Y) {
oui Condition non { X= X+1;
vraie BLOC 1 D'INSTRUCTIONS Y= Y+2;
} }
Bloc 1 Bloc 2
d’instructions d’instructions else else {
{ X = X-1 ;
BLOC 2 D'INSTRUCTIONS Y = Y-2 ;
} }
Suite du programme
if (Condition vraie) if (aLes décisions - if sans else
if (Condition vraie)
oui non
Condition
vraie
{
instruction 1;
Bloc 1 instruction 2;
d’instructions instruction 3;
…
instruction N;
}
Suite du programme
if (Condition vraie) if ( temperature > 70.0)
instruction 1; coutLes décisions – if emboîtés
if ( ) if ( )
else if () else if ()
else if () else if ()
else if () else if ()
else else
◼ else est associé avec le if le plus proche
if(i >= 0) if(i >= 0) {
if(i > 1000) cout 1000) coutLes décisions – if emboîtés
exemple
#include
using namespace std;
int main() {
int a, b;
cout > a;
cout > b;
if (a > b)
coutLes décisions - if … else
exemple
int i = -1;
if(i < 0){ iLes décisions - if … else
exemple
int i = 1;
if(i < 0) {
coutLes décisions - if … else
exemple
int i = 1;
if(i < 0)
coutLes structures de contrôle
Alternative: if-else
Itérations: for, while, do-while
Rupture de Contrôle: break, continue, return …
Choix Multiple: switch-case
M. BENJELLOUN : BaB1 2020-2021 - 51 - UMONSLes itérations – for
#include
using namespace std;
void main()
{
int nb_f=0;
action;
nb_f++;
action;
nb_f++;
…
action;
nb_f++;
…
}
M. BENJELLOUN : BaB1 2020-2021 - 52 - UMONSLes itérations – for
#include
using namespace std;
void main()
{
int nb_f=200;
action;
nb_f--;
action;
nb_f--;
action;
nb_f--;
…
}
M. BENJELLOUN : BaB1 2020-2021 - 53 - UMONSLes itérations – for
#include #include
using namespace std; using namespace std;
void main() { void main() {
int nb_f=0; int nb_f=200;
action; action;
nb_f++; nb_f--;
action; action;
nb_f++; nb_f--;
action; action;
nb_f++; nb_f--;
… …
} }
: évaluée 1 seule fois en début de boucle
: évaluée avant chaque itération.
for (;;) Si vrai alors les
{ instructions de la boucle sont exécutées
; Sinon
} la boucle est terminée
évaluée à la fin de chaque itération
M. BENJELLOUN : BaB1 2020-2021 - 54 - UMONSLes itérations – for
#include #include
using namespace std; using namespace std;
void main() { void main() {
int nb_f=0; int nb_f=200;
action; action;
nb_f++; nb_f--;
action; action;
nb_f++; nb_f--;
action; action;
nb_f++; nb_f--;
… …
} }
for (nb_f = 0; nb_f 0; nb_f--) {
action; action;
} for (nb_f = 0; nb_f 0; ){
action; action;
nb_f ++; nb_f--;
} }
M. BENJELLOUN : BaB1 2020-2021 - 55 - UMONSLes itérations – for
La boucle for est une structure de contrôle de programmation qui permet de répéter
l'exécution d’une ou plusieurs actions.
for (i = 0; iwhile = Tant que ... Faire ...
Boucle pré-testée
tant que (expression vraie) tant que, pas jusqu’à ce que !
faire {
BLOC D'INSTRUCTIONS
}
Organigramme: Syntaxe:
while (Condition vraie) int i=1, Som=0;
oui
Condition
non { while (iwhile = Tant que ... Faire ...
Exemples
i=1; Interieur 1
while(iwhile = Tant que ... Faire ...
Exemples
i=1; Interieur 1
while(ido while = REPETER … tant que
(garantit l’exécution au moins une fois)
programme
do
Bloc { /* bloc d'instructions */
d’instructions
............;
............;
oui
Condition
non
} while (Condition vraie);
vraie
Suite du programme
int j = 5; j = 5
do { j = 4
coutLes itérations
for( init ; (Condition vraie); itération) for (i = 0; iLes structures de contrôle
Alternative: if-else
Itérations: for, while, do-while
Rupture de Contrôle: break, continue, return …
Choix Multiple: switch-case
M. BENJELLOUN : BaB1 2020-2021 - 62 - UMONSVous pouvez aussi lire