Vous êtes sur la page 1sur 52

Université - BLIDA

Département: MI

Algorithmes et stuctures de données

LAOUICI.Z

1
{ Algorithme et structure de données }

Chercher l’expression “xxxx xxx


” dans un livre ‘XXX’ (300
pages)

2
{ Algorithme et structure de données }

la machine à laver

le guichet automatique

3
{ Algorithme et structure de données:
Introduction }
L’ordinateur est une machine capable d’effectuer
automatiquement des opérations arithmétiques et
logiques à partir de
programmes définissant la séquence de ces
opérations.

Informatique Algorithme

L’informatique est la science


du traitement automatique de Information
l’information. Automatique
{ Algorithme et structure de données:
1.Introduction }
l’être humain VS l’ordinateur

Intelligence

Vitesse de calcule

Calcules exactes?

Petite Mémoire
Grande
5
{ Algorithme et structure de données:
2. Résolution d’un problème}

Les Algorithmes Sont partouts!

Algorithme

guider
6
{ Algorithme et structure de données:
2. Résolution d’un problème}

Les Algorithmes Sont partouts!

Données/ Résultats/
Entrées sorties
les actions/
opérations à
executer
7
{ Algorithme et structure de données:
2. Résolution d’un problème}
Algorithme
Algorithme Moyenne ;

Variable x, y, Moy : réel ;

début

Ecrire(“Donner-moi deux valeurs“);

Lire(x, y) ;

Moy <- (x+y)/2 ;

Ecrire (“La moyenne est: “, Moy); Langage de


programmation
fin

8
{ Algorithme et structure de données:
2. Résolution d’un problème}

9
{ Algorithme et structure de données:
Exemple : Algorithme/programme Pascal}

Algorithme Moyenne ; Program Moyenne ;

Variable x, y, Moy : réel ; Var x, y, Moy : real ;

début begin

Ecrire(“Donner-moi deux valeurs“); Write(‘Donner-moi deux valeurs’);

Lire(x, y) ; Read(x, y) ;

Moy <- (x+y)/2 ; Moy:=(x+y)/2 ;

Ecrire (“La moyenne est: “, Moy); Write(‘La moyenne est : ‘, Moy) ;

fin end.

