Ad 1.
Typowym rozwiązaniem rekurencyjnym może być obliczanie silni na podstawie iloczynu wartości silni poprzednika i wartości liczby. Zbudowanie programu w ELI nie powinno przysporzyć wiele kłopotu.
Ćwiczenie 1. Przygotuj program obliczjący silnię liczb od 0 do 10 i zapisujący wyniki do tablicy.![]()
![]()
- Otwórz w ELI nowy projekt zawierający planszę i tablicę.
- Na planszy zbuduj program główny:
- przypisanie liczbie wartości 1 i silni wartości 1,
- wypisanie silni dla wartości 0 w tablicy na pozycji [0. 0],
- wywołanie procedury SILNIA z parametrami liczba i silnia.
- Dodaj procedurę SILNIA
- przypisanie silni wartości iloczynu liczby i silni,
- wypisanie silni do tablicy w kolumnie 0 i wierszu "liczba".
- przypisanie liczbie wartości wiekszej o 1,
- sprawdzenie warunku, czy liczba jest większa od 10,
- jeśli tak, zakończenie procedury, w przeciwnym razie wywołanie procedury.
- Sprawdź działania i zapisz wyniki na dyskietce jako SILNIA.PRJ.
Ad 2.
Rozwiązanie iteracyjne znane jest nam z poprzednich lekcji. Wykorzystując analizę oraz opis zaczerpnięty ze strony producenta bez problemu przygotujesz rekurencyjną wersję algorytmu.
ALGORYTM EUKLIDESA REKURENCYJNIE
Algorytm Euklidesa przedstawiony rekurencyjnie powinien zawierać procedurę rekurencyjną, czyli taką w której będzie zawarte odwołanie do niej samej.
W algorytmie głównym czytane są dwie liczby: a i b, dla których należy znaleźć NWD wywołując procedurę rekurencyjną Euklides z parametrami a i b oraz jest wprowadzany wynik.
Procedura Euklidesa realizuje algorytm rekurencyjny szukania NWD danych liczb. Procedura ta ma dwa parametry formalne (x i y), którym w momencie wywołania przypisywane są aktualne wartości. Jeśli obie wprowadzone liczby są sobie równe, to dowolna z nich jest szukanym dzielnikiem. Jeżeli natomiast x nie jest równe y, to od większej z tych liczb odejmujemy mniejszą i wywołujemy tę samą procedurę dla nowej pary liczb.
Definicja procedury:
Euklides:= Euklides (x,y)
Warunek x<>y
Jeśli TAK, to czy x>y; jeśli TAK, to
Euklides:=Euklides (x-y,y); jeśli NIE, to
Euklides:=Euklides (x,y-x); jeśli NIE, to
Euklides:=x
Ćwiczenie 2. Przygotuj i zapisz jako NWD3.PRJ rozwiązanie obliczania NWD z wykorzystaniem rekurencji.