Vous êtes sur la page 1sur 10

hange E hange E

XC di XC di
F- t F- t
PD

PD
or

or
!

!
W

W
O

O
N

N
Y

Y
U

U
B

B
to

to
ww

ww
om

om
k

k
lic

lic
C

C
.c

.c
w

w
tr re tr re
.

.
ac ac
k e r- s o ft w a k e r- s o ft w a

Nom :
Prénom :
TP 05 :
Structure alternative et répétitif Groupe :
Date du TP :

Durée du TP : 03 heures.
Organisation : Afin de bien acquérir les savoirs liés au TP, il est conseillé de multiplier les
essais et manipulations avec le logiciel.
But de TP :
Le but de ce TP est de :
1) Utilisation des structures de contrôle if, if… else.
2) Utilisation de la syntaxe élémentaire des structures répétitifs du C++
3) Maitrise de l’utilisation technique des boucles
4) Compréhension de fonctionnement des boucles
Rappel de cours :

1) Le traitement alternatif : c’est un traitement qui s’exécute suivant une condition


1-1) Le if
Cette structure de contrôle permet d'exécuter une instruction ou une suite d'instructions
seulement si une condition est vraie.
Syntaxe :
if (condition) instruction
Condition
Expression booléenne de la condition d'exécution.
Instruction
Une instruction ou un bloc d'instructions exécuté si la condition est vraie.
Sémantique :
On évalue la condition :
Si elle est vraie on exécute l’instruction et on passe à l ’instruction suivante.
Si elle est fausse on passe directement à l ’instruction suivante.
L’instruction peut être remplacée par une suite d ’instructions entre accolades.
1-2) Le if...else
Cette structure de contrôle permet d'exécuter une instruction si une condition est vraie, ou une
autre instruction si elle est fausse.
Syntaxe
if (condition) instruction1
else instruction2
condition
Expression booléenne de la condition d'exécution.
instruction1
Une instruction ou un bloc d'instructions exécuté si la condition est vraie.
instruction2
Une instruction ou un bloc d'instructions exécuté si la condition est fausse.
Sémantique
On évalue la condition :
Si elle est vraie, on exécute l'instruction1 et on passe à l'instruction suivante
Si elle est fausse, on exécute l'instruction2 et on passe à l'instruction suivante
L'instruction1 ou l'instruction2 peuvent être remplacées par une suite d'instructions entre accolades.

TP05: Structure Alternative et Répétitif Page 1


hange E hange E
XC di XC di
F- t F- t
PD

PD
or

or
!

!
W

W
O

O
N

N
Y

Y
U

U
B

B
to

to
ww

ww
om

om
k

k
lic

lic
C

C
.c

.c
w

w
tr re tr re
.

.
ac ac
k e r- s o ft w a k e r- s o ft w a

1) Le traitement répétitif : Le traitement est répétitif si son exécution se répète plusieurs fois,
le nombre de répétitions peut être connue ou pas, on parle de boucles ou itérations
1-1) Le for "classique"
Le for est une structure de contrôle qui permet de répéter un certain nombre de fois une
partie d'un programme.

Syntaxe
for(instruction_init ; condition ; instruction_suivant)
instruction_repetée

