fisica:informatica:201516:secondoanno:laboratorio_9
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Prossima revisione | Revisione precedente | ||
fisica:informatica:201516:secondoanno:laboratorio_9 [28/04/2016 alle 07:26 (9 anni fa)] – creata Roberta Gori | fisica:informatica:201516:secondoanno:laboratorio_9 [28/04/2016 alle 08:11 (9 anni fa)] (versione attuale) – [Esercizio 6] Roberta Gori | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
====== Esercitazione 8 ====== | ====== Esercitazione 8 ====== | ||
+ | |||
+ | ===== Esercizio 1 ===== | ||
+ | Realizzare un programma C che legge e memorizza in un VLA una sequenza di double di lunghezza non nota a tempo di compilazione. | ||
+ | Richiedere all' | ||
+ | |||
+ | |||
+ | ===== Esercizio 2 ===== | ||
+ | |||
+ | Modificare la soluzione all' | ||
+ | |||
+ | Verificare la corretta allocazione e gestire gli errori. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Esercizio 3 ===== | ||
+ | |||
+ | Le matrici possono essere rappresentate come array di puntatori a righe. | ||
+ | |||
+ | Si richiede di implementare le procedure | ||
+ | < | ||
+ | /** crea una matrice di double | ||
+ | se c' | ||
+ | */ | ||
+ | void | ||
+ | </ | ||
+ | |||
+ | E | ||
+ | < | ||
+ | /** libera la memoria occupata da una matrice di double rappresentata come array di puntatori a righe e | ||
+ | pone il puntatore alla struttura mat a NULL. | ||
+ | */ | ||
+ | void mat_free (double*** mat, unsigned n); | ||
+ | </ | ||
+ | Sviluppare un opportuno main che testa che l' | ||
+ | |||
+ | |||
+ | ===== Esercizio 4 ===== | ||
+ | |||
+ | Le matrici possono essere rappresentate come array di puntatori a righe. | ||
+ | |||
+ | E se invece di una procedura per l' | ||
+ | < | ||
+ | /** crea una matrice di double rappresentata come array di puntatori a righe e restituisce | ||
+ | il puntatore alla struttura creata, NULL se c' | ||
+ | */ | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Sviluppare un opportuno main che testa che l' | ||
+ | |||
+ | |||
+ | ===== Esercizio 5===== | ||
+ | |||
+ | Modificare la soluzione all' | ||
+ | |||
+ | Verificare la corretta allocazione e gestire gli errori. | ||
+ | |||
+ | |||
+ | |||
+ | ===== Esercizio 6 ===== | ||
+ | Eseguire il seguente programma C | ||
+ | <code c> | ||
+ | #include < | ||
+ | #include < | ||
+ | #define SIZE 10000000000 | ||
+ | |||
+ | int main (void) { | ||
+ | double * h; | ||
+ | |||
+ | h = malloc(SIZE*sizeof(double)); | ||
+ | | ||
+ | if ( h == NULL ) { | ||
+ | perror(" | ||
+ | exit(EXIT_FAILURE); | ||
+ | } | ||
+ | | ||
+ | printf(" | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | cosa succede ? Cercate di capire che cosa succede quando va in esecuzione '' | ||
+ | |||
+ | ===== Esercizio 7 (Strutture) ===== | ||
+ | Scrivete una funzione C nuovo_mazzo() che crea un mazzo (mischiato!) di 40 carte utilizzando i | ||
+ | seguenti tipi: | ||
+ | < | ||
+ | /** i valori delle carte */ | ||
+ | typedef enum valori{ASSO, | ||
+ | valori_t; | ||
+ | /** i semi delle carte */ | ||
+ | typedef enum semi{CUORI, | ||
+ | /** una carta e' data da un valore ed un seme */ | ||
+ | typedef struct carta { | ||
+ | /** valore */ | ||
+ | valori_t val; | ||
+ | /** seme */ | ||
+ | semi_t seme; | ||
+ | } carta_t; | ||
+ | </ | ||
+ | ed una funzione | ||
+ | < | ||
+ | stampa_mazzo() | ||
+ | </ | ||
+ | che stampa le carte del mazzo sullo standard output in modo | ||
+ | gradevole. Definite i parametri ed i valori restituiti dale funzioni opportunamente. | ||
+ | |||
+ | ===== Esercizio 8 (Strutture) ===== | ||
+ | Utilizzando le funzioni dell' | ||
+ | con un utente. Il programma crea il mazzo di carte, stampa sullo standard output il nome della | ||
+ | briscola e le carte in mano all' | ||
+ | giocare con una strategia semplice a piacere (ad esempio la prima carta della mano). Ad esempio: | ||
+ | < | ||
+ | $./briscola | ||
+ | Nuova partita, briscola CUORI | ||
+ | Mano #1: Hai in mano | ||
+ | 4Fiori 5Picche QCuori | ||
+ | Cosa giochi ? | ||
+ | se digitiamo | ||
+ | 4Fiori | ||
+ | io gioco 2Cuori, preso | ||
+ | Mano #2: Hai in mano | ||
+ | KFiori 5Picche QCuori | ||
+ | io gioco 7Picche | ||
+ | Cosa giochi ? | ||
+ | </ |
fisica/informatica/201516/secondoanno/laboratorio_9.1461828380.txt.gz · Ultima modifica: 28/04/2016 alle 07:26 (9 anni fa) da Roberta Gori