Oppure

Loading
Un record (che chiameremo sempre struttura) è un tipo nuovo di variabile, definito dal programmatore. Non è altro che l’insieme di più tipi diversi e reimpostati. In una struttura ci sono più variabili diverse, chiamate campi, che sono accessibili con l’operatore ‘.’ (punto). Vediamo un esempio:

type
   persona=record
   eta:byte;
   nome:string[40];
   cognome:string[50];
   professione:string[55];
end;


Questa dichiarazione rende accessibile il tipo ‘persona’ come tipo di dato, nel quale ci sono 4 campi, eta, nome, cognome e professione. La riga persona=record definisce il nome della struttura. Quindi, per dichiarare una struttura si usa l’espressione:

type
   <nome>=record
   <campo1>:<tipo>;
   <campo2>:<tipo>;
   ...
end;

Ora vediamo come si usa sul piano pratico, prendendo sempre le struttura persona, definita in precedenza:

Program Esempio6;
Uses Crt;

type
   persona=record
   eta:byte;
   nome:string[40];
   cognome:string[50];
   professione:string[55];
end;

Var qualcuno:persona;

begin
    clrscr;
    writeln(‘Inserire il nome e il cognome della persona.’);
    readln(qualcuno.nome,qualcuno.cognome);
    write(‘Inserire l’’età: ‘);
    readln(qualcuno.eta);
    write(‘e la professione: ‘);
    readln(qualcuno.professione);
    write(qualcuno.nome,’ ‘,qualcuno.cognome,’ ha ‘,qualcuno.eta);
    writeln(‘anni e fa il ‘,qualcuno.professione);
readln
end.


Per accedere ad un qualsiasi campo di dati di una struttura si usa il punto.
Nondimeno, ci possono essere anche array e altre strutture in un’unica struttura, ad esempio:

(*...*)
type
   tipo1=record
   vettore:array[1..29] of char;
   n:array[1..99,2..98] of byte;
   t:text;
end;
type
   tipo2=record
   esempio:tipo1;
   stringa:string[167];
   vettore:array[1..10] of char;
end;
Var a:tipo2;
    b:array[1..56] of tipo1;

(*...*)
write(a.esempio.vettore[3]);
a.vettore[3]:=chr(a.esempio.n[76,23]);
read(b[45].n[3,78]);
(*...*)


Si sono dichiarate due strutture, tipo1 e tipo2: quest’ultimo possiede al proprio interno un campo di tipo tipo1. Per accedere ad ogni singolo campo si possono usare anche più di un punto.
L’indicazione di un indice di un array è da specificare sempre vicino alla variabile di cui è indice, ad esempio:

b.t[2] (*E’ sbagliato, perché, per indicare l’elemento 2 di b si deve scrivere*)
b[2].t

Piccola nota finale: la funzione chr(x:byte) resituisce il carattere numero x in base alle tabelle ASCII.
A cura di: Il Totem