Università di Roma ``La Sapienza''
Facoltà di Ingegneria
Corso di Fondamenti di Informatica
Corso di Laurea: Ambiente e Territorio
Appello del 14/10/1999 - 1a prova scritta
tempo a disposizione: 2 ore

Problema 1 (18 punti) Un sistema grafico è in grado di gestire uno schermo quadrato di 10×10 punti, ognuno dei quali può essere acceso o spento. Il sistema riceve un'immagine da visualizzare sotto forma di un file composto da una sequenza di linee, dove ogni linea ha il formato:

n1 n2 n3

in cui n1, n2 e n3 sono interi compresi fra 0 e 9. Il significato di tale linea è che nella riga n1 dello schermo si accendono, a partire dalla posizione n2 compresa, n3 punti. Ad esempio, se il contenuto del file è il seguente:
1
1
6
10
1
1

allora lo schermo corrispondente è il seguente (distinguendo con il carattere '*' il punto acceso e specificando i numeri da 0 a 9 per evidenziare le coordinate dei punti) :
 
9
* * * * * * *
*
*
* *

Chiamiamo punto isolato qualsiasi punto che non sia in contatto (in nessuna delle posizioni adiacenti) con altri punti. Ad esempio, nello schermo di cui sopra, vi sono due punti isolati, rispettivamente di coordinate ( 9,0) e ( 4,7). Si noti che il punto di coordinate ( 2,9) non è isolato.

Un aspetto che deve essere preso in considerazione è che una o più linee del file di input potrebbero dare specifiche scorrette. Ad esempio, la linea

5 7 4

sarebbe scorretta, poiché il numero di punti per riga dello schermo (cioè 10) è insufficiente a contenere i 4 punti richiesti.

Si richiede di risolvere i seguenti punti:

  1. Scrivere le dichiarazioni dei tipi di dato C da utilizzarsi per risolvere i punti successivi.
  2. Scrivere una funzione C (o più) che, dato un file contenente una specifica, lo visualizzi su schermo (utilizzando solamente il carattere '*' e il carattere spazio; in particolare non devono essere visualizzati i numeri di riga o di colonna). Nel caso in cui la specifica sia scorretta, occorre stampare un messaggio di errore.

  3. [Suggerimento: progettare la funzione in maniera sufficientemente generale, al fine di renderla utile anche per il punto successivo].
  4. Scrivere una funzione C (o più) che, dato un file contenente una specifica, verifichi se è corretta, e in tal caso costruisca una lista contenente le coordinate di tutti i punti isolati. La lista deve essere composta da strutture contenenti due interi. Il verso della lista è a scelta dello studente.

Università di Roma ``La Sapienza''
Facoltà di Ingegneria
Corso di Fondamenti di Informatica
Corso di Laurea: Ambiente e Territorio
Appello del 14/10/1999 - 2a prova scritta
tempo a disposizione: 1 ora




Problema 2 (4 punti)

Descrivere in dettaglio la modalità con cui è possibile rappresentare numeri usando il sistema binario. Quali insiemi di numeri possono essere rappresentati in maniera esatta e quali solo in maniera approssimata? Perché?
 
 
 

Problema 3 (4 punti)

Scrivere C un programma completo (compilabile) che, prendendo in input (da tastiera) un intero n ? 0, calcoli e stampi sullo schermo il numero di Fibonacci Fn (si rammenta che la successione di Fibonacci è definita come segue: Fi+2 = Fi+1+Fi per i ? 0, con F0 = 0 e F1 = 1).
 
 
 

Problema 4 (4 punti)

Data la relazione militari avente come attributi:

    - matricola (numero di matricola del militare)

    - cognome (cognome)

    - nome (nome)

    - grado (grado)

    - superiore (numero di matricola del superiore diretto)

scrivere una interrogazione SQL che visualizzi nome, cognome e grado del diretto superiore di Mario Rossi (assumere che non ci siano omonimie).

Verbalizzazione/discussione: martedì 19 ottobre, ore 9, V. Salaria 113, 2o piano, aula C1


File translated from TEX by TTH, version 2.25.
On 4 Nov 1999, 14:57.