====== Frequently Asked Questions ====== ===== ASSEGNAMENTO 3 : Valori riornati dalle funzioni ''media'' e ''deviazione'' ===== Queste due funzioni devono restituire 0 se tutto e' andato bene e -1 se si e' verificato un errore. ===== ASSEGNAMENTO 3 : Consegnate anche se non passa il ''test four'' ===== Son stati segnalati diversi problemi con il ''test four'', consegnate anche se questo test non viene superato. ===== ASSEGNAMENTO 3 : si deve chiamare la perror all'interno delle funzioni che dobbiamo realizzare e che sono dichiarate in ''raggi.h'' ? ===== No, se si verifica un errore basta segnalarlo come specificato nei ocmmenti, eventualmente settando ''errno''. La ''perror()'' la chiama (se vuole) chi utilizza la funzione (come succede per le funzioni di libreria che usiamo di solito es: ''fopen()'') ===== ASSEGNAMENTO 2 e 3 : si possono definire nuove funzioni oltre quelle in ''percolation.h'' ? ===== Si! ===== ASSEGNAMENTO 3 : la funzione inserisci deve ritornare il valore -1 se si verificano “errori di allocazione”; ciò vuol dire che dobbiamo utilizzare la funzione leggi_registrazione all’interno di questa? ===== No, l'elemento lo avete gia' e' passato come parametro. La funzione deve ritornare -1 se l'elemento non puo' essere inserito nella lista (per esempio, perche' l e' uguale a NULL). ===== ASSEGNAMENTO 3 : il campo ''nelem'' non viene utilizzato nelle funzioni fornite dai docenti e' corretto ? ===== Si! Questo campo non viene mai usato in questo assegnamento. Ignoratelo! Se volete potete anche cancellarlo dalla struttura. ===== ASSEGNAMENTO 3 : errore nei file di check del kit messo in linea inizialmente ===== Nel tar messo in linea venerdi' 20/05 (e adesso corretto) era presente nella directory ''DATA'' un file di check errato, ''test_four_out_position.check''. Quindi potete scaricare il nuovo tar messo inlinea e sostituire SOLO quel file nella directory ''DATA'', oppure scaricare solo il file da sostituire da {{:fisica:informatica:201516:primoanno:newcheck.tar|qua}}. Grazie della segnalazione. ===== ASSEGNAMENTO 3 : errore alla linea 87 del test_three.c e test_four.c ===== La linea 87 in entrambi i file e' un refuso set_ordinata_position(ll); e va semplicemente commentata /* set_ordinata_position(ll); */ correggetelo ===== ASSEGNAMENTO 2 : errore nel ''make consegna'' ? ===== Si, c'e' scritto make clean invece che make cleanall correggetelo aggiungendo i caratteri mancanti ===== ASSEGNAMENTO 2 : perche' c'e' scritto che le righe non sono più di 200 caratteri ? ===== Per permettervi di allocare un array di lunghezza fissa se usare la ''fgets()'' (con la ''fscanf()'' non serve). ===== ASSEGNAMENTO 2 : perche' la funzione che libera la matrice ha un triplo puntatore ? ===== Per permettervi di mettere a NULL il puntatore dopo la deallocazione in modo da non avere riferimenti a memoria già deallocata in giro, basta fare *pm = NULL; come ultima operazione della funzione (dopo aver deallocato). ===== ASSEGNAMENTO 2 : come possiamo settare errno ? ===== Tutte le istruzioni sono nel manuale accessibili con man errno in pratica va incluso ''errno.h'' e deve essere assegnato alla variabile globale ''errno'' uno dei valori predefiniti (quello più significativo per l'errore che si verificato. Non possono essere scelti altri valori altrimenti la ''perror()'' non funziona più correttamente. Settate ''errno'' solo quando è richiesto esplicitamente nei commenti del .h ===== ASSEGNAMENTO 2 : ma le funzioni ''first_step'' e ''step'' devono usare -1 o 0 -2 ? ===== C'e' una discrepanza fra specifuche PDF e file ''percolation.h'' la definizione corretta e' /** setta il primo step (inserisce -2 in corrispondenza del centro della matrice) (n/2,m/2) parte intera inferiore \param mat puntatore alla matrice \param n numero di righe \param m numero di colonne \retval 0 se tutto è andato bene \retval -1 se si è verificato un errore (es n <= 0 ) setta errno con un codice di errore opportuno */ int first_step (double ** mat, unsigned n, unsigned m); /** fa evolvere la simulazione di uno step, ovvero mette a -2 il prossimo elemento invaso scegliendolo come l'elemento con il più piccolo valore di permeabilità sulla frontiera (insieme degli elementi adiacenti a quelli gi\`a con valore -1) L'ambiente e' toroidale, ovvero l'ultima colonna e' adiacente alla prima e l'ultima riga e' adiacente alla prima. \param mat puntatore alla matrice \param n numero di righe \param m numero di colonne \param a estremo inf intervallo permeabilità \param b estremo sup intervallo permeabilità \retval 0 se tutto è andato bene \retval -1 se si è verificato un errore (es n <= 0 ) setta errno con un codice di errore opportuno */ int step (double ** mat, unsigned n, unsigned m, double a, double b); ===== ASSEGNAMENTO 2 : refuso nella funzione ''new_matrix'', file ''percolation_docenti.c'' ===== Per chi ha scaricato il kit prima del 3 maggio 2016. Nella funzione ''new_matrix'' precisamente alla linea 35 il ciclo for(j=0;j va corretto con for(j=0;j ===== ASSEGNAMENTO 1 : I due esercizi devono essere realizzati in due file diversi ? ===== No, dovete consegnare un unico file walk.c con una sola funzione main() che prima effettua le stampe della simulazione e alla fine stampa le statistiche. ===== ASSEGNAMENTO 1 : Alcuni errori nel README ? ===== Si ci sono alcuni errori nel file README * La frase contenente la parola PDF e' un refuso. Deve essere consegnato solo il file walk.c adeguatamente commentato e nessun file PDF * Al momento della consegna non si deve specificare gruppo A o B ma "primo anno" o "secondo anno"