La home directory in cui vi trovate all'avvio del sistema è
/home/student
Potete tornarci in ogni momento con il comando cd
, senza argomenti.
Tale directory contiene:
LEGGIMI.txt
bin
esercizio-1
...   esercizio-4
esercizio-N
(dove N
è un intero),
usare il comando
cd esercizio-NAd esempio:
cd esercizio-2
Si raccomanda di non modificare, o cancellare, i file presenti nel sistema.
Le directory esercizio-N
contengono i seguenti file:
Testo.txt
less Testo.txtPer uscire da
less
, premere il taso q
.
input.txt
e output.txt
Per la consegna degli esercizi è necessario usare i seguenti comandi (i comandi possono essere eseguiti da una directory qualunque):
firma
firma 123456Può essere invocato una sola volta, a differenza dei prossimi comandi che possono essere eseguiti un numero arbitrario di volte. Dopo la prima chiamata, il comando
firma
si limita
a stampare il vostro nome.
verifica
verifica N(dove
N
è un intero)
controlla che la vostra soluzione dell'esercizio N
verifichi i requisiti per poter essere consegnata.
Viene anche eseguito un test di prova usando
i file input.txt
e
e output.txt
.
consegna
consegnaconsegna
N
tali che il comando
verifica Nha successo. Va eseguito ogni ogni volta che si è terminato un esercizio. Verrà valutata solo l'ultima consegna.
salva
salvaconsegna una copia di backup di tutti i file
.c
presenti nelle vostre
directory (non viene fatto alcun tipo di controllo).
L'esame si compone di una serie di esercizi, in genere 4.
N
va scritta nel
file soluzione.c
da salvare nella nella directory
esercizio-N
.
La directory può contenere anche altri file con suffisso
.c
, ma il file che viene compilato e considerato
per eseguire il test di verifica è solamente soluzione.c
.
main
deve essere return 0
.
N
è necessario che
il comando
verifica Nabbia successo.
verifica N
abbia avuto successo,
non significa che l'esercizio N
sia stato svolto correttamente!
consegna
e salva
quando necessario. Tenere presente che, data la particolare configurazione usata,
i dati non vengono salvati localmente su disco, quindi se ad esempio la vostra macchina si spegne
il lavoro svolto è perso.
Il comando salva
permette di consegnare tutti i propri file .c
in modo che possano essere recuperati.
consegna
, mentre il materiale consegnato con
il comando salva
non verrà preso in considerazione.
soluzione.c
viene svolto in questo modo.
Supponiamo che il nome dell'eseguibile sia soluzione
.
./soluzione < input.txt > mio_output.txtche significa "esegui soluzione redirigengo lo standard input dal file
input.txt
e scrivendo l'ouput
nel file mio_output.txt
".
mio_output.txt
e output.txt
usando il comando Unix diff
.
soluzione.c
non verrà consegnato dal comando consegna
.
Ad esempio, supponiamo che
il file input.txt
contenga le righe
1 7 10 20 10 3 5 9
e che il file output.txt
contenga le righe
100, 200, 300.
Il test consiste nell'eseguire il il programma con standard input
1 7 10 20 10 3 5 9
Il test è superato se e solo se l'output ottenuto è
100, 200, 300.Si ribadisce che:
output.txt
) viene fatta in modo automatico,
è fondamentale rispettare scrupolosamente le specifiche dell'output scritte
nel testo dell'esercizio.
Nell'esempio di prima, se il vostro output è
100, 200, 300la vostra soluzione viene considerata errata in quanto manca il punto finale.
All'avvio del sistema troverete un terminale attivo con una shell di tipo bash in esecuzione ed un editor di testo.
Tramite la shell potete invocare i comandi necessari allo svolgimento dell'esame, in particolare:
gcc
per compilare il codice C
nedit &
, per invocare un editor di testo
xterm &
, per invocave un terminale
firefox &
, per invocare un browser web
Qualora chiudeste accidentalmente il terminale, potete invocarne una nuova istanza
scegliendo la voce xterm
del menu che compare premendo il tasto destro del mouse.
gedit
,
ma nedit
che ha funzionalità simili.
Per una descrizione di nedit
vedere la pagina
http://www.nedit.org
(non accessibile durante l'esame),
da cui è anche possibile scaricarlo.
Preferences
:
Show Line Numbers
(visualizza i numeri delle righe).
Tab stops
e ridurre il numero di spazi associati a Tab
in modo da non avere linee troppo lunghe.
Ad esempio, si può porre Tab spacing
uguale a 3.
diff
di Linux confronta due file riga per riga
segnalando le righe diverse.
Ad esempio, se il file f1.txt
contiene
a = 1 b = 2 c = 3 d = 4e il file
f2.txt
contiene
a = 0 b = 2 c = 3. d = 4il comando
diff f1.txt f2.txtstampa:
1c1 < a = 1 --- > a = 0 3c3 < c = 3 --- > c = 3.mettendo in evidenza le righe dei due file che risultano diverse (vedere la documentazione per maggiori dettagli). Ovviamente i comandi
diff f1.txt f1.txt diff f2.txt f2.txtnon stampano nulla (un file è uguale a se stesso).
È utile usare diff
per evidenziare le linee di output del
proprio programma che sono errate. Se il programma
legge l'input da standard input
e le linee di input sono nel file input.txt
, si può procedere come segue:
input.txt
e redirigendo lo standard output in un nuovo file, ad esempio o.txt
./soluzione < input.txt > o.txtNota La redirezione dello standard output cancella il vecchio contenuto di
o.txt
.
Prestare molta attenzione a non redirigere lo standard output su un file che non
si vuole cancellare.
diff
per stampare le eventuali differenze fra il proprio output,
contenuto in o.txt
, e l'output corretto, contenuto in output.txt
.
diff o.txt output.txt