Boucles Et Tableaux
Boucles Et Tableaux
Boucles Et Tableaux
cout<<res;
return 0;
Fin du programme }
2
L’Alternative “si…alors…sinon”
DEBUT Organigramme correspondant
3
Opérateurs logiques
• Exemples :
(-1<x) && (x<1) vaut 1 (vrai) si x est compris entre -1 et 1
!(x<0) vaut 1 (vrai) si x positif ou nul
4
Petit casse-tête !
double x=-5,y=2;
if (x==0)
if(y>0)
cout<<”cas”<<endl;
if(x<0)
cout<<”cas 2”<<endl;
else Quels sont les affichages obtenus?
cout<<”cas 3”<<endl;
cout<<”cas 4”<<endl;
5
Et en mieux…
double x=-5,y=2;
if (x==0)
if(y>0) Il faut indenter (et commenter) les
cout<<”cas 1”<<endl; programmes
6
Cas particulier : “switch()…case”
Exécuter des instructions Exemple
en fonction de la valeur (entière) char operateur;
d’une condition int x=5,y=2,res;
cin>>operateur;
switch (condition) switch (operateur)
{
{ case ’+’: res=x+y;
case constante1: break;
instructions1; case ’-’: res=x-y;
break; break;
case constante2: case ’*’: res=x*y;
instructions2; break;
break; case ’/ ’: res=x/y;
[…] //nb de ‘case’ illimité break;
default: default:
instructions_par_defaut; cout<<”opérateur inconnu”;
} }
cout<<res;
7
Instructions répétitives
- Boucle “while”
- Boucle “for”
8
Boucle “do while”
double resistance;
do
{
cout<<’’valeur de la resistance?";
cin>>resistance;
} while (resistance<=0);
// ici la resistance>0
cout<<’’R = ’’<<resistance;
10
Exemple 2
Recommencer un programme
char choix;
do
{
[…] // instructions du programme
cout<<’’voulez-vous recommencer?’’;
cin>>choix;
} while (choix==’o’);
11
La boucle “while”
!!
-Le corps de la boucle "while" est répété tant que la condition est
évaluée comme vraie (différente de 0)
-On teste D’ABORD la condition pour une éventuelle exécution du
corps de la boucle et on revient au test
- Si le test est faux dès le départ, le corps de la boucle n’est jamais
exécuté
12
“while” vs “do while”
do … while while
suite du
suite du
programme
programme
13
Exemple 1
14
Exemple 2 => “do….while();”
double resistance;
do
{
cout<<’’valeur de la resistance?";
cin>>resistance;
} while (resistance<=0);
// ici la resistance>0
cout<<’’R = ’’<<resistance;
15
Exemple 2 => “while(){}”
{
cout<<’’valeur de la resistance?";
cin>>resistance;
}
cout<<’’R = ’’<<resistance;
16
Boucle “for”
L’instruction qui
précède le test
Instruction X
Condition vraie ?
suite du programme
Bloc d’instructions
La dernière instruction
du corps de la boucle
Instruction Y
17
Intérêt de la boucle “for”
i=1; for(i=1;i<=100;i++)
while(i<=100) {
{ cout<<i<<endl;
cout<<i<<endl; }
i++;
suite du programme…
}
suite du programme…
18
Problème…
(t0, t1, ... , tn-1) → n valeurs à traiter
2 solutions :
Ø Utiliser un tableau :
o Un traitement simplifié
char numero_vol[5]={'A','F','5','3','2'};
19
Propriétés – Déclaration
type_elements nom[nbr_elements];
Exemples:
Un tableau de 25 notes : float notes[25];
20
Allocation
Allocation mémoiremémoire
Exemples :
float notes[25]; 25x4=100 octets
char numero_vol[5]; 5x1=5 octets
numero_vol[0] 0 1 2 3 4
numero_vol[1]
numero_vol[2]
numero_vol[3]
numero_vol[4]
21
Initialisation
Initialisation d’un tableau
d’un tableau
Exemples :
int tab[5]={0,1,-1,2,1};
float temperatures[30]={12,8,7,8.5,11,14,15};
char numero_vol[5]={'A','F','5','3','2'};
22
Accès
Accès aux aux éléments
éléments
Exemples :
char numero_vol[5] = {'A' , 'F' , '5' , '3' , '2' };
numero_vol[0] a pour valeur 'A'
numero_vol[ 4 ] a pour valeur '2'
numero_vol[ 5 ] a pour valeur 0
23
Initialiser
Parcours un tableau
d’un tableau
Version 1 Version 2
int main() int main()
{ {
int tab[5]; int tab[5];
scanf("%d",&tab[0]); int i;
scanf("%d",&tab[1]); for(i=0;i<5;i++)
scanf("%d",&tab[2]); {
scanf("%d",&tab[3]); scanf("%d",&tab[i]);
scanf("%d",&tab[4]); }
} }
24