Les tableaux d'Enregistrement

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. Modérateur
    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