Vous êtes sur la page 1sur 16

Exemples d'exercices

d'algorithmique corrigs avec


l'analyse descendante via
pseudo-code
EX N1
Soit la suite dfnie par :
Le premier terme U
0
est un entier donn qui dpasse 1.
Le terme U
n
est gal la somme des carrs des chifres de
Cette suite est soit priodique ou stationnaire (constante. !ta"lir les
anal#ses puis les algorithmes permettant d$a%cher les termes de la
suite si elle est constante ou les termes de la priode si la suite est
priodique.
Solution Solution
Analyse
&sultat ' (roc )%che ((*+*,
((*+*,'-+0*,-0.U0.
&pter
++/1
,-+.0n SCC(,-+11.
(0n &echerche(,-+.*0*+11*,
2usqu$ (,-+.'1 ou ((3'0
U0'- .
&pter
U0'4onne(54onner un entier 31 5
2usqu$ U031
Le tableau de dclaration des nouveaux types
Type
,a" ' ,a"leau de 61 7ntiers {les cases sont numrotes
partir de 0}
Le tableau de dclaration des objets globaux
8"9et ,#pe:+atu
re
&;le
( 7ntier <<.
+ 7ntier <<.
U0 7ntier <<.
, ,a" <<.
1
SCC 0onction <<.
&echerc
he
0onction <<.
Algorithme
0 4"ut 7=1
1 &pter
!crire(54onner un entier 31 5
Lire(U0
2usqu$ U031
6 +0* ,-0.U0
&pter
++/1
,-+.0n SCC(,-+11.
(0n &echerche(,-+.*0*+1
1*,
2usqu$a (,-+.'1 ou ((3'0
> (roc )%che((*+*,
? 0in 7=1
Analyse de la fonction !! "#ersion itrative$
Analyse
&sultat' SCC
SCCS
S'-S0.
&pter
SS/Carr(+ mod 10
+ + di@ 10
2usqu$ + '0
Le tableau de dclaration des objets locaux
8"9
et
,#pe:+atu
re
&;le
S 7ntier <<.
Algorithme
0 4eA 0n SCC(+:7ntier:7ntier
1 S0
&pter
SS/Carr(+ mod 10
++ di@ 10
2usqu$ + ' 0
6 SCCS
2
> 0in SCC
Analyse de la fonction !! "#ersion %cursive$
Analyse
&sultat' - .
Si +'0 )lors SCC0
Sinon
SCC0n SCC(+ di@10/ Carr(+
mod 10
0in Si
Algorithme
0 4eA 0n SCC(+:7ntier:7ntier
1 Si +'0 )lors SCC0
Sinon
SCC0n SCC(+ di@ 10/ Carr(+ mod
10
0in Si
6 0in SCC
Analyse de la fonction %echerche "#ersion &trative$
Analyse
&sultat' &echerche
&echerche'- .
Si ,-B.'C )lors &echerche B
Sinon &echerche 11
0in Si
B' - B411 .
&pter
BB/1
2usqu$ (,-B.'C ou(B'0
Le tableau de dclaration des objets locaux
8"9
et
,#pe:+atu
re
&;le
B 7ntier <<.
Algorithme
0 4eA 0n &echerche(C*4*0:7ntierD
,:,a"7ntier
1 B411
3
&pter
BB/1
2usqu$ (,-B.'C ou(B'0
6 Si ,-B.'C )lors &echerche B
Sinon &echerche 11
0in Si
> 0in &echerche
Analyse de la fonction %echerche "#ersion
%cursive$
Analyse
&sultat' - .
Si ,-4.'C )lors &echerche 4
Sinon Si 430 )lors &echerche
11
Sinon
&echerche 0n
&echerche(C*4/1*0*,
0in Si
Algorithme
0 4eA 0n &echerche(C*4*0:7ntierD ,:,a"7ntier
1 Si ,-4.'C )lors &echerche 4
Sinon Si 430 )lors &echerche 11
Sinon &echerche 0n
&echerche(C*4/1*0*,
0in Si
6 0in &echerche
Analyse de la procdure A'che
Analyse
&sultat' - .
Si ,-+.'1 )lors
(our B de 0 + 0aire
!crire(,-B.
0in (our
Sinon
(our B de ( + Aaire
!crire(,-B.
0in (our
0in si
4
Le tableau de dclaration des objets locaux
8"9
et
,#pe:+atu
re
&;le
B 7ntier <<.
Algorithme
0 4eA (roc )%che((*+:7ntierD ,:,a"
1 Si ,-+.'1 )lors
(our B de 0 + 0aire
!crire(,-B.
0in (our
Sinon
(our B de ( + Aaire
!crire(,-B.
0in (our
0in si
6 0in )%che
EX N(
!ta"lir les anal#ses et les algorithmes permettant de dterminer les
deu= entiers ) et E qui reprsentent respecti@ement le numrateur
et le dnominateur de la somme des + Aractions d$entiers.
Exemple:
Solution Solution
Analyse
&sultat' !crire(5La somme est '
5*)*5:5*E
()*E'(roc
Somme(+*+um*4en*)*E
+'- .
&pter
+ ' donne (5+ ' 5
2usqu$ + dans-1..F0.
(+um*4en'(roc
Lecture(+*+um*4en
Le tableau de dclaration des nouveaux types
Type
,a" ' ,a"leau de F0
5
7ntiers
Le tableau de dclaration des objets globaux
)bje
t
*ype+Nat
ure
%,l
e
) 7ntier <<.
E 7ntier <<.
+ 7ntier <<.
+um ,a" <<.
4en ,a" <<.
Lectu
re
(rocdure <<.
Som
me
(rocdure <<.
Algorithme
0 4"ut 7=?
1 &pter
!crire(5+ ' 5* Lire(+
2usqu$ + dans -1..F0.
6 (roc Lecture(+*+um*4en
> (roc somme(+*+um*4en*)*E
? !crire(5La somme est '
5*)*5:5*E
F 0in 7=?
Analyse de la procdure Lecture
)nal#se
&sultat' (+um*4en
(+um*4en ' - .
(our B de 1 + Aaire
+um-B.'4onne (5+um-5*B*5.'5
&pter
4en-B.'4onne
(54en-5*B*5.'5
2usqu$ 4en-B.G30
C0n
(HC4()"s(+um-B.*)"s(4en-B.
+um-B.+um-B. di@ C
4en-B.4en-B. di@ C
0in (our
Le tableau de dclaration des objets locaux
6
)bj
et
*ype+Nat
ure
%,l
e
B 7ntier <<.
(HC
4
0onction <<.
Algorithme
0 4eA (roc Lecture(+:7ntierD Iar
+um*4en: ,a"
1 (our B de 1 + Aaire
!crire(5+um-5*B*5.'5* Lire(+um-B.
&pter
!crire(54en-5*B*5.'5* Lire(4en-B.
2usqu$ 4en-B.G30
C0n
(HC4()"s(+um-B.*)"s(4en-B.
+um-B.+um-B. di@ C
4en-B.4en-B. di@ C
0in (our
6 0in Lecture
Analyse de la procdure omme
)nal#se
&sultat' ()*E
()*E ' -)0* E1 .
(our B de 1 + Aaire
))J4en-B./EJ+um-B.
EEJ4en-B.
C0n
(HC4()"s()*)"s(E
)) di@ C
EE di@ C
0in (our
Le tableau de dclaration des objets locaux
)bj
et
*ype+Nat
ure
%,l
e
B 7ntier <<.
(HC
4
0onction <<.
Algorithme
0 4eA (roc Somme (+:7ntierD +um*4en:,a"D Iar
7
)*E:7ntier
1 )0* E1
(our B de 1 + Aaire
))J4en-B./EJ+um-B.
EEJ4en-B.
C0n (HC4()"s()*)"s(E
)) di@ C
EE di@ C
0in (our
60in Somme
Analyse de la procdure -.!/
Analyse
&sultat' - .
Si E ' 0 )lors (HC4 )
Sinon (HC4 0n (HC4(E* )
mod E
0in Si
Algorithme
0 4eA 0n (HC4()*E:7ntier:7ntier
1) Si E ' 0 )lors (HC4 )
Sinon (HC4 0n (HC4(E* )
mod E
0in Si
6 0in (HC4
EX N0
!ta"lir les anal#ses et les algorithmes permettant de con@ertir
un nom"re romain & @ers son qui@alent ara"e ).
Exemples:
% A
5KKKCCBC5 >06
L
54CCCLBI5 MF?
5KCKLCCIBB
B5
1LN
M
5KKC5 601
0
Solution Solution
Analyse
8
&sultat'!crire()
)0n con@ar(&
&'4onne(5Saisir un nom"re
romain 5
Le tableau de dclaration des objets globaux
)bje
t
*ype+Nat
ure
%,l
e
) 7ntier <<.
& Chaine <<.
Con@
ar
0onction <<.
Algorithme
0 4"ut 7=O
1 !crire(5Saisir un nom"re
romain
Lire(&
6 )0n con@ar(&
> !crire()
? 0in 7=O
Analyse de la fonction !onvar version &trative
Analyse
&sultat ' Con@ar
Con@arS
S'-S0n Chifre(&-Long(&..
(our B de 1 Long(& 11 0aire
Si 0n Chifre(&-B.G0n Chifre(&-B/1.
)lors SS10n Chifre(&-B.
sinon
SS/0n Chifre(&-B.
0in Si
0in (our
Le tableau de dclaration des objets locaux
)bje
t
*ype+Nat
ure
%,l
e
B 7ntier <<.
S 7ntier <<.
9
Chifr
e
0onction <<.
Algorithme
0 4eA 0n Con@ar(&:Chaine:7ntier
1 S0n Chifre(&-Long(&.
(our B de 1 Long(& 11 0aire
Si 0n Chifre(&-B.G0n
Chifre(&-B/1.
)lors SS10n Chifre(&-B.
Sinon SS/0n Chifre(&-B.
0in Si
0in (our
6 Con@arS
> 0in Con@ar
Analyse de la fonction !onvar version %cursive
Analyse
&sultat ' - .
Si Long(& '0 )lors Con@ar0 sinon
Si Long(& '1 )lors Con@ar0n Chifre(&-1.
Sinon Si 0n Chifre(&-1.G0n Chifre(&-6. )lors
Con@ar 0n Con@ar(Souchaine(&*6* Long(&1110n Chifre(&-1.
Sinon Con@ar 0n Con@ar(Souchaine(&*6* Long(&11/0n
Chifre(&-1.
0in Si
Le tableau de dclaration des objets locaux
)bje
t
*ype+Nat
ure
%,l
e
Chifr
e
0onction <<.
Algorithme
0 4eA 0n Con@ar(&:Chaine:7ntier
1 Si Long(& '0 )lors Con@ar0 sinon
Si Long(& '1 )lors Con@ar0n Chifre(&-1.
Sinon Si 0n Chifre(&-1.G0n Chifre(&-6. )lors
Con@ar 0n Con@ar(Souchaine(&*6* Long(&1110n
Chifre(&-1.
10
Sinon Con@ar 0n Con@ar(Souchaine(&*6* Long(&11/0n
Chifre(&-1.
0in Si
6 0in Con@ar
Analyse de la fonction !hi1re
Analyse
&sultat ' Chifre
Chifre+
+ '- .
Selon Ka9us(C 0aire
5B5: +1
5I5:+F
5C5:+10
5L5:+F0
5C5:+100
545:+F00
5K5:+1000
0in Selon
EX N2
Soit une entreprise qui comporte un nom"re fni dPemplo#s D
Chaque emplo# est caractris par un code (+umrotation
automatique* un nom* un salaire* une catgorie (1161> ou ?* un
se=e et une anciennet.
!ta"lir un algorithme qui permet la cration dPun fchier contenant
les emplo#s* la saisie des emplo#s (cette saisie se termine par un
salaire nul qui ne doit pas Qtre tenu en compte* puis augmenter les
salaire par un montant qui est gale au dou"le de lPanciennet enfn
crer un fchier comportant les hommes dans lPordre dcroissant des
catgories et a%cher les rsultats calculs.
Solution Solution
Analyse
&sultat'(roc )%che(0A
(roc )%che(R
0A' (roc )ugmenter(0
0'(roc Saisie(0
R'(roc Rommes(0A*R
Le tableau de dclaration des nouveaux types
Type
11
7mplo#e'7nregistreme
nt
Code: Kot
Cat* )nc: 8ctet
+om:
chaine->0.
Sal: &el
Se=e: CaractSre
0in 7mplo#e
7ntreprise' 0ichier
d$emplo#e
Le tableau de dclaration des objets globaux
8"9et ,#pe:+atu
re
&;le
0 7ntreprise <<.
R 7ntreprise <<.
)%che (rocdure <<.
)ugmentat
ion
(rocdure <<.
Saisie (rocdure <<.
Rommes (rocdure <<.
Analyse de la procdure saisie
Analyse
&sultat'0
0 ' -)ssocier(0*5c:Templo#es.dat5*
recrer(A* B0.
&pter
BB/1
7.codeB
7.+om'donne (5<<<.5
&pter
7.Sal'donne(5<<<5
2usqu$ 7.Sal3'0
&pter
7.cat'donne(5<<<5
2usqu$ 7.Cat dans-1..?.
&pter
7.se=e'donne(5<<<5
2usqu$ 7.se=e
dans-505*5A5*5R5*5h5.
12
&pter
7.)nc'donne(5<<<5
2usqu$ 7.)nc 3'0
Si 7.Sal30 )lors !crire(0*7
0in Si
2usqu$ 7.Sal'0
Le tableau de dclaration des objets locaux
)bj
et
*ype+Nat
ure
%,l
e
7 7mplo#e <<.
Algorithme
3$ 4eA (roc saisie(@ar A:7ntreprise
1$ )ssocier(0*5c:Templo#es.dat5*
recrer(A* B0
&pter
BB/1
7.codeB
7.+om'donne (5<<<.5
&pter
7.Sal'donne(5<<<5
2usqu$ 7.Sal3'0
&pter
7.cat'donne(5<<<5
2usqu$ 7.Cat dans-1..?.
&pter
7.se=e'donne(5<<<5
2usqu$ 7.se=et
dans-505*5A5*5R5*5h5.
&pter
7.)nc'donne(5<<<5
2usqu$ 7.)nc 3'0
Si 7.Sal30 )lors !crire(0*7
0in Si
2usqu$ 7.Sal'0
($ 4ermer"f$
1
0$ 0in saisie
Analyse de la procdure Augmentation
1
Pour scuriser les donnes d'un fichier, il est recommand de fermer le fichier ar!s tout traitement"
13
Analyse
&sultat'0
0 ' -8u@rir(0 .
(our B de 0 ,ailleUfchier(011 0aire
Lire(0*7
7.sal7.sal/6J7.)nc
(ointer(0*B
!crire(0*7
0in (our
Le tableau de dclaration des objets locaux
)bj
et
*ype+Nat
ure
%,l
e
7 7mplo#e <<.
B 7ntier <<.
Algorithme
0 470 (roc )ugmentation(Iar
0:7ntreprise
1 8u@rir(0
(our B de 0 ,ailleUfchier(011 0aire
Lire(0*7
7.sal7.sal/6J7.)nc
(ointer(0*B
!crire(0*7
0in (our
($ 4ermer"4$
> 0in )ugmentation
Analyse de la procdure 5ommes
Analyse
&sultat'R
R ' -)ssocier(R*5c:Thommes.dat5* recrer(R .
(our B de ? 10aire
8u@rir(0
(our V de 0 ,ailleUfchier(011 0aire
Lire(0*7
Si 7.cat'B )lors !crire(R*B
0insi
14
0in (our
0in (our
Le tableau de dclaration des objets locaux
)bj
et
*ype+Nat
ure
%,l
e
7 7mplo#e <<.
B 7ntier <<.
V 7ntier <<.
Algorithme
0 4eA (roc Rommes(Iar
0*R:7ntreprise
1 )ssocier(R*5c:Thommes.dat5*
recrer(R
(our B de ? 1 0aire
8u@rir(0
(our V de 0 ,ailleUfchier(011
0aire
Lire(0*7
Si 7.cat'B )lors !crire(R*B
0insi
0in (our
0in (our
($ 4ermer"4$
0$ 4ermer"5$
? 0in Rommes
Analyse de la procdure A'che
Analyse
&sultat' -8u@rir(0.
(our V de 0 ,ailleUfchier(011 0aire
Lire(0*7
)@ec 7 0aire
!crire(Code:>* +om:>0* Sal:M:>* Se=e:>*
)nc:>* Cat:>
0in a@ec
0in (our
Le tableau de dclaration des objets locaux
15
)bj
et
*ype+Nat
ure
%,l
e
7 7mplo#e <<.
V 7ntier <<.
Algorithme
0 4eA (roc )%che(Iar 0:7ntreprise
1 8u@rir(0
(our V de 0 ,ailleUfchier(011 0aire
Lire(0*7
)@ec 7 0aire
!crire(Code:>* +om:>0* Sal:M:>* Se=e:>* )nc:>*
Cat:>
0in a@ec
0in (our
($ 4ermer"4$
> 0in )%che
16