Sposoby zapisywania algorytmów

Algorytmy powininny być tak przedstawiane, aby było możliwe ich jednoznaczne odczytanie i zastosowanie. Można prezentować je poprzez:

  1. Zapis w postaci ciągu kroków ( języka potocznego)
  2. Zapis w postaci graficznej - schematy blokowe
  3. Zapis w języku symbolicznym
  4. Zapis w języku programowania

Algorytm wyrażony w jakimś języku programowania nazywa się programem.




Schematy blokowe

Do tej pory do opisu algorytmów używaliśmy języka potocznego. Były to jednak algorytmy proste, które ma wykonywać człowiek. W przypadku algorytmów skomplikowanych ten zapis będzie nieczytelny, nie sprawdzi się. Dlatego teraz poznamy nowy, bardziej przejrzysty sposób - schematy blokowe .

Schemat blokowy to graficzny zapis algorytmu rozwiązania zadania, przedstawiający opis i kolejność wykonywania czynności realizujących dany algorytm.

W schemacie blokowym poszczególne operacje przedstawione są za pomocą odpowiednio połączonych skrzynek (klocków, bloków). Połączenia określają kolejność i sposób wykonywania operacji realizujących dany algorytm.
W literaturze informatycznej przyjęto pewne standardowe oznaczenia poszczególnych działań (są to figury geometryczne), ale można również używać innych oznaczeń (muszą one jednak być takie same dla określonego typu operacji).

Przykłady skrzynek do prezentacji algorytmu w postaci graficznej:

Elementy schematu blokowego

Symbol graficzny Nazwa skrzynki (bloku) Funkcja Opis
Skrzynki graniczne Skrzynka graniczna Początek algorytmu lub koniec mają kształt owalu. Ze skrzynki START wychodzi tylko jedno połączenie, skrzynka STOP nie ma połączenia wychodzącego.
Skrzynka graniczna
Skrzynka operacyjna Skrzynka operacyjna Wykonywanie różnych działań, np. sumowania ma kształt prostokąta.
Skrzynka wejścia / wyjścia Skrzynka wejścia / wyjścia Wprowadzanie (czytanie) danych lub wyprowadzanie (drukowanie, pisanie) wyników jest równoległobokiem, wchodzi i wychodzi z niej jedno połączenie.
Skrzynka graniczna
Skrzynka warunkowa Skrzynka warunkowa Sprawdzanie warunku, np. czy N > 0 mają kształt rombu. Ze skrzynki wychodzą tylko dwa połączenia: jedno oznaczone TAK, a drugie NIE.



Zasady budowania schematu blokowego:

  • Każda operacja jest umieszczona w skrzynce
  • Schemat ma tylko jedną skrzynkę "Start" i przynajmniej jedną skrzynkę "Stop"
  • Skrzynki są ze sobą połączone
  • Ze skrzynki wychodzi jedno połączenie; wyjątek stanowią skrzynki "Stop" (z której nie wychodzą już żadne połączenia) oraz "warunkowa" (z której wychodzą dwa połączenia opisane Tak i Nie - w zależności od tego czy warunek jest spełniony czy też nie; można wyjść jedną z dwóch dróg).

Jak realizować sytuacje warunkowe ?

Przypomnij: co to jest instrukcja warunkowa ?
Z sytuacjami warunkowymi stykamy się w każdej dziedzinie życia codziennego. Na pytanie "Czy pada deszcz ?" odpowiedź może brzmieć "tak" lub "nie". W zależności od tego, czy warunek jest spełniony, czy nie, wybieramy inne rozwiązanie.

Przykład sytuacji warunkowej:

Sytuacja warunkowa

Ćwiczenie 1
Podaj przykłady sytuacji warunkowych. Przedstaw je graficznie.

Wiesz już, że z sytuacją warunkową mamy do czynienia wówczas, gdy wynik lub dalsze działanie zależy od spełnienia warunku. Na schemacie blokowym sytuacje warunkowe realizujemy przez skrzynkę warunkową. Jak dotąd rozważane przez nas algorytmy przedstawiały problemy z życia. Teraz zajmiemy się rozwiązywaniem prostych zadań obliczeniowych, przy czym algorytm opracowany dla każdego z nich będzie miał postać schematu blokowego.

W skrzynce wpisujemy warunek logiczny, stosując znaki "=" równy,"<>" różny, "<" mniejszy, ">" większy,"<=" mniejszy lub równy, ">=" większy lub równy, np: (a > 5) lub (a <= 20), (a  < 5)OR (a <= 20)
Z systemami warunkowymi spotykamy się m.in. w matematyce i fizyce, wtedy gdy wykonywanie działań jest uzależnione od warunku, jakie muszą spełniać liczby, np. mają być nieujemne albo parzyste.

Ćwiczenie 2
Przestaw schemat blokowy algorytmu obliczania wartości bezwzględnej.

