Vous êtes sur la page 1sur 8

Chapitre 1 INTRODUCTION A L'ALGORITHMIQUE

1. Dfinition
Un algorithme est la description des actions (ou instructions) effectuer pour rsoudre
un problme.
L'algorithmique est la partie de l'informatique qui traite des algorithmes.
!. Notion "e #aria$%e et "e &ontante
Les variables et les constantes permettent de contenir des informations (ou donnes)
utilises dans un algorithme.
Une variable ou une constante est caractrise par :
un identificateur! qui est un nom unique qui permet de la dsigner!
un t"pe! qui correspond la nature de l'information qu'elle contient!
une valeur! c'est dire l'information qu'elle contient.
La valeur d'une variable peut #tre modifie dans un algorithme alors que celle d'une
constante est fi$e une fois pour toutes.
'. Le t(pe "e "onne "e $ae
%n algorithmique! on distingue les cinq t"pes donnes de base suivants:
) caractre ( valeurs possibles : lettre! chiffre! ponctuation! espace! etc. )
cha&ne (valeurs possibles : toute suite de ' ou plusieurs caractres)
entier ( valeurs possibles : les nombres entiers positifs ou ngatifs)
rel ( valeurs possibles : les nombres rels positifs ou ngatifs)
boolen ( valeurs possibles : ()*+! ,*U-)
Re*ar+,e
Une valeur de t"pe caractre doit #tre entre apostrophes. .ar e$emple: '*' ! '/'
Une valeur de t"pe cha&ne doit #tre entre guillemets. .ar e$emple: 01on2our0
-. D&%aration "e #aria$%e et "e &ontante
*vant d'utiliser une variable ou une constante dans un algorithme il faut la dclarer en
dfinissant clairement son identificateur et son t"pe.
-)1. D&%aration "',ne #aria$%e
.our dclarer une variable! on utilise la s"nta$e suivante :
identificateur : t"pe
Un identificateur est une suite de caractres pouvant contenir des lettres! des chiffres et
le caractre 3 (soulign). 4ais le premier caractre ne peut pas #tre un chiffre.
E.e*p%e
a : entier
5n peut initialiser une variable (lui affecter une premire valeur) lors de sa dclaration.
5n peut aussi dclarer en m#me temps plusieurs variables de m#me t"pe.
E.e*p%e
$ 6 7 ! " ! 8 : entier
9r. 92amal :ec; ,:< =hapitre> ? +ntroduction l'algorithmique .age > @ A
-)!. D&%aration "',ne &ontante
.our dclarer une constante! on utilise la s"nta$e suivante :
identificateur 6 valeur : t"pe
E.e*p%e
B 6 >'' : entier
/. 0tr,&t,re 1nra%e "2,n a%1orith*e
Un algorithme est crit dans un langage appel langage algorithmique ou pseudo
langage et est gnralement structur de la manire suivante :
A%1orith*e Bom de l'algorithme
Contante
9claration des constantes
D$,t
3aria$%e
9claration des variables
+nstructions
4in
5. Le opration "e %2a%1orith*i+,e
Le tableau suivant regroupe quelques oprations utilises en algorithmique:
Opration Oprate,r T(pe &on&ern
5prations
arithmtiques
*ddition C
Les t"pes
entier et rel
:oustraction
4ultiplication D
9ivision fractionnaire @ Le t"pe rel
9ivision entire div
Le t"pe entier
4odulo (reste de la division entire) mod
5prations
logiques
%t logique %<
Le t"pe
boolen.
5u logique 5U
Bgation B5B
5prations
de
comparaison
+nfrieur E
<ous les t"pes
de base.
+nfrieur ou gal F
:uprieur G
:uprieur ou gal H
%gal 6 6
9iffrent I
9r. 92amal :ec; ,:< =hapitre> ? +ntroduction l'algorithmique .age J @ A
Re*ar+,e
Une opration de comparaison donne comme rsultat soit la valeur ()*+ soit la
valeur ,*U-.
%tant donnes deu$ variables boolennes * et 1! les rsultats des oprations %<! 5U et
B5B sont dfinis dans le tableau suivant :
A 6 A ET 6 A OU 6 NON A
()*+ ()*+ ()*+ ()*+ ,*U-
()*+ ,*U- ,*U- ()*+ ,*U-
,*U- ()*+ ,*U- ()*+ ()*+
,*U- ,*U- ,*U- ,*U- ()*+
7. Notion "'e.preion et "e &on"ition
Une e$pression est:
soit une variable ou une constante!
soit une valeur (par e$emple : K7! '*'! 0bon2our0)!
soit une combinaison de variables! de constantes! de valeurs et d'oprateurs (par
e$emple : J D r D /.>K)
%lle possde une valeur et un t"pe.
.ar e$emple! si r vaut 7! alors l'e$pression J D r D /.>K est de t"pe rel et vaut />.K
Une condition est une e$pression dont le t"pe est boolen! c'est dire que sa valeur est
soit ()*+ soit ,*U-. 5n parle aussi d'e$pression boolenne! d'e$pression logique!
d'e$pression conditionnelle.
E.e*p%e
(ariable
a 6 7! b 6 J! c 6 / : entier
a E ( J D b ? c ) est une condition dont la valeur est: ,*U-
( a G ' ) %< ( b E ' ) est une condition dont la valeur est: ,*U-
8. Le intr,&tion %*entaire
8)1. L2affe&tation
LLaffectation consiste donner une valeur une variable. %lle se fait avec l'oprateur 6
ou M selon la s"nta$e suivante :
variable 6 e$pression
L'e$pression est d'abord value puis sa valeur est donne la variable.
E.e*p%e
(ariable
$ ! " : entier
$ 6 7
" 6 $ ? J
$ 6 $ C >
9r. 92amal :ec; ,:< =hapitre> ? +ntroduction l'algorithmique .age / @ A
8)!. La %e&t,re
LLinstruction de lecture permet au programme de lire des donnes entres au clavier
par l'utilisateur. %lle se fait selon la s"nta$e suivante:
Lire( variable> ! variableJ ! N ! variableB )
E.e*p%e
Lire( $ ) @@ lit la valeur entre au clavier et l'affecte la variable $
Lire( $ ! " ) @D lit la premire valeur entre au clavier et l'affecte $!
puis lit la deu$ime valeur et l'affecte " D@
8)'. L'&rit,re
L'instruction d'criture permet d'afficher l'cran des valeurs d'e$pressions selon la
s"nta$e suivante:
%crire( e$pression> ! e$pressionJ ! N ! e$pressionB )
E.e*p%e
%crire( ch ) @@ permet d'afficher l'cran la valeur de la variable ch.
%crire( 01on2our0 ) @@ permet d'afficher l'cran la cha&ne 1on2our
%crire( a ! b ) @@ permet d'afficher l'cran les valeurs des variables a et b.
9. E.e*p%e "'a%1orith*e
*lgorithme pour changer les valeurs de deu$ variables :
*lgorithme %change
9but
(ariable
$ ! "! tmp : entier
%crire( 09onner les valeurs respectives des deu$ entiers $ et " : 0 )
Lire($ ! ")
%crire( 0*vant change : $ vaut 0! $ ! 0 et " vaut : 0 ! " )
tmp 6 $
$ 6 "
" 6 tmp
%crire( 0*prs change : $ vaut 0! $ ! 0 et " vaut : 0! " )
,in
* l'e$cution! si l'utilisateur donne J pour la valeur de $ et 7 pour celle de "! nous
aurons l'cran:
9onner les valeurs respectives des deu$ entiers $ et " : J 7
*vant change : $ vaut J et " vaut : 7
*prs change : $ vaut 7 et " vaut : J
1:. Le tr,&t,re "e &ontr;%e
Les structures de contrOle permettent de dterminer lLencha&nement ou la frquence
dLe$cution des instructions dLun programme.
1:)1. La tr,&t,re &on"itionne%%e 0i
La structure :i permet lLe$cution d'un traitement ou d'un autre en fonction de la
valeur d'une ou de plusieurs conditions suivant la s"nta$e gnrale suivante :
9r. 92amal :ec; ,:< =hapitre> ? +ntroduction l'algorithmique .age K @ A
:i ( condition> ) *lors
traitement>
:inon :i ( conditionJ ) *lors
traitementJ
...
:inon :i ( conditionB ) *lors
traitementB
:inon
traitement
,in:i
Un traitement peut #tre constitu d'une ou de plusieurs instructions.
Les conditions sont values dans lLordre dLapparition. 9s qu'une condition est vraie!
c'est le traitement associ qui sera e$cut. :i aucune condition nLest vrifie! alors
c'est le traitement associ la clause :inon! si elle e$iste! qui sera e$cut.
E.e*p%e
(ariable
n : entier
%crire( 09onne8 un nombre entier0 )
Lire( n )
:i ( n G ' ) *lors
%crire(0valeur positive0)
:inon :i ( n 6 6 ' ) *lors
%crire( 0valeur nulle0 )
:inon
%crire( 0valeur ngative0 )
,in:i
1:)!. La tr,&t,re 0e%on
La structure :elon permet d'e$cuter un traitement ou un autre en fonction de la valeur
d'une e$pression qui peut #tre de t"pe entier! caractre ou boolen. :a s"nta$e est :
:elon ( e$pression ) ,aire
valeur> : traitement>
valeurJ : traitementJ
N
valeurB : traitementB
:inon traitement
,in:elon
La valeur de l'e$pression est successivement compare chacune des valeurs listes.
9s quLil " a correspondance! c'est le traitement associ qui sera e$cut. :i aucune
des valeurs ne correspond la valeur de lLe$pression! alors c'est le traitement associ
la clause :inon! si elle e$iste! qui sera e$cut.
9r. 92amal :ec; ,:< =hapitre> ? +ntroduction l'algorithmique .age 7 @ A
E.e*p%e< affichage du 2our en toutes lettres selon son numro.
(ariable
num : entier
%crire( 09onner un numro de 2our0 )
Lire( num )
:elon ( num ) ,aire
> : %crire( 0Lundi0 )
J : %crire( 04ardi0 )
/ : %crire( 04ercredi0 )
:inon %crire( 0=e n'est ni Lundi ni 4ardi ni 4ercredi0 )
,in:elon
1:)'. Le tr,&t,re rptiti#e
Les structures rptitives! encore appeles boucles! permettent de rpter plusieurs fois
l'e$cution d'un traitement.
1:)')1. La $o,&%e Tant Q,e
La boucle <ant Pue permet de rpter l'e$cution d'un traitement tant quLune condition
est vraie. :a s"nta$e est:
<ant Pue ( condition ) ,aire
traitement
,in<antPue
E.e*p%e< affichage des nombres entiers compris entre > et un nombre nombre positif
donn par l'utilisateur.
(ariable
n! i : entier
%crire (09onne8 une valeur entire positive0)
Lire ( n )
i 6 >
<ant Pue ( i E6 n ) ,aire
%crire( i )
i 6 i C >
,in<antPue
1:)')!. La $o,&%e 4aire ... Tant Q,e
La boucle ,aire N<ant Pue permet d'e$cuter un traitement au moins une fois et de le
rpter tant quLune condition est vraie. :a s"nta$e est :
,aire
traitement
<ant Pue (condition)
9r. 92amal :ec; ,:< =hapitre> ? +ntroduction l'algorithmique .age Q @ A
E.e*p%e < affichage de l'inverse d'un entier non nul donn par l'utilisateur.
(ariable
n : entier
,aire
%crire (09onne8 un entier non nul :0)
Lire( n )
<ant Pue ( n 6 6 ' )
%crire (0:on inverse est : 0 ! > @ n )
1:)')'. La $o,&%e =o,r
La boucle .our permet d'e$cuter un traitement pour chaque valeur prise dans un
intervalle par une variable de t"pe entier appele compteur. :a s"nta$e est la suivante:
.our compteur 6 valeur3initiale valeur3finale par pas de valeur3pas ,aire
traitement
,in.our
Le compteur est initialis la valeur initiale. +l augmente automatiquement de la
valeur du pas chaque e$cution du traitement. Puand il atteint la valeur finale! le
traitement est e$cut une dernire fois.
:i le pas n'est pas prcis! sa valeur est par dfaut gale >.
E.e*p%e
(ariable
i : entier
@@ affichage l'cran des entiers pairs de ' J' :
.our i 6 ' J' par pas de J ,aire
%crire( i )
,in.our
@@ affichage l'cran des entiers pairs de J' ' :
.our i 6 J' ' par pas de J ,aire
%crire( i )
,in.our
@@ affichage l'cran des entiers de ' J' :
.our i 6 ' J' ,aire
%crire( i )
,in.our
9r. 92amal :ec; ,:< =hapitre> ? +ntroduction l'algorithmique .age R @ A
1:)-. Le intr,&tion "e r,pt,re "e +,en&e
1:)-)1. L'intr,&tion Arr>ter
L'instruction Arr>ter permet d'interrompre le droulement de la boucle qui la contient.
E.e*p%e
.our i 6 > 7 ,aire
%crire( 0%tape 0 ! i ! 0 : 0)
:i ( i 6 6 / ) *lors
*rr#ter
,in:i
%crire( 01on2our0)
,in.our
* l'e$cution! on obtient l'cran :
%tape > : 1on2our
%tape J : 1on2our
%tape / :
1:)-)!. L'intr,&tion Contin,er
L'instruction Contin,er permet d'interrompre le droulement de l'tape courante de la
boucle qui la contient et de passer directement l'tape suivante.
E.e*p%e
.our i 6 > 7 ,aire
%crire( 0%tape 0 ! i ! 0 : 0)
:i ( i 6 6 / ) *lors
=ontinuer
,in:i
%crire( 01on2our0)
,in.our
* l'e$cution! on obtient l'cran :
%tape > : 1on2our
%tape J : 1on2our
%tape / :
%tape K : 1on2our
%tape 7 : 1on2our
9r. 92amal :ec; ,:< =hapitre> ? +ntroduction l'algorithmique .age A @ A

Vous aimerez peut-être aussi