Corso di Fondamenti di Informatica
Corsi di Laurea: Aerospaziale, Chimica, Elettrica, Materiali,
Nucleare, Ambiente e Territorio (v.p.)
Appello del 26/1/2000 -- 1a prova scritta
tempo a disposizione: 2 ore
Problema 1 (18 punti)
Una piccola compagnia aerea ha memorizzato su un file (di testo o di record, a scelta del candidato) le informazioni sui voli settimanali offerti dalla compagnia. Per ogni volo sono memorizzati nel file:
Un dirigente della compagnia vuole avere una quadro sintetico dei voli offerti dalla compagnia, sotto forma di una tabella riassuntiva. La tabella deve essere costituita da una riga ed una colonna per ogni città, e nella posizione (i,j) deve essere stampato il numero di voli settimanali dalla città di codice i a quella di codice j (se non vi sono voli dalla città i alla città j deve essere stampato 0).
Si richiede di risolvere i seguenti punti:
Corso di Fondamenti di Informatica
Corsi di Laurea: Aerospaziale, Chimica, Elettrica, Materiali,
Nucleare, Ambiente e Territorio (v.p.)
Appello del 26/1/2000 -- 2a prova scritta
tempo a disposizione: 1 ora
Problema 2 (4 punti)
Dare le rappresentazioni binarie in complemento a 1 e complemento a 2 (con 5 bit complessivi) di 6, -6 e 14, illustrando il procedimento usato per ottenerle. Dire inoltre qual è l'intervallo di interi rappresentabili con 5 bit complessivi in complemento a 1 e in complemento a 2.
Problema 3 (4 punti)
Si consideri il seguente programma Pascal:
program Esame; function Cosafa (x: integer): integer; begin if x = 0 then Cosafa := 0 else if (x mod 2) = 0 then Cosafa := x + Cosafa(x-2) else Cosafa := Cosafa(x-1) end; { Cosafa } begin { Esame } writeln(Cosafa(5)) end. { Esame }
Problema 4 (4 punti)
Scrivere un sottoprogramma Fortran che, ricevendo come parametro un vettore di dimensione N i cui elementi sono interi compresi tra 0 ed M, costruisca e restituisca una matrice di booleani di dimensione NxM con la seguente proprietà: se l'elemento i-esimo del vettore ha valore k, allora i primi k elementi della riga i-esima della matrice sono pari a .TRUE., e i rimanenti sono pari a .FALSE..