Vous êtes sur la page 1sur 21

Algorithmique et

Structures de Données II
Enseignante : Imen DAOUD
Année universitaire : 2019 – 2020
Chapitre 1
Les Enregistrements

2
Plan du cours:
• Les enregistrements
• La récursivité
• Les pointeurs
• Les listes chainées
•Les piles et les files

3
1. Définition
• Un enregistrement est un type de données défini par l'utilisateur et qui
permet de grouper un nombre fini d'éléments (ou champs) de types
éventuellement différents
• Objectif : Rassembler des données hétérogènes caractérisant une entité
pour faire un nouveau type.
• Exemples:
Un point →2 entiers (abscisse et ordonné)
Une personne → un NCIN, un nom et prénom et une adresse
Une voiture → un nom et marque et un numéro
immatriculation

4
2. Déclaration d’un type enregistrement
• Avant de déclarer une variable enregistrement, il faut avoir au
préalable défini son type.
• La déclaration des enregistrements se fait dans une section spéciale
des algorithmes appelée Type, qui précède la section des variables.
• Syntaxe:
nom_type = Enreg
Champ 1 : type

Champ N : type
FinEnreg

5
2. Déclaration d’un type enregistrement
• Exemples de déclaration :

Type
Type Produit = Enreg
Adresse = Enreg Codp : Entier
Rue : Chaine
Libellé : Chaine
Ville : Chaine
CP : Entier Prix_Unit : Réel
FinEnreg Stock : Réel
FinEnreg

6
Activité 1:
Donner la déclaration des types suivants:
1- Date: numéro du jour, nom du mois, année
2- Point: coordonnées (entières) d’un point
3- Cercle: un point, un rayon

7
Type
date =Enreg point =Enreg cercle =Enreg
j: entier x: entier centre: point
m: chaine y: entier rayon: réel
a: entier FinEnreg FinEnreg
FinEnreg

8
3. Déclaration de variable de type enregistrement
• Une fois qu'on a défini un enregistrement, on peut déclarer des
variables exactement de la même façon que l'on déclare des variables
d'un type primitif.
• Syntaxe: Var
nom_var : nom_type

Var
• Exemple: Adr1, Adr2 : Adresse

9
4. Manipulation d’un enregistrement
• L’enregistrement qui est une structure de données composée de
plusieurs champs n’est pas accessible dans sa totalité, donc pour faire
un accès à un enregistrement, on accède à tous les champs un par un
• les champs d'un enregistrement sont accessibles à travers leur nom,
grâce à l'opérateur '.'
• Syntaxe:
nom_enregistrement . nom_champ
//représente la valeur mémorisée dans le champ de l'enregistrement

10
4. Manipulation d’un enregistrement
• Exemple:
Type
Personne = Enreg
Nom : Chaine
Prenom : Chaine
age : Entier
FinEnreg
Var
Pers1 : Personne

• Pour accéder à l'âge de la variable Pers1, on utilise l'expression:


Pers1.age

11
4. Manipulation d’un enregistrement
Remarque:
• Les champs d'un enregistrement, tout comme les éléments d'un
tableau, sont des variables à qui on peut faire subir les mêmes
opérations (affectation, saisie, affichage,… ).

12
Activité 2:
Nous souhaitons écrire un algorithme qui lit le nom, le prénom et la
moyenne générale d’un étudiant puis affiche si cet étudiant a réussi ou
non selon sa moyenne.
Utiliser un enregistrement pour représenter l’étudiant (nom, prenom,
MG et Res).

13
Algorithme Resultat
Type
Etudiant = Enreg
nom : chaine [30]
prenom : chaine [30]
MG : reel
Res : caractere
FinEnreg
Var
E : Etudiant
Debut
Lire (E.nom)
Lire (E.prenom)
Lire (E.MG)
Si (E.MG >= 10) Alors
E.Res <- 'A'
Ecrire (''Admis '')
Sinon
E.Res <- 'R'
Ecrire (''Refusé '')
FinSi
Fin
14
5. un enregistrement comme champ d'un autre enregistrement

• Un enregistrement peut être utilisé comme type pour des champs d'un
autre enregistrement
• Exemple:
Type
date = Enreg
jour : entier Type
mois : Chaine Personne = Enreg
annee : Entier nom : Chaine
FinEnreg ddn : date
FinEnreg

• Pour accéder à l'année de naissance d'une personne, il faut utiliser deux


fois l'opérateur '.' : pers1.ddn.annee

15
6. Un tableau comme champ de structure
• Il est possible qu'un champ de type structuré soit de type tableau,
• Exemple :Imaginons une structure mémorisant des critères
géographiques de villes (altitude, type de climat, … ). Certains de ces
critères pourraient pertinemment être mémorisés pour chaque mois
de l'année (par exemple température moyenne, précipitations
moyennes, … ) Ville = Enreg
Nom : chaine
Alt : entier //Altitude moyenne
Climat : Chaine //type de climat
Temp : tableau[1..12] de réel //température moyenne par mois
Precip : tableau[1..12] de réel //précipitations moyennes par mois
FinEnreg
Var MaVille : Ville
16
6. Un tableau comme champ de structure
• Pour initialiser MaVille:

Ecrire "Nom de la ville?"


Lire (MaVille.Nom )
//idem pour l'altitude et le climat
Ecrire ("Veuillez entrer successivement les températures moyennes sur les 12 mois")
//on utilise une boucle pour remplir le tableau des températures

Pour i de 1 à 12 Faire
Ecrire ("mois ", i )
Lire MaVille.Temp[i]
FinPour

//idem pour les précipitations

17
7. Les tableaux d'enregistrements
• Exemple:
Const NP = 20 // nombre de personnes du groupe
Type
Personne =Enreg
nom: chaine
age: entier
FinEnreg

Var groupe: tableau[1..NP] de personne

• Chaque élément du tableau est un enregistrement, contenant


plusieurs variables de type différents

18
7. Les tableaux d'enregistrements
• On accède à un enregistrement par son indice dans le tableau.
• Exemple:
groupe[2] représente la deuxième personne du groupe
groupe[2].nom représente le nom de la deuxième personne du groupe

19
Activité 3:
Réalisez les fonctions retournant les attributs d’un nombre complexe
(partie réelle, partie imaginaire)
• Procédure SaisieComplexe
• Procédure AfficheComplexe
• Fonction GetReel
• Fonction GetImaginaire
• Fonction Module

20
Activité 4:
1- Définir une structure heure permettant de représenter une heure
sous le format hh/mm/ss.
2- Définir les procédures qui permettent de la saisie et l’affichage d’une
heure
3- Écrire une fonction qui permet de faire la conversion d’une heure
donnée en son équivalent en secondes

Exemple:
2:15:25 ➔ 8125 secondes

21

Vous aimerez peut-être aussi