Weitere ähnliche Inhalte
Ähnlich wie Les enregistrements (10)
Les enregistrements
- 1. ALGO & PROGRAMMATION © Enseignant : Mohamed SAYARI
Chapitre1: LES ENREGISTREMENTS ET LES FICHIERS
(LES ENREGISTREMENTS)
Rappel
Q: quels sont les types de données en 3ème année ?
R: les types de données standards: les types numériques, le type booléen, le type caractère et chaîne de
caractères.
Les types utilisateurs: les types énumérés, les types intervalles, les tableaux à une dimension et les
tableaux à deux dimensions (matrices)
Q: par quoi est caractérisé un tableau ?
R: nom, taille et type
I. INTRODUCTION
Activité 1:
Un établissement scolaire organise les informations concernant ses classes dans une liste identique à la
suivante:
NUM CODE NOM et PRENOM Observation Moyen
1 G911 GUIZANI Zied Passable 11.25
2 T825 BEN DAHOU Rania Faible 9.33
… .. …
… … …
…. … …
30 S932 Fitouri Rochdi Passable 10.21
On désire écrire un programme permettant la saisie et le traitement de ces listes sachant que chaque classe
comporte au maximum 40 élèves.
TAF a) Donner la structure de données nécessaire pour les objets à utiliser.
b) Donner une déclaration algorithmique de ces objets.
Réponses
a)
Objet Type
NUM Numérique (entier)
CODE Alphanumérique
Nom Alphabétique
Observation Alphabétique
Moyen Numérique (Réel)
Nous remarquons que la liste comporte des informations numériques, alphabétique et alphanumériques
b)
Objet Type/Nature Rôle
NUM Tableau de 40 entiers Tableau des numéros des élèves
CODE Tableau de 40 chaînes Tableau des codes
NOM Tableau de 40 chaînes Tableau des noms et prénoms
OBSERVATION Tableau de 40 chaînes Tableau des Observations
MOYEN Tableau de 40 réels Tableau des moyens
4ème SI LES ENREGISTREMENTS & FICHIERS PAGE 1
- 2. ALGO & PROGRAMMATION © Enseignant : Mohamed SAYARI
Q: Est-t-il possible de regrouper ces variables au sein d'un même tableau ?
R: Non, car un tableau ne peut contenir que des éléments de même type.
On remarque que les variables simples ou les tableaux ne permettent pas de ranger des données de types
différents.
Pour résoudre le problème, on dois créer un nouveau TYPE qui permet de regrouper des données de types
différents. Nous allons utiliser un nouvelles structure appelée ENREGISTREMENT ou ARTICLE
(RECORD en PASCAL) pour réaliser cette tâche.
II. DEFINITION ET DECLARATIONS
a) Définition
Un enregistrement est un type de données défini par l'utilisateur et qui permet de regrouper un nombre fini
d'éléments (ou champs) de types éventuellement différents.
Schéma de la structure:
Champ1 Champ2 Champ3 Champ4 Champ5
Type1 Type2 Type3 Type4 Type5
Une seule entité d'une variable enregistrement
b) Déclaration
En algorithmique En PASCAL
TDNT
TYPE TYPE
Nom_type= Enregistrement Nom_type = RECORD
Champ1 : type1 Champ1: type1;
Champ2 : type2 Champ2: type2;
…………………. …………………. ;
Champn : typen Champn: typen;
Fin Nom_type END;
TDO
Objet Type/Nature Rôle VAR
Identificateur_objet : Nom_type;
Enregistrement
Identificateur_objet Nom_type
pour……
Remarque: les types (type1, type2, …, type n) peuvent être soit standards, soit définis par l'utilisateur.
4ème SI LES ENREGISTREMENTS & FICHIERS PAGE 2
- 3. ALGO & PROGRAMMATION © Enseignant : Mohamed SAYARI
c) Activité2
Déclarer en algorithmique et en PASCAL une variable enregistrement représentant un élève sachant qu'un
élève est caractérisé par un nom, un code, un nom et prénom, un moyen et une observation.
Réponse
En Algorithmique En PASCAL
TDNT
TYPE
TYPE
ELEVE = RECORD
ELEVE= Enregistrement NUM: integer;
NUM : Entier
CODE: string [4];
CODE : Chaîne [4]
NOM: string;
Nom : Chaîne
OBSERVATION: string ;
OBSERVATION: Chaîne
MOYEN: Real;
Moyen : Réel
END;
FIN ELEVE
TDO
Objet Type/Nature Rôle VAR
ELV ELEVE Variable enregistrement ELV: ELEVE ;
représentant un élève
d) Activité3
Déclarer en algorithmique et en PASCAL une variable enregistrement appelé DATE qui comporte:
Le numéro de jour (jj) en utilisant le type JOURS qui est un nouveau type défini par l'utilisateur qui
énumère les numéros des jours d'un mois de 1 à 31.
Le mois (mm) en utilisant le type MOIS qui est un nouveau type défini par l'utilisateur et qui énumère
les 12 mois de l'année (Janvier, février, mars, .., décembre)
L'année (aa) qui est un entier
EN ALGORITHMIQUE EN PASCAL
TDNT
TYPE
TYPE
JOURS : 1..31
JOURS: 1..31;
MOIS = (Janvier, février, mars, avril, mai, juin,
MOIS = (Janvier, février, mars, avril, mai, juin,
juillet, août, septembre, octobre, novembre,
juillet, août, septembre, octobre, novembre,
décembre)
décembre);
DATE = ENREGISTREMENT
DATE = RECORD
jj: jours
jj: jours ;
mm: mois
mm : mois ;
aa: entier
aa : integer;
FIN DATE
END;
TDO
Objet Type/Nature Rôle VAR
calendier DATE Variable enregistrement
représentant une date Calendrier: DATE ;
III.UTILISATION DES ENREGISTREMENTS
o Si on veut schématiser une variable V de type simple, on peut la représenter par un carré V
o Si on veut schématiser une variable T de type tableau, on peut la représenter par un tableau T
o Si on veut schématiser une variable E de type enregistrement, on peut la représenter par:
4ème SI LES ENREGISTREMENTS & FICHIERS PAGE 3
- 4. ALGO & PROGRAMMATION © Enseignant : Mohamed SAYARI
Champ1
E Champ2
………..
Champ n
III.1 Affectation
Pour affecter une valeur à une variable de type: V 5
Pour affecter une valeur à une case i d'un tableau T : T[i] 5
Pour affecter des valeurs aux différents champs d'une variable enregistrement:
En Algorithmique EN PASCAL
Variable.champ valeur Variable.champ := valeur ;
Activité 4
Reprenons l'enregistrement ELEVE, affectez respectivement les valeurs suivantes:
1, "G911", "Guizani Zied", 11.25, "Passable"
En Algorithmique En PASCAL
Emp.num 1 Emp.num := 1;
Emp.code "G911" Emp.code := 'G911';
Emp.nom "Guizani Zied" Emp.nom := 'Guizani Zied';
Emp.moyen 11,25 Emp.moyen := 11.25;
Emp.observation "Passable" Emp.observation := 'Passable';
Remarques :
Il est possible d'affecter une variable enregistrement dans une autre à condition qu'elles aient la même
structure
Exemple:
Var e1, e2: eleve;
e1:= e2; (ou bien e2:=e1;) tous les champs de la variable enregistrement à affecter
seront recopiés dans les champs de l'autre.
Un champ a exactement les mêmes propriétés qu'une variable du même type.
Le champ d'une variable enregistrement peut être lui-même un enregistrement.
III.2 Lecture
Pour lire le contenu d'une variable V de type simple Lire (v)
Pour lire le contenu d'un tableau T,on utilise une boucle pour lire chaque élément du tableau Lire(T[i])
Pour lire le contenu d'une variable de type enregistrement:
En Analyse En Algorithme En PASCAL
Variable.champ = Donnée Lire (variable.champ) Readln (variable.champ)
Exemple:
En Analyse En Algorithme En PASCAL
Emp.Num = Donnée ("NUM=") Ecrire ("NUM=") Write ('NUM=');
Lire (Emp.Num) Readln (Emp.Num);
III.3 Ecriture
L'écriture des valeurs de différents champs d'une variable enregistrement se fait:
En Analyse et Algorithme En PASCAL
Ecrire (variable.champ) Write (variable.champ)
4ème SI LES ENREGISTREMENTS & FICHIERS PAGE 4
- 5. ALGO & PROGRAMMATION © Enseignant : Mohamed SAYARI
Exemple:
En Analyse et en Algorithme En PASCAL
Ecrire ("NUM=", ELV.NUM) write ('NUM=', ELV.NUM);
Ecrire ("CODE=", ELV.CODE) write ('CODE=', ELV.CODE);
Ecrire ("NOM ET PRENOM=", ELV.NOM) write ('NOM ET PRENOM=', ELV.NOM);
Ecrire ("MOYEN=", ELV.MOYEN) write (MOYEN=', ELV.MOYEN);
Ecrire ("OBSERVATION=", ELV.OBSERVATION) write ('OBSERVATION=', ELV.OBSERVATION);
III.4 Structure AVEC .. FAIRE (With .. Do)
Cette structure est utilisée pour éviter l'utilisation répétée des champs et de la notation avec le point
(variable.champ) et pour simplifier l'écriture.
Cette structure s'utilise avec une opération d'affectation, de lecture et d'écriture.
Syntaxe
Au niveau de l’analyse et l’algorithme En PASCAL
AVEC variable FAIRE WITH variable DO
{actions à faire} BEGIN
FIN AVEC {actions à faire ;}
END ;
Activité 5
Réécrire les actions suivantes avec le structure AVEC .. FAIRE
Elv.NUM 30 AVEC ELV FAIRE
Elv.CODE "S932" NUM 30
Elv.NOM "Fitouri Rochdi" CODE "S932"
Affectation
Elv.MOYEN 10.21 NOM "FIROURI Rochdi"
Elv.OBSERVATION "PASSABLE" MOYEN 10.21
OBSERVATION "PASSABLE"
Lecture Ecrire ("NUM =") Ecrire ("NUM= ")
Lire (ELV.NUM) Lire (NUM)
Ecriture Ecrire ("MOYEN= ", Elv.MOYEN) Ecrire ("MOYEN=", Elv.MOYEN)
FIN AVEC
Activité 6 (Activité 8 page 19)
III.5 Vecteur d’enregistrements
Activité 7
Reprenons l’activité 4 concernant une fiche d’un élève contenant son numéro, son code, son nom et prénom,
son moyen et son observation.
Nous désirons utiliser cet enregistrement pour tous les employés de la société.
Question : est ce qu’on peut utiliser un tableau d’enregistrements ?
Réponse : oui, car un vecteur ne peut contenir que des éléments de même type y compris le type
enregistrement.
4ème SI LES ENREGISTREMENTS & FICHIERS PAGE 5
- 6. ALGO & PROGRAMMATION © Enseignant : Mohamed SAYARI
Activité 7
On se propose d’écrire un programme modulaire qui permet de saisir N élèves (5≤ N ≤40), dans un tableau T,
affiche le moyen de la classe et le pourcentage de réussite.
Un élève est caractérisé par un numéro, un code (chaîne de 4 caractères au maximum), un nom et prénom, un
moyen et une observation (10 caractères au maximum).
Analyse du programme principal :
Résultat= Ecrire (″le pourcentage de réussite est : ″, FN pourcentage(t,n))
Ecrire (″le moyen de la classe est : ″, FN calcul (T, n))
T= proc remplir (T, n)
N= proc saisir (n)
TDNT
TYPE
ELEVE= Enregistrement
NUM : Entier
CODE : Chaîne
Nom : Chaîne
observation: Chaîne
Moyen : Réel
FIN ELEVE
TAB = Tableau de 100 ELEVE
TDO
Objet Type /Nature Rôle
T TAB Tableau d’enregistrements pour les fiches des employés
4ème SI LES ENREGISTREMENTS & FICHIERS PAGE 6