Appello del 08/04/2002 - 1a prova scritta
tempo a disposizione: 2 ore
Una scuola di lingue offre 20 corsi di lingua distinti. Ogni corso è identificato da un codice numerico (intero compreso tra 0 e 19). Le informazioni sui partecipanti iscritti ai corsi sono contenute in un file di testo (prova Pascal: di testo o di record, a scelta). Per ogni partecipante sono specificati (separati da spazi bianchi):
Rossi 12 8 14 Bianchi 7 -1 -1 Verdi 2 0 -1 Aranci 14 19 0 Neri 8 2 14
Si richiede di risolvere i seguenti punti:
Ad esempio, per il file di sopra ed il corso 14, deve essere restituita la lista costituita dagli elementi (Rossi, Aranci, Neri).
Appello del 08/04/2002 - 2a prova scritta
tempo a disposizione: 1 ora
Considerare il numero m costituito dalle ultime tre cifre (in decimale) del proprio numero di matricola, ignorando le cifre pari a 0. Fornire le rappresentazioni binaria ed esadecimale di tale numero, illustrando il procedimento seguito per il calcolo. Quante cifre sono necessarie in binario ed in esadecimale?
Considerare poi il numero g dato dal proprio giorno di nascita, a cui si è aggiunto 15 se è minore o uguale a 10. Convertire g in binario e calcolare g-m, effettuando le operazioni in complemento a 2.
Descrivere l'ordinamento a bolle (bubble-sort). Quale algoritmo fra ordinamento per selezione (selection-sort), e ordinamento a bolle (bubble-sort) conviene usare per ordinare un vettore di elementi che è già ``quasi ordinato''? Considerare ad esempio un vettore in cui solo i primi due elementi sono nell'ordine sbagliato. Motivare la risposta.
Definire un albero binario di ricerca. Inoltre, dato il seguente albero binario, dire se è un albero binario di ricerca:
50 / \ 25 70 / \ 10 60 / \ 40 65Motivare la risposta data e, se necessario, modificare l'albero in modo da renderlo un albero binario di ricerca.