instruction_init
Une instruction (ou une série d'instruction séparées par une virgule) d'initialisation de la boucle
(initialiser un compteur à 0, pointer le premier élément d'une liste, ...).
condition
Expression booléenne de la condition de répétition de la boucle.
instruction_suivant
Une instruction (ou une série d'instruction séparées par une virgule) pour passer à l'itération
suivante (incrémenter un index, passer à l'élément suivant, ...)
instruction répétée
Une instruction ou un bloc d'instruction répété à chaque itération de la boucle.
Sémantique
1. On exécute l'instruction init.
2. On teste la condition:
o Tant qu'elle est vraie, on exécute l'instruction répétée, puis l'instruction suivante puis
on revient au 2.
o Si elle est fausse, la boucle est terminée et on passe à l'instruction suivante.
3. L'instruction_ répétée peut-être une suite d'instructions entre accolades.

1-2) Le while
Syntaxe
while (condition) instruction;
Sémantique
On teste la condition :
• si elle est vraie, on exécute l'instruction et on recommence.
• si elle est fausse, la boucle est terminée, on passe à l'instruction suivante.
L'instruction peut être une suite d'instructions entre accolades.
Le break
L'instruction break sert à "casser" ou interrompre une boucle (for, while et do), ou un switch.
Syntaxe
break;
Sémantique
• Sort de la boucle ou de l'instruction switch la plus imbriquée.

TP05: Structure Alternative et Répétitif Page 2


hange E hange E
XC di XC di
F- t F- t
PD

PD
or

or
!

!
W

W
O

O
N

N
Y

Y
U

U
B

B
to

to
ww

ww
om

om
k

k
lic

lic
C

C
.c

.c
w

w
tr re tr re
.

.
ac ac
k e r- s o ft w a k e r- s o ft w a

Exercice N1 :
1) Situer et souligner et corriger les erreurs dans le programme suivant :
# include <iostream>
main
cout<< donner les valeurs a b et c
Cin>> a>>b>>c
If (c>b)
{
D=b ;
b=c,
c=b
}
If (b>a)
{
D=a ;
A=b,
B=d
}
que représente la valeur de a, quel est le but de ce programme

Programme juste

TP05: Structure Alternative et Répétitif Page 3


hange E hange E
XC di XC di
F- t F- t
PD

PD
or

or
!

!
W

W
O

O
N

N
Y

Y
U

U
B

B
to

to
ww

ww
om

om
k

k
lic

lic
C

C
.c

.c
w

w
tr re tr re
.

.
ac ac
k e r- s o ft w a k e r- s o ft w a

Exercice N2 :
Ecrire un programme qui permet de résoudre l’équation du deuxième degré

Programme exercice N2

TP05: Structure Alternative et Répétitif Page 4


hange E hange E
XC di XC di
F- t F- t
PD

PD
or

or
!

!
W

W
O

O
N

N
Y

Y
U

U
B

B
to

to
ww

ww
om

om
k

k
lic

lic
C

C
.c

.c
w

w
tr re tr re
.

.
ac ac
k e r- s o ft w a k e r- s o ft w a

Exercice N3 :
1) Ecrire un programme qui permet de calculer la puissance d’un chiffre reel (xn) ;
2) En utilisant le même programme écrivez un programme qui permet de calculer :
𝑛

∑ 𝑙 𝑖 = 𝑙 + 𝑙 2 + 𝑙 3 + ⋯ … … … … … . . +𝑙 𝑛
𝑖=1

Programme exercice N1-1

Programme exercice N1-2

TP05: Structure Alternative et Répétitif Page 5


hange E hange E
XC di XC di
F- t F- t
PD

PD
or

or
!

!
W

W
O

O
N

N
Y

Y
U

U
B

B
to

to
ww

ww
om

om
k

k
lic

lic
C

C
.c

.c
w

w
tr re tr re
.

.
ac ac
k e r- s o ft w a k e r- s o ft w a

Exercice N4 :
1) Écrire un programme de calculer le factoriel d’un nombre entier i!
2) En utilisant le même programme écrivez un programme qui permet de calculer :
𝑚𝑎𝑥

∑ 𝑖! = 1! + 2! + 3! + ⋯ … … … … … . . +𝑚𝑎𝑥!
𝑖=1

Programme exercice N2-1

Programme exercice N2-2

TP05: Structure Alternative et Répétitif Page 6


hange E hange E
XC di XC di
F- t F- t
PD

PD
or

or
!

!
W

W
O

O
N

N
Y

Y
U

U
B

B
to

to
ww

ww
om

om
k

k
lic

lic
C

C
.c

.c
w

w
tr re tr re
.

.
ac ac
k e r- s o ft w a k e r- s o ft w a

Solution du TP 2

1) Solution de l’exercice N1 :
Remarques générales

1. Les mots clés ne commence jamais par un majuscule


2. Le programme principal commence par accolade et finit par accolade
3. On doit toujours déclarer nos variables
4. La variable en majuscule est différente de celle en minuscule
5. Utiliser toujours using namespace std pour utiliser cout et cin

