Schemat Hornera

0

Dzień dobry, mam napisać algorytm Hornera dwoma sposobami - rekurencyjnie i iteracyjnie. Napisałem i nie jestem pewny, czy wszystko jest dobrze. Chciałbym, żebyście sprawdzili.

HORNER(n, wsp, x)
if n=0 then
          return wsp[0]
       else
          return HORNER(n-1, wsp, x)*x+wsp[n] 

Z tego algorytmu spróbowałem napisać iteracyjnie (z for oraz while)

z for:

HORNER(n, wsp, x)
y <-- wsp[0]
for i <-- 1 to n 
do y <-- x*y+wsp[i]
return y

z while:

HORNER(n, wsp, x)
i<--0
while i<=n 
   do i <-- i+1
      y <-- x*y+wsp[i]
return y
  1. Czy wcięcia są ok.?
  2. HORNER(n, wsp, x) - jest dobrze? Czy powinno być inaczej?
  3. Czy algorytm napisany iteracyjnie jest wierny algorytmowi napisanego rekurencyjnie? Zamiast y (for i while) napisałbym n, ale nie wiem, czy tak można.
1

w wersji z while brak inicjalizacji y.

0

Poprawiłem:

z while:

HORNER(n, wsp, x)
i<--1
y<--wsp[0]
while i<=n 
   do i <-- i+1
      y <-- x*y+wsp[i]
return y

Czy wszystkie algorytmy są dobrze napisane? Czy czegoś brakuje?

0

Sprawdzi mi ktoś?

1 użytkowników online, w tym zalogowanych: 0, gości: 1