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
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):
- ogni volta che nel messaggio originale compare una vocale, essa viene
raddoppiata;
- 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:
- Progettare le strutture di dati da utilizzarsi per risolvere i punti 2
e 3.
- 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.
- 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
Confrontare i tipi di dato coda e pila, fornendo la descrizione
astratta e le funzioni/predicati principali.
Si illustrino le problematiche relative alla verifica della correttezza dei
programmi, indicando alcuni dei metodi adeguati alla loro soluzione. Si
presentino esempi.
Si illustri l'architettura di un calcolatore, descrivendo le sue componenti e
il loro ruolo nell'esecuzione di un programma.