Vous êtes sur la page 1sur 36

LMD/S.T.

Srie2

:Testes/Boucles

Sommaire
Troisime Srie.....................................................................................................................................2
Exercice 1 : Types de valeurs...........................................................................................................2
Exercice 2 : Nombres.......................................................................................................................2
Exercice 3 : Expressions..................................................................................................................2
Exercice 4 : Identificateurs valides / non valides............................................................................3
Exercice 5 : Dclaration de variables (Affectation / Lecture).........................................................4
Exercice 6 : Excution / Droulement d'un algorithme...................................................................7
Exercice 7 : Le signe d'un nombre...................................................................................................8
Exercice 8 : Comparaison entre deux nombres.............................................................................10
Exercice 9 : Rsolution de l'quation ax2+bx+c=0.......................................................................11
Exercice 10 : Droulement d'un algorithme..................................................................................13
Exercice 11 : valuation des expressions arithmtiques et logiques.............................................17
Exercice 12 : Calculer une somme d'une manire itratives.........................................................18
Exercice 13 : Calculs itratives - sommes, produits......................................................................25
Exercice 14 : Calcul de somme en fonction de n et x....................................................................27
Exercice 15 : Calcul de salaire pour N individus...........................................................................29
Exercices Supplmentaires :...............................................................................................................32
Exercice 16 : Solution d'une quation de deuxime degr............................................................32
Exercice 17 : Sommes itratives....................................................................................................33

L'objectif de cette deuxime srie est de comprendre les notions de: expressions et leurs
valuations, droulement d'algorithme, teste alternatif simple et double ainsi que la notion de
boucles.
Vousallezaborderlespointssuivants:
Dterminerletyped'unevaleur(entier,rel,caractre,chaneouboolen)
crirecorrectementlesvaleursetlesexpressionsdanslelangagePASCAL
Droulementd'unalgorithme
Organigramme
Utilisationdutestealternatifdoubleetsimple
UtilisationdesbouclesPour,TantqueetRpter(for,whileetrepeat).
Calculdesommesetproduitsitratives

LMD/S.T.

Srie2

:Testes/Boucles

Troisime Srie
Exercice 1 : Types de valeurs
Donnerletypedesconstantes suivantes: 2010;124.5;667.0E8;'A';'erreur:divisionspar
zro';TRUE;FALSE
Rponse:
Valeur

Type(Algorithme)

EnPascal

2010

Entier

Integer

124.5

Rel(avecunevirgulefixe)

Real

667.0E8

Rel(avecunevirguleflottante) Real

'A'

Caractre

Char

'erreur:divisionparzro'

Chane

String

TRUE

Boolen

Boolean

FALSE

Boolen

Boolean

EnalgorithmiqueetenlangagePASCAL,ily5typesdebase.

Exercice 2 : Nombres
Exprimerlesnombressuivantsdansunlangage(PASCAL):8,5096,21090,391016
Rponse:
Nombres

EnPASCAL

8,50

8.50

96,2109

96.2E+9

0,391016

0.39E16

Exercice 3 : Expressions
Pourlesexpressionsmathmatiques(arithmtiques/logiques),latranscriptionmanuellen'estpas
toujours valables pour le langage PASCAL. Le tableau suivant montres comment crire
correctementquelquesoprations/fonctionsmathmatiques
Expressionnormale
a

ExpressionenPascal
a/b(divisionrel:rsultataveclavirgule)
adivb(divisionentire:rsultatentier)

LMD/S.T.

Srie2

:Testes/Boucles
a2

sqr(a)
sqrt(a)

a
|a|

abs(a)

exp(x)

Ln(x)

ln(x)

exp(n*ln(x))

Exprimerlesexpressionssuivantesdansunlangage(PASCAL):
( x y )2k
b+ b 24 ac
x
2 x e
2a
ab

Rponse:
Expression
b+ b 24 ac
2a
2x e

EnPascal
(b+sqrt(sqr(b)4*a*c))/(2*a)
2*x*exp(x)

x
2k

( x y )
ab

exp(2*k*ln(xy))/(a*b)

Ilfautfaireattentionlorsd'crituredesexpressionsmathmatiques(arithmtiquesoulogiques).

Exercice 4 : Identificateurs valides / non valides


Indiquerlesidentificateursvalidesetnonvalidesparmilalistesuivante: 1A; R?; K2;
T280;12R;Hauteur;PrixHT;Prix_HT;Codeprod;Code_prod
Rponse:
Identificateurs

Valide/NonValide

1A

Nonvalide:ilcommenceparunchiffre

R?

Nonvalide:ilcontientlepointd'interrogation

K2

Valide

T280

Valide

12R

Nonvalide(commelepremier)

Hauteur

Valide

LMD/S.T.

Srie2

:Testes/Boucles
PrixHT

Nonvalide:ilcontienttir6(signedemoins)

Prix_HT

Valide

Codeprod

Nonvalide:ilcontientunblanc

Ilfautrevoirladfinitiondel'identificateurencours

Lesidentificateurssontutilisspourdonnerunnomunprogramme,constanteouvariables

Exercice 5 : Dclaration de variables (Affectation / Lecture)


crireunalgorithme/programmePASCALpermettantd'initialiserdesvariablesparaffectations
ouparlectureslesdonnes(valeurs)suivantesetlesaffichel'cran:
135125150,0127543,5096,21090,391016'A''Informatique1'truefalse
(Ilya10valeurs,doncvousdevezdclarer10variables=10espacesmmoires)
Premiresolution:Paraffectation
L'algorithme:
Algorithme exercie_5
Variables
a, b: entier
c, d, e, f: rel
g: caractre
h: chane
i, j: boolen
Dbut
a 135; b -125; c 150.0; d 127543.50
e 96.2 E 9; f 0.39 E-16; g 'A';
h 'Informatique 1'; i true; j false;
crire(a, b, c, d, f, g, h, i, j)
Fin
LeprogrammePASCAL:
1 Program exercie_5;
2 Uses wincrt;
3 var
a, b: integer; c, d, e, f: real; g:char; h:string;
4
i, j: boolean;
5
Begin
6
a:=135; b:=-125; c:=150.0; d:=127543.50; e:=96.2 E9;
7
f:=0.39E-16;
g:='A'; h:='Informatique 1'; i:=true;
8
j:=false;
9
write (a, b, c, d, e, f, g, h, i, j);
10
11 End.

Danscettepremiresolution,oncritlesvaleursdanslecodesources(dansleprogramme

LMD/S.T.

Srie2

:Testes/Boucles
luimme).Etlesvaleurssontconnusavantd'excuterleprogramme.

Lapartiegauched'uneaffectationesttoujoursunevariables

Vouspouvezajouterdeschanedecaractres(message)lafonctionwritepourmontrerles

