Calcular+numero+E

=__**Calcular el número E utilizando la serie de Taylor**__=

math Número\;e\;=\sum_{i=0}^N\frac1{i!} math

La precisión será menor que el valor del último término añadido.

code format="pascal" PROGRAM CalcularNumeroE ;

FUNCTION fnrFactorial (iNum : Integer) : Real ; VAR i    : Integer ; rFact : Real   ; BEGIN rFact := 1 ; FOR i := 1 TO iNum DO      rFact := rFact * i ;

fnrFactorial := rFact END ;

FUNCTION fnrNumeroE (rPrecision : Real) : Real ; VAR i : Integer ; rTermino, rNum_E : Real ; BEGIN IF rPrecision = 0 THEN rPrecision := 1.0E-45 ; { la precisión no puede ser 0 }

rNum_E := 0 ; i     := 0 ; REPEAT rTermino := 1 / fnrFactorial (i) ; rNum_E  := rNum_E + rTermino ;

i := i + 1 ; UNTIL rTermino <= rPrecision ; fnrNumeroE := rNum_E END ;

VAR rPrecision, rNumero_E : Real   ;

BEGIN WriteLN ('Cálculo de una aproximación del número e') ; WriteLN ('========================================') ;

Write ('Con qué precisión quieres calcularlo: ') ; ReadLn (rPrecision) ;

rNumero_E := fnrNumeroE (rPrecision) ;

WriteLn ('Valor calculado  (factorial    REAL): ', rNumero_E:0:10) ;

WriteLn ('Valor calculado            (EXP (1)): ', Exp (1):0:10) ;

WriteLn ; ReadLn ; END. { FIN del PROGRAMA } code