Upload
mohamedsayari
View
7.183
Download
2
Embed Size (px)
Citation preview
ALGO & PROGRAMMATION © Enseignant : Mohamed SAYARI
4ème
SI LES ENREGISTREMENTS & FICHIERS PAGE 1
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
CODE
Nom
Observation
Moyen
Numérique (entier)
Alphanumérique
Alphabétique
Alphabétique
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
CODE
NOM
OBSERVATION
MOYEN
Tableau de 40 entiers
Tableau de 40 chaînes
Tableau de 40 chaînes
Tableau de 40 chaînes
Tableau de 40 réels
Tableau des numéros des élèves
Tableau des codes
Tableau des noms et prénoms
Tableau des Observations
Tableau des moyens
Chapitre1: LES ENREGISTREMENTS ET LES FICHIERS
(LES ENREGISTREMENTS)
ALGO & PROGRAMMATION © Enseignant : Mohamed SAYARI
4ème
SI LES ENREGISTREMENTS & FICHIERS PAGE 2
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
Type1
Champ2
Type2
Champ3
Type3
Champ4
Type4
Champ5
Type5
Une seule entité d'une variable enregistrement
b) Déclaration
En algorithmique
TDNT
TYPE
Nom_type= Enregistrement
Champ1 : type1
Champ2 : type2
………………….
Champn : typen
Fin Nom_type
TDO
Objet Type/Nature Rôle
Identificateur_objet Nom_type Enregistrement
pour……
En PASCAL
TYPE
Nom_type = RECORD
Champ1: type1;
Champ2: type2;
…………………. ;
Champn: typen;
END;
VAR
Identificateur_objet : Nom_type;
Remarque: les types (type1, type2, …, type n) peuvent être soit standards, soit définis par l'utilisateur.
ALGO & PROGRAMMATION © Enseignant : Mohamed SAYARI
4ème
SI LES ENREGISTREMENTS & FICHIERS PAGE 3
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
TDNT
TYPE
ELEVE= Enregistrement
NUM : Entier
CODE : Chaîne [4]
Nom : Chaîne
OBSERVATION: Chaîne
Moyen : Réel
FIN ELEVE
TDO
Objet Type/Nature Rôle
ELV ELEVE Variable enregistrement
représentant un élève
En PASCAL
TYPE
ELEVE = RECORD
NUM: integer;
CODE: string [4];
NOM: string;
OBSERVATION: string ;
MOYEN: Real;
END;
VAR
ELV: ELEVE ;
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
TDNT
TYPE
JOURS : 1..31
MOIS = (Janvier, février, mars, avril, mai, juin,
juillet, août, septembre, octobre, novembre,
décembre)
DATE = ENREGISTREMENT
jj: jours
mm: mois
aa: entier
FIN DATE
TDO
Objet Type/Nature Rôle
calendier DATE Variable enregistrement
représentant une date
EN PASCAL
TYPE
JOURS: 1..31;
MOIS = (Janvier, février, mars, avril, mai, juin,
juillet, août, septembre, octobre, novembre,
décembre);
DATE = RECORD
jj: jours ;
mm : mois ;
aa : integer;
END;
VAR
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:
ALGO & PROGRAMMATION © Enseignant : Mohamed SAYARI
4ème
SI LES ENREGISTREMENTS & FICHIERS PAGE 4
Champ1
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
Emp.num 1
Emp.code "G911"
Emp.nom "Guizani Zied"
Emp.moyen 11,25
Emp.observation "Passable"
En PASCAL
Emp.num := 1;
Emp.code := 'G911'; Emp.nom := 'Guizani Zied'; Emp.moyen := 11.25; 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=")
Lire (Emp.Num)
Write ('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)
E
ALGO & PROGRAMMATION © Enseignant : Mohamed SAYARI
4ème
SI LES ENREGISTREMENTS & FICHIERS PAGE 5
Exemple:
En Analyse et en Algorithme
Ecrire ("NUM=", ELV.NUM)
Ecrire ("CODE=", ELV.CODE)
Ecrire ("NOM ET PRENOM=", ELV.NOM)
Ecrire ("MOYEN=", ELV.MOYEN)
Ecrire ("OBSERVATION=", ELV.OBSERVATION)
En PASCAL
write ('NUM=', ELV.NUM);
write ('CODE=', ELV.CODE);
write ('NOM ET PRENOM=', ELV.NOM);
write (MOYEN=', ELV.MOYEN);
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
{actions à faire}
FIN AVEC
WITH variable DO
BEGIN
{actions à faire ;}
END ;
Activité 5
Réécrire les actions suivantes avec le structure AVEC .. FAIRE
Affectation
Elv.NUM 30
Elv.CODE "S932"
Elv.NOM "Fitouri Rochdi"
Elv.MOYEN 10.21
Elv.OBSERVATION "PASSABLE"
AVEC ELV FAIRE
NUM 30
CODE "S932"
NOM "FIROURI Rochdi"
MOYEN 10.21
OBSERVATION "PASSABLE"
Lecture Ecrire ("NUM =")
Lire (ELV.NUM)
Ecrire ("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.
ALGO & PROGRAMMATION © Enseignant : Mohamed SAYARI
4ème
SI LES ENREGISTREMENTS & FICHIERS PAGE 6
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