Programmazione ed
Esercitazioni di Programmazione


Note per la correttta compilazione delle esercitazioni

Si ricorda che il compilatore utilizzato per la correzione automatica delle esercitazione è conforme allo standard ANSI C90.
Per questo motivo alcune istruzioni o pratiche di programmazione vengono segnalate come errore durante la correzione delle esercitazioni, mentre nei PC del laboratorio tutto funziona.
Si raccomanda qiundi di utilizzare i seguenti flag per il compilatore per la compilazione degli esercizi prima di effettuarne la consegna, e di correggere eventuali warning segnalati.

-Wall -ansi -pedantic
Per compilare ed eseguire quindi un file prova.c i comandi da dare saranno:
gcc -Wall -pedantic -ansi prova.c
./a.out
In aggiunta ai flag sopra riportati è possibile utilizzare il flag -o per specificare il nome dell'eseguibile che verrà creato.
In questo caso la compilazione avverrà con i comandi:
gcc -Wall -pedantic -ansi -o prova prova.c
./prova
Alcuni errori tra i più frequenti sono:
  • E' possibile utilizzare i commenti solo nella forma "/*...*/", e NON nella forma veloce "//...".
  • Tutte le dichiarazioni di variabili vanno fatte all'inizio dei rispettivi blocchi di appartenenza. Non è possibile dichiarare variabili dopo che si è iniziato a scrivere del codice in quel blocco.

Un problema che invece può capitarvi di avere è che la funzione scanf passi avanti senza richiedere alcun input.
Aggiungete allora uno spazio prima del carattere %. Quindi ad esempio l'istruzione

scanf("%d", &valore);
diventerà
scanf(" %d", &valore);
Anche se il problema non dovesse presentarsi, è buona norma utilizzare sempre la seconda modalità, per evitare inconvenienti durante i vostri test.

Per ulteriori dubbi e per una corretta indicazione sulla sintassi del C standard potete consultare il testo di riferimento del corso (The C Programming Language − Kernighan, Ritchie).

Cosa consegnare:

Se richiesto lo sviluppo di funzioni (e non di programmi) la consegna degli esercizi deve sottostare a queste regole:

  • consegnare solamente le funzioni o procedure richieste dall'esercizio ed eventuali funzioni ausiliare utilizzate
  • NON effettuare stampe a video nelle funzioni consegnate
  • NON richiedere immissioni di input all'utente all'interno delle procedure consegnate
  • NON consegnare il main dei programmi o le direttive #include
  • vanno consegnate eventuali direttive #define utilizzate
  • le firme delle procedure date NON vanno modificate
Potete trovare a questa pagina due esempi di cosa consegnare a seconda di cosa viene richiesto nell'esercizio.


Il mancato rispetto di queste regole si tradurrà in un fallimento durante la correzione delle esercitazioni e dell'esame. L'esercizio quindi non compilerà e verrà considerato errato anche se il suo svolgimento sarà corretto.



Si consiglia vivamente, nel caso non si abbia dimestichezza col sistema operativo Linux di prendere un po' di confidenza con gli strumenti del laboratorio prima dell'esame pratico.




NOTA: per testare le esercitazioni è possibile anche utilizzare da casa un client ssh con cui collegarsi alla vostra home linux. Ulteriori informazioni le trovate qui.