nomsdesvariablesetleursvaleursrespectives:write('a=',a,'b=',b,.etc.
Organigramme:
L'organigrammeestunefaondemontrerunalgorithme(ouunprogramme)sousformed'actions
schmatisesetleursenchanement(flches)
Dbut
Les diffrentes figures d'organigramme
a 135

Figure

b -125

Smantique/Sense
Reprsente le dbut et la Fin de
l'organigramme

c 150.0

Entres/Sorties:Lecturedesdonnes
etcrituredesrsultats.

d 127543.50
e 96.E9

Calculs,Traitements

f 0.39E-16
Tests et dcision: on crit le test
l'intrieurdulosange

g 'A'
H 'Informatique 1'

Ordre d'excution des oprations


(Enchanement)

i true
Connecteur
j false
Fin.

LMD/S.T.

Srie2

:Testes/Boucles

Deuximesolution:Parlecture
L'algorithme:
Algorithme val_absolue_carre
Variables
a, b: entier
c, d, e, f: rel
g: caractre
h: chane
i, j: boolen
Dbut
lire(a); lire(b); lire(c); lire(d);
lire(e); lire(f); lire(g);
lire(h); i true; j false;
crire(a, b, c, d, f, g, h, i, j)
Fin
LeprogrammePASCAL:
1 Program val_absolue_carre;
2 Uses wincrt;
3 var
a, b: integer; c, d, e, f: real; g:char;
4
i, j: boolean;
5
6 Begin
read(a); read(b); read(c); read(d); read(e);
7
read(f);
readln(g); readln(h); i:=true;
8
j:=false;
9
write (a, b, c, d, e, f, g, h, i, j);
10
11 End.
Organigramme:

Dbut
lire(a)
lire(b)
lire(c)
lire(d)
lire(e)
lire(f)
lire(g)
lire(h)

i true
j false
Fin.

h:string;

LMD/S.T.

Srie2

:Testes/Boucles

Exercice 6 : Excution / Droulement d'un algorithme


Excuterlessquencesd'instructionssuivantesmanuellementetdonnerlesvaleursfinalesdes
variablesA,B,CetcelledeX,Y,Z.
a)

A5;B3;CB+A;A2;BB+4;CB2

b)

X5;Y2*X;XX+1;Ysqr(XY);Zsqr(X+Y);X(X+3*Y)+2

Rponse:
Excutermanuellementunesquencesd'instructions(algorithmes/programme)nouspermetde
voir l'volution des variables (changement de valeurs pour les variables) et a nous permet de
comprendrel'algorithmeetdeprouverqu'ildonneunbonrsultat.
Pour drouler un algorithme / programme on utilise un tableau dans le quel les colonnes
reprsententlesvariablesetleslignesreprsententlesinstructions.
a)Pourlapremiresquence,nousavons3variables:A,BetC.etselonlesaffectationson
dduitqu'ilssontdetypeentier.
Variables

A5

B3

CB+A

A2

BB+4

Instructions

CB2
2
Lesvaleursfinalessont:A=2B=7C=5

b)Pourladeuximesquence,nousavons3variables:X,YetZ.etselonlesaffectationson
dduitqu'ilssontdetypeentier.
Variables

X5

Y2*X

10

XX+1

10

Ysqr(XY)

196

Zsqr(X+Y)

196

40000

196

40000

Instructions

X(X+3*Y)+2
582
Lesvaleursfinalessont:X=582Y=196Z=40000

LMD/S.T.

Srie2

:Testes/Boucles
L'algorithme:
Algorithme exo6_a
Variables
a, b, c: entier
Dbut
A5; B3; CB+A; A2; BB+4; CB-2;
crire(A, B, C)
Fin

