01: // nuovi concetti: definizione di funzione
02: #include<stdio.h>
03: #include<stdlib.h>
04: #include<time.h>
05: 
06: 
07: // funzione che non prende in ingresso dati e non restituisce niente
08: void saluta(void)
09: {
10:  printf("Benvenuto al programma di simulazione giuoco dei dadi\n");
11: } // return non obbligatorio, termino quando incontro }
12: 
13: // funzione che non prende in ingresso dati e non restituisce niente
14: void arrivederci(void)
15: {
16:   printf("Grazie di aver giocato, torna presto!\n");
17: }
18: 
19: // funzione che non prende in ingresso dati MA restituisce un singolo dato di tipo int
20: int lancio_dado(void)
21: {
22:   return 1+rand()%6; // return obbligatorio
23: }
24: 
25: // funzione che prende in ingresso un int e restituisce un int
26: int lancio_dadi(int n)
27: {
28:   int sum=0;
29:   for(int i=0; i<n; ++i)
30:     sum += lancio_dado();
31: 
32:   return sum;
33: }
34: 
35: 
36: int chiedi_numero_dadi(void)
37: {
38:   int dadi;
39: 
40:   printf("Quanti dadi vuoi lanciare? ");
41:   scanf("%d", &dadi);
42: 
43:   return dadi;
44: }
45: 
46: 
47: 
48: int main(int argc, char **argv){
49: 
50:   srand(time(NULL));
51: 
52:   saluta(); // invocazione funzione che non prende in ingresso niente
53: 
54:   int dadi_da_lanciare = chiedi_numero_dadi(); // invocazione funzione che non prende in ingresso niente ma che restituisce un int
55: 
56:   int risultato = lancio_dadi(dadi_da_lanciare); // invocazione funzione che prende argomento
57: 
58:   printf("Hai ottenuto: %d\n", risultato);
59: 
60:   arrivederci(); 
61: 
62:   return 0;
63: }
64: 
65: // si noti come la main() e' molto piu' leggibile e comprensibile
66: // in pratica ho nascosto i dettagli implementativi nelle funzioni (in questo esempio si e' anche esagerato!)
67: 


Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it