ESERCITAZIONE: REALI ENORMI
IL PROBLEMA
TESTO DELL'ESERCITAZIONE
LO SVILUPPO PASSO A PASSO
- Determinazione della struttura modulare
- Prima versione della struttura modulare
- Sviluppo top-down del main
- Seconda versione della struttura modulare
Sviluppo del main
- Sviluppo del modulo REALI_ENORMI
-
Sviluppo di REALI_ENORMI
La struttura modulare non è state modificata, eccetto per
l'aggiunta della funzione
Print_Char nell'interfaccia di BASIC_IO.
- Sviluppo del modulo IDENT
-
Sviluppo di IDENT
Terza versione della struttura modulare
Poichè l'interfaccia di IDENT è stata modificata, dobbiamo
modificare anche il main.
Seconda versione del main
- Sviluppo del modulo MEMORIA
-
Sviluppo di MEMORIA
- Sviluppo del modulo AMBIENTE
-
Sviluppo di AMBIENTE
- Sviluppo del modulo ESPRESSIONI
-
Sviluppo di ESPRESSIONI
- Sviluppo del modulo BASIC_IO
-
Sviluppo di BASIC_IO
- Messa a punto del programma
- Dopo aver controllato la correttezza sintattica del programma,
i vari moduli sono stati testati (cioè sottoposti a test per
controllare che siano corretti) realizzando parecchi main particolari che
chiamano le funzioni di ogni modulo in maniera sistematica.
Alcuni di questi main sono riportati di seguito; per effettuare alcuni test
è stato neccessario sviluppare ulteriori funzioni ausiliarie, ad
esempio una per stampare le espressioni.
TEST-REALENORME.c,
TEST-perEnne.c,
TEST-per10piu.c,
TEST-per10meno.c,
TEST-Leggi_Reale.c,
TEST-AMBIENTE.c,
TEST-MEMORIA.c,
TEST-BASIC_IO.c,
ESERCIZI
- Si estenda il programma sviluppato sopra in modo che accetti anche
input errati, ed in tali casi segnali gli errori rispettando le seguenti
specifiche.
ERRORI
- Dare una nuova implementazione del modulo MEMORIA utilizzando un array
invece che i puntatori, l'interfaccia non deve cambiare.
- Dare una nuova implementazione del modulo AMBIENTE utilizzando un array
invece che i puntatori, l'interfaccia non deve cambiare.
- Estendere il programma per trattare anche la divisione di numeri reali
enormi (occorre anche estendere la sintassi del file di input).
- Estendere il programma per trattare anche funzioni ricorsive
(occorre anche estendere la sintassi del file di input).
- Estendere il programma in modo che faccia anche l'eco dell'input prima
di stampare i risultati (occorre anche estendere la sintassi del file di
output).
- Dare la grammatica del file di input e di output utilizzando la BNF
invece dei diagrammi sintattici.