Algorytmy Podstawowe pojęcia.

Slides:



Advertisements
Podobne prezentacje
Schemat blokowy M START KONIEC
Advertisements

Algorytmy – różne przykłady
Programowanie I Rekurencja.
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
ALGORYTM Co to jest algorytm?
PODSUMOWANIE.
Materiały pochodzą z Platformy Edukacyjnej Portalu
ZŁOŻONOŚĆ OBLICZENIOWA
Opracowała: Elżbieta Fedko
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 1: Wprowadzenie do programowania.
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
ALGORYTMY.
Matura z informatyki Arkusz I.
Kinga Kołodziej, Marta Trębicka
Algorytmy i algorytmika Opracowanie: Teresa Szczygieł
Wstęp do interpretacji algorytmów
CO TO JEST ALGORYTM!.
Dr Anna Kwiatkowska Instytut Informatyki
Algorytmy Marek Pudełko
Algorytmy Marek Pudełko
Algorytmy i algorytmika Opracowanie: Maciej Karanowski
ALGORYTMY Opracowała: ELŻBIETA SARKOWICZ
Budowa algorytmów Algorytm: skończony ciąg operacji wraz z ściśle sprecyzowanym porządkowaniem ich wykonywania, które po realizacji dają rozwiązanie dowolnego.
ALGORYTMY.
Algorytmy Opracowanie: Maria Skalska na podstawie „Informatyka 2000” wydawnictwa Czarny Kruk.
RODZAJE ALGORYTMÓW Źródło: Jolanta Pańczyk - Informatyka Europejczyka. Podręcznik dla gimnazjum. Część II.
Podstawy programowania
Metody przedstawiania algorytmów.
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Algorytmy.
Podstawy układów logicznych
PORZĄDEK WŚRÓD INFORMACJI KLUCZEM DO SZYBKIEGO WYSZUKIWANIA
20 września 2003r. Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie Wstęp do algorytmiki Autor: Marek Magiera.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Podstawy analizy matematycznej II
Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie
ALGORYTMY.
Algorytmy.
Elżbieta Fiedziukiewicz
Początek, koniec lub przerwanie algorytmu
Spis treści W świecie algortmów -Budowa algorytmu
Warsztaty dla nauczycieli przedmiotów informatycznych
ZAPIS BLOKOWY ALGORYTMÓW
Algorytmy.
Algorytmika.
Instrukcje iteracyjne
Wprowadzenie do algorytmiki
Algorytmika Iteracje autor: Tadeusz Lachawiec.
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Zapis blokowy algorytmów
Algorytmy- Wprowadzenie do programowania
opracowała: Anna Mikuć
Algorytm to przepis prowadzący do osiągnięcia celu lub rozwiązania problemu, opisujący każdy krok. Algorytmika to dziedzina zajmująca się algorytmami (własnościami,
Algorytmy.
Wstęp do interpretacji algorytmów
Temat: Schematy blokowe - ćwiczenia
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Liczby 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …(i tak dalej) nazywamy liczbami naturalnymi. Tak jak z liter tworzy się słowa, tak z cyfr tworzymy liczby. Dowolną.
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Algorytmy i algorytmika Opracowanie: Teresa Szczygieł
Sposoby zapisu algorytmu
Algorytm to przepis prowadzący do osiągnięcia celu lub rozwiązania problemu, opisujący każdy krok. Algorytmika to dziedzina zajmująca się algorytmami (własnościami,
Zrozumieć, przeanalizować i rozwiązać
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Algorytmy Podstawowe pojęcia

Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn Musy al-Chorezmi (z Chorezmu), który ok. 820 r n.e. opisał pozycyjny system kodowania dziesiętnego liczb i sztukę liczenia w tym systemie. W XII w. Europie przetłumaczono jego książkę i rozpoczęto wykonywanie obliczeń metodą "pisemną". Algorytmem nazywamy skończony ciąg instrukcji prowadzących do rozwiązania danego problemu lub zadania. Jest to przepis postępowania prowadzący do osiągnięcia jakiegoś celu. Implementacja to zapis algorytmu w języku programowania.

Rozwiązując jakikolwiek problem (zadanie) stosujemy zazwyczaj określoną metodę (przepis), która ma pozwolić na uzyskanie wyniku (rozwiązania). Warunkiem przystąpienia do rozwiązywania jakiegokolwiek problemu jest posiadanie niezbędnych wiadomości i doświadczenia

Algorytmika - podstawowy dział informatyki poświęcony poszukiwaniom, konstruowaniu i badaniom algorytmów, zwłaszcza w kontekście ich przydatności do rozwiązywania problemów za pomocą komputerów. Program komputerowy - to logicznie uporządkowany ciąg instrukcji języka programowania realizujący algorytm. Specyfikacja zadania – szczegółowy opis zadania w którym wymienia się dane wejściowe i wyniki oraz warunki jakie muszą spełniać, czyli określa się związek między danymi a wynikami. Przykład: Uporządkuj rosnąco (A-Z) zbiór nazwisk i imion uczniów klasy drugiej. Dane: nieuporządkowany zbiór nazwisk i imion uczniów klasy Wynik: uporządkowany alfabetycznie zbiór nazwisk i imion uczniów klasy

Oblicz wartość bezwzględną dowolnej liczby rzeczywistej Przykład: Oblicz wartość bezwzględną dowolnej liczby rzeczywistej Dane: dowolna liczba rzeczywista a Wynik: wartość bezwzględna liczby a równa w Przykład: Uporządkuj rosnąco (A-Z) zbiór nazwisk i imion uczniów klasy drugiej. Dane: nieuporządkowany zbiór nazwisk i imion uczniów klasy Wynik: uporządkowany alfabetycznie zbiór nazwisk i imion uczniów klasy Przy specyfikacji zadania warto nadać danym i wynikom nazwy

Napisz specyfikacje do zadania Zadanie 1 Obliczenie średniej arytmetycznej trzech dowolnych liczb rzeczywistych Dane: ???????????????????????????????????????? Wynik: ??????????????????????????????????????? Napisz specyfikacje do zadania Zadanie 2 Obliczenie wartości bezwzględnej dowolnej liczby rzeczywistej Dane: ???????????????????????????????????????? Wynik: ???????????????????????????????????????

Napisz specyfikacje do zadania Zadanie 1 Obliczenie średniej arytmetycznej trzech dowolnych liczb rzeczywistych Dane: dowolne liczby rzeczywiste a, b, c. Wynik: wartość średniej arytmetycznej liczb a, b ,c równa Śr Napisz specyfikacje do zadania Zadanie 2 Obliczenie wartości bezwzględnej dowolnej liczby rzeczywistej Dane: dowolna liczba rzeczywista a Wynik: wartość bezwzględna liczby a równa w

Algorytmy prezentujemy/zapisujemy w różny sposób: - w języku naturalnym; (opisowo) - w pewnej konwencji notacyjnej; (jednoznacznie określony system oznaczeń) - za pomocą schematów blokowych; (graficznie) - w języku programowania; (Pascal, V-Basic) Cechy algorytmu: - skończoność - realizowany ciąg instrukcji powinien mieć swój koniec; - określoność - operacje i ich porządek muszą być ściśle określone; - ogólność - stosowanie danego algorytmu nie powinno się ograniczać do pojedynczego problemu, ale do całej klasy problemów tego samego typu; - efektywność - algorytm prowadzić do rozwiązania najkrótszą drogą;

Lista kroków algorytmu: to przedstawienie algorytmu w kolejnych punktach (krokach), każdy punkt tej listy zawiera opis wykonywanej czynności: np. Zacznij algorytm Wprowadź wartość danej n Oblicz wartość wyrażenia w := -b/a Jeśli x<0, to powtarzaj krok 2 Zakończ algortm Przy zapisie algorytmów stosujemy zamiast znaku równości „=„ tzw. znak przypisania „:=„ := takie oznaczenie interpretowane jest jako przypisanie zmiennej po lewej stronie znaku wartości wyrażenia obliczonego po prawej stronie Z matematycznego pkt. widzenia równość n= n+1 nie jest prawdziwa jednak w opisach algorytmów można stosować polecenie n:= n+1 którego wykonanie spowoduje powiększenie zmiennej n o 1

Przykład: Przedstaw w postaci listy kroków algorytm obliczania średniej arytmetycznej trzech dowolnych liczb rzeczywistych. Dane: dowolne liczby rzeczywiste a, b, c Wynik: warność średniej arytmetycznej liczb a, b, c równa Sr Zacznij algorytm Wprowadź wartość trzech liczb: a, b, c Oblicz wartość wyrażenia: S:= a + b + c Oblicz wartość wyrażenia: Sr:= S/3 Wyprowadź wynik: Sr Zakończ algorytm

Przykład: Przedstaw w postaci listy kroków algorytm obliczania wartości bezwzględnej dowolnej liczby rzeczywistej. Dane: dowolna liczba rzeczywista a Wynik: warność bezwzględna liczby a równa w Zacznij algorytm Wprowadź wartość liczby: a Jeśli a>=0 to w:= a w przeciwnym wypadku w:= -a Wyprowadź wynik: w Zakończ algorytm

Schemat blokowy algorytmu Schemat blokowy jest graficznym przedstawieniem zbioru informacji i wzajemnych powiązań między nimi, uwzględniający kolejność wykonywania operacji. Schemat blokowy składa się z szeregu figur geometrycznych zwanych skrzynkami oraz łuków skierowanych - połączeń, łączących te skrzynki . Wewnątrz skrzynek zawarte są informacje, relacje oraz nazwy operacji . Kolejność wykonywania działań wyznaczają połączenia.

W procesie tworzenia schematu blokowego obowiązują zasady: każda operacja, relacja, informacja zawarta jest w skrzynce kolejność wykonywania operacji wyznaczają połączenia między skrzynkami każde połączenie zaczepione jest początkiem do jednej skrzynki, a końcem do innej skrzynki; żadne połączenie nie rozdziela się skrzynki przybierają kształty: prostokąta, rombu ( lub sześcianu ), równoległoboku, okręgu lub owalu Podstawową zasadą obowiązującą przy budowę schematów blokowych, jest łączenie strzałek wychodzących ze strzałkami wchodzącymi. Schematy blokowe są zbudowane ze strzałek oraz niżej przedstawionych elementów.

Skrzynki graniczne START / STOP - mają kształt owalu Oznaczają one początek i koniec schematu. Skrzynka START ma tylko jedno połączenie wychodzące a skrzynka STOP tylko jedno połączenie dochodzące. Wewnątrz skrzynki umieszcza się napis START, BEGIN, POCZĄTEK, KONIEC, STOP, END. Schemat może mieć tylko jedną skrzynkę START oraz co najmniej jedną skrzynkę STOP. Ponadto ze skrzynki START można dotrzeć wzdłuż połączeń do dowolnej skrzynki schematu oraz z każdej skrzynki schematu istnieje droga do skrzyni STOP

Skrzynka operacyjna - ma kształt prostokąta wewnątrz umieszcza się opis czynności. Ze skrzynki operacyjnej odchodzi tylko jedno połączenie. W systemie schematów blokowych w skrzynce operacyjnej można umieszczać opisy czynności, instrukcje przypisania, definicje. W przypadku występowania kilku opisów należy je oddzielać przecinkami

Skrzynka warunkowa - ma kształt sześcianu lub rombu Wewnątrz umieszczony jest warunek, który decyduje o dalszej kolejności wykonywania działań . Zazwyczaj dąży się do tego aby skrzynka warunkowa miała dokładnie dwa wyjścia. Każdym z dwóch wyjść należy opisać słownie T, Tak, True, Yes, Prawda lub N, Nie,No, Fałsz, False.

Skrzynka wejścia / wyjścia - jest równoległobokiem, wewnątrz którego umieszczone jest określenie rodzaju wykonywanej operacji . W przypadku w(y)prowadzania wartości zmiennych należy ująć w nawiasy okrągłe ich nazwy a w przypadku w(y)prowadzania tekstu umieszcza się go w cudzysłowy. Połączenie łączy bloki tworzy je linia prosta lub łamana

Skrzynka łącznikowa - ma kształt okręgu może być używana do oznaczenia miejsc w schemacie , które mają być traktowane jako jedne i te same. Wewnątrz umieszcza się numer od 1 do 9999. Każda ze skrzynek łącznikowych ma tylko jedno połączenie. Skrzynka o tym samym numerze musi występować co najmniej dwukrotnie, przy czym skrzynka łącznikowa o ustalonym numerze z połączeniem wychodzącym może występować co najwyżej raz. Skrzynka komentarza ma kształt prostokąta bez krótszego, prawego boku. Wewnątrz umieszcza się pomocnicze informacje objaśniające połączenia lub wykonywane operacje . Skrzynka informacyjna połączona jest ze schematem za pomocą poziomej linii przerywanej.

W schemacie występują przypisania: Algorytm obliczania średniej arytmetycznej trzech dowolnych liczb rzeczywistych start W schemacie występują przypisania: S:= a + b + c oznacza że zmiennej S przypisz wartość trzech liczb pamiętanych w zmiennych a, b i c Śr := S/3 oznacza – zmiennej Śr przypisz wynik dzielenia wartości zmiennej S przez 3 Wprowadź (a, b, c) S:= a + b + c Śr:= S/3 Wyprowadź (Śr) koniec

Drzewo Algorytmów Wśród graficznych prezentacji algorytmów istnieje struktura drzewiasta. Podobnie do drzewa folderów/katalogów drzewo algorytmu rozwija się w dół. Na górze jest „korzeń„ a połączenia „gałęzie” wskazują kierunek realizacji algorytmu, skierowane są do dołu. Drzewo jest uproszczoną odmianą schematu blokowego, może być też wykorzystane w analizie przebiegu działania algorytmu oraz do określenia jego złożoności. A >= 0 Operacje zapisujemy w wierzchołkach drzewa, nie rysując figur geometrycznych. W liściach jako elementach końcowych wykresy są umieszczone operacje końcowe. NIE TAK Przykład drzewa algorytmu W := a W := -a

Drzewo wyrażenia: W algorytmice drzewa są tak popularne, że wykonuje się za ich pomocą obliczenia wartości wyrażeń. W wierzchołkach końcowych takiego drzewa wpisuje się liczby lub zmienne a w pozostałych – operatory działań. Wykonywanie obliczeń zaczynamy jednak od dołu czyli od liści czyli odwrotnie niż w drzewie algorytmu / + + ( )2 ( )2 y x y x

Algorytm liniowy Cechy algorytmu liniowego: algorytm składający się z ciągu instrukcji, które są wykonywane jedna po drugiej w kolejności, jaka wynika z ich następstwa w zapisie. Nazywany jest również algorytmem sekwencyjnym. (Realizuje jeden ciąg działań sekwencyjną (blok po bloku) ) W takim algorytmie nie sprawdza się warunków, nie można się przemieszczać w inne niż kolejne miejsca takiego algorytmu np. Nie wraca się do wcześniejszych ani nie przechodzi do dalszych kroków lub bloków w schemacie blokowym. Cechy algorytmu liniowego: nie sprawdza się żadnych warunków nie przemieszcza się w inne niż kolejne miejsca algorytmu nie wraca się do wcześniejszych punktów lub bloków algorytmu.

Wprowadź wartości trzech liczb: a, b, c START PODAJ(a) PODAJ(b) PISZ(a+b) STOP Zacznij algorytm. Wprowadź wartości trzech liczb: a, b, c Oblicz wartość wyrażenia: S:=a+b+c. Oblicz wartość wyrażenia: Sr:=S/3. Wyprowadź wynik: Sr. Zakończ algorytm.

Algorytm z warunkami Algorytm z warunkami charakteryzuje się realizacją kilku ciągów działań, występowaniem sytuacji warunkowych (jednej lub więcej). Ich wynik decyduje o wyborze danego ciągu działań. Prezentowanie algorytmu z warunkami w schemacie blokowym jest bardziej przejrzyste niż w liście kroków, lepiej widoczne są przejścia w zależności od spełnienia bądź niespełnienia warunku.

Algorytm z warunkami / wyborem / Przykłady schematów blokowych ELI

Która z 2 –ch liczb jest większa a czy b?. Ćwiczenie Która z 2 –ch liczb jest większa a czy b?. Korzystając z programu ELI zaprojektuj działający schemat algorytmu

Obliczanie pola lub objętości kuli o promieniu r Start Krok 1: Wczytaj promień kuli (r) Krok 2: Czy liczyć pole Krok 3: Pokaż wynik (pole)  4 * 3.14 * r * r                            (objętość) 4/3*3.14*r*r*r Koniec

Obliczanie Miejsca zerowe funkcji liniowej y=ax+b.

Algorytm rozgałęziony /warunkowy/ - pierwiastki równania kwadratowego Zbuduj na podstawie informacji o funkcji kwadratowej algorytm który będzie sam wyliczał x Funkcja kwadratowa jest to funkcja np. x2+x-2=0. Wzór ogólny tej funkcji ma postać: ax2+bx+c=0. Aby wyliczyć x np. z równania x2-3x-4=0 musimy znać wyróżnik ( delta). Delta zawsze równa jest b2-4ac. "a" jest to liczba stojąca przy x2, "b" która znajduje się przy x, a "c" to wyraz wolny. I tak a=1, b=-3, c=-4. Więc delta = (-3)2-4*1*(-4)=25. Gdy delta jest większa od zera to mamy 2 rozwiązania x1=(-b-sqrt(delta))/2a i x2=(-b+sqrt(delta))/2a W naszym równaniu x1=(3-5)/2=-1 a x2=(3+5)/2=4. x1 i x2 są rozwiązaniami tego równania. Weźmy następną możliwość i nowe równanie x2-4x+4=0. Gdy delta równa jest 0 to mamy jedno Rozwiązanie. x-b/2a. x=4/2=2 Gdy delta jest mniejsza od zera ( np. w równaniu x2+3x+4) to nie ma żadnego rozwiązania.

Miejsca zerowe funkcji kwadratowej. Uwzględnij w danym algorytmie przypadki gdy delta =0 i oba pierwiastki są identyczne. Zabezpiecz dany algorytm przed wprowadzeniem a=0

Lech Tomasz Rafał Marcin Grzegorz

T: Iteracja (pętle w algorytmach) to wielokrotne powtarzanie pewnych czynności łac. iteratio – powtarzanie Jest to metoda polegająca na wielokrotnym kolejnym zastosowaniu tego samego algorytmu postępowania, przy czym wynik poprzedniej operacji stanowi dane wejściowe dla kolejnej Instrukcje iteracyjne - umożliwiają zrealizować pętlę programową, tj. wielokrotnie wykonać określony ciąg instrukcji (operacji). Cechą charakterystyczną jest występowanie w nich pomocniczej zmiennej dynamicznej, tzw. licznika "zliczającego" ilość wykonań pętli

Opis algorytmu sumowania kolejnych czterech liczb Zacznij algorytm Suma jest równa 0 Wprowadź pierwszą liczbę Do poprzedniego wyniku sumy dodaj wprowadzoną liczbę Wprowadź drugą liczbę Wprowadź trzecią liczbę Wprowadź czwartą liczbę Wyprowadź wynik sumy Zakończ algorytm Aby zapobiec zapisywaniu powtarzających się bloków operacji stosujemy iteracje (pętle) czyli powrót na początek powtarzającej się operacji co spowoduje ponowne wykonanie tego samego bloku.

Zadanie: Oblicz sumę n kolejnych liczb naturalnych Ustalamy ile liczb dodać (pytamy o n) Ustalamy od jakiej liczby zacząć dodawanie (dla ułatwienia zacznijmy od 1) Tworzymy zmienną suma (na razie równą 0) Dodajemy do sumy kolejne liczby (suma za każdą operacją powiększa się), tak długo aż dodamy wszystkie n liczb Suma:=0 Suma+1 (Suma+1)+2 (Suma+1+2)+3 ... Suma:= Suma+i gdzie i będzie zwiększane od 1 do n

Algorytmy z pętlą iteracyjną Algorytm obliczania średniej n podanych kolejno liczb Czynności wykonywane w pętli to: Pytanie o wartość kolejnej liczby i zapisanie jej do zmiennej, Dodanie liczby do poprzedniej sumy Zwiększenie licznika o 1, Sprawdzenie czy licznik osiągnął odpowiednią wartość (n).

Zadanie Oblicz iloraz całkowity i reszty z dzielenia dwóch liczb naturalnych a i b

Rekurencja Z techniką rekurencji często spotykamy się w życiu codziennym. Jeśli popatrzymy w lustro, a przed nim ustawimy odpowiednio drugie to zauważymy, że odbija się w nim obraz z lustra, na które patrzymy. Jeżeli jemy zupę: Trzeba zjeść łyżkę zupy i jeść zupę dalej, aż talerz będzie pusty. Korzystamy z przepisu, który odwołuje się sam do siebie w trakcie objaśniania, co należy robić. O rekurencji mówimy wtedy, gdy definiując pojęcie odwołujemy się do niego samego. To należy podać znaczenie: - rekurencja od łac. recursio = powracanie. Funkcja wywołuje samą siebie (ewentualnie inną, która wywoła pierwszą funkcję), a potem wykonywanie programu wraca do pierwszej.

A tu jest wierszyk który obrazuje zasadę rekurencji: Wpadł pies do kuchni i porwał mięsa ćwierć A jeden kucharz głupi, zarąbał go na śmierć A drugi kucharz mądry, co serce i litość miał Postawił mu nagrobek i taki napis dał: Wpadł pies do kuchni i porwał mięsa ćwierć A jeden kucharz głupi, zarąbał go na śmierć A drugi kucharz mądry, co serce i litość miał Postawił mu nagrobek i taki napis dał: Wpadł pies do kuchni i porwał mięsa ćwierć A jeden kucharz głupi, zarąbał go na śmierć A drugi kucharz mądry, co serce i litość miał Postawił mu nagrobek i taki napis dał: Wpadł pies ... Ten natomiast jest wierszem iteracyjnym: Na zielonej łączce 1, 2, 3 Pasły się zajączki 1, 2, 3 A to była pierwsza zwrotka teraz będzie druga zwrotka. Na zielonej łączce 1, 2, 3 Pasły się zajączki 1, 2, 3 A to była druga zwrotka teraz będzie trzecia zwrotka: Na zielonej łączce 1, 2, 3 Pasły się zajączki 1, 2, 3 A to była trzecia zwrotka teraz będzie czwarta zwrotka: Na zielonej ...

Funkcję rekurencyjną nazywamy taką funkcję która wywołuje samą siebie Funkcję rekurencyjną nazywamy taką funkcję która wywołuje samą siebie. Funkcja taka musi posiadać warunek zakończenia rekurencji. Jeżeli takiego warunku by nie posiadała funkcja wywoływała by siebie bez końca. Funkcja taka jest wykonywana trochę wolniej niż funkcja nierekurencyjna, ale kod jest zdecydowanie krótszy i prostszy w niektórych wypadkach. Najlepszym przykładem na funkcję rekurencyjną jest silnia Obliczanie silni jest sztandarowym przykładem używania rekurencji: n!=n*(n-1)! Przykład: 5!=5*4!=5*4*3!=5*4*3*2!=5*4*3*2*1!=5*4*3*2*1*0!=5*4*3*2*1*1=120 Silnia (n!) to iloczyn n kolejnych liczb naturalnych, przy czym dodatkowo zachodzi 0!=1. Ze wzoru tego wynika, że aby obliczyć np. 4!, należy najpierw obliczyć 3!. Ale żeby obliczyć 3! trzeba obliczyć 2! itd. aż dojdziemy do 0!, które jak wiemy wynosi 1. Sposób obliczenia 4! wygląda więc następująco: 4!=4*3!=4*3*2!=4*3*2*1!=4*3*2*1*0!=4*3*2*1*1=24

Można pracować na kilku planszach Można pracować na kilku planszach. Wykorzystamy procedury - podalgorytmy wywoływane przez główny algorytm. Mogą być budowane na tej samej planszy co główny algorytm, lub można je budować na osobnych planszach.