8: I dati e la loro struttura nella programmazione( ARRAY, MATRICI, RECORD) Vers. 10.0 – Maggio 2025
Esempio 2 BIS: Implementazione in C dell’ esercizio n. 2
# include < stdio. h > # include < stdlib. h > # include < string. h >
# define MAXDIM 10
// definizione del nuovo tipo record utente Libro typedef struct { char Isbn [ 10 + 1 ]; char Titolo [ 100 + 1 ]; char Autore [ 50 + 1 ]; char CasaEditrice [ 50 + 1 ]; float Prezzo; int Pagine; } Libro;
int main( int argc, char * argv []) { // Dichiarazione di un ' ARRAY MONODIMENSIONALE di record di tipo Libro Libro libreria [ MAXDIM ]; int i, n;
// Leggo e controllo la dimensione dell ' array di record //( FALSA DINAMICITA ') do { printf(" Inserire il numero di libri presenti in libreria: "); scanf("% d ", & n); } while(( n < 1) ||( n > MAXDIM));
// Leggo l ' ARRAY DI RECORD di tipo Libro effettuando, per ciascun record, // tutti i controlli campo x campo // N. B. la LETTURA o CARICAMENTO è un ' operazione NON ATOMICA printf("******** Lettura dati dell ' ARRAY DI RECORD **********\ n "); for( i = 0; i < n; i ++) // Inizio ciclo for { printf(" Record n.% d \ n ", i + 1); libreria [ i ] è l’ iesimo elemento di un array
// Isbn monodimensioanle di record di tipo Libro do quindi è a tutti gli effetti un record di tipo Libro
{( è possibile dunque utilizzare la dot notation) printf(" Inserisci Isbn: ", i + 1); fflush( stdin); gets( libreria [ i ]. Isbn); } while(( strlen( libreria [ i ]. Isbn) == 0) ||( strlen( libreria [ i ]. Isbn) > 10));
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 54