Wartością bezwzględną liczby nieujemnej jest ta sama liczba, a wartością bezwzględną liczby ujemnej jest liczba do niej przeciwna.

Schemat blokowy

Ćwiczenie 3
Wprowadź dwie liczby a i b. Przedstaw w postaci ciągu kroków i graficznie algorytm porównania tych liczb i wyprowadzania na wyjściu większej z nich. W przypadku liczb równych wyprowadź napis "liczby równe".


Na czym polega iteracja, czyli działanie w pętli ?

Przypomnij : co to są instrukcje iteracyjne ?
Czasami trzeba wykonać te same operacje na wielu liczbach. W takich przypadkach nie jest konieczne wielokrotne opisywanie działań lub rysowanie takich samych skrzynek. Stosujemy wówczas iterację. Mówimy także, że działania te wykonywane są w pętli. Liczba powtórzeń tych działań może być z góry określona lub zależeć od spełnienia warunku. Iteracja to najczęściej spotykana technika algorytmiczna.

Iteracja to technika algorytmiczna polegająca na wykonaniu tej samej instrukcji dla n zmiennych.

Iteracja oszczędza czas programisty, który ten musiałby spędzić wpisując instrukcję n razy, zależnie od liczby zmiennych. Liczba powtórzeń w iteracji jest zwykle z góry określona lub zależy od spełnienia określonego warunku.

Ćwiczenie 4
    Przeanalizuj schemat i odpowiedz na pytania:
  1. Jakie są dane wejściowe do zadania i jakich użyto zmiennych pomocniczych?
  2. Jaki cel chcesz osiągnąć (wynik)?
  3. Jaki algorytm zastosowano w operacji dodawania liczb ?
  4. W którym miejscu wykonywane są działania w pętli ?
  5. Które operacje powtarzają się wielokrotnie ?
  6. Co określa liczbę powtórzeń ?
  7. Kiedy kończy się działanie w pętli ?

W analizowanym algorytmie występuje przypisanie typu s:=s + l. Nie jest to równość w rozumieniu matematyki, ale przypisanie zmiennej "s" (sumie) poprzedniej wartości pamiętanej w zmiennej "s" (poprzedniej sumie) zwiększonej o wartość pamiętaną w zmiennej "l" (kolejną liczbę) - w ten sposób powtarzanie operacji przypisania, realizowane jest dodawanie kolejnych liczb naturalnych.
Przypisania l:=l-1 ma tu bardzo istotne znaczenie. Jest to tzw. licznik, w którym następuje obliczanie, ile zostało jeszcze powtórzeń do wykonania. W tym algorytmie liczba powtórzeń została określona na początku instrukcją l:=n.

Iteracja

Gdyby nie umieszczono tego działania nastąpiło by tzw. zapętlenie algorytmu, czyli po sprawdzeniu warunku l>0 działanie w schemacie przebiegałoby zawsze drogą TAK. W realizacji algorytmów iteracyjnych ważne jest prawidłowe określenie sposobu zakończenia działań. Można to zrobić za pomocą licznika, który odlicza kolejne kroki iteracji (liczbę powtórzeń).

Ćwiczenie 5
Narysuj schemat blokowy algorytmu telefonicznego zaproszenia koleżanki w wersji pierwszej

Twoja przeglądarka nie obsługuje Javy, więc nie możesz zobaczyć apletu.

Ćwiczenie 6
Narysuj w postaci schematu blokowego algorytm telefonicznego zaproszenia koleżanki w wersji drugiej

Ćwiczenie 7
Narysuj w postaci schematu blokowego algorytm telefonicznego zaproszenia koleżanki w wersji trzeciej .

Ćwiczenie 8
Narysuj w postaci schematu blokowego algorytm telefonicznego zaproszenia koleżanki w wersji czwartej.

Ćwiczenie 9
Narysuj w postaci schematu blokowego algorytm telefonicznego zaproszenia koleżanki w wersji piątej.


Podsumujmy:
  1. Zapis algorytmu w postaci ciągów kroków.
    Sposób rozwiązania zadania, czyli algorytm, można podać w kilku punktach. Mówimy wówczas, że algorytm jest opisany za pomocą ciągu kroków. Zapis taki polega na podaniu kolejnych wykonywanych operacji, składających się na całe rozwiązanie.
  2. Zapis algorytmu w postaci graficznej - schematy blokowe.
    Schemat blokowy to graficzne przedstawienie ciągu kroków algorytmu, często stosowane jako ideowy rysunek poprzedzający tworzenie programu. Sposób i kolejność działań programu określane są przez wzajemny układ i sposób łączenia bloków ze sobą. Każde działanie (krok) ma w schemacie blokowym swoje standardowe oznaczenie (patrz tabela wyżej).

Wstecz Test Dalej