10
{ Algorithme et structure de données:
3. Définitions
L’algorithmique est un terme d’origine
arabe, hommage à Al Khawarizmi (780-850)
auteur d’un ouvrage décrivant des méthodes de
calculs algébriques.
Algorithme Moyenne ;

Variable x, y, Moy : réel ;


Algorithme  début

est une suite d’actions ordonnées Ecrire(“Donner-moi deux valeurs“);

(opérations ou étapes) qui permet de Lire(x, y) ;

résoudre un problème donné Moy <- (x+y)/2 ;

Ecrire (“La moyenne est: “, Moy);

Exemple fin

les étapes de résolution d’une équation


du second degré. 11
{ Algorithme et structure de données:
3. Définitions
Langage algorithmique 
est un ensemble de règles qui nous
permet d’écrire correctement un
algorithme.
Programme C, C++, Java
est une séquence d’instructions écrites dans Pascal
un langage de programmation, c’est la
traduction de l’algorithme dans un langage de
programmation. Python

12
{ Algorithme et structure de données:
4. Exemple d’un algorithme

Enoncé du problème
Calcul de la moyenne entre deux
nombres réels

13
4.1. Traitement manuel

je veux que tu me
calcules la
Donner-moi
moyenne entre deux valeurs
deux nombres réels

Personne A Personne B

14
4.1. Traitement manuel

Après un moment…
La moyenne
5 et 6 est : 5.5

Personne A Personne B

15
Traitement manuel Vs Traitement automatique
• Traitement manuel

Personne B
•Personne
Traitement
A automatique

Personne A
Ordinateur

Personne C
16
4.1. Traitement automatique

je veux que tu me comprend le problème,


prépare un programme
qui permet de calculer conçoit un algorithme,
moyenne entre deux le traduit en programme,
nombres réels
le compile, le teste, et le
transmet à personne A.

Personne C
Personne A
(programmeur)

17
4.1. Traitement automatique

Données/ Résultats/
deux nombres un nombre réel
réels
X Moy

y (Moy=(x+y)/2)

18
4.1. Traitement automatique

Copie le programme sur son ordinateur,


exécute le programme.

Personne A Ordinateur

19
4.1. Traitement automatique

Algorithme Moyenne ;
Variable x, y, Moy : réel ;
début
Ecrire (“Donner-moi deux valeurs“) ;
Lire (x, y) ;
Moy(x+y)/2 ;
Ecrire (“La moyenne est : “, Moy) ;
fin

Personne A

Ordinateur 20
4.1. Traitement automatique

Algorithme Moyenne ;
Variable x, y, Moy : réel ;
début
Ecrire (“Donner-moi deux valeurs“) ;
Lire (x, y) ;
Moy(x+y)/2 ;
Ecrire (“La moyenne est : “, Moy) ;
LitVoie le résultat
le message, utilise le clavier fin
affiché
pour entrersur
deuxl’écran.
valeurs (5, 6)

Personne A

Ordinateur 21
{ Algorithme et structure de données }

Se passe ds
la machine

Se concrétise a l’écran
sur l’ordinateur
Se déroule

22
{ Algorithme et structure de données:
5.Le langage algorithmique }
Algorithme Moyenne ;
Algorithme Nom_algorithme; {Déclaration des variables et constances}
Partie déclarative Variable x, y, Moy : réel ;
début
début { corp d'algo }
{la lecture des donnees}
Partie d’action
Ecrire (“Donner-moi deux valeurs“) ;
Lire (x, y) ;
{Calcul du résultat}
fin. { fin d'algo } Moy <-(x+y)/2 ;
{Affichade du résultat}
Ecrire (“La moyenne est : “, Moy) ;
fin

23
{ Algorithme et structure de données:
5.1 Notion de déclaration}
Syntaxe
Constante identificateur = valeur ;
Variable identificateur : type ;

Constante est un objet ayant une valeur ne pouvant pas être modifiée.
Exemple : Constante Pi = 3.1416

Variable Est un objet dont sa Données/


valeur peut être modifiée Entrées Résultats/
S  x + y; sorties
à n’importe quel moment. x Moy  s/2; Moy
y 24
{ Algorithme et structure de données:
5.1 Notion de déclaration}
2.4 -5 0 -0.3 ….
2 -5 0 ….
(Réel)
(Entier)

Vrai FauxValeur ‘a’ ‘4’ ‘)’ ‘#’ ‘+’ ‘ ’


(Booléen) (caractère)

”Bonjour” “g4+]@” " " ""


(chaine de caractères)
25
{ Algorithme et structure de données:
5.1 Notion de déclaration}
Variable identificateur : type ;
Constante identificateur = valeur ;
Identificateur 
est le nom d’une variable, une constante,
un algorithme ou un sous-algorithme. Ali
nom
Un identificateur commence par une lettre x1
alphabétique, suivi ou pas moy_1
par des lettres alphabétiques, des chiffres, ou "_" #B
A.X
1B2
x 1 26
{ Algorithme et structure de données:
5.1 Notion de déclaration}
Variable identificateur : type ;
Entier :
(Age, Réel :
effectif, (Taille, poids,
coefficien x1, x2, r …)
t….)
Type Caractère:
(Section,
Booléen Sexe,
(Marié, couleur_feu
Cadre, , …)
existe, …) Chaine de caractères:
(Decision, Nom, Adresse,
Saison….)
27
{Exercice 1 (Série de TD N°1)}
Exercice 1 : Identificateurs et valeurs
Compléter le tableau suivant par les mots suivants :
Xx25ab 2y -0.5 1,8 lire & '5' "vap" 'd" 0
'M' alpha 25,3 14.5 -11 c/n #ff a*b faux y² g!
Ajou5 +9 +10.6 "k=14.9" "15" vrai Ahmed
gt-at Fi xy<5 dy cinq google.fr X_1 a1 "-11,6"
'vap' vap '#' "R"
identificateur Valeur de type erreur

entier reel caractère booléen Chaine de


Xx25ab caractères 2y 1,8 lire
& 'd"
0 -0.5 '5' "vap"

28
Expression arithmétiques et
logiques

29
Expression arithmétiques et logiques

Une expression est une combinaison cohérente, éventuellement


parenthésée, d'opérandes et d'opérateurs qui sont
évalués pour donner une valeur.

Opérande • valeur 5 , 9.8


• ·constante
• variable
• appel de fonction (standard ou définie par le programmeur)
Opérateur
•Arithmétiques  :       *       /       %       +       - div mod
•comparaison  :       ==       !=       <       <=       >       >=
•Logiques        non      et       ou
30
Résumé

Variable boite , un emplacement mémoire a un nom x


Rôle Vs
Expression arithmétique
Stocker une valeur <information> *   ,   /  ,     % ,      +  ,   - , div , mod
Rôle?
y+2-x*7/6 5 div 2, 5 mod 2
un type
Expression logique
Entier Réel Booléen Rôle? • non,  et  ,     ou
5, -9 7.3, -9.0 Vrai, faux •  ==       !=       <       <=       >       >=
• *   ,   /  ,     % ,      +  ,   - , div , mod
Chaine de
Caractère (Moy>13)et((note_math+note_physiq)/2)>= 12
caractères
‘5’, ‘a’, ‘?’ ‘’7.3 ’’, ‘’abc12§§’’ 31
Priorités des opérateurs

L'évaluation des expressions se fait


généralement de gauche á droite en respectant
les règles de priorité suivantes sur les
opérateurs (classées selon l’ordre décroissant) :

1) Les parenthèses (on commence par les plus internes).


2) Les fonctions (↑, cos, sin, …)
3) Le NON logique, et le – (unitaire) y+2-x*7/6
4) *, /, MOD, DIV, ET
5) +, -, OU 5 div 2 = 1
6) Les opérateurs de relations (<>, <=, <, >=, >, =) 32
{Exercice2 (Série de TD N°1)}
Exercice 2 Exemple : non (x=y) <=> x<>y
(x est différent de y)

