kartkówka nr 3 (liczby Catalana) Niewiarowski

Kolokwium nr. 3 – Niewiarowski

Liczby Catalana


Treść:

Zadaniem na kolokwium było sprawdzić czy rekordy podanej przez prowadzącego tablicy są fragmentem ciągu Catalana i uzupełnić kolumnę test otrzymanym wynikiem (1 jeśli ciąg jest fragmanetem, 0 jeśli nie).





Rozwiązanie:

Funkcja w PL/SQL.

Wykorzystany wzór z angielskiej wikipedii do obliczania liczb Catalana.



Funcja wykorzysytwana w następujący sposób:

update <nazwa_tabeli> set test=mcatalan(ciag);


Kod procedury:

create or replace function mcatalan(ciag IN varchar2) return number as


--deklaracja zmiennych

ciag_test varchar2(50) := '';

element_ciag number;


begin

--obliczamy tylko 10 elementow ciagu Catalana (wiecej nie trzeba poniewaz w tabeli ciagi sa do 10 elementu)

for i in 0..10 loop

element_ciag:=1;

--obliczamy i element ciagu

for k in 2..i loop

element_ciag := element_ciag * ((i+k)/k); --wzor z angielskiej wikipedii

end loop;

--zaokraglamy bo czasem wychodzily wartosci typu 13,999999999999999999

element_ciag := round(element_ciag);

--dodajemy obliczony element do ciagu wraz z przecinkiem, zeby dopasowac sie do formatu ciagu w tabelce

ciag_test := ciag_test || ',' || element_ciag;

end loop;

--sprawdzamy czy w naszym ciagu Catalana obliczonym w procedurze znajduje sie przekazany ciag do funkcji a wiec czy jest fragmentem tego ciagu

if (instr(substr(ciag_test,1), ciag) <> 0) then

return 1; --jest, zwracamy wartosc 1

else

return 0; --nie jest, zwracamy wartosc 0

end if;

--obsluga wyjatkow

exception

when others then

raise_application_error(-20000, 'Blad' || SQLERRM || ' kod PL/SQL ' || SQLCODE);

end;


Wyszukiwarka

Podobne podstrony:
kartkówka nr 4 (prawdo) Niewiarowski
kartkówka nr 2 Niewiarowski
kartkówka nr 5 (odchylenie) Niewiarowski
kartkówka nr 4 (prawdo) Niewiarowski
kartkówka nr 2 Niewiarowski
Zajęcia nr 1 i 2 liczby i wyrażenia algebraiczne Żory
Arkusz nr 1 (liczby zespolone)
PYTANIA DO KARTKÓWKI NR 5, 2013
Wyklad Nr 1 0 Liczby i dokładność obliczeń
kartkówka nr 4
kartkowka nr 1
kartkówka nr 1
Arkusz nr 1 (liczby zespolone)
Test nr 3 Liczby Naturalne, Dokumenty(1)
kartkowka nr 2
zestaw pytań kartkówka nr 2, 5 rok, immunologia, giełda, kolokwium V rok, kolokwium V rok
Kartkowke nr 3
kartkowka nr 2
Test nr 1 Liczby Naturalne, Dokumenty(1)

więcej podobnych podstron