Correggo un errore: nella funzione Esponenziale non deve comparire la dichiarazione di variabile i : integer; per i noti problemi relativi alle regole sui campi d'azione delle variabili stesse dichiarate nelle procedure e nelle funzioni. Dunque il programma per il quale chiedo la verifica della correttezza e che generalizza il problema proposto all'inizio di questo post è il seguente:
codice:
program EsponenzialeApprossimato(input,output);
var i,n : integer;
x : real;
function Potenza( x : real): real;
begin
if i=0
then Potenza:=1
else Potenza:=x*Potenza(i-1);
end;{ fine funzione Potenza }
function Fattoriale( i : integer): integer;
begin
if i=0
then Fattoriale:=1
else Fattoriale:=i*Fattoriale(i-1);
end;{ fine funzione Fattoriale }
function Esponenziale( x : real ):real;
var Somma : real;
begin
Somma:=0;
for i:=1 to n
do begin
Somma:=Somma+((Potenza(x))/(Fattoriale(i)));
readln;
end;
Esponenziale:=Somma;
readln;
end;{ fine function Esponenziale }
{ Corpo del programma }
begin
writeln('----------------------------- Dati di ingresso -------------------------------');
writeln;
write('Fornire il valore della variabile x : ');
readln(x);
writeln;
write('Fornire il valore della variabile n : ');
readln(n);
writeln;
Esponenziale(x);
writeln('Il valore di e(x) approssimato al termine di ordine', n ,'e'': ',Esponenziale(x));
readln;
end.
Grazie a coloro che mi forniranno risposte esaurienti. Ciao!!!