LeprogrammePASCAL:
1 Program exo6_a;
2 Uses wincrt;
3 var
a, b, c: integer;
4
5 Begin
A:=5; B:=3; C:=B+A; A:=2; B:=B+4; C:=B-2;
6
Write ('A = ', A, '
B = ', B, '
C = ', C);
7
8 End.

N.B.:aseralammechosepourladeuximesquence.

Exercice 7 : Le signe d'un nombre


crirel'algorithmepuisleprogrammePASCALquilitunnombrerelX,dtermineetaffiche
sonsigne.Selonlecas:ilaffiche'Xestpositif','Xestngatif'ou'Xestnul'.
Rponse:
Cettealgorithmepeuttreschmatiscommesuit:
X
Traitement
Message (l'un des 3 messages selon le cas)
Onintroduitunnombrerelquelconque,etl'algorithmeafficheunemessageindiquantsile
nombreestpositif,ngatifetbiennul.Pourintroduirecenombreonabesoind'unevariablerelle
X.Donclapremireinstructionestlire(x).lafinondoitafficherunmessage.

LMD/S.T.

Srie2

:Testes/Boucles
L'algorithme:
Algorithme val_absolue_carre
Variables
x: rel
Dbut
lire(x)
Si x > 0 alors
crire('x est positif')
Sinon
Si x < 0 alors
crire ('x est ngatif')
Sinon
crire ('x est nul')
FinSi
FinSi
Fin
LeprogrammePASCAL:
1 Program val_absolue_carre;
2 Uses wincrt;
3 var
4
X: real;
5 Begin
6
Read(X);
7
if x>0 then
8
Write('X est positif')
9
else
10
if x < 0 then
11
Write('X est ngatif')
12
else
13
Write('X est nul');
14 End.
Organigramme:
Dbut
Lire (x)
Oui

Non

X>0

crire('x est positif')


Non

X<0

crire('x est nul')

Oui
crire('x est ngatif')

Fin.

LMD/S.T.

Srie2

:Testes/Boucles

Exercice 8 : Comparaison entre deux nombres


crirel'algorithmepuisleprogrammePASCALquilitdeuxnombresrelsaetb,etaffiche:
'aestplusgrandqueb'

sia>b

'aestpluspetitqueb'

sia<b

'aestgalb'

sia=b

Rponse:
Cettealgorithmepeuttreschmatiscommesuit:
a

b
Traitement

Message (l'un des 3 messages selon le cas)


Onintroduitdeuxnombresrelsquelconques,etl'algorithmeafficheunemessageindiquantsile
premiernombreestplusgrand,pluspetitougaleaudeuximenombre.Pourintroduirecesdeux
nombresonabesoindedeuxvariablesrelleaetb.Donclapremireinstructionseralire(a,b).
lafinondoitafficherunmessage:'aestplusgrandqueb','aestpluspetitqueb'ou'aestgalb'.
L'algorithme:
Algorithme val_absolue_carre
Variables
a, b: rel
Dbut
lire(a, b)
Si a > b alors
crire('a est plus grand que b')
Sinon
Si a < b alors
crire ('a est plus petit que b')
Sinon
crire ('a est gal b')
FinSi
FinSi
Fin

10

LMD/S.T.

Srie2

:Testes/Boucles
LeprogrammePASCAL:
1 Program val_absolue_carre;
2 Uses wincrt;
3 var
4
a, b: real;
5 Begin
6
Read(a, b);
7
if a>b then
8
Write('a est plus grand que b')
9
else
10
if x < 0 then
11
Write('a est plus petit que b')
12
else
13
Write('a est gal b');
14 End.
Organigramme:
Dbut
Lire (a, b)
Oui

Non

a>b

crire('a est plus grand que b')


Non

Oui

a<b

crire('a est gal b')

crire('a est plus petit que b')

Fin.

Exercice 9 : Rsolution de l'quation ax2+bx+c=0


crire l'algorithme (et le programme PASCAL) permettant de rsoudre, dans , l'quation
ax2+bx+c=0.Aveca0.
a

Traitement
On a Trois cas :
- si delta < 0 : Pas de solution dans IR
- si delta = 0 : Solution double x1=x2
- si delta > 0 : Deux solutions diffrentes
11

LMD/S.T.

Srie2

:Testes/Boucles
Lapremiretapedansl'algorithmeestd'introduirelesvaleursdea,betc.Ensuite,oncalcule
delta.Enutilisantlestestsalternatifsdoubles(sisinon),l'algorithmedcidequoiafficher
commersultat.
L'algorithme:
Algorithme val_absolue_carre
Variables
a, b, c, delta, x1, x2: rel
Dbut
lire(a, b, c)
Delta b*b - 4*a*c
Si delta < 0 alors
crire('Pas de solutions relles')
Sinon
Si delta = 0 alors
x1 -b/(2*a)
crire ('Solution double x1=x2=', x1)
Sinon
x1 (-b-sqrt(delta))/(2*a)
x2 (-b+sqrt(delta))/(2*a)
crire ('deux solutions. x1=', x1, '
FinSi
FinSi
Fin

x2=', x2)

LeprogrammePASCAL:
1 Program val_absolue_carre;
2 Uses wincrt;
3 var
a, b, c, delta, x1, x2: real;
4
5 Begin
Read(a, b, c); delta:=sqr(b)-4*a*c;
6
if delta<0 then
7
Write('Pas de solutions relles')
8
else
9
if delta = 0 then
10
begin
11
x1:= -b/(2*a);
12
Write('Solution double x1 = x2 = ', x1:6:2);
13
End
14
Else
16
Begin
17
X1:=(-b - sqrt(delta))/(2*a);
18
X2:=(-b + sqrt(delta))/(2*a);
19
Write('Deux solutions. x1=',x1:6:2,'x2=', x2:6:2);
20
End;
21
22 End.

12

LMD/S.T.

Srie2

:Testes/Boucles
Organigramme:
Dbut
Lire (a, b, c)
delta b*b-4*a*c
Oui

Non

delta < 0

crire ('Pas de solutions Relles')


Non

delta = 0

x1 (-b-sqrt(delta))/(2*a)
x2 (-b+sqrt(delta))/(2*a)
crire(x1, x2)

Fin.

Exercice 10 : Droulement d'un algorithme


Soitl'algorithmesuivant:
Algorithme Exo10
Variables
a, b, c, d: entier
Dbut
lire(a, b, c); d 0
Si a > b alors
Si a < c alors
b b+c
a b-c
c a+b
Sinon
Si b=c alors
c c+3
FinSi
d a-b+c
FinSi
Sinon
Si a>c alors
a 2*b
FinSi
b b+c
FinSi
d sqr(a+b+d)
crire(a, b, c, d)
Fin

13

Oui
x1 -b/(2*a)
crire(x1)

LMD/S.T.

Srie2

:Testes/Boucles

Faireledroulementdecetalgorithmeetdduirelesvaleursfinaledesvariablesa,b,cet

ddanschacundescassuivantes:
1)a=1;b=2;c=1

2)a=2;b=1;c=13)a=1;b=1;c=24)a=2;b=1;c=3

crireleprogrammePascalcorrespondantetl'excuter.

Rponse
a

b
Traitement

Nous avons dans l'algorithme 3 variables d'entre et 4 variables de sortie. Pour drouler
l'algorithme,ondoitconnatrelavaleurdechaquevariabled'entre.

Droulement

1)a=1;b=2;c=1
Variables
Instructions

Lire(a,b,c)
d0

Sia>bfalse
=>Sinon

Sia>cfalse
bb+c

16

dsqr(a+b+d)
1
3
Lesvaleursfinalessont:a=1,b=3,c=1etd=16

14

LMD/S.T.

Srie2

:Testes/Boucles
2)a=2;b=1;c=1

Variables

Lire(a,b,c)
d0

Sia>btrue
sia<sifalse
=>sinon
sib=ctrue

cc+3

dab+c=21+4=5

dsqr(a+b+d)=82
2
1
Lesvaleursfinalessont:a=2,b=1,c=4etd=64

64

Instructions

3)a=1;b=1;c=2

Variables

Lire(a,b,c)
d0

Sia>bfalse
=>sinon
sia>ctrue
a2*b

bb+c

dsqr(a+b+d)=12
2
1
Lesvaleursfinalessont:a=2,b=1,c=2etd=1

Instructions

4)a=2;b=1;c=3Lesvaleursfinalessont:a=2,b=1,c=2etd=1

Variables

abc

ca+b

25

Instructions
Lire(a,b,c)
d0

Sia>btrue
sia<ctrue
bb+c

dsqr(a+b+d)=12

15

LMD/S.T.

Srie2

:Testes/Boucles

