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:
Grazie a coloro che mi forniranno risposte esaurienti. Ciao!!!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.![]()

Rispondi quotando