Esercizio 1 (18 punti)
Un agente di commercio apre una nuova pratica ogni volta che contatta un cliente per fornirgli un preventivo. Le pratiche aperte nel corso di una settimana vengono memorizzate in una lista L, rappresentata con record e puntatori, in cui ogni record contiene il codice della pratica (un intero a 4 cifre), il nome del cliente (una stringa di 20 caratteri), l'ammontare del preventivo (espresso in migliaia di lire), ed un ulteriore campo che indica se la trattativa e' andata a buon fine. Il venerdi' sera i record delle pratiche andate a buon fine vengono copiati in un file settimanale (ogni settimana viene creato un nuovo file). Il file e' composto da record, ed ogni record contiene il codice della pratica, il nome del cliente e l'ammontare del preventivo.
2. Scrivere una procedura o funzione Pascal che, ricevendo in ingresso la lista L, restituisca in uscita il file contenente le pratiche andate a buon fine.
3. Scrivere una procedura o funzione Pascal che, ricevendo in ingresso il file generato al punto 2 ed il codice di una pratica, restituisca "vero" se la pratica stessa e' andata a buon fine (cioe' se il record corrispondente e' memorizzato nel file), "falso" altrimenti.
Esempio:
Esercizio 2 (4 punti)
Descrivere le due piu' comuni modalita' di visita di un grafo connesso ed evidenziare le principali differenze.
Esercizio 3 (4 punti)
Scrivere un sottoprogramma Fortran che, ricevendo in ingresso un vettore di interi di ordine N, con N pari, restituisca in uscita il valore vero se gli elementi del vettore sono tutti diversi fra loro, falso altrimenti.
Esercizio 4 (4 punti)
Descrivere le funzioni del gestore dei processi e in particolare il modo in cui interagisce con le interruzioni interne ed esterne.