LeprogrammePASCALcorrespondant:
1 Program Exo8;
2 Uses wincrt;
3 var
a, b, c, d: real;
4
5 Begin
Read(a, b, c);
6
d:=0;
7
if a>b then
8
if a<c then
9
begin
10
b:=b+c;
11
a:=b-c;
12
c:=a+b;
13
end
14
else
16
begin
17
if b=c then
18
c:=c+3;
19
d:=a-b+c;
20
end
21
else
22
begin
23
if a>c then
24
a:=2*b;
25
b:=b+c;
26
end
17
D:=sqr(a+b+d);
28
Write('a=' , a, ' b=' , b, '
29
30 End.

Pas de point-virgule
avant else

c=' , c, '

d=', d);

Remarques:
Ilfautjamaismettredepointvirgulepourl'instructionquiprcdeelse.
Si le bloc de if contient plusieurs instructions (plus d'une instruction) on dlimite,
obligatoirement,cesinstructionsparbeginetend
Si le bloc de else contient plusieurs instructions (plus d'une instruction) on dlimite,
obligatoirement,cesinstructionsparbeginetend
Sileblocdeifouelsecontientuneseuleinstruction,onpeutenleverbeginetend
DanslelangagePASCAL,ilnyapaslemotclendIfouendElse

16

LMD/S.T.

Srie2

:Testes/Boucles

Exercice 11 : valuation des expressions arithmtiques et logiques


Uneexpressionmathmatiquespeuttresoitarithmtiques(donneunrsultatnumrique)ou
bienlogique(donneunrsultatboolen).valuerunexpressionveutdiredterminerlavaleurfinale
(le rsultat) de cette expression aprs avoir remplac toutes les variables avec leurs valeurs
respectives.Cettevaluationdoitrespecterl'ordredecalculdesdiffrentsoprationsutilisesdasn
l'expression.Ona6niveauxdeprioritd'oprateurs:
1) Lesparenthse:onvaluetoutd'abordlesparenthseslesplusprofondes
2) Lesfonctions:commeparexemplesqr,sqrt,abs,cos,sin,exp,etc.
3) Lesoprateursunaires:unaireetnot
4) Multiplication*,division/,Div(divisionentire),Mod(restededivision)etleAnd(et
logique)
5) Addition+,Soustraction,OR(leoulogique)
6) Oprateursrelationnels(decomparaison):< , > , =, >=, <=,

<>(diffrent)

Danslecasoudeuxoprateursontlammeprioritoncalcultoutd'abordceluigauche(de
gauchedroite).
Expression1:a+b/c+((d/3+4)/3+a)/b
Expression2:(a>b)ornot(c>=d)and(b<c)
Aveca=1;b=2;c=4;d=6.
Rponse
Expression1

a+b/c+((d/3+4)/3+a)/b
(5)0.5

(1)2

(7)
(2)
1.5
6

(3)
2

(4)
3

(6)

1.5

(8)
3
Dansl'expression1,ilyahuitoprateurs,doncontrouvera8tapesdecalcul.
L'ordredesoprationsseradfinidonccommesuit:

a+b/c+((d/3+4)/3+a)/b
(7)(5)(8)(1)(2)(3)(4)(6)

17

LMD/S.T.

Srie2

:Testes/Boucles
Expression2

(a>b)ornot(c>=d)and(b<c)
False
(2)Flase

(3)TRUE
(4)TRUE

(5)

TRUE

(6)
TRUE
(1)

Dansl'expression1,ilya6oprateurs,doncontrouvera6tapesdecalcul.
L'ordredesoprationsseradfinidonccommesuit:

(a>b)ornot(c>=d)and(b<c)
(1)(6)(4)(2)(5)(3)

Exercice 12 : Calculer une somme d'une manire itratives


1crireunalgorithmepourcalculerlasommesuivante:S=12+32+52++(2m+1)2.Avec
m donn.Rsoudrel'exerciceenutilisantchacunedesboucles: (a) labouclePour (b) laboucle
Tantque(c)laboucleRpteretdduirelaplusappropriedanscecas.
2Effectuerledroulement(traced'excution)del'algorithmepourm=4danschacundescas(a),
(b)et(c).
3TraduirechacundesalgorithmesenprogrammePASCAL
Remarque:Onpeututiliserunebouclede0mpourtouslescas.Uneautresolutionconsiste
utiliserunebouclede1(2m+1)maisenincrmentantlecompteurde2.
Rponse
1Pourfaireunesommerptitive(itratives)ilfauttoutd'aborddduireletermegnral(terme
itratif).OnpeutcrirelasommeScommesuit:
S=12+32+52++(2m+1)2Qu'onpeutcriresouslaformeabrgesuivante:
m

S= (2i +1)2
i=0

Letermerptitive(gnrale)est: (2i+1)2

ic'estunindicequivariedelavaleurinitiale0jusqu'lavaleurfinalem.

Lesymboledelasommepeuttreremplac,trsfacilement,parlaboucle Pour comme


suit:Pouri0mfaire

18

LMD/S.T.

Srie2

:Testes/Boucles
chaqueitrationdelaboucle Pour onajoute S letermerptitive: (2i+1)2 comme
suit:SS+sqr(2*i+1)cequiestengrasestletermeitrative(rptitiveougnrale)
Bienvidemment,pourcalculerlavaleurdeSonaurabesoindelavaleurdem.mc'estvaleur
introduirel'algorithme(unevariabled'entre=> lire(m)).Parcontre S estlersultatcalculer
(unevariabledesortie=>crire(s))
a)LasolutionenutilisantlabouclePour

Algorithme Exo12_Pour
Variables
m, s, i:entier
Dbut
lire(m);
S 0;
Pour i0 m faire
S S + sqr(2*i+1)
FinPour
crire(S)
Fin

b)LasolutionenutilisantlaboucleTantQue
Algorithme Exo12_TantQue
Variables
m, s, i:entier
Dbut
lire(m);
S 0;
i 0;
Tant-que i<= m faire
S S + sqr(2*i+1)
i i + 1
FinTant-Que
crire(S)
Fin

c)LasolutionenutilisantlaboucleRpter

Algorithme Exo12_Repeter
Variables
m, s, i:entier
Dbut
lire(m);
S 0;
i 0;
Rpter
S S + sqr(2*i+1)
i i + 1
Jusqu' i>m
crire(S)
Fin

Remarques:

LabouclePourfonctionneavecuncompteur(indice)quireprsenteunevariableentire(le

compteurdoittreobligatoirementunevariableentire)

19

LMD/S.T.

Srie2

:Testes/Boucles

DanslabouclePouronspcifielavaleurinitialeetlavaleurfinale(deuxvaleursentires)

ducompteur

Sila valeurfinale estpluspetitequela valeurinitiale donc onn'excutepaslaboucle

