3° Anno TEORIA 9. Tipi di dato strutturato: vettori e record | Page 48

8 : I dati e la loro struttura nella programmazione ( ARRAY , MATRICI , RECORD ) Vers . 8.2 – Settembre 2022
Esempio 7 : Supponiamo ora di volere leggere ( controllando la validità dei singoli campi ) e stampare i dati contenuti in una variabile lib di tipo Libro ossia di un record con la seguente struttura o tracciato che contiene al suo interno un SOTTORECORD
ALGORITMO Leggi _ Stampa _ RECORD _ SUBREC
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
PROCEDURA main ( ) lib : Libro INIZIO
/* leggo il record lib campo x campo ( operazione NON ATOMICA ) effettuando tutti i controlli */ RIPETI
Leggi ( lib . DetLib . Isbn ) FINCHE ’ ( Lunghezza ( lib . DetLib . Isbn ) ≠ 0 ) AND ( Lunghezza ( lib . DetLib . Isbn ) ≤ 10 )
RIPETI
Leggi ( lib . DetLib . Titolo ) FINCHE ’ ( Lunghezza ( lib . DetLib . Titolo ) ≠ 0 ) AND ( Lunghezza ( lib . DetLib . Titolo ) ≤ 100 )
RIPETI
Leggi ( lib . DetLib . Autore ) FINCHE ’ ( Lunghezza ( lib . DetLib . Autore ) ≠ 0 ) AND ( Lunghezza ( lib . DetLib . Autore ) ≤ 50 )
RIPETI
Leggi ( lib . DetLib . asaEditrice ) FINCHE ’ ( Lunghezza ( lib . DetLib . CasaEditrice ) ≠ 0 ) AND ( Lunghezza ( lib . DetLib . CasaEditrice ) ≤ 50 )
RIPETI
Leggi ( lib . Prezzo ) FINCHE ’ ( lib . Prezzo ) > 0 ) AND ( lib . Prezzo ) ≤ 999.99 )
RIPETI
Leggi ( lib . Pagine ) FINCHE ’ ( lib . Pagine ) > 0 ) AND ( lib . Pagine ) ≤ 9999 )
/* visualizzo il record lib campo x campo ( operazione NON ATOMICA )*/
Scrivi ( lib . DetLib . Isbn ) Scrivi ( lib . DetLib . Titolo ) Scrivi ( lib . DetLib . Autore ) Scrivi ( lib . DetLib . CasaEditrice ) Scrivi ( lib . Prezzo ) Scrivi ( lib . Pagine )
FINE
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 48