Università di Roma ``La Sapienza''
Facoltà di Ingegneria
Corso di Fondamenti di Informatica
Corsi di Laurea: Aerospaziale, Chimica, Elettrica, Materiali,
Nucleare, Ambiente e Territorio (v.p.)
Appello del 15 febbraio 2000 -- 1a prova scritta
tempo a disposizione: 2 ore
Problema 1 (18 punti) Una società sportiva registra in un file tutti
i dati relativi alle gare di nuoto effettuate dai suoi atleti. In particolare,
per ogni gara a cui ha partecipato almeno un suo atleta sono registrate nel
file le seguenti informazioni:
- il nome dell'atleta (max 20 caratteri);
- lo stile relativo alla gara (un carattere fra 'l', 'd',
'r', 'f', 'm', che rappresenta rispettivamente uno fra gli
stili: libero, dorso, rana, delfino, misto);
- la lunghezza della gara espressa in metri;
- il tempo riportato, rappresentato mediante tre interi, rispettivamente
per minuti, secondi e centesimi di secondo;
- il piazzamento riportato (un intero compreso fra 1 e 8).
Si richiede di risolvere i seguenti punti:
- 1.
- Scrivere le dichiarazioni dei tipi di dato Pascal da utilizzarsi
per risolvere i punti successivi.
- 2.
- Scrivere una (o più) unità di programma Pascal che, dato il nome
fisico del file che contiene i dati della società, un carattere c che
rappresenta uno stile ed un intero i che rappresenta la lunghezza della
gara, restituisce il tempo medio riportato dai nuotatori che si sono piazzati
al primo posto in gare di lunghezza i effettuate nello stile
rappresentato da c. Se non ci sono stati nuotatori che si sono
piazzati al primo posto nelle gare predette, ciò deve essere opportunamente
segnalato.
- 3.
- Scrivere una (o più) unità di programma Pascal che, dato il nome
fisico del file che contiene i dati della società, costruisce una lista che
contiene tutti e soli i nomi degli atleti che sono risultati primi in almeno
due gare differenti. L'eventuale orientamento della lista è a scelta dello studente.
Università di Roma ``La Sapienza''
Facoltà di Ingegneria
Corso di Fondamenti di Informatica
Corsi di Laurea: Aerospaziale, Chimica, Elettrica, Materiali,
Nucleare, Ambiente e Territorio (v.p.)
Appello del 15 febbraio 2000 -- 2a prova scritta
tempo a disposizione: 1 ora
Problema 2 (4 punti)
Illustrare le principali qualità del software.
Problema 3 (4 punti)
Siano date le seguenti dichiarazioni in Pascal per la gestione di una pila di
interi.
type
TipoPila = (* NON INTERESSA *);
procedure InitPila (var p: TipoPila);
(* IL CODICE NON INTERESSA *)
function TestPilaVuota (p: TipoPila): boolean;
(* IL CODICE NON INTERESSA *)
procedure TopPila (p: TipoPila; var v: integer);
(* IL CODICE NON INTERESSA *)
procedure Push (var p: TipoPila; v: integer);
(* IL CODICE NON INTERESSA *)
procedure Pop (var p: TipoPila; var v: integer);
(* IL CODICE NON INTERESSA *)
Scrivere un'unità di programma Pascal che, data una pila di interi,
restituisca il valore massimo contenuto in essa.
Problema 4 (4 punti) Scrivere un sottoprogramma
Fortran che, ricevendo come parametro una matrice rettangolare di booleani di
dimensione ,
calcoli e restituisca in modo opportuno al programma
chiamante un vettore di n interi tale che nella sua componente generica di
indice r riporti il valore i definito secondo le seguenti regole:
- se non esiste alcun elemento (r,k) della matrice che vale .TRUE.,
allora i=0;
- altrimenti, i è l'indice tale che l'elemento (r,i) della matrice
vale .TRUE. e nessun elemento (r,j) con j>i vale .TRUE..