Pour(nombred'itrations=0)

SilavaleurfinaleestsuprieurlavaleurinitialedonconexcutelabouclePouravecun

nombred'itrations=<valeurFinale><valeurInitiale>+1.Dansl'exempleprcdent,laboucle
Pourseraexcutepour(m+1)itrations(Sim=4aseraalors5itrations).

LesdeuxbouclesTantqueetRpterfonctionnentavecdesconditions(expressionslogiques

quidonnentsoitTruesoitFalse).

D'unemaniregnrale,traduireunebouclePouruneboucleTantquesefaitcommesuit:
Pour <cpt><vi> <vf> faire

<cpt> <vi>
Tanque-Que <cpt> <= <vf> faire
<instruction(s)>
<cpt> <cpt> + 1
FinTant-que

<instruction(s)>
FinPour

Telque:

<cpt>

:c'estunevariableentire(lecompteurdelabouclePour)

<vi>

:c'estunevaleurentire(lavaleurinitialedelabouclePour)

<vf>

:c'estunevaleurentire(lavaleurfinaledelabouclePour).

Donc, pour transformer la boucle Pour une boucle Tantque il faut ajouter deux

instructions:linitialisationducompteurlavaleurinitialeetl'incrmentationducompteur(de1)
lafindechaqueitration.Bienvidemment,leboucle Tantque contientlaconditioncompteur
infrieurougalelavaleurfinale.

ToutebouclePourpeuttreremplaceparuneboucleTantque.Cependant,onpeuttrouver

desbouclesTantquequ'onnepeutpas(oubiendifficile)remplacerparunebouclePour.

TouteboucleTantquepeuttreremplaceparuneboucleRpteretviceversa.

LaboucleTantqueetRptersontquivalentes.

Laconditiondelaboucle Tantque estvalueaudbutdel'itration:silaconditionest

vraieonentrel'itrationsinononquittelaboucle.

LaconditiondelaboucleRpterestvaluelafindel'itration:silaconditionestvraie

onquittelabouclesinononraliseuneautreitration(ritre:reboucle).

Pourlaboucle Tantque laconditionreprsentele testd'entre,parcontre,pourlaboucle

Rpterlaconditionreprsenteletestdesortie.

20

LMD/S.T.

Srie2

:Testes/Boucles

PourremplacerlaboucleTantqueparlaboucleRpter,ilsuffitdenierlaconditiondela

boucleTantqueetbiensrderespecterlasyntaxedesdeuxbouclescommesuit:
Tant-que <Condition_1> faire

Rpter
<instruction(s)>
Jusqu' <Condition_2>

<instruction(s)>
FinTant-que

Telque:<Condition_2>etlangationde<Condition_2>,autrementdit:
<Condition_2>=Not(<Condition_1>)
2Ledroulementpourm=4
a)LabouclePour
Variables

Lie(m)

S0

Pouri=0

SS+sqr(2*i+1)=0+sqr(2*0+1)=
12

12=1

Pouri=1

SS+sqr(2*i+1)=12+sqr(2*1+1)=
1+32=10

12+32=10

Pouri=2

10

SS+sqr(2*i+1)=10+sqr(2*2+1)=
10+52=35

12+32+52=35

Pouri=3

35

SS+sqr(2*i+1)=35+sqr(2*3+1)=
35+72=35+49=84

12+32+52+72=84

Pouri=4(ladernireitrationi=m)

84

SS+sqr(2*i+1)=84+sqr(2*4+1)=
84+92=84+81=165

12+32+52+72+92=165

crire(s)

165

Instructions

Lavaleurfinaledel'algorithmeestS=165
Remarque: Les deux couleurs gris clair / fonc sont utilis pour montrer et sparer les
itrationsdelabouclePour.

21

LMD/S.T.

Srie2

:Testes/Boucles
b)LaboucleTantQue
Variables

Lie(m)

S0
i0

Tantquei<=m:04=>True=>entrerlaboucle

SS+sqr(2*i+1)=0+sqr(2*0+1)=12

12=1

ii+1

Tantquei<=m:14=>True=>entrerlaboucle

SS+sqr(2*i+1)=1+sqr(2*1+1)=1+32=10

12+32=10

ii+1

10

Tantquei<=m:24=>True=>entrerlaboucle

10

SS+sqr(2*i+1)=10+sqr(2*2+1)=10+5 =35

1 +3 +52=35

ii+1

35

Tantquei<=m:34=>True=>entrerlaboucle

35

SS+sqr(2*i+1)=35+sqr(2*3+1)=35+7 =84

1 +3 +52+72=84

ii+1

84

Tantquei<=m:44=>True=>entrerlaboucle

84

SS+sqr(2*i+1)=84+sqr(2*4+1)=84+92=165

12 + 32 +52 +72 + 92= 165

ii+1

165

Tantquei<=m:54=>False=>quitterlaboucle

165

crire(S)

165

Instructions

Lavaleurfinaledel'algorithmeestS=165
Remarque:CommedanslecasdelabouclePour,laboucleTantquepossde5itrations.Par
contre,letestei<=mestralis6fois(lederniertestn'aboutitpas=>donnefalsepourquitterla
boucle).

22

LMD/S.T.

Srie2

:Testes/Boucles
c)LaboucleRpter
Variables

Lie(m)

S0
i0

Rpter

SS+sqr(2*i+1)=0+sqr(2*0+1)=12

12=1

ii+1

Jusqu'i>m:1>4=>False=>refairelaboucle

SS+sqr(2*i+1)=1+sqr(2*1+1)=1+32=10

12+32=10

ii+1

10

Jusqu'i>m:2>4=>False=>refairelaboucle

10

SS+sqr(2*i+1)=10+sqr(2*2+1)=10+5 =35

1 +3 +52=35

ii+1

35

Jusqu'i>m:3>4=>False=>refairelaboucle

35

SS+sqr(2*i+1)=35+sqr(2*3+1)=35+7 =84

1 +3 +52+72=84

ii+1

84

Jusqu'i>m:4>4=>False=>refairelaboucle

84

SS+sqr(2*i+1)=84+sqr(2*4+1)=84+92=165

12 + 32 +52 +72 + 92= 165

ii+1

165

Jusqu'i>m:5>4=>True=>quitterlaboucle

165

crire(S)

165

Instructions

Lavaleurfinaledel'algorithmeestS=165
3TraductiondesalgorithmesenprogrammePASCAL
a)LabouclePour
1
2
3
4
5
6
7
8
9
10
11

Program exo12_Pour;
Uses wincrt;
var
m, i, s: integer;
Begin
Write('Donner la valeur de m: '); Read(m);
S := 0;
For i:=0 to m do
S := S + sqr(2*i+1);
Write('La somme S = ', S);
End.

23

LMD/S.T.

Srie2

:Testes/Boucles
b)LaboucleTantQue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Program exo12_Tantque;
Uses wincrt;
var
m, i, s: integer;
Begin
Write('Donner la valeur de m: ');
Read(m);
S := 0;
i:=0;
while i<=m do
begin
S := S + sqr(2*i+1);
i:=i+1;
end;
Write('La somme S = ', S);
End.

c)LaboucleRpter
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Program exo12_Repeter;
Uses wincrt;
var
m, i, s: integer;
Begin
Write('Donner la valeur de m: ');
Read(m);
S := 0;
i:=0;
Repeat
S := S + sqr(2*i+1);
i:=i+1;
Until i>m;
Write('La somme S = ', S);
End.

Remarques:

Pourleprogramme(aveclabouclePour),onn'apasmis beginend; cecicausede

lexistenced'uneseuleinstructionl'intrieurdelaboucle Pour.Rienn'empchedelesmettre
commesuit:

For i:=0 to m do
Begin
S := S + sqr(2*i+1);
End;
Begin..end;semettentaprslastructuredecontrle(soitif,else,for,while).

