DRUHÁ ODMOCNINA KLADNÉHO CELÉHO ČÍSLA

ALGORITMUS
Druhou odmocninu kladného reálného čísla N lze určit pomocí Newtonova algoritmu ze vztahu:

New=0.5*(X+N/X)

s počáteční hodnotou X rovnou například (1+N)/2. Hodnota NewX se v další iteraci dosadí za X atd.

IMPLEMENTACE
Jednotka: vnitřní funkce nebo vnější funkce, ale pak bez procedure příkazu
 
Parametry: kladné reálné číslo N>0, přirozené číslo P - počet platných číslic ve vypočtené hodnotě SQRT(N), implicitně P=9
 
Vrací: prvních P platných číslic SQRT(N)
 


SQRT: procedure
parse arg N, P
if P = "" then P = 9; numeric digits P
parse value FORMAT(N,,,,0) with N "E" Exp
if Exp = "" then Exp = 0
if (Exp // 2) <> 0 then
  if Exp > 0
    then do; N = N * 10; Exp = Exp - 1; end
    else do; N = N / 10; Exp = Exp + 1; end
X = 0.5 * (N + 1)
do forever
  NewX = 0.5 * (X + N / X)
  if X = NewX then return X * 10 ** (Exp % 2)
  X = NewX
end

 

PŘÍKLAD
Následující program


say SQRT(2)
numeric digits 20
say SQRT(2, 18)
exit
SQRT: procedure
...

zobrazí


1.41421356
1.41421356237309505

 

SOUVISLOSTI


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

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