Back

Algorithme: les enregistrements

Algorithme: Les enregistrements

  1. Objectifs

    • Connaitre les enregistrements algorithmiques
  2. Présentation

    • algorithme les enregistrements

    • Un enregistrement est un type de données défini par l’utilisateur et qui permet de grouper un nombre fini d’éléments (ou champs) de types éventuellement différents (alphabétique, numérique, logique,…) sous un nom commun.
    • A la différence des tableaux, qui ne permettent de grouper que des éléments du même type, les enregistrements permettent de combiner différents types de données.
    • 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é.
  3. Déclaration

    1. Type
      • Nom_Type = Enregistrement
            Champ1 : Type1
            Champ2 : Type2
            …
            ChampN : TypeN
        Fin Nom_Type
    2. Remarques
      • Les types enregistrements font partie des types structurés. Concernant les champs, il faut savoir que ceux-ci peuvent être de n’importe quel type (sauf un type fichier).
      • Mais :
        • Il n’existe pas de constante d’un type enregistrement.
        • Il n’existe pas d’opération (autre que l’affectation et le passage comme paramètre) sur les enregistrements.
        • Les seules expressions d’un type enregistrement sont les variables de ce type.
        • Il n’y a pas de fonction (même prédéfinie) à résultat d’un type enregistrement.
    3. Exercice d’application
      1. Énoncé
        • Déclarer une variable enregistrement représentant un nombre complexe.
      2. Solution proposée
        • Complexe = Enregistrement
              P_réelle : Réel
              P_imaginaire : Réel
          Fin Complexe



  4. Utilisation des enregistrements

    1. Accès au champ 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 ‘.’
      • Un tel champ est défini par le nom de l’enregistrement ainsi que par son nom propre.
      • Exemple
        • apprenant.nomprenom: représente le champ nomprenom de l’enregistrement apprenant.
          • 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,…).
      • Exercice d’application
        1. Énoncé
          • Programme de saisie des données concernant les apprenants appr1 et appr2, puis affichage de la différence d’âge entre ces deux apprenants.
        2. Solution proposée
          • Type
            Structure tpeappr
            nom : chaîne
            prénom : chaîne
            âge : entier
            FinStructure
            Var
            appr1, appr2: tpeappr
            Début

              Aff “Entrez le nom puis l’age de l’apprenant 1”
              Saisir appr1.nom, appr2.age // il est impossible d’écrire Saisir pers1
              Aff “Entrez le nom puis l’âge de l’apprenant 2”
              Saisir appr2.nom, appr.age
              Aff “La différence d’âge entre “, appr1.nom, ” et “, appr2.nom, ” est de ”
              Si appr1.age > appr2.age
                  Alors Aff appr1.age – appr2.age, ” ans ”
                  Sinon Aff appr2.age – appr1.age, ” ans ”
              FinSi

            Fin

    2. Affectation
      • L’affectation de valeurs aux différents champs d’une variable enregistrement se fait comme suit :
        Variable.champ<--- valeur
      • Exercice d’application
        1. Enoncé
          • 1. Déclarer en algorithmique et en Pascal une variable enregistrement pour représenter la fiche d’un apprenant sachant qu’elle contient les informations suivantes : nom,Prénom, Sexe (F ou G), date de naissance et la note de l’informatique.
            2. Affecter respectivement les valeurs suivantes à cette variable :‘’Hajji’’, ‘’Riadh’’, ‘’F’’, ‘’27 /11/1983’’ et 13.25
        2. Solution proposée
          • En analyse
            • 1. Déclaration d’une variable enregistrement
              Type
              Fiche = Enregistrement
                  Nom, prénom : Chaîne
                  sexe : Caractère
                  date_nais : chaîne
                  note: Réel
              Fin Fiche
              2. Affectation des valeurs à cette variable :
              E.nom<-- ‘’Riadh’’
              E. prénom<-- ‘’Riadh’’
              E. sexe<-- ‘’F’’
              E. date_nais<-- ‘’27 /11/1983’’
              E. note<--13.25
          • En pascal
            • 1. Déclaration d’une variable enregistrement

              TYPE fiche = Record
                                  Nom, prenom : String ;
                                  sexe : Char ;
                                  date_nais : String ;
                                  note : Real ;
                                  End;
                                  VAR
                                  E: Fiche;
                              

              2. Affectation des valeurs à cette variable :

                          E.nom := ’Hajji’ ;
                          E. Prénom := ‘Riadh’ ;
                          E. Sexe := ‘F’ ;
                          E. date_nais := ’27 /11/1983’ ;
                          E. note := 13.25 ;
                      

            Il est possible d’affecter une variable enregistrement dans une autre à condition qu’ils aient
            la même structure.

    3. Lecture
      • La lecture des valeurs des différents champs d’une variable enregistrement se fait comme suit :
      • En analyse En algorithme En Pascal
        Variable.champ = donnée Lire (Variable.champ) Readln (Variable.champ) ;
      • Exercice d’application
        1. Énoncé
          • Reprenez l’exercice d’application 2 et écrivez les instructions permettant de saisir à partir du clavier les champs de la variable enregistrement E.
        2. Solution proposée
          • En analyse :

              E.nom = Donnée (“Entrer le nom de l’étudiant :”)
              E.prénom = Donnée (“Entrer le prénom de l’étudiant :”)
            En algorithme :

              Ecrire (“Entrer le nom de l’étudiant :”) ; lire (E.nom)
              Ecrire (“Entrer le prénom de l’étudiant :”) ; lire (E. prénom)
            En Pascal :

              Write (’Entrer le nom de l’ ’étudiant :’) ;
              Readln (E.nom) ; …

        Exercice d’application 4
        1. Énoncé
          • Soit la structure apprenant
          • Elle est constituée par le nom (chaîne de 30 caractères maximum), le numéro de téléphone (10 caractères maximum), le numéro de carte d’identité (entier non signé).
          • Ecrivez un programme qui saisit puis affiche les enregistrements pour 3 personnes.
        2. Solution proposée
          • Algorithme saisie_affich; 
            type apprenant = enregistrement 
            nom: chaine[30]; 
            num_tel, num_c_b: entier; 
            fin; 
            var T: tableau[1..3] de Info; 
            i: entier; 
            debut
             pour i allant de 1 à 3 faire
                avec T[i] faire 
                  lire (nom, num_tel, num_c_b); 
                finavec; 
             finpour;
             pour i allant de 1 à 3 faire 
                avec T[i] faire 
                  ecrire( nom, num_tel, num_c_b); 
                finavec;
             finpour; 
            fin. 
    4. Écriture
      • L’écriture des valeurs des différents champs d’une variable enregistrement se fait comme suit :

        En analyse et en algorithme En Pascal
        Ecrire (Variable.champ) Write (Variable.champ) ;



Riadh HAJJI

Abonnez vous à notre chaîne YouTube gratuitement