S'ilyaplusd'uneinstruction(nombredinstructions>=2),danscecaslebeginend;

24

LMD/S.T.

Srie2

:Testes/Boucles
sontobligatoires.

Pourlaboucle Repeat,onmispasde beginend; puisqueleblocd'instructiondela

boucleRepeatestdlimitparlesdeuxmotscl:RepeatetUntil

Ilfautjamaismettredepointvirguleaprsdo(PourlaboucleWhileagnreuneboucle

infinie)

Exercice 13 : Calculs itratives - sommes, produits


crireunalgorithmeetleprogrammePASCALpourchacundescassuivantsavecNdonne:
a)CalculerlefactorieldeNsoit: 123...N =N !
b)crireunprogrammePASCALquipermetdecalculerlesomme:

1 2 3
n
+ + + ...+
2 3 4
n+ 1

1 1 1
c)Calculerlavaleurdedesachantque =1 + +...( Faire 100itrations )
4
3 5 7
Rponse
a)OnsupposequeP=N!
Donc: P=1234...N
N

Laformeabragie: P= i (Leproduitdes itelqueiallantde 1jusqu'N)=>lefacteur


i=1

gnralest:i.onauraalorslabouclePourquipossdeuncompteuriaveclavaleurinitiale1etla
valeurfinaleN.OnmultipliePparlefacteurgnral(facteurrptitif)iCommesuit:
Pour i 1 N Faire
P P * i;
FinPour;
Ilrestes'assurerquelavaleurdePsoitinitialementneutre(ilfautinitialiserP1.(P1)).

Algorithme Exo13_a_factoriel
Variables
N, P, i : entier
Dbut
lire(N);
P 1;
Pour i1 N faire
P P * i
FinPour
crire(P)
Fin

1
2
3
4
5
6
7
8
9
10
11
12

Program exo13_a_factoriel;
Uses wincrt;
var
N, i, P: integer;
Begin
Write('Donner la valeur de N: ');
Read(N);
P:=1;
for i:=1 to N do
P := P * i;
Write('N! = ', P);
End.

25

LMD/S.T.

Srie2

:Testes/Boucles
1 2 3
n
b)Onsupposeque S= + + +...+
2 3 4
n+1
n

Laformeabragie: S=
i =1

letermegnralest:

i
i
(Lasommetermes
telqueiallantde1jusqu'n)=>
i+1
i +1

i
.OnauraalorslabouclePourquipossdeuncompteuriaveclavaleur
i+1

initiale1etlavaleurfinalen.OnajouteSparletermegnral(termerptitif)

i
Comme
i+1

suit:
Pour i 1 n Faire
S S * i/(i+1);
FinPour;
Ilrestes'assurerquelavaleurdeSsoitinitialementneutre(ilfautinitialiserS0.(S0)).

Algorithme Exo13_b_somme
Variables
n, i : entier
S: rel
Dbut
lire(N);
S 0;
Pour i1 n faire
S S + i/(i+1)
FinPour
crire(S)
Fin

1
2
3
4
5
6
7
8
9
10
11
12
14
15
16

Program exo13_b_somme;
Uses wincrt;
var
n, i : integer;
S: real;
Begin
Write('Donner la valeur de N: ');
Read(N);
S:=0;
for i:=1 to n do
begin
S := S + i/(i+1);
end;
Write('La somme = ', S:6:3);
End.

1 1 1
c)Onmet S= =1 + + ...(Faire100 itrations)
4
3 5 7
99

(1)
Doncauraletermegnralesuivant: S=
k =0 2k +1
Ainsionaurauneboucle Pour avecuncompteur k allantde0jusqu'99(100itrations=99
0+1)Ilrestecalculer(1)k.Ilsuffitdemettreunevariablesigne=(1)k.Cettevariablebascule
entrelesdeuxvaleur1et1.Pourfairea,ilsuffitdemultipliersignepar1.commesuit:
signesigne.Etdecettefaon,sisigne=1doncildevient1.Etsisigne=1ildevient1.
L'objectifdel'algorithmeetdecalculerlavaleurapproximatifde=4*S.

26

LMD/S.T.

Srie2

:Testes/Boucles
Algorithme Exo13_c_PI
Variables
k,signe : entier
S, P: rel
Dbut
S 0; signe 1
Pour k0 99 faire
SS+signe/(2*k+1)
Signe - signe
FinPour
P 4*S;
crire(P)
Fin

Program exo13_c_PI;
Uses wincrt;
var
k, signe : integer;
S, P: real;
Begin
S:=0;
Signe:=1;
for k:=0 to 99 do
begin
S := S + signe/(2*i+1);
Signe:= - signe;
end;
P:=4*S;
Write('P = ', P:6:3);
End.

1
2
3
4
5
6
7
8
9
10
11
12
14
15
16
17

Exercice 14 : Calcul de somme en fonction de n et x


1)

crireunalgorithmepourcalculerlasommesuivante:

x3 x 5 x 7
S=x + + + + ....+((n+1)itrations) aveclavaleurdenetdexdonnes.
3 5 7
2)

Droulerl'algorithmejusqu'n=4(enfonctiondex)

3)

Traduirel'algorithmeenprogramme.

Rponse
1)

AlgorithmepourlecalculdeS

Pourcettealgorithme,onveutcalculerlavaleurdeS.Pourcela,ilfautintroduirelavaleurdexet
den.DoncnousavonsunevariabledesortieSetdeuxvariabled'entrenetx.
n

Traitement
S
Ainsi,audbutdel'algorithmeonauralire(n,x)etlafindel'algorithmeonauracrire(S).
LaquestionquiseposeestquelestletraitementraliserpouravoirlavaleurdeS.
n

Nous avons: S=x +

x3 x 5 x 7
x2i +1
La somme sera de i=0
+ + +....+((n+1)itrations )=
3 5 7
i=0 2i+ 1

27

LMD/S.T.

Srie2

:Testes/Boucles
jusqu'n.(n+1itrations)
Pourlecalculerdepuissancex2i+1,onmitP=x2i+1.InitialementP=x.ensuitex3,aprsx5
DoncilsuffitdefairePP*sqr(x)
Algorithme Exo_14
Variables
i, n : entier
S, x, P: rel
Dbut
Lire (n, x)
S 0
P x
Pour i0 n faire
S S+ P / (2*i+1)
P P * sqr(x)
FinPour
crire(S)
Fin

2)

Droulementdel'algorithmepourn=4etxquelconque.
Variables

Lie(n,x)

S0
Px

Pouri=0

''

''

''

''

SS+P/(2i+1)

''

''

''

''

PP*sqr(x)

''

''

''

Pouri=1

''

''

''

''

