EXPONENCIÁLNÍ FUNKCE

PROBLÉM
Vypočítat hodnotu E**X, kde E značí Eulerovo číslo e. Tuto funkci označujeme jako EXP. Je definována:

EXP(X)=1+X/FACT(1)+X**2/FACT(2)+...+X**N/FACT(N)+...

, kde FACT je funkce pro výpočet faktoriálu a X je reálné číslo.

IMPLEMENTACE
Jednotka: vnitřní funkce nebo vnější, ale pak bez procedure příkazu
 
Parametry: číslo X, přirozené číslo P - počet platných číslic v hodnotě EXP(X), implicitně 9
 
Vazby: funkce ECONST, pro P<=200 nebo funkce E pro P>200
 
Vrací: prvních P platných číslic EXP(X)
 


EXP: procedure
parse arg X, P
if P = "" then P = 9; numeric digits P
Y = X % 1
if ABS(X - Y) > 0.5 then Y = Y + SIGN(X)
X = X - Y
Sum = 1; Term = 1
do J = 1
  Term = Term * X / J; NewSum = Sum + Term
  if NewSum = Sum then leave
  Sum = NewSum
end
if Y = 0 then return Sum
return (ECONST() ** Y) * Sum

 

PŘÍKLAD
EXP(2.1879653,16) vrací 8.917051119945531
VISUAL BASIC MsgBox(EXP(2.1879653)) zobrazí 8.91705111994553

SOUVISLOSTI


Obálka Obsah Index Hlavní stránka Rexx   Mail

změněno 8. srpna 2001
Copyright © 2000-2001 Vladimír Zábrodský, RNDr.