Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
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