6
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)

Les enregistrements

Embed Size (px)

Citation preview

Page 1: Les enregistrements

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)

Page 2: 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.

Page 3: Les enregistrements

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:

Page 4: Les enregistrements

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

Page 5: Les enregistrements

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.

Page 6: Les enregistrements

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