Back
  • Algorithme: Les enregistrements

  • algorithme les enregistrements

     


    //
    1. Définitions

      • 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é.
    2. Déclaration

      • Type
        Nom_Type = Enregistrement
            Champ1 : Type1
            Champ2 : Type2
            …
            ChampN : TypeN
        Fin Nom_Type

        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.
      • Exercice d’application
        • Énoncé

          • Déclarer une variable enregistrement représentant un nombre complexe.
          Solution proposée
            Type
            Complexe = Enregistrement
                P_réelle : Réel
                P_imaginaire : Réel
            Fin Complexe
    3. Utilisation des enregistrements

      • 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 2
        • É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.
          • 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

      • Affectation
        • L’affectation de valeurs aux différents champs d’une variable enregistrement se fait comme suit :
        • Variable.champ<— valeur

      • Exercice d’application 2
        • Énoncé

          • 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
          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.

            • 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 3
            • Énoncé

              • Reprenez l’exercice d’application 2 et écrivez les instructions permettant de saisir à partir du clavier les champs de la variable enregistrement E.
              • 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
              • É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.

                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. 

              • Ecriture
                • 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) ;



    Abonnez vous à notre chaîne YouTube gratuitement