Strumenti Utente

Strumenti Sito


fisica:informatica:201516:primoanno:faq

Questa è una vecchia versione del documento!


Frequently Asked Questions

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<i;j++)
 free(a[i]); 

va corretto con

for(j=0;j<i;j++)
  free(a[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”
fisica/informatica/201516/primoanno/faq.1462454890.txt.gz · Ultima modifica: 05/05/2016 alle 13:28 (9 anni fa) da Susanna Pelagatti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki