Vous êtes sur la page 1sur 12

Dfinition

Algorithme est un terme d'origine arabe, comme


alg
algbre, amiral, alcool, haras, chiffre,

Algorithmique Un algorithme, c'est une suite finie d'instructions,


qui une fois ex
excut
cute correctement, conduit un
SMP - SMC 2 rsultat donn
donn
04/2011 Si l'algorithme est juste, le r
rsultat est le
rsultat voulu sinon le r
rsultat est, disons,
al
alatoire

M HIMMI (FSR)
Un algorithme est une mmthode de r
rsolution
d'un probl
problme qui utilise un nombre fini d'
d'tapes
FSR - M. HIMMI 2011 2

Dfinition Notation
Plusieurs types de notations ont repr
reprsent
sent des
Un algorithme doit contenir uniquement des algorithmes:
instructions compr
comprhensibles par celui qui devra La repr
reprsentation graphique, avec des carr
carrs,
l'ex
l'excuter ! des losanges, etc. qu'on appelait des
organigrammes: Quasiment abandonn
abandonne
La ma
matrise de l'algorithmique requiert deux
qualit
qualits: Utilisation d'un "pseudo-
"pseudo-code". Il ressemble un
Avoir une certaine intuition. langage de programmation sans les probl
problmes
Etre m
mthodique et rigoureux. de syntaxe.
Ce pseudo-
pseudo-code est susceptible de varier
lgrement d'un auteur un autre, tout en
gardant la mme philosophie...
FSR - M. HIMMI 2011 3 FSR - M. HIMMI 2011 4

Algorithmique SMP-SMC S2 2010-2011 1


Instruction Instruction
Les ordinateurs ne sont capables de
comprendre que quatre familles Un algorithme se ram
ramne toujours la
d'instructions: combinaison de ces quatre petites briques de
base
l'affectation L'ordre dans lequel les instructions sont crites
la lecture / criture joue un rle essentiel dans le r
rsultat final
les tests
les boucles La taille d'un algorithme ne conditionne pas sa
complexit
complexit : de longs peuvent tre assez simples
et de petits tr
trs compliqu
compliqus.

FSR - M. HIMMI 2011 5 FSR - M. HIMMI 2011 6

Cycle de production Variables


Ds qu
quon a besoin de stocker une information
au cours d'un programme, on utilise une variable
tudier le Mthode de
Problme
problme rsolution
Une variable est un emplacement de m
mmoire
rep
repr par une adresse binaire.
binaire.
Documentation

Formulation
Pour acc
accder au contenu de la variable, il suffit
de la d
dsigner par son adresse
Il est beaucoup plus facile d'employer les
Ok tiquettes de son choix, que de devoir manier
Tests Algorithme des adresses binaires!
Ok
Programmation
Exemples
FSR - M. HIMMI 2011 7 FSR - M. HIMMI 2011 8

Algorithmique SMP-SMC S2 2010-2011 2


Variables Variables
Avant d'utiliser des variables, il faut les dclarer:
clarer: Types num
numriques classiques
Rserver une zone m
mmoire et lui donner une le type de variable choisi pour un nombre
tiquette. dtermine:
les valeurs maximales et minimales des
Le nom de la variable ou l'
l'tiquette ob
obit
des r
rgles: nombres pouvant tre stock
stocks dans la
Pas de signes de ponctuation ni d despaces variable
Un nom de variable commence par une la pr
prcision de ces nombres (dans le cas de
lettre nombres ddcimaux)
Pr
Prciser ce qu'on va mettre dedans
(car de cela d
dpendent la taille de l'emplacement
mmoire et le type de codage utilis
utilis)
FSR - M. HIMMI 2011 9 FSR - M. HIMMI 2011 10

