Strumenti Utente

Strumenti Sito


lcs:lcs08:esercitazioni:esercitazione1

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
lcs:lcs08:esercitazioni:esercitazione1 [13/02/2008 alle 15:02 (17 anni fa)] Susanna Pelagattilcs:lcs08:esercitazioni:esercitazione1 [13/02/2008 alle 17:10 (17 anni fa)] (versione attuale) Susanna Pelagatti
Linea 1: Linea 1:
 ====== Esercitazione 1 ====== ====== Esercitazione 1 ======
  
-====== Esercizio -1: sul debugging ====== +===== Esercizio -1: sul debugging ===== 
-Usare un debugger a scelta per trovare cosa non va nei seguenti {{lcs:lcs07:esercitazioni:ese-debug.tar|programmi}} +Usare il debugger ''gdb'' o ''ddd'' per trovare cosa non va nei seguenti {{lcs:lcs07:esercitazioni:ese-debug.tar|programmi}} 
-  - //ese-gdb1.c// e' una soluzione completa (non funzionante) all'esercizio pecolation (vedi [[esercitazione1]])+  - //ese-gdb1.c// e' una soluzione completa (non funzionante) dell'esercizio percolation (vedi [[lcs:lcs07:esercitazioni:esercitazione1]] dello scorso anno)
   - //ese-gdb2.c// e' una soluzione parziale (non funzionante) dello stesso esercizio. In particolare si affronta soltanto l'allocazione e l'inizializzazione della matrice   - //ese-gdb2.c// e' una soluzione parziale (non funzionante) dello stesso esercizio. In particolare si affronta soltanto l'allocazione e l'inizializzazione della matrice
  
Linea 49: Linea 49:
 Il tempo e' a sua volta suddiviso in unita' standard dette //chronons//, il sistema si evolve in passi che corrispondono ad un chronon ciascuno. Ad ogni passo la matrice che rappresenta il pianeta viene aggiornata secondo le seguenti regole: Il tempo e' a sua volta suddiviso in unita' standard dette //chronons//, il sistema si evolve in passi che corrispondono ad un chronon ciascuno. Ad ogni passo la matrice che rappresenta il pianeta viene aggiornata secondo le seguenti regole:
  
-    * **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,j-1),(i,j+1), (i+1,j). Graficamente
  
 || | (i-1,j) |     || || | (i-1,j) |     ||
-||   (i,j-1) | 8-) | (i,j+1) ||+||   (i,j-1) |   8-)  | (i,j+1) ||
 || | (i+1,j) |         || || | (i+1,j) |         ||
  
Linea 65: Linea 65:
  
  
-All' inizio della simulazione, la griglia deve essere riempita casualmente con //NS// squali e //NF// pesci, mentre i valori di //Sb// ed //Fb// devono essere messi a zero.+All' inizio della simulazione, la griglia deve essere riempita casualmente con //NS// squali e //NF// pesci. Ogni squalo (pesce) e' munito di un contatore, inizializzato a zero ed incrementato ad ogni chronon. Quando il valore del contatore raggiunge //Sb// (//Fb//) lo squalo (il pesce) si riproduce ed il contatore viene di nuovo azzerato. 
 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 un comportamento simile a quello che viene osservato davvero in alcune popolazioni in natura. Se c'e' abbastanza pesce, gli squali prosperatano e si riproducono finche' non raggiungono un numero troppo elevato. a questo punto quasi tutto il pesce verra' divorato e iniziera' un periodo di carestia.+Questo modello, per quanto semplice, e' sufficiente a fornire un comportamento simile a quello che viene osservato davvero in alcune popolazioni in natura. Se c'e' abbastanza pesce, gli squali prosperano e si riproducono finche' non raggiungono un numero troppo elevato. a questo punto quasi tutto il pesce verra' divorato e iniziera' un periodo di carestia.
  
 Si chiede di realizzare un programma C che implementi il comando ''wator'' che simula il comportamento del pianeta visualizzandone lo stato ad ogni chronon/ I parametri //Sd//, //Sb//, //Fb//, //NF//, //NS// ed il numero di righe e colonne della matrice devono essere specificabili da linea di comando. Si chiede di realizzare un programma C che implementi il comando ''wator'' che simula il comportamento del pianeta visualizzandone lo stato ad ogni chronon/ I parametri //Sd//, //Sb//, //Fb//, //NF//, //NS// ed il numero di righe e colonne della matrice devono essere specificabili da linea di comando.
lcs/lcs08/esercitazioni/esercitazione1.1202914935.txt.gz · Ultima modifica: 13/02/2008 alle 15:02 (17 anni fa) da Susanna Pelagatti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki