lcs:lcs08:esercitazioni:esercitazione1
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
lcs:lcs08:esercitazioni:esercitazione1 [29/01/2008 alle 08:45 (17 anni fa)] – Susanna Pelagatti | lcs:lcs08:esercitazioni:esercitazione1 [13/02/2008 alle 17:10 (17 anni fa)] (versione attuale) – Susanna Pelagatti | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
+ | ====== Esercitazione 1 ====== | ||
+ | |||
+ | ===== Esercizio -1: sul debugging ===== | ||
+ | Usare il debugger '' | ||
+ | - // | ||
+ | - // | ||
+ | |||
===== Esercizio 0: Getting started -- Preprocessing, | ===== Esercizio 0: Getting started -- Preprocessing, | ||
0.1) Compilare ed eseguire il seguente programma: | 0.1) Compilare ed eseguire il seguente programma: | ||
Linea 28: | Linea 35: | ||
0.4) Usare l' | 0.4) Usare l' | ||
- | ===== Esercizio 1. Wator ===== | + | ===== Esercizio 1. Wa-Tor |
- | Wator e' un semplice modello di andamento della popolazione acquatica studiato in ecologia. | + | Wa-Tor |
Questo modello e' diventato popolare dopo esser stato presentato | Questo modello e' diventato popolare dopo esser stato presentato | ||
nella colonna //Computer Recreations// | nella colonna //Computer Recreations// | ||
- | Wator e' un pianeta ricoperto interamente da un oceano temperato. L' | + | Wa-tor |
* puo' essere vuota | * puo' essere vuota | ||
* puo' contenere esattamente un pesce | * puo' contenere esattamente un pesce | ||
Linea 40: | Linea 47: | ||
Siccome Wator e' un pianeta rotondo le celle della prima riga (colonna) sono adiacenti alle celle dell' | Siccome Wator e' un pianeta rotondo le celle della prima riga (colonna) sono adiacenti alle celle dell' | ||
- | Il tempo e' a sua volta suddiviso in unita' standard dette // | + | Il tempo e' a sua volta suddiviso in unita' standard dette // |
- | Il comportamento di predatori e prede e' il seguente: | + | |
- | * **Gli squali mangiano e si spostano.** A ogni passo, uno squalo presente in una cella (i,j) si guarda intorno nelle celle adiacenti. Se una di queste celle contiene un pesce, lo squalo mangia il pesce e si sposta nella cella precedentemente occupata dal pesce. Se nessuna delle celle adiacenti contiene un pesce, lo squalo si sposta in una delle celle adiacenti vuote. Le celle adiacenti sono le celle in cui uno degli indici differisce esattamente di uno da i e j, graficamente | + | * **Gli squali mangiano e si spostano.** A ogni passo, uno squalo presente in una cella (i,j) si guarda intorno nelle celle adiacenti. Se una di queste celle contiene un pesce, lo squalo mangia il pesce e si sposta nella cella precedentemente occupata dal pesce. Se nessuna delle celle adiacenti contiene un pesce, lo squalo si sposta in una delle celle adiacenti vuote. Le celle adiacenti sono le celle in cui uno degli indici differisce esattamente di uno da i e j. Cioe' (i-1,j), (i, |
|| | (i-1,j) | || | || | (i-1,j) | || | ||
- | || | + | || |
|| | (i+1,j) | || | || | (i+1,j) | || | ||
- | * **Gli squali si riproducono e muoiono** Se uno squalo sopravvive per almeno //Sb// chronon si riproduce: se e' disponibile una cella adiacente vuota questa viene occupata da un nuovo squalo. Lo squalo che si e' appena riprodotto potra' farlo di nuovo dopo altri //Sb// chronon. D' | + | * **Gli squali si riproducono e muoiono** Se uno squalo sopravvive per almeno //Sb// chronon si riproduce: se e' disponibile una cella adiacente vuota questa viene occupata da un nuovo squalo. Lo squalo che si e' appena riprodotto potra' farlo di nuovo dopo altri //Sb// chronon. D' |
Linea 59: | Linea 65: | ||
- | All' inizio della simulazione, | + | All' inizio della simulazione, |
Ogni volta che un pesce o uno squalo puo' scegliere di muoversi, mangiare, riprodursi, deve farlo scegliendo in maniera casuale fra le possibile alternative. | Ogni volta che un pesce o uno squalo puo' scegliere di muoversi, mangiare, riprodursi, deve farlo scegliendo in maniera casuale fra le possibile alternative. | ||
- | Questo modello, per quanto semplice, e' sufficiente a farnire | + | Questo modello, per quanto semplice, e' sufficiente a fornire |
+ | Si chiede di realizzare un programma C che implementi il comando '' | ||
+ | Si consiglia di utilizzare una matrice separata per raccogliere gli aggiornamenti e di calcolare prima gli aggiornamenti relativi agli squali. Inoltre e' preferibile rappresentare ogni matrice come array di puntatori a righe. Per la visualizzazione e' possibile usare '' | ||
+ | |||
+ | ===== Esercizio 2. Wa-Tor analizzato ===== | ||
+ | Utilizzare la funzione '' | ||
+ | |||
+ | Utilizzare l' | ||
+ | < | ||
+ | $ valgrind --show-reachable=yes --leak-check=full --leak-resolution=high -v ./wator params > watout | ||
+ | </ | ||
+ | analizzare le risposte. |
lcs/lcs08/esercitazioni/esercitazione1.1201596352.txt.gz · Ultima modifica: 29/01/2008 alle 08:45 (17 anni fa) da Susanna Pelagatti