# include <iostream>
using namespace std;
int a,b,c,D;
main ()
{
cout<< "donner les valeurs a b et c";
cin>> a>>b>>c;
if (c>b)
{
D=b ;
b=c;
c=b;
}
if (b>a)
{
D=a ;
a=b;
b=D;}}

Ce programme sert à tirer le maximum en a

TPN2 C++ présentée par Mme NOUAR Page 7


hange E hange E
XC di XC di
F- t F- t
PD

PD
or

or
!

!
W

W
O

O
N

N
Y

Y
U

U
B

B
to

to
ww

ww
om

om
k

k
lic

lic
C

C
.c

.c
w

w
tr re tr re
.

.
ac ac
k e r- s o ft w a k e r- s o ft w a

1) Solution de l’exercice N 2 :

#include <iostream>
#include <math.h>
using namespace std;
float a,b,c,delta,x1,x,x2;
main()
{
cout<<"donner a b et c";
cin>>a>>b>>c;
if(a==0)
{
if (b==0)
{
if(c==0)
cout<<"une infinité de solution";
else
cout<<"pas de solution";
}
else
{x=-c/b;
cout <<"la solution est"<<x;
}}
else
{delta=b*b-4*a*c;
if(delta>=0)
{x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
cout<<"il existe deux solutions x1 = "<<x1<<" et x2 "<<x2;
}
else
{
cout<<"pas de solution réelle";
}
}
}

TPN2 C++ présentée par Mme NOUAR Page 8


hange E hange E
XC di XC di
F- t F- t
PD

PD
or

or
!

!
W

W
O

O
N

N
Y

Y
U

U
B

B
to

to
ww

ww
om

om
k

k
lic

lic
C

C
.c

.c
w

w
tr re tr re
.

.
ac ac
k e r- s o ft w a k e r- s o ft w a

1) Solution de l ’exercice N3-1

#include <iostream>
#include <math.h>
using namespace std;
float a,i,n,p,r;
main()
{
cout<<"donner a et n";
cin>>a>>n;
p=1;
if (n<0) r=-n;
else r=n;
for(i=1;i<=r;i++)
{
p=p*a;
}
if(n<0) cout<<a<<"puiss"<<n<<"="<<1/p;
else cout<<a<<"puiss"<<n<<"="<<p;
}

2) Solution de l’exercice N3-2 :

#include <iostream>
#include <math.h>
using namespace std;
float a,i,n,p,r,s,k;
main()
{
cout<<"donner a et n";
cin>>a>>n;
while (n<0)
{
cout<<"donner n";
cin>>n;

if(n<0) continue;
}
p=1;s=0;
for(i=1;i<=n;i++)
{
p=p*a;
s=s+p;
}

cout<<"l^i =l+l^2+l^3+..+l^n ou l="<< a <<"et "<<"n = "<<n<<" est egale à"<<s;


//else cout<<"pour calculer la sommation donner un chiffre positive";
}
TPN2 C++ présentée par Mme NOUAR Page 9
hange E hange E
XC di XC di
F- t F- t
PD

PD
or

or
!

!
W

W
O

O
N

N
Y

Y
U

U
B

B
to

to
ww

ww
om

om
k

k
lic

lic
C

C
.c

.c
w

w
tr re tr re
.

.
ac ac
k e r- s o ft w a k e r- s o ft w a

3) Solution de l’exercice N4-1 :


#include <iostream>
#include <math.h>
using namespace std;
int i,n,p;
main()
{
cout<<"donner n entier positive ";
cin>>n;
while(n<0)
{
cout<<"donner un entier positive";
cin>>n;//pour assurer que le n est positive
}
p=1;
for(i=1;i<=n;i++)
p=p*i;
cout<<" le factoriel de "<<n<<" est "<<p;}

4) Solution de l’exercice N4-2 :

#include <iostream>
#include <math.h>
using namespace std;
int i,n,p,s;
main()
{
cout<<"donner n entier positive ";
cin>>n;
while(n<0)
{

cout<<"donner un entier positive";


cin>>n;//pour assurer que le n est positive
}
p=1;s=0;
for(i=1;i<=n;i++)
{
p=p*i;
s=s+p;
}
cout<<" la somme des factoriel de est "<<s;
}

TPN2 C++ présentée par Mme NOUAR Page 10

Vous aimerez peut-être aussi