Strumenti Utente

Strumenti Sito


fisica:informatica:201516:secondoanno:laboratorio_9

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
fisica:informatica:201516:secondoanno:laboratorio_9 [28/04/2016 alle 07:57 (9 anni fa)] – [Esercizio 3] Roberta Gorifisica:informatica:201516:secondoanno:laboratorio_9 [28/04/2016 alle 08:11 (9 anni fa)] (versione attuale) – [Esercizio 6] Roberta Gori
Linea 30: Linea 30:
 <code> <code>
 /** libera la memoria occupata da una matrice di double rappresentata come array di puntatori a righe 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.+ pone il puntatore alla struttura mat a NULL.
   */   */
 void mat_free (double*** mat, unsigned n); void mat_free (double*** mat, unsigned n);
Linea 37: Linea 37:
  
  
-===== Esercizio 3: Funzione  per l'allocazione di matrici =====+===== Esercizio =====
  
 Le matrici possono essere rappresentate come array di puntatori a righe. Le matrici possono essere rappresentate come array di puntatori a righe.
Linea 43: Linea 43:
 E se invece di una  procedura per l'allocazione  avessimo usato una  funzione?  Implementare adesso una funzione    per la creazione di matrici ''nxm'' di double. In particolare, la  funzione deve essere E se invece di una  procedura per l'allocazione  avessimo usato una  funzione?  Implementare adesso una funzione    per la creazione di matrici ''nxm'' di double. In particolare, la  funzione deve essere
 <code> <code>
-/** crea una matrice di double rappresentata come array di puntatori a righe e restituisce il puntatore alla struttura creata NULL se c'e' stato un errore,  +/** crea una matrice di double rappresentata come array di puntatori a righe e restituisce  
- double **    mat_new (unsigned n, unsigned m);+il puntatore alla struttura creataNULL se c'e' stato un errore,  
 +  */ 
 + double** mat_new_fun (unsigned n, unsigned m);
 </code> </code>
  
Linea 82: Linea 84:
 cosa succede ? Cercate di capire che cosa succede quando va in esecuzione ''perror()'' andando a verificare il manuale (sezione 3 ''man 3 perror'') cosa succede ? Cercate di capire che cosa succede quando va in esecuzione ''perror()'' andando a verificare il manuale (sezione 3 ''man 3 perror'')
  
 +===== Esercizio 7 (Strutture) =====
 +Scrivete una funzione C nuovo_mazzo() che crea un mazzo (mischiato!) di 40 carte utilizzando i
 +seguenti tipi: 
 +<code>
 +/** i valori delle carte */
 +typedef enum valori{ASSO,DUE,TRE,QUATTRO,CINQUE,SEI,SETTE,FANTE,DONNA,RE}
 +valori_t;
 +/** i semi delle carte */
 +typedef enum semi{CUORI,QUADRI,FIORI,PICCHE } semi_t;
 +/** una carta e' data da un valore ed un seme */
 +typedef struct carta {
 +  /** valore */
 +  valori_t val; 
 +  /** seme */
 +  semi_t seme;  
 +} carta_t;
 +</code>
 +ed una funzione 
 +<code>
 +stampa_mazzo()
 +</code>
 + 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'esercizio precedente realizzate un programma C che gioca a briscola
 +con un utente. Il programma crea il mazzo di carte, stampa sullo standard output il nome della
 +briscola e le carte in mano all'utente ed attende sullo standard input la giocata. Il programma puo'
 +giocare con una strategia semplice a piacere (ad esempio la prima carta della mano). Ad esempio: 
 +<code>
 +$./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 ?
 +</code>
fisica/informatica/201516/secondoanno/laboratorio_9.1461830245.txt.gz · Ultima modifica: 28/04/2016 alle 07:57 (9 anni fa) da Roberta Gori

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki