Upload
evrard-chapelle
View
110
Download
2
Embed Size (px)
Citation preview
Programmation
Un avenir une formation,
Initiation Aux Langages C et C++
Bruno Permanne 2006
ProgrammationSommaire
Premier exemple CPremier exemple C++L'environnement wxDevCPPAlgorithmiqueAlgorithmique: exempleLes langages C et C++Les structures de contrôle
Bruno Permanne 2006
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
Idées reçues
Il faut être matheux ! Non (en dehors des problèmes mathématiques), mais il faut être:
o Logiqueo Rigoureuxo 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
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
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écutionnon autonome
Traduction et exécutionligne par ligne
Fichiers source Compilateur Fichier exécutable
Exécutionautonome
TraductionGlobale
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
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
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
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 ligneRetour sommaire
Bruno 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
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
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
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
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êtRetour 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
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
Premier exempleLe programme « Bonjour monde ! »
Retour sommaireBruno Permanne 2006
AlgorithmiqueComment bien poser un problème
Retour sommaireBruno Permanne 2006
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 programme2. Afficher "Bonjour“3. Demander un nombre n4. Afficher le nombre n5. Finir le programme
1. Commencer le programme2. Afficher "Bonjour“3. Demander un nombre n4. Afficher le nombre n5. Finir le programme
Bruno Permanne 2006
AlgorithmiqueL’arbre programmatique
Retour sommaire
Bonjourn: entier
Bonjourn: entier
SaluerSortir: ‘Bonjour’
SaluerSortir: ‘Bonjour’
RésultatSortir ‘Le nombre est: ‘
Sortir n
RésultatSortir ‘Le nombre est: ‘
Sortir n
SEQSEQ
Début Fin
DemanderSortir ‘Entrez un nombre’
Entrer n
DemanderSortir ‘Entrez un nombre’
Entrer n
Bruno Permanne 2006
AlgorithmiqueL’arbre programmatique
Retour sommaire
Bonjourn: entier
Bonjourn: entier
SaluerSortir: ‘Bonjour’
SaluerSortir: ‘Bonjour’
RésultatSortir ‘Le nombre est: ‘
Sortir n
RésultatSortir ‘Le nombre est: ‘
Sortir n
SEQSEQ
Nom du programme
Déclaration d’une variable
DemanderSortir ‘Entrez un nombre’
Entrer n
DemanderSortir ‘Entrez un nombre’
Entrer n
Connecteur (séquence)
Bruno Permanne 2006
AlgorithmiqueL’arbre programmatique
Retour sommaire
Bonjourn: entier
Bonjourn: entier
SaluerSortir: ‘Bonjour’
SaluerSortir: ‘Bonjour’
DemanderSortir ‘Entrez un nombre’
Entrer n
DemanderSortir ‘Entrez un nombre’
Entrer n
RésultatSortir ‘Le nombre est: ‘
Sortir n
RésultatSortir ‘Le nombre est: ‘
Sortir n
SEQSEQ
Nom du bloc
Affichage d’un texte
Acquisition clavierBruno Permanne 2006
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
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)
TTQTTQ ConditionCondition
Bruno Permanne 2006
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
AlgorithmiqueL’arbre programmatique: les boucles indexées
Retour sommaire
Action 1Afficher 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 2Aller à la ligne;
Action 2Aller à la ligne;
Bruno Permanne 2006
AlgorithmiqueL’arbre programmatique: exemple
1. Commencer le programme2. 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 programme2. 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
AlgorithmiqueL’arbre programmatique: exemple
Retour sommaire
r == VRAIr == VRAI
SEQSEQ
Bonjourn: entier
r: booléen
Bonjourn: entier
r: booléen
Saluer 1Sortir « bonjour »;
Saluer 1Sortir « bonjour »;
TTQTTQ
SEQSEQ
DemanderSortir « Entrez un nombre »;
Entrer nb;
DemanderSortir « Entrez un nombre »;
Entrer nb;
Afficher 1Sortir « Le nombre est: »;
Sortir nb;
Afficher 1Sortir « Le nombre est: »;
Sortir nb;Afficher 2
Sortir « Recommencer ? (VRAI / FAUX): »;
Entrer r;
Afficher 2Sortir « Recommencer ?
(VRAI / FAUX): »;Entrer r;
Saluer 2Sortir « Au revoir »;
Saluer 2Sortir « Au revoir »;
Bruno Permanne 2006
Les langages C et C++Comprendre les bases
Retour sommaireBruno Permanne 2006
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
Type Déclaration Exemples
(déclarations / affectations)
Caractère non signé
(1 octet)
unsigned char
unsigned char c, d;
c=0x4D; d=48;
Caractère signé char unsigned char c='A';
Entier
(2 octets)
int int total, n=0;
total = -45678;
Nombre flottant double
(8 octets)
double const double pi=3.141592653589793;
double x = 4.56E-7;
Tableau de n ou n*m entiers
(2*n ou 2*n*m octets)
int[n]
int [n][m]
int tab[56], tab2[10][12];
tab[34]=32000;
Chaine de n caractères
(n+1 octets)
char[n] char mc[]="Ma chaine";
charreponse[10];
Chaine de caractères C++ string string mc="Ma chaine";
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
Fonction Exemples
incrémenter int compteur=0;
compteur++;
additionner compteur = compteur+10;
compteur+=10 // écriture condensée
affecter conditionnellement int n;
double a,b;
a=b=56.9; // affectation multiple
n = (a!=b) ? 10 :-1;
un calcul avec affectation conditionnelle et changement de type de variable
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);
Bruno Permanne 2006
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
Fonction Exemples
Affichage C int x=67, compteur;
float y;
y=(float)x/10;
printf("résultat de %d/10 =%f\n",x,y);
lire un nombre C scanf("%d",&compteur);
Affichage C°° cout<<"resultat de "<<x<<"/10="<<y<<endl;
lire un nombre C++ cin>>compteur;
Bruno Permanne 2006
Les langages C et C++Exemples de synthèse
Retour sommaire
Fonction Exemples
comparaison 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);
logiques unsigned char f2, f3=2;
flag=!flag;
f2=~(unsigned char)++flag;
f2 ^= 0xFF;
f3 |= f2;
f2=(unsigned char)flag<<2|f3;
flux de sortie standard 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;Bruno Permanne 2006
Les langages C et C++Les structures de contrôle
Retour sommaire
Action(Si condition vraie)
Action(Si condition vraie)
SISIConditionCondition
// test de l'instruction ifIf(c==4) cout<<"c vaut 4"<<endl; // test de l'instruction ifIf(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)
SISIConditionCondition
// test de l'instruction if elseIf(c==4) cout<<"c vaut 4<<endl; else cout<<"c ne vaut pas 4"<<endl;
// test de l'instruction if elseIf(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
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)
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 switchchar 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 switchchar 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 whileint 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 whileint 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)
TTQTTQConditionCondition
Les langages C et C++Les structures de contrôle
Bruno Permanne 2006
Retour sommaire
// test de l'instruction do whileunsigned int j=0;do cout << j++; while(TRUE!=FALSE);
// test de l'instruction do whileunsigned 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)
TTQTTQConditionCondition
Les langages C et C++Les structures de contrôle
Bruno Permanne 2006
Retour sommaire
// test de l'instruction repeat until breakdouble 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 breakdouble 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
Retour sommaire
// test de l'instruction fordouble 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 fordouble 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)
POURPOURInitialisation; Condition; EvolutionInitialisation; Condition; Evolution
Les langages C et C++Les structures de contrôle
Bruno Permanne 2006
Programmation
Un avenir une formation,
Fin de la première partie
Bruno Permanne 2006