Università di Roma "La Sapienza"
Facoltà di Ingegneria
Corso di Fondamenti di Informatica
Corsi di Laurea: Aeronautica, Chimica, Elettrica, Materiali, Meccanica,
Ambiente e Territorio (v.p.)
Appello del 7-6-1999. Prima prova (tempo: 2 ore).
Esercizio 1 (18 punti)
Gli organizzatori di una manifestazione enologica hanno memorizzato in un file le seguenti informazioni riguardanti le aziende che intendono partecipare alla manifestazione ed i prodotti che saranno messi in mostra:codice dell'azienda (intero di 4 cifre);
denominazione del vino più rappresentativo prodotto dall'azienda (20 caratteri);
quantità di bottiglie prodotte nell’ultima vendemmia (intero);
estensione dei vigneti, in ettari (reale).
Scrivere le dichiarazioni dei tipi di dato Pascal da utilizzarsi per risolvere i due punti successivi.
Scrivere una (o più) unità Pascal che, ricevendo in ingresso (attraverso opportuni parametri) il nome fisico del file con le informazioni sulle aziende, e la denominazione di un vino, costruisca un nuovo file, contenente, per ogni azienda produttrice di quel vino, il codice dell'azienda e la quantità di bottiglie prodotte; l'unità Pascal deve restituire in modo opportuno al programma chiamante il nome del file costruito.
Scrivere una (o più) unità Pascal che, ricevendo in ingresso il nome fisico del file con le informazioni sulle aziende, costruisca, e restituisca attraverso opportuni parametri di uscita, una lista, rappresentata mediante record e puntatori, in cui sono memorizzati i codici di tutte le aziende per le quali il rapporto tra quantità di bottiglie prodotte e estensione dei vigneti risulti inferiore a 1000.
Università di Roma "La Sapienza"
Facoltà di Ingegneria
Corso di Fondamenti di Informatica
Corsi di Laurea: Aeronautica, Chimica, Elettrica, Materiali, Meccanica,
Ambiente e Territorio (v.p.)
Appello del 7-6-1999. Seconda prova (tempo: 1 ora).
Esercizio 2 (4 punti)
Si illustri un algoritmo di ordinamento e se ne discuta la complessità.Esercizio 3 (4 punti)
Siano date le seguenti dichiarazioni di tipo e di variabile.type t_pi = ^integer; t_v = array[1..3] of t_pi; t_pv = ^t_v; var i, n : integer; v : t_v; pv : t_pv;Il candidato consideri i tre successivi frammenti di programma Pascal e ne discuta la correttezza sintattica, rilevando e spiegando, per ciascuno dei frammenti, la presenza di eventuali errori di sintassi.
new(pv); for i:=1 to 3 do begin new(pv^[i]); read(pv^[i]^) end;
for i:=1 to 3 do begin new(pv[i]^); read(n); pv[i]^:=n end;
new(pv); for i:=1 to 3 do begin new(pv^[i]); read(n); pv^[i]:=n end;
Esercizio 4 (4 punti)
Si scriva un sottoprogramma Fortran che, dato come parametro una matrice M quadrata di ordine N, a valori interi, verifichi se per essa vale la seguente proprietà: la somma degli elementi delle colonne è decrescente (vale a dire: la somma degli elementi della prima colonna è maggiore della somma degli elementi della seconda colonna che, a sua volta, è maggiore della somma degli elementi della terza colonna ...).