Salve amici del Forum!!!Qualcuno mi sa spiegare qual'è l'errore nel programma, che riporto di seguito, redatto in Pascal, che ha il compito di calcolare e(x) in forma approssimata assegnando ad x ed n valori opportuni (con x variabile ed n=5) e seguendo la nota formula di McLaurin secondo cui:
e(x)=1+x+x^2/2!+x^3/3!+x^4/4!+....
poichè il programma medesimo pur risultando sintatticamente corretto, non mi visualizza il risultato finale. Forse il problema è nel compilatore ( mi riferisco alla necessità dell'uso opportuno dell'istruzione readln per visualizzare il risultato con Dev-Pascal )?
Riporto di seguito il testo del programma:
codice:
program EsponenzialeApprossimato(input,output);
const n=5;
var x : real;
function Potenza( x : real): real;
begin
if n=0
then Potenza:=1
else Potenza:=x*Potenza(n-1);
end;{ fine funzione Potenza }
function Fattoriale( n : integer): integer;
begin
if n=0
then Fattoriale:=1
else Fattoriale:=n*Fattoriale(n-1);
end;{ fine funzione Fattoriale }
function Esponenziale( x : real ):real;
var i : integer;
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;
Esponenziale(x);
writeln('Il valore di e(x) approssimato al termine di ordine', n ,'e'': ',Esponenziale(x));
readln;
end.
Forse è scorretta l'istruzione Fattoriale(i), per calcolare di volta in volta n!, poichè si usa un parametro che è una variabile facendolo passare per parametro per valore ( tuttavia i assume di volta in volta valori costanti nella sommatoria ) ?
Ringraziando da ora chiunque sia in grado di fornirmi una risposta corretta saluto tutti. Ciao!!!