Variables Variables
Type alphanum
alphanumrique (ou cha
chane de caract
caractres) En pseudo code une d dclaration s'
s'crit:
Variable g en Num
Numrique
Pour stocker des caract
caractres: (entre guillemets " ou
") Variables PrixHT,
PrixHT, TauxTVA,
TauxTVA, PrixTTC en Num
Numrique
Lettres
signes de ponctuation Type Numrique Plage

Espaces Byte (octet) 0 255


Chiffres Entier simple -32 768 32 767
Entier long -2 147 483 648 2 147 483 647
Type bool
boolen
Rel simple 3,4x10-38 3,40x1038
Pour stocker les valeurs logiques (VRAI et
FAUX) Rel double 1,7x10-308 1,7x10308
FSR - M. HIMMI 2011 11 FSR - M. HIMMI 2011 12

Algorithmique SMP-SMC S2 2010-2011 3


Variables Laffectation
La seule chose qu'on puisse faire avec une
Une variable poss
possde un moment variable: lui attribuer une valeur
valeur
donn
donn une valeur et une seule. A la
rigueur, elle peut ne pas avoir de L'instruction d'affectation se note:
valeur du tout
Ainsi : Toto 24
Attribue la valeur 24 la variable Toto.
Cette valeur ne "varie
"varie"" que lorsqu'elle
est l'objet d'une instruction  Si type de Toto n'est pas num
numrique cette
d'affectation
d'affectation.. instruction provoquera une erreur.
FSR - M. HIMMI 2011 13 FSR - M. HIMMI 2011 14

Laffectation Laffectation
Dans une instruction d'affectation, on trouve :
On peut attribuer une variable la valeur gauche de la fl
flche, un nom de
d'une autre variable variable
Tutu Toto
droite de la fl
flche, une expression.
la valeur de Tutu est maintenant celle de
Toto
Expression: ensemble de valeurs reli
relies
par des op
oprateurs et quivalent une
seule valeur
FSR - M. HIMMI 2011 15 FSR - M. HIMMI 2011 16

Algorithmique SMP-SMC S2 2010-2011 4


Loprateur Oprateurs
Op
Oprateurs num
numriques:
Un op
oprateur est un signe qui relie deux valeurs + : addition - : soustraction
pour produire un r
rsultat. * : multiplication / : division

Les op
oprateurs d
dpendent du type des * et / ont priorit
priorit sur + et (idem qu'en maths)
valeurs qui sont en jeu. Pour modifier cette priorit
priorit: utiliser des
parenth
parenthses

Op
Oprateur alphanum concatnation: &
alphanumrique de concat

Oprateurs logiques: ET,


Op OU, NON et XOR
FSR - M. HIMMI 2011 17 FSR - M. HIMMI 2011 18

Exercice 1 Exercice 2
Quelles seront les valeurs des variables A et B Quelles seront les valeurs des variables A, B et
aprs excution des instructions suivantes ? C aprs excution des instructions suivantes ?

Variables A, B, C en Entier
Variables A, B en Entier Dbut
Dbut A5
A1 B3
BA+3 CA+B
A3 A2
Fin CBA
Fin
FSR - M. HIMMI 2011 19 FSR - M. HIMMI 2011 20

Algorithmique SMP-SMC S2 2010-2011 5


Exercice 3 Exercice 4
Quelles seront les valeurs des variables A et B Quelles seront les valeurs des variables A, B et
aprs excution des instructions suivantes ? C aprs excution des instructions suivantes ?

Variables A, B, C en Entier
Variables A, B en Entier
Dbut
Dbut A3
A5 B 10
BA+4 CA+B
AA+1 BA+B
BA4 AC
Fin Fin

FSR - M. HIMMI 2011 21 FSR - M. HIMMI 2011 22

Exercice 5 Exercice 6
Quelles seront les valeurs des variables A et B
aprs excution des instructions suivantes ?
Variables A, B en Entier
Dbut Ecrire un algorithme permettant
A5
B2 dchanger les valeurs de deux
AB variables A et B, et ce quel que soit
BA leur contenu pralable.
Fin
Les deux dernires instructions permettent-elles
dchanger les deux valeurs de B et A ?
Si lon inverse les deux dernires instructions,
cela change-t-il quelque chose ?
FSR - M. HIMMI 2011 23 FSR - M. HIMMI 2011 24

Algorithmique SMP-SMC S2 2010-2011 6


Exercice 7 Exercice 8

Que produit lalgorithme suivant ?


On dispose de 3 variables A, B et C.
Variables A, B, C en Caractres
Ecrivez un algorithme transfrant B la Dbut
valeur de A, C la valeur de B et A A "423"
la valeur de C ( quels que soient les B "12"
contenus pralables de ces variables ). CA+B
Fin

FSR - M. HIMMI 2011 25 FSR - M. HIMMI 2011 26

Exercice 9 Lecture et Ecriture

Que produit lalgorithme suivant ?


Pour permettre la machine de dialoguer
Variables A, B en Caractres avec l'utilisateur:
Dbut
A "423" Lecture: rentrer des valeurs au clavier
B "12"
CA&B
Fin criture: affichage l'
l'cran

FSR - M. HIMMI 2011 27 FSR - M. HIMMI 2011 28

Algorithmique SMP-SMC S2 2010-2011 7


Lecture et Ecriture Lecture et Ecriture
Instruction de lecture:
Lire Titi
l'ex
l'excution s'interrompt attendant la frappe Avant de Lire une variable, il est tr
trs
d'une valeur au clavier, d
ds que la touche fortement conseill
conseill d'
d'crire des libell
libells
Entr
Entre est frapp
frappe,l'ex
e,l'excution reprend. l'
l'cran, afin de pr
prvenir l'utilisateur de ce
qu'il doit frapper !

Instruction d
dcriture:
criture:
Ecrire Toto
FSR - M. HIMMI 2011 29 FSR - M. HIMMI 2011 30

Exercice 10 Exercice 11

Que produit lalgorithme suivant ?


Ecrire un algorithme qui demande un
Variables val, double numriques nombre lutilisateur, puis calcule et
Dbut
Val 231
affiche le carr de ce nombre.
Double Val * 2
Ecrire Val
Ecrire Double
Fin
FSR - M. HIMMI 2011 31 FSR - M. HIMMI 2011 32

Algorithmique SMP-SMC S2 2010-2011 8


Exercice 12 Tests / branchements conditionnels
En fonction d
dune condition on agit
diff
diffremment
Ecrire un algorithme qui lit le prix HT Il y a 2 formes possibles pour un test:
test:
dun article, le nombre darticles et le
taux de TVA, et qui fournit le prix total Si bool
boolen Si bool
boolen Alors
TTC correspondant. Faire en sorte Alors Instructions 1
que des libells apparaissent Instructions Sinon
Finsi Instructions 2
clairement.
Finsi
FSR - M. HIMMI 2011 33 FSR - M. HIMMI 2011 34

Tests / branchements conditionnels Tests

Bool
Boolen est une expression dont la valeur Une condition est une expression
est: compos
compose de trois lments:
VRAI ou FAUX.
une valeur
un op
oprateur de comparaison
Cela peut tre:
une autre valeur
une variable de type bool
boolen
une condition

FSR - M. HIMMI 2011 35 FSR - M. HIMMI 2011 36

Algorithmique SMP-SMC S2 2010-2011 9


Tests Tests
Conditions compos
composes: (expression)
Les op
oprateurs de comparaison sont: Quatre op
oprateurs logiques: ET, OU, NON,
et XOR

gal = ET Vrai Faux OU Vrai Faux


diff
diffrent de
de <> Vrai Vrai Faux Vrai Vrai Vrai
strictement plus petit que
que < Faux Faux Faux Faux Vrai Faux
strictement plus grand que
que >
XOR Vrai Faux NON
plus petit ou gal <=
plus grand ou gal >= Vrai Vrai Faux Vrai Faux
Faux Faux Vrai Faux Vrai
FSR - M. HIMMI 2011 37 FSR - M. HIMMI 2011 38

Tests Tests
Tests imbriqu
imbriqus
ET ou OU ?  (transf.
transf. de Morgan) Si bool
boolen1 Alors  Les tests
instructions imbriqu
imbriqus sont
Si bool
boolen2 des outils de
les parenth
parenthses jouent un rle simplification et
fondamental Alors d'optimisation
instructions des algorithmes
diff
diffrentes possibilit
possibilits, le choix est une Sinon
affaire de style instructions
Finsi
Finsi
FSR - M. HIMMI 2011 39 FSR - M. HIMMI 2011 40

Algorithmique SMP-SMC S2 2010-2011 10


Tests Exercice 13
SinonSi Sinon et Si
Si bool
boolen1 Alors peuvent tre
instructions fusionn
fusionns en Ecrire un algorithme qui demande
un SinonSi.
SinonSi.
SinonSi bool
boolen2 alors trois nombres lutilisateur et
instructions
 C'est un seul
linforme ensuite sils sont rangs ou
sinon bloc de test, non dans lordre croissant.
instructions termin
termin par
Finsi un seul FinSi

FSR - M. HIMMI 2011 41 FSR - M. HIMMI 2011 42

Exercice 14 Exercice 15

Ecrire un algorithme qui demande un Ecrire un algorithme qui demande


nombre lutilisateur, et linforme deux nombres lutilisateur et
ensuite si ce nombre est positif, linforme ensuite si le produit est
ngatif ou nul. ngatif, positif ou nul. On ne doit pas
calculer le produit !

FSR - M. HIMMI 2011 43 FSR - M. HIMMI 2011 44

Algorithmique SMP-SMC S2 2010-2011 11


Exercice 16 Exercice 17
Ecrire un algorithme qui demande
lge dun enfant lutilisateur. Ecrire un algorithme qui lira au clavier
Ensuite, il linforme de sa catgorie: lheure et les minutes, et affichera lheure
quil sera une minute plus tard.
"Poussin" de 6 7 ans
"Pupille" de 8 9 ans Si l'utilisateur tape 21 puis 32, l'algorithme
doit rpondre :
"Minime" de 10 11 ans
"Dans une minute, il sera 21 heure(s) 33".
"Cadet" aprs 12 ans
On suppose que l'utilisateur entre une heure
Peut-on concevoir plusieurs algorithmes valide.
quivalents menant ce rsultat ?
FSR - M. HIMMI 2011 45 FSR - M. HIMMI 2011 46

Exercice 18
Un magasin de photocopie facture
0,50Dh les dix premires pages,
0,40Dh les vingt suivantes et 0,20Dh
au-del.

Ecrivez un algorithme qui demande


lutilisateur le nombre de photocopies
effectues et qui affiche le montant
payer.
FSR - M. HIMMI 2011 47

Algorithmique SMP-SMC S2 2010-2011 12

Vous aimerez peut-être aussi