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 -pedanticPer compilare ed eseguire quindi un file prova.c i comandi da dare saranno:
gcc -Wall -pedantic -ansi prova.c ./a.outIn 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 ./provaAlcuni 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
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.