En se basant sur l’exemple précédant, reprendre les expressions


suivantes sans utiliser les « non », ensuite faire une traduction sous
x supérieur
forme de phrases : ou égal à 3 ou y différent de 5
1. non ((x<3) et (y=5))
les valeurs de y et z sont identiques mais différent de x
2. non ((y=x) ou (z<>y))
x et y sont inférieurs ou égal à z
3. non ((x>z) ou non(y<=z))
les trois sont égaux
4. non (non(y=z) ou non(x=z))
33
au moins deux sont égaux
{Exercice4 (Série de TD N°1)}
Exercice 4:
a - Ecrire les expressions suivantes en utilisant la notation
algorithmique.

(1) a*x↑(2/5) - b*x↑(1/2) + c

(2)
(3*x+5*y*(z-6))/(4*x)

(3)

(-5*x + (-y/3)-(x↑(1-y)-t)/(2-x)↑4)↑2
34
{Exercices (Série de TD N°1)}
Exercice 4 : (suite)
b - Donner les écritures mathématiques qui
correspondent aux écritures algorithmiques suivantes :
(1)3 * X - 5 * Y ↑ 3 / 4 * Z
𝟑
𝟓𝒚 𝒛
𝟑𝑿−
𝟒
(2) - 2 ↑ 2 + 4 / X * Y - X / 3 * Z

35
{Exercices (Série de TD N°1)}
Exercice 3 :
Soient x, y, z, t des entiers. Donner les expressions
booléennes correspondantes aux situations suivantes :

1) x et y sont toutes les deux strictement supérieures à 3

2) x, y et z sont identiques (égaux)

3) x, y et z sont identiques mais différents de t

4) x est strictement compris entre y et t (prévoir deux


cas)

36
{Exercices (Série de TD N°1)}
Exercice 3 : (suite)
5) Parmi les valeurs de x, y et z deux valeurs et seulement deux sont
identiques

6) z n’est pas le maximum entre les quatre valeurs.

7) x est pair et y est impair

8) z n’est pas multiple de 3 mais il est divisible par 7.

9) x est multiple de z.

10) t est diviseur de x.

37
Affectation

Elle consiste à placer une valeur dans


une variable appartenant à son domaine.
Elle est représentée par le signe <-.
Syntaxe
Trois formes sont possibles :
Identificateur  valeur ; x<-3 ; A<-Faux;
Identificateur  Identificateur ; y<-x ;
{se lit “y reçoit x“}
Identificateur  expression ; y<-(x+y)/z ; A<-(x>2) ; 38
Affectation
Algorithme affectation; Memoire
Variable a: entier;
b,c: réel; 3 2.5 7.4021
exist : booléen;
module: chaine de caractere; a b c
Début
vrai
a<- 3;
b<- 2.5 ; exist
c<- 7.4021 ;
Algo
exist <- vrai ;
module
module <- “Algo”
Algo ;
Fin.
39
Affectation
Algorithme affectation; Memoire
Variable a: entier;
b,c: réel; 3 2.5 7.4021
8
exist : booléen;
module: chaine de caractere; a b c
Début
vrai
a<- 3.2;
b<- 2.5 ; exist
c<- 8 ;
7.4021 Algo
exist <- vrai ;
module
module <- “Algo” ;
Fin.
40
Affectation

Problème 1 : Dérouler cette portion d’algorithme.


