You are on page 1of 13

CGO1 P10 Lalgori thmi que

INTRODUCTION

Pour raliser un traitement, cest- -dire une action excutale sur ordinateur, il !aut
distinguer deux ta"es #

$!inir les di!!rentes ta"es du traitement en %ue doteni r le rsultat souhai t
&raduire ces instructi ons laide dun langage de "rogrammat i on com"rhensile
de lordinateur '!ormules de calcul sur taleur, langage de macro- commandes des
logiciels outils ou langage de "rogrammat i on(

I/ DEFINITION ET REPRESENTATION DUN ALGORITHME
A/ Dfinition
)n algori thme cest * lenseml e des r+gles o"ratoi res et des "rocds d!inis en %ue
doteni r un rsultat dtermi n au mo,en dun nomre !inis do"rati ons - 'selon l
./0O1(

2l !aut donc d!inir une succession logique de t3ches automatiser4

B/ Reprsentation des algorithmes

Pour re"rsenter un algorithme, il existe deux !a5ons #
organigramme de programmat i on
Langage structur '"seudo code(

Exempl e #
Organigramme Langage structur
















6.12.7L89
Ca!! # 1el
1ist # 1el
$87)&
9.2921 Ca!!
92 Ca!! :1;000
.LO19 1ist <- Ca!!=0,1;
920O0 1ist <- 0
/20 92
.//2C>81 * La ristourne est de - ? 1ist
/20
Avantages # 6isualisati on du trai tement
Inconvni ents # de%ient %ite !ouillis, dsuet4
0e corres"ond "lus aux exigences de la
"rogrammat i on structure actuell e

Avantage #
Cette !orme est ada"te aux langages de
"rogrammati on structure 'ex # langage C( ou au
langage de macro- commandes inclus dans les
suites ureauti ques 'exem"l e # 67. "our @9
O!!ice(4 Lalgori thme "eut galement Atre utilis
Page 1B1C
/20
$87)&
Ca!!
1ist D0 1ist DCa!! =1
;E
Ca!! :1;00
0 F
* La ri st ourne est de - ? 1ist
0
O
CGO1 P10 Lalgori thmi que
"our des !ormul es de calcul taleur com"l exe
Page ;B1C
CGO1 P10 Lalgori thmi que
II/ COMPOSANTS DUN ALGORITHME
A/ Structure gnrale dun algorithme
)n algori thme com"rend deux "arties #
lentAte qui contient la dclarat i on des vari abl es # "our chaque %ariale
utilise, on d!ini t le t,"e de donnes quelle contient # entier, rel, logique ou
al"hanumri que 'les %ariales doivent tre dclares "ralalement leur
utilisation(
le cor"s # contient lensemle des actions4

.LGO 0O@G$8GL.LGO
$clarati on des %arial es
$87)&
.ctions et condi ti ons
/20

