Académique Documents
Professionnel Documents
Culture Documents
FACULTÉ DE MÉDECINE
DÉPARTEMENT DE PHARMACIE
Chapitre III
Structures de données statiques
https://www.youtube.com/watch?v=-Lg6RNyTm2M
1
Dr Asma BENCHIHEB
Plan • Introduction
• Les tableaux
Les déclarations d’un tableau
Accès à un élément d’un tableau
Opérations sur les tableaux
Exemples
• Les Matrices
Les déclarations d’une matrice
Accès à un élément d’une matrice
Opérations sur les matrices
Exemples
• Les enregistrements
Les déclarations d’un enregistrement
Accès aux champs d’un enregistrement
Exemple
• Conclusion
2
Introduction
Un type structuré est constitué d’un nombre fixe de données élémentaires reliées
entre elles d’une certaine manière.
Une structure est dite homogène si tous les éléments qui la constituent sont de
même type (cas des tableaux et matrices).
Une structure est dite hétérogène si tous les éléments qui la constituent sont de
type différent (cas des enregistrements).
3
Tableaux
Exemple 1 : Tab1 : tableau formé de 6 éléments de type entier :
Dimension de Tab1 = 6
10 14 16 5 7 9
Tab2 : tableau formé de 5 éléments de type réel :
Définitions :
Un tableau est une variable structurée. Les éléments de celui-ci sont appelés les
composantes du tableau.
Les composantes d’un tableau sont des variables simples ayant le même type.
Le nombre de composantes d'un tableau est toujours un nombre entier. Il est
appelé dimension du tableau.
4
Tableaux Déclaration d’un Tableaux
Exemple 2 Déclarer le tableau appelé Tab défini par : 10 104 106 57 7 9
Déclaration DIRECTE
Déclaration INDIRECTE
5
Tableaux Déclaration d’un Tableaux
Exemple 3 Déclaration de nom et verbe des tableaux de 20 caractères chacun
Déclaration DIRECTE
Déclaration INDIRECTE
6
Tableaux Accès à un élément d’un Tableaux
Exemple 4
Tab défini par : 10 104 106 57 7 9
La déclaration 1
Algorithmique : Tab : TABLEAU [1..6] DE entier
Pascal : Tab : array [1..6] of integer Dans Tab [4] on retrouve la valeur 57
La déclaration 2 :
Algorithmique : Tab : TABLEAU [0..5] DE entier
Dans Tab [4] on retrouve la valeur 7
Pascal : Tab : array [0..5] of integer
7
Tableaux Opérations sur les Tableaux
On peut effectuer différentes opérations sur les variables de type tableau telles que :
créer des tableaux
Saisir des valeurs dans un tableau
lire des valeurs rangées dans un tableau
rechercher si une valeur est dans un tableau
mettre à jour des valeurs dans un tableau
trier un tableau
effectuer des opérations entre tableaux : comparaison de tableaux, addition
multiplication,...
8
Tableaux Exemple
Exemple 5 : Écrire un programme qui lit les valeurs d’un tableau de dimension maximale égale à 10 et de type entier
puis multiplie chacun de ses éléments par 3.
9
Tableaux Exemple
Exemple 5 : Écrire un programme qui lit les valeurs d’un tableau de dimension maximale égale à 10 et de type entier
puis multiplie chacun de ses éléments par 3.
Explications : Table
1 2 3 4 …….. 10
Opération de lecture et écriture d’un tableau
On ne peut pas lire ou écrire toutes les cases d’un 3 10 16 55 29
tableau en même temps mais seulement lire ou
écrire case par case : donc une à la fois.
Lecture Ecriture
Pour i De 1 A 10 Faire Pour i De 1 A 10 Faire
Afficher (‘Table[‘, i, ‘] =‘) Afficher (‘Table[‘, i, ‘] =‘, Table [i] )
Lire (Table [i]) FinPour
FinPour
-------- --------
10
Table [10] = 29 Table [10] = 29
Tableaux Exemple
Exemple 5 : Écrire un programme qui lit les valeurs d’un tableau de dimension maximale égale à 10 et de type entier
puis multiplie chacun de ses éléments par 3.
Explications : Table
1 2 3 4 …….. N
Table est un tableau de dimension N avec : N ≤ 10
3 10 16 55 29
Remarques Importantes
1) En programmation on ne peut pas déclarer un tableau avec une dimension infinie ou inconnue
2) On peut déclarer un tableau avec une grande dimension fixe et ne pas utiliser toutes les cases pour stocker des
données
Variable
i, N : entier
Table : TABLEAU [1..10] DE entier
Début
Afficher (’Donnez la dimension N du tableau avec N≤ 10 : N=’)
Lire (N)
Pour i De 1 A N Faire
Afficher (‘Table[‘, i, ‘] =‘)
Lire (Table [i])
FinPour
11
Tableaux Exemple
Exemple 5 : Écrire un programme qui lit les valeurs d’un tableau de dimension maximale égale à 10 et de type entier
puis multiplie chacun de ses éléments par 3.
Explications : Algorithme Exemple5
Variable
i, N : entier
Table est un tableau de dimension N avec : N ≤ 10 Table : TABLEAU [1..10] DE entier
Début
Pour i De 1 A N Faire
9 30 12 15 … 60 Table [i] 3 * Table [i]
Afficher (‘Table[‘, i, ‘] =‘, Table [i] )
1 2 3 4 …….. N FinPour
Fin
12
Tableaux Exemple
Exemple 5 : Écrire un programme qui lit les valeurs d’un tableau de dimension maximale égale à 10 et de type entier
puis multiplie chacun de ses éléments par 3.
Algorithme Exemple5
Variable
i, N : entier
Table : TABLEAU [1..10] DE entier
Début
Pour i De 1 A N Faire
Afficher (‘Table[‘, i, ‘] =‘)
Lire (Table [i])
FinPour
Pour i De 1 A N Faire
Table [i] 3 * Table [i]
Afficher (‘Table[‘, i, ‘] =‘, Table [i] )
FinPour
Fin
13
Tableaux Exemple
Exemple 6 : Écrire un programme qui lit les valeurs de deux tableaux de dimension maximale égale à 10 et de type réel
puis calcul la somme de ces deux tableaux pour la ranger dans un troisième tableau.
1 2 3 4 …….. N
+
1 2 3 4 …….. N
TAB2 : 13.15 11.2 4.3 5.10 … 10.00
=
1 2 3 4 …….. N
14
Tableaux Exemple
Exemple 6 : Écrire un programme qui lit les valeurs de deux tableaux de dimension maximale égale à 10 et de type réel
puis calcul la somme de ces deux tableaux pour la ranger dans un troisième tableau.
Algorithme Exemple6
Type
Table = TABLEAU [1..10] DE réels
Variable
i,N : entier
TAB1, TAB2, TAB3 : Table
Début
Afficher (’Donnez la dimension N des tableaux avec N≤ 10 : N=’);
Lire (N)
Pour i De 1 A N Faire
Afficher (‘TAB1[‘, i, ‘] =‘)
Lire (TAB1 [i])
FinPour
Pour i De 1 A N Faire
Afficher (‘TAB2[‘, i, ‘] =‘)
Lire (TAB2 [i])
FinPour
Pour i De 1 A N Faire
TAB3 [i] TAB1 [i] + TAB2 [i]
Afficher (‘ TAB3 [‘, i, ‘] =‘, TAB3 [i] )
FinPour
Fin
15
Matrices
Exemple 7 : Tab : tableau formé de 2x4 éléments de type entier :
2 8 6 7
5 6 7 6
Définitions :
16
Matrices Déclaration d’une Matrice
min_j Indice de colonne : j
max_j
Exemple 8 min_i 101 104 106 57 17 45
Déclarer la matrice appelé Tab défini par : Indice de ligne : i
129 102 99 89 28 51
max_i 108 104 59 9 98 31
Déclaration DIRECTE
Déclaration INDIRECTE
18
Matrices Opérations sur les Matrices
On peut effectuer différentes opérations sur les variables de type matrice telles que :
créer des matrices
Saisir des valeurs dans une matrice
lire des valeurs rangées dans une matrice
rechercher si une valeur est dans une matrice
mettre à jour des valeurs dans une matrice
trier une matrice
effectuer des opérations sur des matrices: comparaison de deux matrices,
addition multiplication,...
19
Matrices Exemples
Exemple 10 : Écrire un programme qui lit les valeurs d’une matrice de taille maximale (10 ×10) de type entier puis
multiplie chacun de ses éléments par 3
Table j=1 j=2 j=3 j=4 …. j=10
i = 1 10 5 3 15 …. 11
Opération de lecture et écriture d’une matrice
On ne peut pas lire ou écrire toutes les cases i = 2 2 12 99 89 …. 51
d’une matrice en même temps mais seulement lire i = 3 5 14 59 9 …. 31
ou écrire case par case : donc une à la fois. …. …. …. …. …. …. ….
i = 10 9 6 4 5 …. 9
Lecture Ecriture
Pour i De 1 A 10 Faire Pour i De 1 A 10 Faire
Pour j De 1 A 10 Faire Pour j De 1 A 10 Faire
Afficher (‘Table[‘, i, ‘,‘ , j ,‘] =‘) Afficher (‘Table[‘, i, ‘,‘ , j ,‘] =‘, Table [i,j])
Lire (Table [i,j]) finPour
finPour finPour
finPour
20
Matrices Exemples
Exemple 10 : Écrire un programme qui lit les valeurs d’une matrice de taille maximale (10 ×10) de type entier puis
multiplie chacun de ses éléments par 3
Table j=1 j=2 j=3 j=4 …. j=M
Remarques Importantes i = 1 10 5 3 15 …. 11
1) En programmation on ne peut pas déclarer une i = 2 2 12 99 89 …. 51
matrice avec une dimension infinie ou inconnue i = 3 5 14 59 9 …. 31
2) On peut déclarer une matrice avec une grande
…. …. …. …. …. …. ….
dimension fixe et ne pas utiliser toutes les cases pour
stocker des données i = N 9 6 4 5 …. 9
Lecture Ecriture
Pour i De 1 A N Faire Pour i De 1 A N Faire
Pour j De 1 A M Faire Pour j De 1 A M Faire
Afficher (‘Table[‘, i, ‘,‘ , j ,‘] =‘) Afficher (‘Table[‘, i, ‘,‘ , j ,‘] =‘, Table [i,j])
Lire (Table [i,j]) finPour
finPour finPour
finPour
21
Matrices Exemples
Exemple 10 : Écrire un programme qui lit les valeurs d’une matrice de taille maximale (10 ×10) de type entier puis
multiplie chacun de ses éléments par 3
Algorithme Exemple10
Variable
i , j, N, M : entier
Table : TABLEAU [1..10,1..10] DE entier
Début
Afficher (’Donnez le nombre de lignes de la matrice avec N≤ 10 : N=’)
Lire (N)
Afficher (’Donnez le nombre de colonnes de la matrice avec M≤ 10 : M=’);
Lire (M)
Pour i De 1 A N Faire
Pour j De 1 A M Faire
Afficher (‘Table[‘, i, ‘,‘ , j ,‘] =‘)
Lire (Table [i,j])
finPour
finPour
Pour i De 1 A N Faire
Pour j De 1 A M Faire
Table [i,j] 3 * Table [i,j]
Afficher (‘Table[‘, i, ‘,‘ , j ,‘] =‘, Table [i,j] )
finPour
finPour
Fin
22
Matrices Exemples
Exemple 11 : Écrire un algorithme qui lit les valeurs de deux matrices de (10 x10) au maximum et ayant des éléments de
type réel puis calcul la somme de ces deux matrices pour la ranger dans un troisième matrice.
j=1 j=2 j=3 j=4 …. j=M j=1 j=2 j=3 j=4 …. j=M
i = 1 10,1 5,0 3,2 15,2 …. 11,1 i = 1 3,1 5,2 3,1 15,2 …. 1,0
2,2 12,1 99,1 89,2 …. 51,0 i = 2 2,1 3,2 2,0 1,2 …. 4,2
i = 2
i = 3 5,1 14,0 59,0 9,1 …. 31,2 i = 3 0,1 4,2 1,0 9,1 …. 3,2
…. …. …. …. …. …. …. …. …. …. …. …. …. ….
i = N 9,0 6,1 4,1 5,3 …. 9,1 i = N 1,1 2,2 3,0 4,1 …. 0,3
TAB1 + TAB2 :
j=1 j=2 j=3 j=4 …. j=M
23
Matrices Exemples
Exemple 11 : Écrire un algorithme qui lit les valeurs de deux matrices de (10 x10) au maximum et ayant des éléments de
type réel puis calcul la somme de ces deux matrices pour la ranger dans un troisième matrice.
Algorithme Exemple11
Type
Table = TABLEAU [1..10, 1..10] DE réels
Variable
i, j, N, M : entier
TAB1, TAB2, TAB3 : Table
Début
Afficher (’Donnez le nombre de lignes de la matrice avec N≤ 10 : N=’)
Lire (N)
Afficher (’Donnez le nombre de colonnes de la matrice avec M≤ 10 : M=’);
Lire (M)
Pour i De 1 A N Faire
Pour j De 1 A M Faire
Afficher (‘TAB1 [‘, i, ‘,‘ , j ,‘] =‘)
Lire (Table [i,j])
finPour
finPour
Pour i De 1 A N Faire
Pour j De 1 A M Faire
Afficher (‘TAB1 [‘, i, ‘,‘ , j ,‘] =‘)
Lire (Table [i,j])
finPour
finPour
Pour i De 1 A N Faire
Pour j De 1 A M Faire
TAB3 [i,j] TAB1 [i,j] + TAB2 [i,j]
Afficher (‘TAB3 [‘, i, ‘,‘ , j ,‘] =‘, TAB3 [i,j] )
finPour
finPour
Fin 24
Les Enregistrements
Définitions :
Un enregistrement (ou record en anglais) est une structure composée d’un certain
nombre fixe d’éléments appelés champs et qui peuvent être de types différents.
Un champ peut être lui aussi une structure (tableau, un enregistrement etc.).
25
Les Enregistrements Déclaration d’un enregistrement
Déclaration Exemple 13 : Déclaration d’un rendez-vous
Syntaxe Type identificateurEnreg = Enregistrement Type Date = enregistrement
Algorithmique NomChamps1 : type1 Année : 1900..2100
NomChamps2 : type2 Mois : 1..12
…….. Jours : 1..31
NomChampsn : typen Heure : entier
Fin Minute : entier
Fin
Variable Variable
NomEnreg : identificateurEnreg MonRendezVous : Date
26
Les Enregistrements Déclaration d’un enregistrement
Exemple 14: Déclaration des relevés des notes des étudiants
1 2 3 ……. 300
Nom : ALI Nom : BENA Nom : FERA Nom : PIPA Nom : RIMZA
Prénom : AMINE Prénom : Farid Prénom : Fatima Prénom : samira Prénom : Samir
Note : 11 12 10 08 15 Note : 10 05 6 10 11 Note : 10 15 16 10 11 Note : 10 12 18 10 13 Note : 10 05 6 02 05
MoyenGeneral : 11,2 MoyenGeneral : 08,4 MoyenGeneral : 12,4 MoyenGeneral : 12,6 MoyenGeneral : 5,6
Résultat : Admis Résultat : Ajourne Résultat : Admis Résultat : Admis Résultat : Ajourne
27
Les Enregistrements Déclaration d’un enregistrement
Déclaration Exemple 14: Déclaration des relevés des notes des étudiants.
Syntaxe Type identificateurEnreg = Enregistrement Type Relevé = enregistrement
Algorithmique NomChamps1 : type1 Nom : Chaine
NomChamps2 : type2 Prénom : Chaine
…….. NotesModules : tableau [1..5] de integer
NomChampsn : typen MoyGénéral : réel
Fin Résultat : (Admis, Ajourné)
Fin
Variable Variable
NomEnreg : identificateurEnreg PV : Tableau [1..300] de Relevé
28
Les Enregistrements Accès aux champs d’un
enregistrement
Déclaration Accès à un champ particulier
Syntaxe Type identificateurEnreg = Enregistrement
Algorithmique NomChamps1 : type1
NomChamps2 : type2
……..
NomChampsn : typen
Fin
Variable
NomEnreg : identificateurEnreg
NomEnreg.NomChamps2
Pascal Type identificateurEnreg = Record
NomChamps1 : type1 ;
NomChamps2 : type2 ;
……..
NomChampsn : typen ;
End ;
Var
NomEnreg : identificateurEnreg ;
29
Les Enregistrements Exemple
Exemple 16 : Considérons la déclaration de l’exemple 12 pour écrire un algorithme qui lit un nombre complexe puis
calcule son module
Syntaxe Algorithmique Pascal
Type complexe = enregistrement Type complexe = record
Partie_Reel : Réel Partie_Reel : Real ;
Partie_Imag : entier Partie_Imag : integer;
Fin End;
Variable Var
𝑁𝑜𝑚𝑏𝑟𝑒 : complexe Nombre : complexe ;
31
Conclusion
tableaux
homogène
Un type structuré matrices
hétérogène enregistrements
32