SS+P/(2i+1)

''

''

''

''

x+x3/3

PP*sqr(x)

''

''

''

x5

''

Pouri=2

''

''

''

''

SS+P/(2i+1)

''

''

''

''

x+x3/3+x5/5

PP*sqr(x)

''

''

''

x7

''

Pouri=3

''

''

''

''

SS+P/(2i+1)

''

''

''

''

x+x3/3+x5/5+x7/7

PP*sqr(x)

''

''

''

x9

''

Pouri=4(dernireitrationi=n)

''

''

''

''

SS+P/(2i+1)

''

''

''

''

x+x3/3+x5/5+x7/7+x9/9

Instructions

28

LMD/S.T.

Srie2

:Testes/Boucles
PP*sqr(x)

''

''

''

x11

''

crire(S)

''

''

''

''

x+x3/3+x5/5+x7/7+x9/9

DonclavaleurfinaleS=x+x3/3+x5/5+x7/7+x9/9(lersultatestenfonctiondexpuisqu'on
n'apasdonnerunevaleurpourx).
3)

Traductiondel'algorithmeenprogramme
1
2
3
4
5
6
7
8
9
10
11
12
14
15
16
17

Program exo_14;
Uses wincrt;
var
n, i : integer;
x, s, p: real;
Begin
Read(n, x);
S:=0;
P:=x;
for i:=0 to n do
begin
S := S + P/(2*i+1);
P := P * sqr(x);
end;
Write('S = ', S:6:3);
End.

Exercice 15 : Calcul de salaire pour N individus


Supposant qu'une grandeur V en dinars est calcule en fonction de la situation familiale de
l'individu.Soit V=VB+R,sachantque VB estunedonneet R estcalculeenfonctiondela
situationfamilialecommesuit:

R=

1)

VB
VB
VB
VB
VB
VB

5%
3%
10 %
10 %
15 %
20 %

si SF = 0 (clibataire)
si SF = 1 (divorc) et NF = 0
si SF = 1 (divorc) et NF > 0
si SF = 2 (mari) et NF = 0
si SF = 2 (mari) et 1 NF 3
si SF = 2 (mari) et NF > 3

crireunalgorithmepermettantdesaisirlesvaleurslesdonnes VB,SF,NF etcalculela

valeurdeVpourNindividus(Ndonne).SachantqueV,VBetRsontdesrels,N,SF,NFsontdes
entiersnaturels.(AttentiondanslecasoSF=0,l'algorithmenedoitpaslireNF).Faireleslectures
ettraitementsdansunebouclede1N.

29

LMD/S.T.

Srie2

:Testes/Boucles
2)

Traduirel'algorithmeenprogramme.

Rponse
1)

Algorithme
Algorithme Exo_15
Variables
i, N : entier
SF, NF: entier
VB, R, V: rel
Dbut
Lire (N)
Pour i 1 N faire
Lire (VB, SF);
si (SF = 1) OR (SF = 2) alors
Lire (NF)
FinSi
Si SF = 0 alros
R VB * 0.05
Sinon
Si SF = 1 alors
Si NF = 0 alros
R VB * 0.03
Sinon
R VB * 0.10
FinSi
Sinon
Si SF = 2 alors
Si NF = 0 alors
R VB * 0.10
Sinon
Si (NF >= 1) AND (NF <= 3) alors
R VB * 0.15
Sinon
R VB * 0.20
FinSi
FinSi
FinSi
FinSi
FinSi
V VB + R
crire(V)
FinPour
Fin

Danscetalgorithme,onafficheraNvaleurspourV(salairesdesindividus).

30

LMD/S.T.

Srie2

:Testes/Boucles
2)