B/ !onstantes et variables
1) Dfini tion
Les %ariales et les constantes corres"ondent des Hones de stocIage de la mmoi re
%i%e4 8lles "ermet tent de conser%er des %aleurs en %ue dun trai tement4
)ne %ariale "eut Atre mise Jour "ar lutilisateur '"ar laction 9.2921( exem"l e # SAISIR
!aff ou Atre modi!ie "ar une action exem"le " Rist #$ !aff%&' () # la %ariale 1ist est
a!!ecte "ar le calcul Ca!! = 0,1;
La saisie "eut Atre "rcde dune "hrase ex"licati %e #
*orme (
.//2C>81 * 9aisisseH le chi!!re da!!aires -
9.2921 Ca!!
*orme ) '"lus "ratique car on gagne une ligne(
9.2921'* 9aisisseH le chi!!re da!!aires -, Ca!!(
)ne constante, en re%anche, est d!inie une !ois "our toute lintrieur du
* "rogramme - 'a%ant les dclarations de %ariales( et ne "eut "as Atre modi!ie "ar
luti lisateur4 )ne constante corres"ond un "aram+tre4
Exempl e # mAme exem"le que ci dessus mais cette !ois on dcide que le taux de remise
de 1;E constitue une constante #
!+,S-A,-ES
-xRist .&' ()
6.12.7L89
Ca!! # 1el sim"le
1ist # 1el sim"le
$87)&
9.2921'* 9aisisseH le chi!!re da!!ai res -, Ca!!(
92 Ca!! :1;000
.LO19 1ist <- Ca!!= -xRist
920O0 1ist <- 0
/20 92
.//2C>81 * La ristourne est de - ? 1ist
/20
Page CB1C
CGO1 P10 Lalgori thmi que
2) Typ! " "onn!
Les t,"es de donnes utilisales sont les sui%ants #
Rel # nomre %irgule
Entier
!ha/ne # texte de longueur !ixe 'C>.208 $8 1K C.1.C&8189( ou de longueur
%ariale 'mot cl C>.208 utilise sans rien(
!aract0re # )n seul caract+re * 0 -, * 1 -,L * a -, * . - "ar exem"l e
Boolen # %aleur logique "ou%ant Atre 461.24 ou 4/.)M4
Le t,"e des donnes est d!ini dans la section $claration de %ariales4 Lorsque
"lusieurs %ariales sont de mAme t,"e, on "eut les regrou"er sur une mAme ligne4
8xem"le #
Ca!!, 1ist # 1el
1e%ient au mAme que
Ca!! # 1el sim"le
1ist # 1el sim"le
#) A!!i$n%tion " &%'()! * "! &%)i%+' !
Lo"rateur da!!ectation est le sui%ant #
Exempl es #
I ( .!!ecte la %aleur 1 la %ariale 2
I ,bArticl es1(& a!!ecte la %ariale 2 le contenu de la
%ariale 0.rticles augmente de 10
I I 1( .ugmente la %aleur de la %ariale 2 de 1
'on "arle dincrment at i on( et a!!ecte la
nou%elle %aleur la %ariale
,om!li 2 Durand 3 .!!ecte la chaNne de caract+re $urand la
%ariale 0omCli
,om!li 2 Durand 3 4 2 2 4
5ren!li
a!!ecte la %aleur $urand sui%i dun es"ace
et du contenu de la %ariale PrenCli la
%ariale
Lo"rateur O "ermet de concatner des chaNnes de caract+res
Remar6ues #
Pour additionner des nomres ou concatner du texte, les t,"es de donnes
doi%ent Atre com"ati les 'ex # on ne "eut "as additionner des chi!!res a%ec du
texte(
Pour rendre com"ati l e des donnes entre elles, on "eut utiliser des !onctions de
con%ersion 'C6C>.208 et C60O@718(
!7!8AI ,E9(&: ren%oie la %aleur de t,"e chaNne sui%ante #
* 10 -
!7,+;BRE92 <=<&& 3: ren%oie la %aleur numri que KPK00
CPCli <- KPK00 QCPCli est de t,"e
entier
6illeCli <- * $O).2 -
.drCli <- C6C>.208'CPCli( O * * O 6illeCli
.//2C>81 .drCli
Ce out de code a!!ichera la %aleur
littral e sui%ante # * KPK00 $O).2 -
Page RB1C
CGO1 P10 Lalgori thmi que
Page KB1C
CGO1 P10 Lalgori thmi que
!/ 5rocdures et fonctions
5our allger lcri ture du programme , il est "ossile de rdiger des procdures qui
sont a""eles dans le cor"s du "rogramme et des fonctions "ersonnalises charges
de!!ectuer des calculs "lus ou moins com"lexes
- )ne "rocdure excute un trai tement mais ne ren%oie "as de %aleur
- )ne !onction ren%oie des %aleurs "ou%ant Atre ex"loi tes dans le cor"s du
"rogramme
)ne "rocdure comme une !onction "eut acce"ter des "aram+t res dentre4 La %aleur de
ces "aram+tres est alors utilise lintrieur de la "rocdure ou de la !onction4
Par ailleurs, le "seudo langage algori thmi que com"orte des !onctions dites gnriques
quon "eut utiliser en ltat4 8xem"le # la !onction C6C>.208'.rgument(
.lgorithme
DEB>-
Cor"s de lalgori thme
0omProcdure'%ari al e( Qla "rocdure est a""ele et le contenu de %arial e est "ass en
"aram+tres
L
1esultat/onction 0om/onction'%ari al e;( Qle contenu de %arial e; est "ass en
"aram+tre
de la !oncti on
*I,
5R+!ED>RE 0omProcdure'"aram+t re1 # t,"e(
.ctions internes la "rocdure
*I, 5R+!ED>RE
*+,!-I+, 0om/onction'Param1, Param; # t,"e( # &,"e
.ctions internes la !oncti on
*I, *+,!-I+,
Page SB1C
CGO1 P10 Lalgori thmi que
!oncrtisons #
. "artir de lexem"l e initial, on %eut identi!ier lutil isateur du "rogramme '"rnom( et
a!!icher un message de ien%enue '"rocdure .ccueil( on %eut crer une !onction
calculant la ristourne 'Calc1istourne(4 Lalgori thme de%ient alors #
6.12.7L89
Chi!!.!!aires # 1el
$87)&
.ccueil'(
9.2921'* 9aisisseH le chi!!re da!!ai res -, Chi!!.!!ai res(
.//2C>81 * La ristourne est de - O C6C>.208'Calc1istourne'Chi!!.!!ai res((
/20
P1OC8$)18 .ccueil'( Qcette "rocdure ne com"orte aucun argument
6.12.7L89
Pren # C>.208
9.2921 '* 9aisisseH %otre "rnom -, Pren(
.//2C>81 * 7onJour - O Pren
/20 P1OC8$)18
/O0C&2O0 Calc1istourne'Ca!! # 1el( # 1el
CO09&.0&89
&x1ist D0,1;
92 Ca!! :1;000
.LO19 Calc1istourne<- Ca!!=&x1ist
920O0 Calc1istourne <- 0
/20 92
/20 /O0C&2O0
!omment ai res #
Lalgori thme est eaucou" "lus !acile lire et * doguer -
Le cor"s du "rogramme est allg 'C lignes(
Les "rocdures et les !onctions "ersonnalises "ourront Atre rutilises di%ers
endroits du "rogramme ce qui "ermet dconomiser du tem"s
.ttention # les %ariales dclares ? lintri eur dune "rocdure ou dune
!onction ont une "orte locale 'cest dire limi te la "rocdure ou la !onction(
Page TB1C
CGO1 P10 Lalgori thmi que
III/ LES STRUCTURES ALTERNATI,ES
8lles "ermet tent dexcuter des actions oissant une condition dtermi ne
A/ @a structure SI A*I, SI 9aborde en (0re anne:
92 Condition
.LO19
8xcuter les actions si la condi ti on est 61.28
920O0
8xcuter les condi ti ons si la condi tion est /.)998
/20 92
La condition !ait inter%enir les o"rateurs de com"araison sui%ant #
< ? <D ? D ? : ? :D ? <:
Pour les %aleurs oolennes, on "eut aussi utiliser lo"rateur 0O0
2l est "ossile di mri quer les 924
On "eut cominer les condi tions a%ec les o"rateurs 8& ou O)
8xem"le # 92 0otes<1; 8& 0otes:U # la condition sera %raie si notes est com"rise entre U
et 1;
Exempl e #
PrsenteH lalgori t hme "ermet t ant de dtermi ner le taux de ristourne a""liquer au
chi!!re da!!aires en !onction des conditions sui%antes #
Ca!! <D 1 K00 V D: ristourne D 1E
1 K00 V< Ca!! <D ; 000 V D: ristourne D ;E
; 000 V< Ca!! <C 000 V D: ristourne D CE
Ca!! :D;000 V D: ristourneDRE
.LGO CalculGristourne
6.12.7L89
Ca!! # 1el
&x1ist # 1el
$87)&
9.2921'* 9aisisseH le C. F -, C.(
92 C.<1K00
.LO19 &x1ist <- 0,01
920O0 92 C. <D;000
.LO19 &x1ist <- 0,0;
920O0 92 C.<D C000
.LO19 &x1ist <- 0,0C
920O0 &x1ist <- 0,0R
/20 92
/20 92
/20 92
.//2C>81 * &aux de ristourne # - ? &x1ist
/20
Page UB1C
CGO1 P10 Lalgori thmi que
B/ @a structure SE@+, A !AS A *I, SE@+,
Les 92 imri qus de%iennent %ite lourd grer et "rsenter4 Pour "alier cet
incon%nient, on "eut recourir la structure 98LO0 L C.9L /20 98LO0
98LO0 6ariale
C.9 6aleur1 #
.ction si 6ariale contient la %aleur 6aleur1
C.9 6aleur;, 6aleurC #
.ction si 6ariale contient la %aleur 6aleur; ou %aleurC
C.9 920O0 #
.ction si 6ariale ne contient aucune des %aleurs !igurant dans les C.9 "rcdent
/20 98LO0
Remar6ue # la ligne C.9 on "eut aussi utiliser le mot cl 89& 'du %ere Atre( et .
Exempl e # C.9 89&<1000
C.9 1000 . 1K00 'corres"ond un inter%alle continue de %aleurs(
8xem"le # 1e"renons lexem"le "rcdent
.LGO CalculGristourneGa%ecG98LO0
6.12.7L89
Ca!! # 1el
&x1ist # 1el
$87)&
9.2921'* 9aisisseH le C. F -, Ca!!(
98LO0 Ca!!
C.9 89& <1K00 #
&x1ist <- 0,01
C.9 89& <;000 #
&x1ist <- 0,0;
C.9 89&<C000 #
&x1ist <- 0,0C
C.9 920O0 #
&x1ist <- 0,0R
/20 98LO0
.//2C>81 * &aux de ristourne # - ? &x1ist
/20
Page PB1C
CGO1 P10 Lalgori thmi que
I,/ LES STRUCTURES ITERATI,ES
A/ @a boucle RE5E-ER BBB C>SD>A !ondition
8lle %ise dcrire des traitements r"ti ti !s qui sarrAtent lorsqu une condition
dtermi ne est rem"lie4 @es actions sont excut es au moins une fois 6uel 6ue
soit la condi ti on

