Corso di Fondamenti di Informatica - A.A. 2000/2001
Corsi di Laurea in Ingegneria Elettronica e
Telecomunicazioni V.O.


Appello del 25/02/2002 - 1a prova scritta

tempo a disposizione: 2 ore

Problema 1 (18 punti)

Due sedi di una ditta si scambiano messaggi usando un linguaggio cifrato per motivi di sicurezza. Le frasi nel linguaggio di partenza (LP) sono trasformate in frasi in un linguaggio di destinazione (LD). Ad ogni carattere in LP corrisponde un carattere in LD. Il set di caratteri utilizzati comprende le 26 lettere maiuscole dell'alfabeto più lo spazio. Le corrispondenze sono memorizzate nella tabella LPtoLD. La trasformazione da un messaggio in LP ad un messaggio in LD avviene secondo le seguenti regole (da applicare nell'ordine specificato):

  1. ogni volta che nel messaggio originale compare una vocale, essa viene raddoppiata;
  2. ad ogni lettera della frase in LP viene sostituita la corrispondente lettera in LD secondo la tabella LPtoLD.
Si richiede di risolvere i seguenti punti:

  1. Progettare le strutture di dati da utilizzarsi per risolvere i punti 2 e 3.
  2. Progettare una funzione C (o funzioni/procedure Pascal) che, preso in ingresso un messaggio memorizzata in una lista realizzata tramite record e puntatori, restituisca un array che, in corrispondenza dell'indice relativo a ciascuna lettera (si rispetti l'ordine alfabetico mettendo lo spazio dopo la Z), memorizzi il numero di occorrenze della lettera nella frase.
  3. Progettare una funzione C (o funzioni/procedure Pascal) che, presi in ingresso la tabella LPtoLD e un messaggio codificato nel linguaggio LD, memorizzato in una lista realizzata tramite record e puntatori, restituisca la lista con il messaggio originale (in chiaro) nel linguaggio LP (N.B.: non si deve costruire una nuova lista, ma modificare quella del messaggio codificato).

Ad esempio, data la seguente tabella LPtoLD (dove si e` usato ``~'' per denotare lo spazio bianco):

  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ~
  C R T S W E V X M K J Z U Y G O A F H N P ~ L I Q D B
si ottiene la seguente decodifica:

Messaggio in LD:   NXWWBYWWLBOFGGKWWTNBMMHBFWWCCSQ
Messaggio in LP:   THE NEW PROJECT IS READY



Corso di Fondamenti di Informatica - A.A. 2000/2001
Corsi di Laurea in Ingegneria Elettronica e
Telecomunicazioni V.O.


Appello del 25/02/2002 - 2a prova scritta

tempo a disposizione: 1 ora

Problema 2 (4 punti)

Confrontare i tipi di dato coda e pila, fornendo la descrizione astratta e le funzioni/predicati principali.

Problema 3 (4 punti)

Si illustrino le problematiche relative alla verifica della correttezza dei programmi, indicando alcuni dei metodi adeguati alla loro soluzione. Si presentino esempi.

Problema 4 (4 punti)

Si illustri l'architettura di un calcolatore, descrivendo le sue componenti e il loro ruolo nell'esecuzione di un programma.