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
A voir également:

1 réponse

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