[x]

OFPPT Maroc

Guide des formations professionnelles

Vous avez téléchargé 0 fois ce fichier durant les dernières 24 heures. La limite est fixée à 5 téléchargements.
Vous avez téléchargé 0 fichier(s) durant ces 24 dernières heures. La limite est fixée à 5 téléchargements.

Cours algorithme 2 : enregistrements et fichiers

Télécharger

Cours algorithme 2 : enregistrements et fichiers

Introduction

Contrairement aux tableaux qui sont des structures de données dont tous les éléments sont de même type, les enregistrements sont des structures de données dont les éléments peuvent être de type différent et qui se rapportent à la même entité (au sens de Merise) Les éléments qui composent un enregistrement sont appelés champs. Avant de déclarer une variable enregistrement, il faut avoir au préalable définit son type, c'est à dire le nom et le type des champs qui le compose. Le type d'un enregistrement est appelé type structuré. (Les enregistrements sont parfois appelé structures, en analogie avec le langage C)

Préalable: déclaration d'un type structuré

Jusqu'à présent, nous n'avons utilisé que des types primitifs (caractères, entiers, réels, chaînes) et des tableaux de types primitifs. Mais nous pouvons créer nos propres types puis déclarer des variables ou des tableaux d'éléments de ce type. Pour créer des enregistrements, il faut déclarer un nouveau type, basé sur d'autres types existants, qu'on appelle type structuré Après avoir défini un type structuré, on peut l'utiliser comme un type normal en déclarant une ou plusieurs variables de ce type. Les variables de type structuré sont appelées enregistrements. La déclaration des types structurés se fait dans une section spéciale des algorithmes appelée Type, qui précède la section des variables (et succède à la section des constantes).

…

I. Déclaration d'un enregistrement à partir d'un type structuré

Une fois qu'on a défini un type structuré, on peut déclarer des variables enregistrements exactement de la même façon que l'on déclare des variables d'un type primitif.

…

II. Manipulation d'un enregistrement

La manipulation d'un enregistrement se fait au travers de ses champs. Comme pour les tableaux, il n'est pas possible de manipuler un enregistrement globalement, sauf pour affecter un enregistrement à un autre de même type. Par exemple, pour afficher un enregistrement il faut afficher tous ses champs uns par uns.

A. Accès aux champs d'un enregistrement

Alors que les éléments d'un tableau sont accessibles au travers de leur indice, les champs d'un enregistrement sont accessibles à travers leur nom, grâce à l'opérateur '.'

nom_enregistrement . nom_champ représente la valeur mémorisée dans le champ de l'enregistrement

Par exemple, pour accéder à l'âge de la variable pers2, on utilise l'expression: pers2.âge

Attention : le nom d'un champ est TOUJOURS précédé du nom de l'enregistrement auquel il appartient. On ne peut pas trouver un nom de champ tout seul, sans indication de l'enregistrement. 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,…).

Exemple 1:

Programme de saisie des données concernant les personnes pers1 et pers2, puis affichage de la différence d'âge entre ces deux personnes

Programme Exemple

Type

Structure tpersonne

nom : chaîne

prénom : chaîne

âge : entier

FinStruct

Var

pers1, pers2 : tpersonne

Début

Aff 'Entrez le nom puis l'age de la personne 1'

Saisir pers1.nom, pers1.age // il est impossible d'écrire Saisir pers1

Aff 'Entrez le nom puis l'âge de la personne 2'

Saisir pers2.nom, pers2.age

Aff 'La différence d'âge entre ', pers1.nom, ' et ', pers2.nom, ' est de '

Si pers1.age > pers2.age

Alors Aff pers1.age – pers2.age, ' ans '

Sinon Aff pers2.age – pers1.age, ' ans '

FinSi

Fin

B. Passage d'un enregistrement en paramètre d'un sous-programme

Il est possible de passer tout un enregistrement en paramètre d'une fonction ou d'une procédure (on n'est pas obligé de passer tous les champs uns à uns, ce qui permet de diminuer le nombre de paramètres à passer), exactement comme pour les tableaux.

Exemple : Voilà une fonction qui renvoie la différence d'age entre deux personnes

Fonction différence (p1, p2 : tpersonne)

Début

Si pers1.age > pers2.age

Alors Retourne ( pers1.age – pers2.age )

Sinon Retourne ( pers2.age – pers1.age )

FinSi

FinFonct

Exemple 2 :

Voilà une procédure qui permet de modifier le prix de vente hors taxes d'un produit passé en paramètre. Cette procédure commence par afficher le libellé et l'ancien prix de vente hors taxes du produit puis saisit le nouveau prix de vente entré par l'utilisateur.

Procédure majpv (E/S x: produit)

Début

Aff 'produit: ', x.lib

Aff 'prix de vente hors taxe actuel: ', x.pvht

Aff 'Entrez le nouveau prix de vente: '

Saisir x.pvht

Aff 'le nouveau prix de vente est: ', x.pvht

FinProc

Evaluation :
Total des Votes : 0
Soyez le premier à écrire un commentaire sur ce fichier!
Veuillez vous identifier ou vous enregistrer.