Università di Roma "La Sapienza" — Facoltà di Ingegneria

Corso di Fondamenti di Informatica

Corso di laurea: Ambiente e Territorio

1 luglio 1999 (1ª prova)

tempo a disposizione: 120 minuti

 

Problema 1 (18 punti)

Un progettista adotta il seguente formato per memorizzare matrici in file binari:

I nomi dei file sono composti da non più di 20 caratteri.

  1. Scrivere un insieme di dichiarazioni globali in C da utilizzarsi per risolvere i due punti successivi (le dichiarazioni locali potranno essere direttamente specificate nello svolgimento dei punti successivi).
  2. Scrivere una funzione C (o più) che, ricevendo come parametri i nomi di due file contenenti matrici nel formato descritto, determini se la matrice rappresentata nel secondo file è un minore della matrice rappresentata nel primo file. In caso affermativo la funzione deve restituire la coppia di indici che individua il minore.
  3. Scrivere una funzione C (o più) che, ricevendo come parametri il nome di un file S e una lista collegata di nomi di file, cancelli dalla lista gli elementi che si riferiscono a matrici che non sono minori della matrice rappresentata nel file S. Nello svolgimento potranno essere sfruttate funzioni costruite per risolvere il punto precedente.

Esempio

La funzione richiesta al punto 2, chiamata ad operare sui file "f1.dat" e "f2.dat", fornisce un responso positivo (la seconda matrice è minore della prima), restituendo gli indici (2,4); quando è invece chiamata ad operare sui file "f1.dat" e "f4.dat", o sui file "f5.dat" e "f2.dat", fornisce un responso negativo.

La funzione richiesta al punto 3, chiamata ad operare sul file "f1.dat" e sulla lista di nomi "f2.dat", "f4.dat", "f5.dat", "f3.dat", restituisce la lista "f2.dat", "f3.dat".

3

4

 

1.5

2.5

1.0

-2.25

-0.625

0

0

1.2

4.5

11.1

-9.04

-0.4

file f1.dat

2

3

 

1.5

2.5

1.0

4.5

11.1

-9.04

file f2.dat

2

3

 

-0.625

0

0

4.5

11.1

-9.04

file f3.dat

4

5

 

7.8

1.5

2.5

1.0

-2.25

1.2

-0.625

0

0

1.2

8.1

4.5

11.1

-9.04

-0.4

0.6

8.7

3.2

8.1

-2.1

file f4.dat

3

4

 

3.1

2.1

2.09

-1.3

2.2

-2.2

1.1

3.6

2.4

-0.01

3.0

-1.1

file f5.dat


Università di Roma "La Sapienza" — Facoltà di Ingegneria

Corso di Fondamenti di Informatica

Corso di laurea: Ambiente e Territorio

1 luglio 1999 (2ª prova)

tempo a disposizione: 60 minuti

 

 

Problema 2 (4 punti)

In cosa consiste la metodologia di progettazione denominata "top-down"? Illustrare un esempio.

 

Problema 3 (4 punti)

Dato il seguente frammento di codice C:

#include <stdio.h>

typedef struct e {
	int info;
	struct e *next;
} elem;
 
elem *Boh(elem *ptesta, int zz)
{
	if(ptesta==NULL)
		return NULL;
	else if(ptesta->info==zz)
		return ptesta;
	else
		return Boh(ptesta->next, zz);
}

discutere cosa fa (e non come lo fa) la funzione Boh. Cosa restituisce la chiamata Boh(Boh(Boh(pelem,x),x),x), dove pelem ed x sono variabili (già inizializzate) rispettivamente di tipo elem* ed int?

 

Problema 4 (4 punti)

Date le relazioni Categorie, Negozi ed Articoli (v. tabelle esemplificative), scrivere una interrogazione SQL che costruisca gli indirizzi dei ferramenta che vendono scale ma non antenne.

Categorie

Codice

Descrizione

FE

Ferramenta

FA

Farmacia

DR

Drogheria

B

Bar

O

Ortofrutta

...

...

Negozi

Categoria

Nome

Indirizzo

FE

Rossi

Viale Tizio 1, 00100 Roma

FA

Bianchi

Viale Caio 1, 00100 Roma

FE

Verdi

Viale Sempronio 1, 00100 Roma

...

...

...

 

Articoli

Negozio

Descrizione

Rossi

chiodo

Rossi

vite

Verdi

chiodo

Rossi

antenna

Rossini

pane

Bianchini

mela

Verdini

tramezzino

...

...