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 (10 anni fa)] – creata Roberta Gori | fisica:informatica:201516:secondoanno:laboratorio_9 [28/04/2016 alle 08:11 (10 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 (10 anni fa) da Roberta Gori