Solution :
y<-2 ;
x<-y ;
x<- x*2 ;
x1<- y + x ;
y1<-x1+2 ;
y1<-y1*2 ;
x<- y1+3 ;
41
Expression arithmétique
Algorithme OperationsArith; Memoire
Variable a,b,c,d,e,f,g: entier;
d:réel; 8 -3 18
Début
a<- 3+5; a b c
10 3
b<- 3-6 ; 2.5 2
c<- 3*6 *;
1 3 Resultat/ d e
d<- 5 /2 Reste/
/;
e<- 5 divmod 2 ;
div quotient 1 8
f<- 5 mod 2 ;
mod f g
g<- 3^2;
Fin.
42
Algorithme priorite_operat; Memoire
Variable a,b,c,: entier;
d:réel; 3 2
Début
a<- 3; a b c
b<- 2 ;
c<- 4*a+b*3/a ;
d
d<- 5^2+c*a ;

Fin.

43
Algorithme priorite_operat; Memoire
Variable a,b,c,: entier;
d:réel; 3 2 14
Début
a<- 3; a b c
b<- 2 ; 31
c<- 4*a+b*3/a ;
d
d<- 5^2+b*a ;

Fin.

44
{Exercices (Série de TD N°2)}
Exercice 1 :
Parmi les instructions suivantes, lesquelles sont correctement
écrites (justifier votre réponse en indiquant le type possible de
chaque variable).

1- z<- (x > 2) et (y < 5) ;


2- z <- ((x + y) > 2) et y ;
3- z <- (x > 2) et y ;
4- z <- ((x > 2) et y) < 5 ;
5- si (y <>0) alors z  x/y ;
sinon z  faux ;
finsi ;
45
Expression arithmétiques et logiques

Ecrire Afficher une valeur

Syntaxe : écrire (liste d’objets);

écrire (“ Algo ”, x , “ 1 ”, x+y ) ;


Une valeur Une expression

variable: accéder à la case mémoire


nommé x et récupérer et afficher le contenu
lire saisir une valeur

Syntaxe : lire (liste de variables) ;


lire (x,y, ....) ;

variable: indiquer où je stocke la valeur


Expression arithmétiques et logiques

Ecrire Afficher une valeur

Syntaxe : écrire (liste d’objets);

écrire (“ Algo ”, x , “ 1 ”, x+y ) ;


Une valeur Une expression
Algorithme XXX; Algo
Variable x,y: entier; X = 5
Début
variable: accéder yà =la
8 case mémoire
lire saisir nommé x et récupérer et
une valeur
x<-5; afficher le contenu
écrire
Syntaxe (“ Algo
: lire ”) ;
(liste de variables) ;
écrire (“ X = ”, x) ;
Syntaxe : lire
lire(x,y,
(liste de; variables) ;
....)
écrire (“ y = ”, x+3) ; 5
lire (x,y, ....) ;
Fin
X y

variable: indiquer où je stocke la valeur


47
{Notion d’action }

Algorithme XXX; Donnez une valeur


Variable x,y: entier; X =
Début
x<-5;
écrire (“ Donnez une valeur ”) ;
lire (x) ;
5
écrire (“ X = ”, x) ;
X y
Fin

48
{Notion d’action }
Lecture
• Remarque 1 : il est important de précéder une
instruction de lecture par une instruction d’affichage d'un
message pour indiquer à l'utilisateur la nature et le type
de la valeur à entrer.
• Remarque 2 :

Cas 1 Cas 2
…. ……………..
x<-3 ; Ecrire (“donner la valeur de x : “) ; Lire(x) ;
y<-5 ; Ecrire (“donner la valeur de y : “) ; Lire (y) ;
Somme<-x + y ; Sommex + y ;
Ecrire (Somme) ; Ecrire (Somme) ;
Outils
• Editeur pour les programmes en langage
Pascal :
• Pascal XE v2.0.0.304

• Editeur pour algorithmes (pseudo-code)


et organigrammes :
• LARP v3.0

50
Pour plus d’informations
• Accédez au site de google, tapez dans la bare de
recherche : ALGOZAIRM
• Selectionnez le site

51
Bibliograghy
1. http://mimoza.marmara.edu.tr/~msakalli/cse706_12/SkienaTheAlgorithmDesignManual.pdf
2. https://www.slideshare.net/iqbalphy1/data-structure-and-algorithms-83961196
3. https://www.slideshare.net/hmftj/algorithms-and-data-structureshmftj
4. https://www.freecodecamp.org/news/data-structures-101-arrays-a-visual-introduction-for-beginners-
7f013bcc355a/

52

Vous aimerez peut-être aussi