Per esempio
12, 23
e
11111111111111111111111111111111111111111,3333333333333333333333333333333333333333333333333
sono numeri reali enormi.
Lo scopo dell'esercitazione è sviluppare un programma
che preso in input un file il cui nome sarà
ingresso.txt che contiene delle definizioni di alcune costanti e di
alcune funzioni operanti su numeri reali enormi, e delle
espressioni costruite usando tali costanti e funzioni,
stamperà sul file uscita.txt i numeri reali
enormi che
sono il risultato della valutazione di tali espressioni.
Si ricorda che degli spazi vuoti (caratteri blank) possono essere aggiunti nel file di input ovunque, eccetto all'interno di un identificatore, di una parole chiave o di un numero.
Non è possibile dichiarare due volte la stessa costante.
Non è possibile che un elemento di contenga più di 50 cifre.
Non è possibile dichiarare due volte la stessa funzione.
Il nome di un parametro di una funzione è differente da tutte le costanti
e le funzioni dichiarati precedentemente.
Ogni che appare nella parte espressione di una funzione (il corpo) deve essere o una costante dichiarata nella parti costanti, o il parametro della funzione, o il nome di una funzione dichiarata nella parte funzioni precedentemente (solamente quegli identificatori seguiti da un'altra espressione racchiusa tra parentesi tonde).
Assumendo di non aver dichiarato alcuna costante, la seguente parte funzioni è corretta
@funz G(Y)=((Y*+3,34)-Y) F(X)=(+2,0-G(X))mentre quella che segue è errata
@funz F(X)=(+2,0-F(T)) G(Y)=((Y*+3,34)-H((Y-+1,1))) H(Z)=G((Z-+1,1))poichè nel corpo di F
T
è diverso dal parametro (X)
e non può essere una costante; inoltre la funzione
H
all'interno del corpo di G non è ancora stata
dichiarata.
L'uscita andrà prodotta nel file uscita.txt secondo la sintassi indicata qui sotto:
Si ricorda che i reali enormi vengono scritti sul file di output seguendo le seguenti convenzioni