Vous êtes sur la page 1sur 12

Définition

Algorithme est un terme d'origine arabe, comme


algè
algèbre, amiral, alcool, haras, chiffre, …

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


qui une fois exé
exécuté
cutée correctement, conduit à un
SMP - SMC 2 résultat donné
donné
04/2011 Si l'algorithme est juste, le ré
résultat est le
résultat voulu sinon le ré
résultat est, disons,
alé
aléatoire …

M HIMMI (FSR)
Un algorithme est une méméthode de ré
résolution
d'un problè
problème qui utilise un nombre fini d'é
d'étapes
FSR - M. HIMMI 2011 2

Définition Notation
Plusieurs types de notations ont repré
représenté
senté des
Un algorithme doit contenir uniquement des algorithmes:
instructions compré
compréhensibles par celui qui devra La repré
représentation graphique, avec des carré
carrés,
l'exé
l'exécuter ! des losanges, etc. qu'on appelait des
organigrammes: Quasiment abandonné
abandonnée
La maî
maîtrise de l'algorithmique requiert deux
qualité
qualités: Utilisation d'un "pseudo-
"pseudo-code". Il ressemble à un
Avoir une certaine intuition. langage de programmation sans les problè
problèmes
Etre mé
méthodique et rigoureux. de syntaxe.
Ce pseudo-
pseudo-code est susceptible de varier
légèrement d'un auteur à un autre, tout en
gardant la même 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è
ramène 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 rôle essentiel dans le ré
résultat 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è
très compliqué
compliqués.

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

Cycle de production Variables


Dès qu’
qu’on a besoin de stocker une information
au cours d'un programme, on utilise une variable
Étudier le Méthode de
Problème
problème résolution
Une variable est un emplacement de mé
mémoire
repé
repéré par une adresse binaire.
binaire.
Documentation

Formulation
Pour accé
accéder au contenu de la variable, il suffit
de la dé
désigner 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 déclarer:
clarer: Types numé
numériques classiques
Réserver une zone mé
mémoire et lui donner une le type de variable choisi pour un nombre
étiquette. détermine:
les valeurs maximales et minimales des
Le nom de la variable ou l'é
l'étiquette obé
obéit à
des rè
règles: nombres pouvant être stocké
stockés dans la
Pas de signes de ponctuation ni d’ d’espaces variable
Un nom de variable commence par une la pré
précision de ces nombres (dans le cas de
lettre nombres dédécimaux)
Pré
Préciser ce qu'on va mettre dedans
(car de cela dé
dépendent la taille de l'emplacement
mémoire et le type de codage utilisé
utilisé)
FSR - M. HIMMI 2011 9 FSR - M. HIMMI 2011 10

