Università di Roma ``La Sapienza'' - Facoltà di Ingegneria
Corso di Fondamenti di Informatica - A.A. 1999/2000
Corso di Laurea: Ingegneria per l'Ambiente e il Territorio

Appello del 10 luglio 2000 - 1a prova scritta
tempo a disposizione: 120 minuti

 

Problema 1 ( punti)

Il proprietario di una galleria d'arte possiede quadri e sculture e memorizza su un file di testo i dati di tutte le opere da egli possedute. Per ogni opera scrive nel file le seguenti informazioni:

Esempio   In un certo istante il file potrebbe contenere le seguenti informazioni:
SCROFOLO PAESAGGIO Q 1000.0
BUONARROTI PIETA S 1.0E+9
LEONARDO GIOCONDA Q 1.5E+9
DONATELLO DAVID S 1.0E+9
BUONARROTI SISTINA Q 0.8E+9
VANGOGH GIRASOLI Q 1.5E+9

Si richiede di risolvere i seguenti punti:

  1. Scrivere le dichiarazioni dei tipi di dato C da utilizzarsi per risolvere i punti successivi. Qualora si utilizzino variabili globali motivare adeguatamente la scelta.
  2. Scrivere una funzione C (o più) che riceve come argomento il nome fisico del file f che contiene i dati e restituisce due array a1 ed a2 contenenti, rispettivamente, i dati relativi a tutti i quadri più cari e i dati relativi a tutte le sculture più care.

    Esempio   Facendo riferimento al file sopra riportato, la funzione deve restituire due array con le seguenti informazioni:
    array a1 VANGOGH GIRASOLI Q 1.5E+9 (cella 0)
    LEONARDO GIOCONDA Q 1.5E+9 (cella 1)
     
    array a2 BUONARROTI PIETA S 1.0E+9 (cella 0)
    DONATELLO DAVID S 1.0E+9 (cella 1)

  3. Ad ogni autore a si associa il valore complessivo delle opere (di entrambi i tipi) rappresentate val(a). Scrivere una funzione C (o più) che riceve come argomento il nome fisico del file f che contiene i dati e restituisce max(val(a)), al variare di a; in altre parole la funzione restituisce il valore massimo complessivo delle opere (di entrambi i tipi) di uno stesso autore.

    Esempio   Facendo riferimento al file sopra riportato, la funzione deve restituire il valore 1.8E+09, pari alla somma dei valori delle opere di Buonarroti, autore che massimizza tale somma.


Università di Roma ``La Sapienza'' - Facoltà di Ingegneria
Corso di Fondamenti di Informatica - A.A. 1999/2000
Corso di Laurea: Ingegneria per l'Ambiente e il Territorio

Appello del 10 luglio 2000 - 2a prova scritta
tempo a disposizione: 60 minuti

 

Problema 2 ( punti)

  1. Scrivere la propria data di nascita in formato gg mm aa.
  2. Considerare le seguenti definizioni di g, m, a.
    g = gg % 10; m = - mm; a = aa % 10;
  3. Scrivere la rappresentazione di g, m ed a in complemento a due, usando 5 bit.

 

Problema 3 ( punti)

Si consideri il seguente programma C.

  #include <stdio.h>
  #define MAX 8

  typedef int cifra;
  typedef cifra ARR[MAX];

  int Cosa(ARR a, int i);
  int main(void);

  int Cosa(ARR a, int i) {
    if(i == MAX)
      return 0;
    else
      return a[i] + Cosa(a, i+1);
  }

  int main(void) {
    ARR io;
    int j;
    printf("Matricola (una cifra alla volta):\n");
    for(j=0; j<MAX; j++)
      scanf("%d", &io[j]);
    printf("%d\n", Cosa(io,0));
    return 0;
  }

 

Problema 4 ( punti)

Date le relazioni:

scrivere una interrogazione SQL che costruisca l'elenco l'elenco dei nominativi (nome e cognome) dei pazienti che sono stati ricoverati (in un qualunque ospedale) più di una volta.
[N.B.: nella relazione AnagraficaCittadini sono presenti anche informazioni relative ad individui che non sono mai stati ricoverati.]

Descrizione degli attributi:

Orali e verbalizzazioni: giovedì 13/7/2000, V. Salaria 113, h 9:00, 2o piano, aula C3.


File translated from TEX by TTH, version 2.25.
On 6 Jul 2000, 15:58.