Traductiondel'algorithmeenprogramme
1 Program exo_15;
2 Uses wincrt;
3 var
4
N, i
: integer;
5
SF, NF
: integer;
6
VB, R, V : real;
7 Begin
8
Write ('Donner le nombre d'individus: ');
9
Read(N);
10
11
for i:=1 to N do
12
beign
14
Write ('Introduire le salaire de base: ');
15
Read (VB);
16
Write ('Indiquer la situation familiale: ');
17
Read(SF);
18
if (SF = 1) OR (SF = 2) then {Divorc ou Mari}
19
begin
20
Write('Introduire le nombre d'enfants: ');
21
Read (NF);
22
end;
23
24
if SF = 0 then
25
R:= VB * 0.05
26
else
27
if SF = 1 then
28
if NF = 0 then
29
R:= VB * 0.3
30
else
31
R:= VB * 0.10
32
Else
33
if SF = 2 then
34
if NF = 0 then
35
R:= VB * 0.10
36
else
37
if (NF >= 1) AND (NF <=3 ) then
38
R:= VB * 0.15
39
else
40
R:= VB * 0.20
41
V:=VB + R;
42
Writeln('Le salaire de l''individu ', i, 'est:', V:6:2);
43
end;
44 End.

31

LMD/S.T.

Srie2

:Testes/Boucles

Exercices Supplmentaires :
Exercice 16 : Solution d'une quation de deuxime degr
crireunalgorithme(etprogramme)pourrsoudreunequationdusecondordreax2+bx+c=0
dansC(lesnombrescomplexes).Danslecasolediscriminantestngatif,oncalculelapartie
relleXetlapartieimaginaireYenconsidrantlaracinedudiscriminantenvaleurabsolue.Les
solutionssontalorsX,YetX,ZavecZ=Y.(Solutionconjugue).
Solution
L'algorithmepossdetroisvariablesd'entrea,betcetdeuxvariablesdesortieX1etX2.(deux
solutionsrellesdiffrentes(delta>0),solutiondouble(delta=0)etdeuxsolutionscomplexesZ1
=X1+iX2etZ2=X1iX2

Traitement
X1

X2

Algorithme Exo_16
Variables
a, b, c : rel
delta, X1, X2: rel
Dbut
Lire (a, b, c)
Tant-que a = 0 faire
lire(a);
finTant-que
delta sqr(b) 4*a*b;
si delta = 0 alors
X1 = -b/(2*a)
crire('Solution double X1 = X2 =', X1);
sinon
si (delta > 0) alors
X1 = (-b-sqr(delta))/(2*a);
X2 = (-b+sqr(delta))/(2*a);
crire('Deux solutions relles X1=', X1, '
Sinon
X1 = -b/(2*a);
X2 = sqr(-delta)/(2*a)
crire('Deux solutions Complexes: ');
crire('Z1 = ',X1, ' + ', X2, ' i');
crire('Z2 = ',X1, ' - ', X2, ' i');
FinSi
FinSi
Fin
32

X2=', X2);

LMD/S.T.

Srie2

:Testes/Boucles

1
2
3
4
5
6
7
8
9
10
11
12
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

Program exo_16;
Uses wincrt;
var
a, b, c : real;
Delta
: real;
X1, X2 : real;
Begin
Write ('Donner la valeur de a, b et c: ');
Read(a, b, c);
While a = 0 do {s'assurer que la valeur de a <> 0}
begin
Write('Veuillez donner une valeur non nulle pour a: ');
Read(a);
end;
Delta := sqr(b) 4*a*c;
if delta = 0 then
begin
X1:= -b/(2*a);
Write ('Une solution doubleX1=X2= ', X1:6:2);
end
else
if delta > 0 then
begin
X1 := (-b-sqr(delta)) / (2*a);
X2 := (-b+sqr(delta)) / (2*a);
Write ('Deux solutions relles:');
Write ('X1=', X1:6:2, 'X2=', X2:6:2);
end
Else {delta est ngatif: deux solutions complexes}
begin
X1 := -b / (2*a);
X2 := sqr(-delta) / (2*a);
Write ('Deux solutions complexes:');
Write ('Z1=', X1:6:2, ' + ', X2:6:2, 'i');
Write ('Z2=', X1:6:2, ' - ', X2:6:2, 'i');
end;
End.

Exercice 17 : Sommes itratives


crirelesalgorithmesetprogrammescorrespondantspourchacundescassuivantsaveclavaleur
deNetxdonnes:(DroulerchaquealgorithmepouN=5).
(a) S1=

x2 x4 x6 x 8
x 2n
+ + ...
2 4 6 8
2n

33

LMD/S.T.

Srie2

:Testes/Boucles
(b) S2=x +

x3 x 5
x2n +1
+ + ... +
3! 5!
(2n+1)!

Rponse
(a)IlfautcrirelasommeS1sousformeabrge.Nousavons:
n

S1=

x2 x 4 x6 x8
x 2n
x 2i
Telquesigneprend,respectivement,lesdeux
+ + ... = signe
2 4 6 8
2n i=1
2i

valeur1et1d'unemanirealternative.Donc,letermegnral(rptitif)est:x2i/(2i)
Onraliseunchangementdevariable,onmettant P=x2i.Initialement,lorsquequei=1, P=x2
aprspassex4,x6,jusqu'x2n.Pourralisera,ilsuffitdemultipliePparx2.
Donc,L'algorithmepossdedeuxvariabled'entrenetx.etunevariabledesortieS1.

Algorithme Exo17_a
Variables
n,i,signe:entier
x,P,S1: rel
Dbut
Lire (n, x)
S1 0;
Signe 1
P sqr(x);
Pour i1 n faire
S1S1 + signe*P/(2*i)
Signe - signe
P P * sqr(x)
FinPour
crire(S1)
Fin

1
2
3
4
5
6
7
8
9
10
11
12
14
15
16
17
18
19

Program exo17_a;
Uses wincrt;
var
n, i, signe : integer;
x, P, S1: real;
Begin
Read(n, x);
S1:=0;
signe:=1;
P:=sqr(x);
for i:=1 to n do
begin
S1 := S1 + signe * P/(2*i);
Signe := - signe;
P := P * sqr(x);
end;
Write('S1 = ', S1:6:3);
End.

(b)IlfautcrirelasommeS2sousformeabrge.Nousavons:
n

S2=x +

x3 x 5
x2n +1
x 2i +1
+ + ... +
=
3! 5!
(2n+1)! i=0 (2i+1)!

Donc,letermegnral(rptitif)est:

x 2i+1
(2i+1)!

Onralisedeuxchangementsdevariables,onmettant P=x2i+1.Initialement,lorsquequei=0,
P=x.Onmetaussif=(2i+1)!.Initialementf=1.

34

LMD/S.T.

Srie2

:Testes/Boucles
LafaoncommentpasserPdelavaleurinitialex x3,x5,jusqu'x2i+1estdelemultiplie
chaqueitrationparx2commesuitPP*sqr(x).
Lamanirecommentpasserfdelavaleurinitiale 1 3! puis 5! jusqu' (2n+1)! estdele
multipliechaqueitrationpar(2*(i+1))*(2(i+1)+1)commesuit:ff*((2*(i+1))*(2*(i+1)+1)).
Pouri=0==>ff*2*3=1*2*3=3!
Pouri=1==>ff*4*5=3!*4*5=5!
Pouri=2==>ff*4*5=3!*4*5=7!
.
Donc,L'algorithmepossdedeuxvariabled'entrenetx.etunevariabledesortieS2.
Algorithme Exo17_b
Variables
n,i,f:entier
x,P,S2: rel
Dbut
Lire (n, x)
S2 0;
f 1
P x;
Pour i1 n faire
S2S2 + P/f
PP * sqr(x)
ff*(2*(i+1))*(2*(i+1)+1)
FinPour
crire(S2)
Fin

1
2
3
4
5
6
7
8
9
10
11
12
14
15
16
17
18
19
20

Program exo17_b;
Uses wincrt;
var
n, i : integer;
f:longint; {Un entier plus grand}
x, P, S2: real;
Begin
Read(n, x);
S2:=0;
f:=1;
P:=x;
for i:=0 to n do
begin
S2 := S2 + P/f;
P:= P * sqr(x);
f:=f*(2(i+1))* (2*(i+1)+1);
end;
Write('S2 = ', S2:6:3);
End.

Droulementpourn=5etxquelconque
(a)PourlasommeS1
Variables

signe

S1

Lie(n,x)

S10
Psqr(x)
signe=1

''

''

x2

Pouri=1

''

''

''

''

''

SS+signe*P/(2i)

''

''

''

''

''

x /2

Instructions

35

LMD/S.T.

Srie2

:Testes/Boucles
signesigne

PP*sqr(x)

''

''

''

''

x4

x2/2

Pouri=2

''

''

''

''

x2/2

SS+signe*P/(2i)

''

''

''

''

''

x2/2x4/4
''

signesigne

PP*sqr(x)

''

''

''

''

x6

Pouri=3

''

''

''

''

''

SS+signe*P/(2i)

''

''

''

''

''

x /2x /4+x6/6

signesigne

PP*sqr(x)

''

''

''

''

x8

''

Pouri=4

''

''

''

''

''

SS+signe*P/(2i)

''

''

''

''

''

x2/2x4/4+x6/6x8/8

signesigne

PP*sqr(x)

''

''

''

''

x10

''

Pouri=5(dernireitrationi=n)

''

''

''

''

''

SS+signe*P/(2i)

''

''

''

''

''

x2/2x4/4+x6/6x8/8+x10/10

signesigne

''

''

''

''

PP*sqr(x)

''

''

''

''

x12

''

crire(S)

''

''

''

''

''

x2/2x4/4+x6/6x8/8+x10/10

36

Vous aimerez peut-être aussi