PROGRAM | |
rekurenc; | |
USES | |
crt; | |
TYPE | |
tab_0n_real=ARRAY[0..30] of real; | |
VAR | |
A:tab_0n_real; | |
wartosc_wielomianu:real; | |
wybor:char; {wybor opcji z menu} | |
x:byte; {zmienna pomocnicza do wartosci koncowych itd.} | |
FUNCTION silnia(n:byte):longint; | |
begin | |
if n=0 then silnia:=1 | |
else silnia:=n*silnia(n-1); | |
end; | |
FUNCTION fib(n:byte):longint; | |
begin | |
if n<3 then fib:=1 | |
else fib:=fib(n-1) + fib(n-2); | |
end; | |
FUNCTION horner(n:byte; z:real; A:tab_0n_real):real; | |
begin | |
if n=0 then horner:=A[0] | |
else horner:=horner(n-1,z,A) * z + A[n]; | |
end; | |
PROCEDURE wypelnij_tablice(var A:tab_0n_real;n:integer); | |
var | |
i:integer; | |
begin | |
writeln('Podaj wspolczynnik: '); | |
for i:=1 to n do | |
begin | |
write('wspolczynnik ',i,': '); | |
readln(A[i]); | |
end; | |
writeln('Podano wszystkie wspolczynniki.'); | |
readln; | |
end; | |
PROCEDURE wypisz_wielomian(var A:tab_0n_real;n:integer); | |
var | |
i:integer; | |
begin | |
for i:=1 to n do | |
begin | |
write(A[i]:0:2,'x'); | |
end; | |
readln; | |
end; | |
BEGIN | |
clrscr; | |
repeat | |
clrscr; | |
writeln ('MENU'); | |
writeln('S -> Obliczenie silni'); | |
writeln('F -> Wyswietlenie ciagu Fibonacciego'); | |
writeln('H -> Obliczenie wartosci wielomianu schematem Hornera'); | |
writeln('X -> Zakonczenie programu'); | |
readln(wybor); | |
case wybor of 'S' : | |
begin | |
clrscr; | |
x:=0; | |
write('Dla jakiej liczby obliczyc silnie?'); | |
readln(x); | |
writeln(silnia(x)); | |
readln; | |
end; | |
'F' : | |
begin | |
clrscr; | |
x:=0; | |
write('Ktory wyraz ciagu Fibonacciego wyswietlic?'); | |
readln(x); | |
writeln(fib(x)); | |
readln; | |
end; | |
'H' : | |
begin | |
clrscr; | |
x:=0; | |
write('Podaj stopien wielomianu: '); | |
readln(x); | |
clrscr; | |
wypelnij_tablice(A,x); | |
writeln('Oto wielomian:'); | |
wypisz_wielomian(A,x); | |
writeln; | |
write('Dla jakiej liczby obliczyc wartosc wielomianu? '); | |
readln(wartosc_wielomianu); | |
writeln(horner(x,wartosc_wielomianu,A):0:2); | |
readln; | |
end; | |
else | |
{zakonczenie} | |
end; | |
until wybor='X'; | |
END. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment