You are on page 1of 30

Algorithmique et Structures

de Donnes

Page 1
Cest quoi un algorithme ?

oUn algorithme est un ensemble de rgles logiques et chronologiques quon


doit suivre pour aboutir la rsolution dun problme particulier.

oCes rgles sont constitues dun nombre fini doprations lmentaires.

oCes oprations seront excutes dans un ordre bien dtermin.

oUn algorithme peut tre assimil un raisonnement que lon peut traduire
avec un langage que toute personne peut comprendre :

LDA : Langage de Description dAlgorithme

oLe langage de description dalgorithme (LDA) ne doit pas tre confondu avec
le programme proprement dit.

oLe programme correspond en fait la traduction du LDA un autre langage


comprhensible pour la machine (Pascal, Visual Basic, C, C++, C#, Java)

Page 2
Chemin de la traduction de la pense
Langage traduisant la pense de manire
comprhensible pour toute personne :
Raisonnement Algorithme
logique et
chronologique LDA


Programme
C, C++,

Langage traduisant le LDA de manire


comprhensible pour lordinateur : Programme

Page 3
Structure dun Algorithme
Dclaration du nom algorithme nom de lalgorithme
de lalgorithme
const
liste des constantes

Dclaration des var


constantes, des variables liste des variables
et des structures
struct
liste des structures

debut algorithme
action 1 // commentaire 1
action 2 // commentaire 2
Le corps de lalgorithme .
.
.
action n // commentaire n
fin algorithme
Page 4
Structure dun Algorithme
Nom de lalgorithme :

Il permet tout simplement didentifier un algorithme parmi dautres.

Les dclarations :

Cest une liste exhaustive de variables utilises et manipules dans le corps de l


algorithme.

Le corps de lalgorithme :

Dans cette partie de lalgorithme, sont places les tches excuter (instructions,
oprations, ).

Les commentaires :

Pour permettre une lecture plus aise et plus comprhensive de lalgorithme

Page 5
Les Dclarations
Les Constantes :

Elles reprsentent des chiffres, des nombres, des caractres, des chanes de
caractres, dont la valeur ne peut pas tre modifie au cours de lexcution de
lalgorithme.

Les Variables :

Elles peuvent stocker des chiffres des nombres, des caractres, des chanes de
caractres, dont la valeur peut tre modifie au cours de lexcution de
lalgorithme.

Les Structures :

Elles permettent de rassembler plusieurs variables ou constantes sous un


mme identificateur, on parle galement dentits ou dobjets.

Page 6
Les Dclarations
Les constantes et les variables sont dfinies dans la partie dclarative par deux
caractristiques essentielles, savoir :

L identificateur :

Il reprsente le nom de la variable, de la constante ou de la structure. Il est


compos gnralement de lettres mais peut galement contenir et de chiffres.
Il ne doit pas commencer par des chiffres
Il ne doit pas contenir despaces, de caractres de ponctuation ou de caractres
accentus (il existe des langages qui acceptent des caractres accentus au
niveau de lidentificateur).

Le type :

Il reprsente la nature de la variable ou de la constante (entier, rel, boolen,


chane de caractres)

Exemples :
var age : rel ;
var sexe, adresse, ville : chaine ;
var nbr_enfants , etage : entier ; Page 7
Les types de base
De faon gnrale, pour toute objet cens contenir une ou plusieurs informations
devant tres traites par le processeur, lordinateur doit lui rserver de la mmoire
volatile (RAM). La taille mmoire ncessaire pour stocker cet objet dpend de la
nature de linformation en question.

Exemple dinformations de base :

Les nombres entiers : Le caractre :


0, -1, 45, 36, -10 en dcimal a , A , * , 7 , z , ! , .
45H, 0FBH, 64H en hexadcimal
10101111, 1011 en binaire

Les nombres rels : La chane de caractres


-3.67, 4.2569, 564.0, 18.36 10e-6 "lectronique", "cd ROM de 80mn" ,

Le boolen :
Il ne peut prendre que deux tats possibles : VRAI ou FAUX (True ou False)

Page 8
Les oprateurs
Arithmtique Comparaison
+ Addition > Suprieur stricte
- Soustraction < Infrieur stricte
* Multiplication Suprieur ou gal
/ Division Infrieur ou gal
DIV Division entire = Egal
Puissance Diffrent

Logique
ET Fonction ET
OU Fonction OU
OUX Fonction OU Exclusif
NON Fonction NON
NON ET Fonction NON ET
NON OU Fonction NON OU
Page 9
Les oprateurs : Quelques remarques
o Oprateur de concatnation Alpha-Alphanumrique ( + )

o Les diffrents oprateurs cits prcdemment peuvent avoir des notations


diffrentes selon les langages de programmation que vous allez utiliser.
Par exemple : pour la concatnation des chaines de caractres on utilise
un + en JavaScript (Bonjour + tout + le monde + 17)
un & en VB ("Bonjour" & " tout " & "le monde " & 17)

o Les oprateurs de comparaison pour les boolens : ( = , )

o Les oprateurs de comparaison pour les chanes de caractres : ( = , , < , > )

o Le signe = est utilis dans certains langages la fois comme tant oprateur de
comparaison mais aussi comme oprateur daffectation
Par exemple : a = 10 , b = 20 ;
Si (a = b) alors
c = "a est gal b" ;
Sinon
c = "a est diffrent de b" ;
Fin si
Page 10
Priorit des oprateurs usuels
Priorit croissante de bas vers le haut
* Oprateur de multiplication
/ Oprateur de division
+ Oprateur d'addition
- Oprateur de soustraction
< Oprateur d'infriorit stricte
> Oprateur de supriorit stricte
<= Oprateur d'infriorit ou d'galit
>= Oprateur de supriorit ou d'galit
== Oprateur d'galit (lang c,c++, javascript), (= VB)
!= Oprateur d'ingalit (lang c,c++, javascript), (<> VB)
&& Oprateur et logique ET (lang c,c++, javascript), (AND VB)
|| Oprateur ou logique OU (lang c,c++, javascript), (OR VB)
= Oprateur d'affectation
Page 11
Les tables de vrit : oprateurs logiques

ET Logique OU Logique : inclusif


ET 0 1 OU 0 1
0 0 0 0 0 1
1 0 1 1 1 1

XOR Logique : ou exclusif NOT Logique : ngation


XOR 0 1 Val Val
0 0 1 0 1
1 1 0 1 0
Page 12
Les structures fondamentales
Les oprations lmentaires relatives la rsolution dun problme peuvent,
en fonction de leur nature tre organises suivant quatre familles de
structures :

les structures linaires


les structures alternatives
les structures de choix
les structures itratives ou rptitives

Important : NE PAS CONFONDRE

-structure comme tant un nouveau type de donnes constitu partir de


types de donnes lmentaires.
ET
-structure comme tant un regroupent dinstructions devant tre excute
aprs vrification dun certain nombre de conditions.

Page 13
Les structures linaires

La structure linaire se caractrise par une suite dactions excuter dans lordre
o elles sont nonces.

Traitement 1

Traitement 2

Traitement 3

Traitement 4

Page 14
Les structures Alternatives
Une structure alternative offre la possibilit de donner des issues diffrentes la
poursuite dun algorithme.
Ces issues sexcluent mutuellement.
On peut rencontrer plusieurs formes de structures alternatives :

Forme alternative complte :


dans cette structure, lexcution de lun des deux traitements distincts possibles T2
et T3 ne dpend que la ralisation de la condition qui les prcde :

si la condition est Traitement 1 si la condition nest pas


vrifie les traitements vrifie les traitements
se font dans cet ordre : Si Vrai Condition Si Faux se font dans cet ordre :
(T1 T2 T4). (T1 T3 T4).
Traitement 2 Traitement 3

Traitement 4

Page 15
Les structures Alternatives
Forme alternative rduite :
dans cette structure, lexcution du traitement T2 ne dpend que la ralisation de la
condition qui le prcde :

si la condition est Traitement 1


vrifie les traitements
se font dans cet ordre : Si Vrai Condition
(T1 T2 T3). si la condition nest pas
Si Faux vrifie les traitements
Traitement 2
se font dans cet ordre :
(T1 T3).
Traitement 3

Page 16
Les structures Alternatives : Exemples
Forme alternative linaire Forme alternative rduite

var A, B, C : Entier var A, B : Entier


A = 10 ; Saisir (A) ;
B = 20 ; B =A;
C =A+ B ; Si A > 5 Alors
B = A + 10
Forme alternative complte Fin Si
Afficher (B) ;
var A, B : Entier
Saisir (A) ;
Si A > 5 Alors
B = A + 10
Sinon
B =A+ 2
Fin Si
Afficher (B) ;

Page 17
Les structures Alternatives
Forme alternative multiple :
dans cette structure, lexcution des traitement Ti ne dpend que la ralisation de la
condition qui les prcde. Ces conditions doivent tre disjointes.
Vrai
Si Cond 1
TA Faux TAT1TB
T1
Vrai
Si Cond 2
Faux TAT2TB
T2

Vrai
Si Cond n
Faux TATnTB
Tn

Aucune Cond

TATn+1TB
T n+1

TB
Page 18
Les structures Alternatives : Exemples
Forme alternative multiple

var A, B : Entier
Saisir (A) ;
Si A < 0 Alors
B=0;
Sinon Si A >= 0 ET A < 5 Alors
B =A+ 1 ;
Sinon Si A >= 5 ET A < 10 Alors
B =A+ 2 ;
Sinon Si A >= 10 ET A < 14 Alors
B =A+ 3 ;
Sinon
B = 20 ;
Fin Si
Afficher (B) ;

Page 19
Les structures Alternatives : Exemples
Algorithme ModifierNote()
var A, B : Entier
Debut
Saisir (A) ;
Si A < 0 Alors
B=0;
Sinon
Si A < 5 Alors
B = A+ 1 ;
Sinon
Si A < 10 Alors
B = A+ 2 ;
Sinon
Si A < 14 Alors
B = A+ 3 ;
Sinon
B = 20 ;
Fin Si
Fin Si
Fin Si
Fin Si
Afficher (B) ;
Fin
Page 20
ALGO
Algorithme EleverAuCarre ()
//Cet algorithme calcule le carr du nombre que lui fournit l'utilisateur
Variables UnNombre, SonCarre : entiers ;

Dbut
afficher("Quel nombre voulez-vous lever au carr ? ") ;
saisir(UnNombre) ;
SonCarre UnNombreUnNombre ;
afficher("Le carr de " + UnNombre) ;
afficher("c'est : " + SonCarre) ;
Fin

Page 21
Lang VB
Sub EleverAuCarre()
Dim UnNombre as integer, SonCarre as integer
UnNombre = InputBox("Quel nombre voulez-vous lever au carr ? ")
SonCarre = UnNombre*UnNombre
MsgBox("Le carr de " & UnNombre & " est " & SonCarre )
End Sub

Lang C
void EleverAuCarre()
{
int UnNombre, SonCarre ;
printf("Quel nombre voulez-vous lever au carr ? ") ;
scanf("%d" , &UnNombre) ;
SonCarre = UnNombre*UnNombre ;
printf("Le carre de %d est %d" , UnNombre, SonCarre ) ;
}

Page 22
Algorithme CalculMontantTTC()
// Saisit un prix HT et affiche le prix TTC correspondant
Constantes
TVA 20.0 : rel ;
Titre "Rsultat : " : chaine ;
Variables
prixHT, prixTTC : reels ;
Debut
afficher("Donnez-moi le prix hors taxe : ") ;
saisir(prixHT) ;
prixTTC prixHT* (1+TVA/100) ; // calcul du prix TTC
afficher(Titre + prixHT + " Dh H.T. devient " + prixTTC + "Dh T.T.C.") ;
Fin

Page 23
Algorithme CaFaitQuoi()
Variables valA, valB : rels ;
Debut
afficher("Donnez-moi deux valeurs : ") ;
saisir (valA, valB) ;
afficher("Vous m'avez donn " + valA + " et " + valB) ;
valAvalB ;
valBvalA ;
afficher("Maintenant , mes donnes sont : " + valA + " et " + valB) ;
Fin

Page 24
Les structures itratives
Les structures itratives permettent de rpter lexcution dun ensemble
dinstructions une ou plusieurs fois.
Ces structures sont regroupes sous deux grandes familles selon si le nombre de
rptitions est connu ou pas.
Cas ou le nombre de rptition est connu :
POUR ALLANT DE FAIRE FIN POUR
Dans cette structure, la sortie de la boucle ditration seffectue lorsque le
nombre souhait de rptition est atteint.
On utilise donc une variable ditrations caractrise par :
sa valeur initiale,
sa valeur finale,
son pas de variation.

Si la valeur finale de lindice est infrieure sa valeur initiale le pas de


variation est ngatif, la structure est dite pour dcroissant , dans le cas
contraire, le pas est positif et la structure est dite pour croissant

Page 25
Les structures itratives

Page 26
Les structures itratives : For
Algo

POUR i ALLANT DE ValeurInitiale ValeurFinale Variation = PasVariation FAIRE


Bloc dinstructions
FIN POUR

VB
FOR i = ValeurInitiale TO ValeurFinale STEP PasVariation

Bloc dinstructions

Next

for(i = ValeurInitiale ; i <= ValeurFinale ; i = i + 1)


{
Bloc dinstructions
}
Page 27
Les structures itratives : while
Cas ou le nombre de rptition est inconnu :

Algo

TantQue (TestsLogiques)
Bloc dinstructions
FIN TantQue

VB
While(TestsLogiques)
Bloc dinstructions
WEnd

while(TestsLogiques)
{
Bloc dinstructions
}

Page 28
Ecrire un algorithme permettant de calculer le total ht, le total tva et le total ttc dune facture.

Page 29
Algorithme CalculFacture( )
Const tva = 0.2 : reel ;
Var mht = 0, mtva = 0, mttc = 0, puht, qt : reel ;
Var Nbr_Produits = 0 : entier ;
Var Reponse char ;

DEBUT
Afficher ( Voulez vous effectuer un achat ? : ) ;
Saisir(Reponse) ;

TANT QUE (Reponse == O) FAIRE


Nbr_Produits = Nbr_Produits + 1 ;
Afficher( Saisir le PUHT : ) ;
Saisir(puht) ;
Afficher( Saisir la quantit : ) ;
Saisir(qt) ;
mht = mht + qt*puht ;
mtva = mht*tva ;
mttc = mht*(1+tva) ;
Afficher( mht : mht) ;
Afficher( mtva: mtva) ;
Afficher( mttc : mttc) ;
Afficher ( Voulez vous effectuer un autre achat ? : ) ;
Saisir(Reponse) ;
FIN TANT QUE
SI (Nbr_Produits == 0) ALORS
Afficher( mht : mht) ;
Afficher( mtva: mtva) ;
Afficher( mttc : mttc) ;
FIN SI
FIN Page 30