Les tableaux d'Enregistrement

Cyrille_assolo Messages postés 1 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,j'aimerais avoir les syntaxes pour manipuler les tableaux d'enregistrement.Par exemple comment faire pour manipuler un champ d'un enregistrement contenu dans un tableau sur turbo pascal. Merci d'avance
Configuration: Windows XP Internet Explorer 6.0

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Voici ce qu'on peut faire :
    type MonRecord=record
                   a:typeA;
                   b:typeB;
                   end;
    
    var MR:MonRecord;
    On utilise MR.a comme n'importe quelle variable de typeA
    On utilise MR.b comme n'importe quelle variable de typeB
    type MonTableau=array[1..10] of typeT;
    
    var MT:MonTableau;
    On utilise MT[1] ... MT[10] comme n'importe quelles variables de typeT

    Et on peut aussi faire des mélanges des deux :
    type TableauDeRecord=array[1..10] of MonRecord;
    
    var TR:TableauDeRecord;
    On utilise TR[1] ... TR[10] comme n'importe quelles variables MonRecord
    C'est à dire qu'on peut utiliser TR[1].a ... TR[10].a, TR[1].b ... TR[10].b
    type RecordDeTableau=record
                         a:array[1..10] of typeA;
                         b:array[1..10] of typeB;
                         end;
    
    var RT:RecordDeTableau;
    On utilise RT.a comme n'importe quel array de typeA
    C'est à dire qu'on peut utiliser RT.a[1] ... RT.a[10], RT.b[1] ... RT.b[10]

    Et on peut cumuler les types autant qu'on veut...
    Par exemple on pourrais avoir un type tel qu'on puisse faire :
    var x:MonType;
    
    x.a[15].b[4,6].c
    On pourrait alors décomposer et deviner une partie du code de MonType...

    MonType est un record, avec un champ a
    a est un tableau de type array[indice1..indice2] of Inconnu1
    On sait que indice1<=15 et indice2>=15

    Inconnu1 est un record, qui a un champ b
    b est une matrice de type array[indice11..indice12,indice21..indice22] of Inconnu2
    On sait que indice11<=4 et indice12>=4
    On sait que indice21<=6 et indice22>=6

    Inconnu2 est un record, qui a un champ c
    0