Si consiglia di:
-
Aprire la shell o terminale. Ricordiamo che la shell non è altro che un interprete di comandi, in particolare dei vostri e che quindi
-
stampa un prompt >
-
legge un comando scritto dall'utente e terminato con enter/return/invio
-
esegue il comando o segnala un errore se non è in grado di completarlo
-
Creare una cartella o directory
Laboratorio
con il comando UNIX
mkdir Laboratorio (mkdir sta per make directory)
- Entrare nella nuova cartella con il comando
cd Laboratorio (cd sta per change directory)
-
Creare una cartella o directory
Esercitazione_i
con il comando UNIX
mkdir Esercitazione_i per l'i-esima esercitazione
- Entrare nella nuova cartella con il comando
cd Esercitazione_i
-
Si
utilizzerà preferibilmente l'editor
geany per
scrivere tali
programmi, lanciandolo dalla linea di comando della shell o terminale:
geany
<nomefile>.c &
N.B. L'utilizzo del simbolo &
consente di tenere aperta la shell, anche dopo aver lanciato l'editor geany.
-
Per compilarli (ovvero per tradurre il file <nomefile>.c dal C al linguaggio macchina, creando il file eseguibile <nometarget>)
si useranno i comandi, sempre dalla shell o terminale:
-
gcc -o
<nometarget> <nomefile>.c
perché il file compilato venga messo nel
file
<nometarget>
.
Con questo sistema avremo un file eseguibile per ogni file sorgente.
-
gcc
<nomefile>.c perché il file compilato
venga messo nel file
a.out.
Con questo sistema tutti i file eseguibili risultati dalla compilazione vengono trascritti sullo stesso file a.out.
-
Infine, per eseguire il file eseguibile < nometarget>, ottenuto dalla compilazione, usare il comando
./<nometarget>.
Per ulteriori approfondimenti su UNIX, vedi la seguente
sintesi.
ESERCIZI
-
Definire una funzione FirstEven che, data una lista di interi,
restituisce la posizione (puntatore) del primo elemento pari nella
lista (restituisce NULL se la lista non contiene elementi pari).
-
Definire una funzione MinEven che, data una lista di
interi,
restituisce la posizione (puntatore) del minimo elemento pari
nella
lista (restituisce NULL se la lista non contiene elementi
pari).
-
Definire una procedura che, data una lista di
interi lista, ed un
un intero elem, inserisce elem dopo l'ultimo elemento nella lista maggiore
di
elem. Se lista non contiene
alcun elemento maggiore di elem, la
procedura
lo inserisce in ultima posizione.
-
Definire una procedura EliminaXElementi che elimini i primi x elementi da una lista di interi. Ad esempio,
data la lista
2 --> 7 --> 7 --> 9 --> 9
se x = 2, la procedura
modifica la lista come segue:
7 --> 9 --> 9
- Si vuole rappresentare un Albero. Ci serve quindi una struttura dinamica, in cui ogni elemento rappresenta un nodo,
che oltre ad un intero, memorizza il puntatore al sottoalbero sinistro e il puntatore al sottoalbero destro.
Un nodo foglia è caratterizzato dal fatto che non ha ulteriori sottoalberi.
Scrivere una funzione ricorsiva che dato un Albero, conti tutte le foglie che hanno associato un intero pari.