Algorithmique impérative/Enregistrements
Première approche
modifierL'enregistrement est une façon de créer un nouveau type, ou encore un méta-type, c'est-à-dire un type qui contient d'autres variables de types déjà définis.
Spécification
modifierOn déclare un nouveau type dans la partie Types
comme suit :
identifiant_du_type = enregistrement identifiant_première_sous_valeur : type_de_la_première_sous_valeur identifiant_deuxième_sous_valeur : type_de_la_deuxième_sous_valeur ... fin
on peut ensuite déclarer normalement les variables de ce nouveau type :
identifiant_variable : identifiant_du_type
Pour accéder à une sous-valeur de la variable, nous utiliserons l'expression :
identifiant_variable.identifiant_sous_valeur
Cette expression est du type de identifiant_sous_valeur
.
Exemple
modifierSupposons que nous voulions un nouveau type couple (de deux entiers). Nous allons déclarer le type couple comme suit :
couple = enregistrement a : entier b : entier fin
Supposons maintenant que nous avons le lexique suivant :
Lexique c : couple
Si nous assignons :
c.a ← 1 c.b ← 2 afficher(c.a) (* affichera 1 *)
Le projet sur les dates propose un travail complet sur le sujet.
Utilisation
modifierCela n'est pas obligatoire en algorithmique impérative, mais pour travailler sur un nouveau type , il convient de définir quelques fonctions élémentaires pour créer une variable à partir de ses sous-valeurs. Remarquez que les types de paramètres seront semblables aux types des sous-variables de nouveau type (exception faite dans le cas de sous-valeurs par défaut...).
Exemple
modifierPour reprendre notre exemple, nous pourrions créer une fonction :
fonction creerCouple(m, n : entiers) (* créer un couple à partir de ses deux éléments *) lexique NouveauCouple : couple debut NouveauCouple.a ← m NouveauCouple.b ← n renvoyer NouveauCouple fin