Corso di Fondamenti di Informatica - A.A. 2000/2001
Corso di Laurea in Ingegneria Elettronica (V.O. e N.O.) e
Ingegneria delle Telecomunicazioni (V.O.)


Appello straordinario del 13 ottobre 2001 - 1a prova scritta


tempo a disposizione: 2 ore

Problema 1 (18 punti)

Per il passaggio al nuovo ordinamento di un corso di laurea, il CCL ha stabilito una corrispondenza tra le materie del vecchio ordinamento (VO) e quelle del nuovo ordinamento (NO). Per ogni esame sostenuto da uno studente per una materia del VO, viene convalidato un esame per la corrispondente materia del NO, ed eventualmente possono essere assegnati dei crediti in eccesso. La tabella di corrispondenza tra le materie del VO e quelle del NO è memorizzata in un file di testo con il seguente formato, dove ogni materia di esame (sia del VO che del NO) è identificata da un codice di al più 8 caratteri:

Ad esempio, il contenuto del file con le corrispondenze potrebbe essere il seguente:

4
FondInf1 ProgeSW1  0
FondInf2 ProgeSW2  5
BasiDati BasiDati  0
Fisica1  ElemFis1  5

Si chiede di risolvere i seguenti punti:

  1. Progettare le strutture dati C (risp. Pascal) da utilizzarsi per risolvere i punti seguenti. L'uso di eventuali variabili globali va opportunamente motivato.
  2. Progettare una funzione ausiliaria C (risp. procedura o funzione Pascal) che, preso in ingresso il nome del file con le corrispondenze, restituisca un vettore di strutture (risp. record) che memorizza le corrispondenze stesse.
  3. Progettare una funzione ausiliaria C (risp. procedura o funzione Pascal) che, preso in ingresso un vettore di strutture (risp. record) come quello construito al punto (2), ed il codice di una materia del VO, restituisca: Si assuma che tutte le materie del VO presenti nella lista compaiano anche nel vettore.
  4. Progettare una funzione C (risp. procedura o funzione Pascal) che, preso in ingresso il nome del file con le corrispondenze ed una lista (rappresentata attraverso strutture (risp. record) e puntatori) di codici di materie del VO, restituisca: La funzione (risp. procedura) deve utilizzare le funzioni (risp. procedure) ausiliarie sviluppate ai punti (2) e (3). L'ordine degli elementi nella lista costruita è irrilevante.

Ad esempio, se il file con le corrispondenze è quello di sopra e la lista in ingresso contiene i codici (FondInf1, FondInf2, Fisica1), allora la lista costruita deve contenere i codici (ProgeSW1, ProgeSW2, ElemFis1), ed il numero totale di crediti in eccesso deve essere 10.


Nota: Quando si parla di ``prendere in ingresso'' e di ``restituire'' si intende attraverso opportuni parametri o attraverso il valore di ritorno.



Corso di Fondamenti di Informatica - A.A. 2000/2001
Corso di Laurea in Ingegneria Elettronica (V.O. e N.O.) e
Ingegneria delle Telecomunicazioni (V.O.)


Appello straordinario del 13 ottobre 2001 - 2a prova scritta


tempo a disposizione: 1 ora

Problema 2 (4 punti)

Descrivere utilizzando pseudocodice oppure codice C (risp. Pascal) l'algoritmo di ricerca binaria in un vettore. Discuterne la complessità. Confrontare tale algoritmo con l'algoritmo di ricerca sequenziale.

Problema 3 (4 punti)

Descrivere la rappresentazione dei reali in forma normalizzata (tramite mantissa ed esponente). Discuterne le caratteristiche. Qual'è l'intervallo di rappresentazione e quali sono le sue proprietà?

Problema 4 (4 punti)

Quali delle seguenti affermazioni sono corrette e quali no? Motivare le risposte date.

  1. Un algoritmo può essere espresso in un linguaggio di programmazione ad alto livello.
  2. La compilazione di un algoritmo produce del codice in linguaggio C (risp. Pascal).
  3. Il codice macchina può essere mandato direttamente in esecuzione su un opportuno processore.
  4. Un programma che compila senza errori è corretto.