8: I dati e la loro struttura nella programmazione( ARRAY, MATRICI, RECORD) Vers. 10.0 – Maggio 2025
Record e sottorecord
Riprendiamo ora la rappresentazione tabellare del tracciato record eseguita nell’ Esempio 2 marcando con una‘ X’ il campo FlagSubRec del primi quattro campi, facendo intendere che essi formino un altro record di fatto contenuto( ecco il perchè del termine sottorecord) in quello che vogliamo definire.
La nuova tabella sarà la seguente
Numero |
Nome Campo |
Tipo Campo |
Lunghezza |
Descrizione |
FlagSubRec |
1 |
Isbn |
ARRAY DI CHAR |
10 |
Codice ISBN del libro |
X |
2 |
Titolo |
ARRAY DI CHAR |
100 |
Titolo del libro |
X |
3 |
Autore |
ARRAY DI CHAR |
50 |
Autore del libro |
X |
4 |
CasaEditrice |
ARRAY DI CHAR |
50 |
Casa Editrice del libro |
X |
5 |
Prezzo |
REAL |
3,2 |
Prezzo del libro |
|
6 |
Pagine |
INT |
4 |
Pagine del libro |
|
Che modifiche devono essere apportate alla nostra PSEUDOCODIFICA?
Innanzitutto nell’ ambiente GLOBALE dovremo definire il tipo record Libro tenendo conto che esso contiene al suo interno un altro record più piccolo( chiamato per questo SOTTORECORD del record principale). Per ovvie ragioni si dovrà definire:
- prima il sottorecord fornendo obbligatoriamente anche un nome al suo tipo
- poi il record principale che dovrà obbligatoriamente indicare al suo interno un riferimento al sottorecord contenuto( ossia un campo di tipo sottorecord).......
TIPO DettagliLibro = RECORD Isbn: ARRAY [ 10 ] DI CHAR Titolo: ARRAY [ 100 ] DI CHAR Autore: ARRAY [ 50 ] DI CHAR CasaEditrice: ARRAY [ 50 ] DI CHAR
FINE RECORD
TIPO Libro = RECORD DetLib: DettagliLibro Prezzo: REAL Pagine: INT
FINE RECORD
...... Ora nell’ ambiente LOCALE potrà di conseguenza essere definita la seguente variabile:
lib: Libro
Come si modificherà a questo punto l’ accesso ai campi della variabile lib SEMPRE di tipo Libro che è stato però definito con un sottorecord al suo interno?
La modifica dell’ accesso ai campi riguarderà ESCLUSIVAMENTE i campi appartenenti al SOTTORECORD i quali potranno essere raggiunti utilizzando opportunamente la dot notation.
Leggi( lib. DetLib. Titolo) oppure Scrivi( lib. DetLib. Isbn) Tutto rimane uguale per i campi che non appartengono al sottorecord
Leggi( lib. Prezzo) oppure lib. Pagine � 435
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 48