Programmazione I/Laboratorio di Programmazione I
Proff. G. Haus, G. Pighizzini
prova scritta del 21 febbraio 1997
Si vuole costruire un ambiente per lo studio e la prova di
sottoprogrammi
che manipolano sequenze di interi ordinate in modo non
decrescente. In base ad un menù,
l'utente può scegliere di volta in volta
quali operazioni effettuare manipolando una
sequenza, inizialmente vuota. Le operazioni previste sono:
- Inserimento di un intero all'interno della sequenza. Ad
esempio, se la sequenza contiene 2 4 4 37 98 462 e l'utente
vuole inserire 45, la nuova sequenza sarà 2 4 4 37
45 98 462.
Si noti che uno stesso elemento può apparire nella sequenza
più di
una volta.
- Stampa del contenuto della sequenza.
- Ricerca di un elemento all'interno della sequenza: dato in
ingresso un intero, il programma indica le posizioni in cui
appare, se presente. Ad
esempio, se la sequenza contiene 2 4 4 37 98 462 e l'utente
inserisce
per la ricerca 4, il programma dovrà rispondere che
l'elemento
si trova in seconda e in terza posizione.
- Rimozione delle ripetizioni.
Ad esempio, se la sequenza contiene 2 2 4 4 37 98 98 98 462
462,
la nuova sequenza sarà 2 4 37 98 462.
Il programma deve essere privo di vincoli sulla lunghezza
massima della sequenza trattata e deve risultare facilmente
espandibile nel caso si vogliano introdurre nuove funzionalità.
Si richiede:
- La definizione delle strutture dati fondamentali utilizzate dal
programma, con le relative dichiarazioni.
- La descrizione dell'architettura del programma, evidenziando le
procedure e funzioni fondamentali con i relativi parametri,
specificando
esplicitamente ingressi e uscite delle stesse.
- La codifica in linguaggio Pascal del programma principale e di
uno o piú sottoprogrammi ritenuti particolarmente significativi.
Nella valutazione si terrà conto principalmente dei seguenti
parametri:
- Architettura del programma.
- Specifiche delle strutture dati.
- Specifiche dei sottoprogrammi.
- Correttezza sintattica del codice.
- Efficacia della soluzione proposta.
- Leggibilità e autodocumentazione del codice (commenti,
scelta
degli identificatori, ecc.).
N.B. PER I CANDIDATI AMMESSI ALLA PROVA ORALE
Al momento della prova orale si richiede di esibire
la stampa del sorgente del programma completo e compilato,
nonché il listato di una prova di esecuzione dello stesso.