18P8&81
.ctions excuter
W)9X)Y. Condition
Exempl e #
On souhai te im"ri mer un tat com"renant #
le nom des clients
le chi!!re da!!aires
le taux de ristourne
le montant de la ristourne 'arrondi ; dci males(
'on ne se souciera "as de la mise en !orme(
8xem"le de rsultat otenir #
8cran #
0om du client F Dupont
Chi!!res da!!aires F 1000
&aux de ristourne F 20%
6ouleH- %ous saisir un autre client F Oui # &a"eH 1 0on # ta"er ; # 2
2m"ression
0om Client Z Ca!! Z E 1istourne Z @ontant ristourne
L.LO) K00 10E K0
$)1.0$ T00 KE CK
L44 L4 L44 L4
$)PO0& 1000 ;0E ;00
Page 10B1C
CGO1 P10 Lalgori thmi que
Par sim"li!ication, on considrera que li m"ression se !ait "arall+lement la saisie4 $+s
que lutilisateur saisit le taux de ristourne, la ligne est im"ri me4 Ltat com"orte au
moins une ligne de %aleur4
.lgo 2m"ressionGetat
6.12.7L89
Ca!! # 1el
&x1ist # rel
@ontant1ist # 1el
0omCli # chaNne';K( QLa %ariale 0omCli contiendra au maxi mum ;K lettres
8ncore # 8ntier
$87)&
2@P12@81 * 8&.& $89 129&O)1089 -
2@P12@81 * 0om Client Z Ca!! Z E 1istourne Z @ontant ristourne -
18P8&81
9.2921 '* 0om du client F -, 0omCli(
9.2921 '* Chi!!res da!!ai res F -, Ca!!(
9.2921 '* &aux de ristourne F -, &x1ist
@ontant1istourne<- .11O0$2'Ca!!=&x1ist,;(
2@P12@81 0omCli, Ca!!, &x1ist, @ontant1istourne
9.2921'* 6ouleH- %ous saisir un autre client F Oui # &a"eH 1 0on # ta"er ; -, 8ncore(
W)9X)Y. 8ncore #D;
La oucle sarrAtera aussit[t que luti lisateur aura saisi la %aleur ;4
B/ @a boucle -A,- D>E !ondition BBB *I, -A,- D>E
&ant que la condi tion est %raie, les actions lintrieur de la oucle sont excutes4
Contrairement la oucle 18P8&81 L W)9X)Y., les actions "eu%ent ne "as Atre
excutes si la condition nest "as rem"lie au dut4
&.0& X)8 Condition
.ctions excuter tant que la condition est %raie
/20 &.0& X)8
8xem"l e # 1e"rise de lexem"l e "rcdent mais en utilisant une oucle &.0&
X)8 /20 &.0& X)8
Page 11B1C
CGO1 P10 Lalgori thmi que
.lgo 2m"ressionGetat
6.12.7L89
Ca!! # 1el
&x1ist # rel
@ontant1ist # 1el
0omCli # chaNne';K( QLa %ariale 0omCli contiendra au maxi mum ;K lettres
8ncore # 8ntier
$87)&
2@P12@81 * 8&.& $89 129&O)1089 -
2@P12@81 * 0om Client Z Ca!! Z E 1istourne Z @ontant ristourne -
8ncore <- 1 Q2nitialisati on de la %arial e 8ncore 1
&.0& X)8 8ncore #D1
9.2921 '* 0om du client F -, 0omCli(
9.2921 '* Chi!!res da!!ai res F -, Ca!!(
@ontant1istourne<- .11O0$2'Ca!!=&x1ist,;(
2@P12@81 0omCli, Ca!!, &x1ist, @ontant1istourne
9.2921'* 6ouleH- %ous saisir dautres clients F Oui # &a"eH 1 0on # ta"er ; -,
8ncore(
/20 &.0& X)8
Remar6ue # "our que la oucle soit excute au moins une !ois, on * !orce - la %aleur
de la %ariale 8ncore 14 On constate "ar ailleurs que les condi tions sont in%erses "ar
ra""ort celle d!inie dans la structure 18P8&81 L W)9X).
!/ @a boucle 5+>RBBB *I, 5+>R
8lle "ermet dexcuter une suite dactions un nombre dtermi n de !ois4 Le nomre
ditrati ons est connu la%ance
Exempl e (
On %eut a!!icher la tale de mul ti "licati on de 1
Rsultat ? obteni r #
1 M 1 D 1
1 M ; D ;
L
1 M 10 D10
.lgo taleGmul ti "l i cati onGdeG1
6.12.7L89
2 # entier
$87)&
PO)1 2 #D1 W)9X)Y. 10
.//2C>81 C6C>.208'2( O * M 1 D - O C6C>.208'2=1(
/20 PO)1
/20
Page 1;B1C
CGO1 P10 Lalgori thmi que
Exempl e) # 7oucle imri que
Cette !ois ci on souhai te a!!icher "lusieurs tales de mul ti "licati on4 On demande
luti lisateur de saisir la "remi+re tale quil souhai te et la derni+re
1sultat otenir
1
+re
tale F C
$erni+re tale F K
&ale de mul ti "l i cati on de C
C M 1D C
C M ;D S
L
C M 10 D C0
&ale de mul ti "l i cati on de R
R M 1D R
L
R M 10 D R0
&ale de mul ti "l i cati on de K
K M 1 D K
L
K M 10 D K0
.lgo taleGmul ti "l i cati on;
6.12.7L89
2,W # entier
Prem&ale, $er&ale# entier
$87)&
9.2921'* 1
+re
tale F -, Prem&ale(
9.2921'* $erni+re tale F -, $er&ale(
PO)1 2 #DPrem&al e W)9X)Y. $er&ale(
.//2C>81 * &ale de mul ti "l i cati on de - O C6C>.208'2(
PO)1 W#D1 W)9X)Y. 10
.//2C>81 C6C>.208'W( O * M - OC6C>.208'2( O * D - O C6C>.208'W=2(
/20 PO)1
/20 PO)1
/20
Page 1CB1C

You might also like