Vous êtes sur la page 1sur 47

Algorithmique et Structures de Donnes

Page 1

Cest quoi un algorithme ?


o Un algorithme est un ensemble de rgles logiques et chronologiques quon doit suivre pour aboutir la rsolution dun problme particulier. o Ces rgles sont constitues dun nombre fini doprations lmentaires.

o Ces oprations seront excutes dans un ordre bien dtermin.


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

LDA : Langage de Description dAlgorithme


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

o Le 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


Raisonnement logique et chronologique
Langage traduisant la pense de manire comprhensible pour toute personne : Algorithme

LDA

Programme C, C++,

Langage traduisant le LDA de manire comprhensible pour lordinateur : Programme

Page 3

o Le LDA utilise un ensemble de mots cls et de structures permettant de dcrire de manire complte, prcise et claire, lensemble des oprations effectuer pour aboutir au rsultat recherch.
o Il est vivement conseill dagrmenter le LDA de nombreux commentaires pour faciliter sa lecture. o Ces rgles sont constitues dun nombre fini doprations lmentaires. o Ces oprations seront excutes dans un ordre bien dtermin.

o Un algorithme peut tre assimil un raisonnement cohrent que lon peut traduire avec un langage que toute personne peut comprendre :
LDA : Langage de Description dAlgorithme

o Le langage de description dalgorithme (LDA) ne doit pas tre confondu avec le programme proprement dit.
o Le programme correspond en fait la traduction du LDA un autre langage comprhensible pour la machine (Pascal, Visual Basic, C, C++, C#, Java) Page 4

Structure dun Algorithme


Dclaration du nom de lalgorithme algorithme nom de lalgorithme const liste des constantes Dclaration des constantes, des variables et des structures var

liste des variables


struct liste des structures dbut algorithme action 1 // commentaire 1 action 2 // commentaire 2 . . . action n // commentaire n fin algorithme Page 5

Le corps de lalgorithme

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 6

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 7

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 8

Les types de base


De faon gnrale, pour toute objet cens contenir une ou plusieurs informations devant tres traits 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 :


0, -1, 45, 36, -10 en dcimal 45H, 0FBH, 64H en hexadcimal 10101111, 1011 en binaire

Le caractre :
a , A , * , 7 , z , ! , .

Les nombres rels :


-3.67, 4.2569, 564.0, 18.36 10e-6

La chane de caractres
lectronique , cd ROM de 80mn ,

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

Page 9

Les oprateurs
Arithmtique Comparaison > < = Logique ET Fonction ET Suprieur stricte Infrieur stricte Suprieur ou gal Infrieur ou gal Egal Diffrent

+
* /

Addition
Soustraction Multiplication Division Puissance

DIV Division entire

OU
OUX NON

Fonction OU
Fonction OU Exclusif Fonction NON

NON ET Fonction NON ET NON OU Fonction NON OU Page 10

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 11

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 12

Les tables de vrit :


ET Logique ET 0 1 0 0 0 1 0 1

oprateurs logiques OU Logique : inclusif

OU 0 1

0 0 1

1 1 1

XOR Logique : ou exclusif XOR 0 0 0 1 1

NOT Logique : ngation

Val

Val

0
1

1
0
Page 13

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 excut aprs vrification dun certain nombre de conditions.

Page 14

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 15

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 : Traitement 1 si la condition est vrifie les traitements se font dans cet ordre : Si Vrai Condition Si Faux (T1 T2 T4). Traitement 2 si la condition nest pas vrifie les traitements se font dans cet ordre : (T1 T3 T4).

Traitement 3

Traitement 4 Page 16

Les structures Alternatives


Forme alternative rduite : dans cette structure, lexcution du traitement T2 ne dpend que la ralisation de la condition qui le prcde :
Traitement 1 si la condition est 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 17

Les structures Alternatives : Exemples


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

Page 18

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.
Si Cond 1 Vrai T1 Vrai T2 Vrai Tn TATnTB TAT2TB TAT1TB

TA

Faux Si Cond 2

Faux

Si Cond n Faux
Aucune Cond

T n+1

TATn+1TB

TB Page 19

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 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 : ", SonCarr) ; Fin

Page 21

Lang VB Sub EleverAuCarre() Dim UnNombre as integer, SonCarre as integer UnNombre = InputBox("Quel nombre voulez-vous lever au carr ? ") SonCarre = UnNombreUnNombre 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 = UnNombreUnNombre ; 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 Dbut afficher("Donnez-moi le prix hors taxe :") saisir(prixHT) prixTTC prixHT* (1+TVA/100) // calcul du prix TTC afficher(Titre) ; afficher(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 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 C 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 C 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

Algbre de Boole (Suite)

Page 31

Algbre de Boole (Suite)

Page 32

Algbre de Boole et Circuits Logiques

Page 33

Algbre de Boole et Circuits Logiques

Page 34

Algbre de Boole et Circuits Logiques

Page 35

Algbre de Boole et Circuits Logiques Le AND

Page 36

Algbre de Boole et Circuits Logiques

Page 37

Algbre de Boole et Circuits Logiques

Page 38

Algbre de Boole et Circuits Logiques

Page 39

Algbre de Boole et Tests Logiques

Page 40

Algbre de Boole et Tests Logiques

Page 41

Algbre de Boole et Tests Logiques

Page 42

LES MEMOIRES

Page 43

LES MEMOIRES

Page 44

LES MEMOIRES

Page 45

LES MEMOIRES

Page 46

LES MEMOIRES

Page 47