Variables Variables
Type alphanumé
alphanumérique (ou chaî
chaîne de caractè
caractères) En pseudo code une dé déclaration s'é
s'écrit:
Variable g en Numé
Numérique
Pour stocker des caractè
caractères: (entre guillemets " ou
") Variables PrixHT,
PrixHT, TauxTVA,
TauxTVA, PrixTTC en Numé
Numérique
– Lettres
– signes de ponctuation Type Numérique 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é
booléen
Réel simple 3,4x10-38 à 3,40x1038
Pour stocker les valeurs logiques (VRAI et
FAUX) Réel double 1,7x10-308 à 1,7x10308
FSR - M. HIMMI 2011 11 FSR - M. HIMMI 2011 12

Algorithmique SMP-SMC S2 2010-2011 3


Variables L’affectation
La seule chose qu'on puisse faire avec une
Une variable possè
possède à 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é
numérique cette
d'affectation
d'affectation.. instruction provoquera une erreur.
FSR - M. HIMMI 2011 13 FSR - M. HIMMI 2011 14

L’affectation L’affectation
Dans une instruction d'affectation, on trouve :
On peut attribuer à une variable la valeur à gauche de la flè
flèche, un nom de
d'une autre variable variable
Tutu ← Toto
à droite de la flè
flèche, une expression.
la valeur de Tutu est maintenant celle de
Toto
Expression: ensemble de valeurs relié
reliées
par des opé
opérateurs et équivalent à une
seule valeur
FSR - M. HIMMI 2011 15 FSR - M. HIMMI 2011 16

Algorithmique SMP-SMC S2 2010-2011 4


L’opérateur Opérateurs
Opé
Opérateurs numé
numériques:
Un opé
opérateur est un signe qui relie deux valeurs + : addition - : soustraction
pour produire un ré
résultat. * : multiplication / : division

Les opé
opérateurs dé
dépendent 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è
parenthèses

Opé
Opérateur alphanumé concaténation: &
alphanumérique de concaté

Opérateurs 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
après exécution des instructions suivantes ? C après exécution des instructions suivantes ?

Variables A, B, C en Entier
Variables A, B en Entier Début
Début A←5
A←1 B←3
B←A+3 C←A+B
A←3 A←2
Fin C←B–A
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
après exécution des instructions suivantes ? C après exécution des instructions suivantes ?

Variables A, B, C en Entier
Variables A, B en Entier
Début
Début A←3
A←5 B ← 10
B←A+4 C←A+B
A←A+1 B←A+B
B←A–4 A←C
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
après exécution des instructions suivantes ?
Variables A, B en Entier
Début Ecrire un algorithme permettant
A←5
B←2 d’échanger les valeurs de deux
A←B variables A et B, et ce quel que soit
B←A leur contenu préalable.
Fin
Les deux dernières instructions permettent-elles
d’échanger les deux valeurs de B et A ?
Si l’on inverse les deux dernières 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 l’algorithme suivant ?


On dispose de 3 variables A, B et C.
Variables A, B, C en Caractères
Ecrivez un algorithme transférant à B la Début
valeur de A, à C la valeur de B et à A A ← "423"
la valeur de C ( quels que soient les B ← "12"
contenus préalables de ces variables ). C←A+B
Fin

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

Exercice 9 Lecture et Ecriture

Que produit l’algorithme suivant ?


Pour permettre à la machine de dialoguer
Variables A, B en Caractères avec l'utilisateur:
Début
A ← "423" Lecture: rentrer des valeurs au clavier
B ← "12"
C←A&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'exécution s'interrompt attendant la frappe Avant de Lire une variable, il est trè
très
d'une valeur au clavier, dé
dés que la touche fortement conseillé
conseillé d'é
d'écrire des libellé
libellés à
Entré
Entrée est frappé
frappée,l'exé
e,l'exécution reprend. l'é
l'écran, afin de pré
prévenir l'utilisateur de ce
qu'il doit frapper !

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

Exercice 10 Exercice 11

Que produit l’algorithme suivant ?


Ecrire un algorithme qui demande un
Variables val, double numériques nombre à l’utilisateur, puis calcule et
Début
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’
d’une condition on agit
diffé
différemment …
Ecrire un algorithme qui lit le prix HT Il y a 2 formes possibles pour un test:
test:
d’un article, le nombre d’articles et le
taux de TVA, et qui fournit le prix total Si boolé
booléen Si boolé
booléen Alors
TTC correspondant. Faire en sorte Alors Instructions 1
que des libellés apparaissent Instructions Sinon
Finsi Instructions 2
clairement.
Finsi
FSR - M. HIMMI 2011 33 FSR - M. HIMMI 2011 34

Tests / branchements conditionnels Tests

Boolé
Booléen est une expression dont la valeur Une condition est une expression
est: composé
composée de trois éléments:
VRAI ou FAUX.
une valeur
un opé
opérateur de comparaison
Cela peut être:
une autre valeur
une variable de type boolé
booléen
une condition

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

Algorithmique SMP-SMC S2 2010-2011 9


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

égal à… = ET Vrai Faux OU Vrai Faux


diffé
différent 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é
imbriqués
ET ou OU ?  (transf.
transf. de Morgan) Si boolé
booléen1 Alors  Les tests
instructions imbriqué
imbriqués sont
Si boolé
booléen2 des outils de
les parenthè
parenthèses jouent un rôle simplification et
fondamental Alors d'optimisation
instructions des algorithmes
diffé
différentes possibilité
possibilités, 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é
booléen1 Alors peuvent être
instructions fusionné
fusionnés en Ecrire un algorithme qui demande
un SinonSi.
SinonSi.
SinonSi boolé
booléen2 alors trois nombres à l’utilisateur et
instructions
 C'est un seul
l’informe ensuite s’ils sont rangés ou
sinon bloc de test, non dans l’ordre 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 à l’utilisateur, et l’informe deux nombres à l’utilisateur et
ensuite si ce nombre est positif, l’informe ensuite si le produit est
négatif ou nul. négatif, 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
l’âge d’un enfant à l’utilisateur. Ecrire un algorithme qui lira au clavier
Ensuite, il l’informe de sa catégorie: l’heure et les minutes, et affichera l’heure
qu’il 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 répondre :
"Minime" de 10 à 11 ans
"Dans une minute, il sera 21 heure(s) 33".
"Cadet" après 12 ans
On suppose que l'utilisateur entre une heure
Peut-on concevoir plusieurs algorithmes valide.
équivalents menant à ce résultat ?
FSR - M. HIMMI 2011 45 FSR - M. HIMMI 2011 46

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

Ecrivez un algorithme qui demande à


l’utilisateur le nombre de photocopies
effectuées et qui affiche le montant à
payer.
FSR - M. HIMMI 2011 47

Algorithmique SMP-SMC S2 2010-2011 12

Vous aimerez peut-être aussi