Lekcja 1 - Podstawy algorytmow
Lekcja 1 - Podstawy algorytmow
Lekcja 1 - Podstawy algorytmow
Na lekcjach matematyki czy fizyki często słyszymy zdanie "rozwiąż zadanie. Większość ich
rozwiązujemy według pewnych schematów. Najpierw wypisujemy dane i zastanawiamy się do
jakiego celu dążymy, a więc jaki ma być wynik. Następnie wypisujemy wzory łączące dane z
szukanymi bądź twierdzenia, które można zastosować.
Przed koniecznością rozwiązywania zadań stajemy również poza szkołą. Robimy to w każdej
innej dziedzinie naszego życia, na przykład:
telefonując do koleżanki i zapraszając ją na ciasto
gotując jajko na twardo
kupując piłkę w sklepie
znajdując najniższego ucznia w klasie
pisząc wypracowanie
Również przy takim typie zadań musimy określić dane i warunki, które muszą one spełniać.
formułujemy także wynik, który pragniemy uzyskać.
Działania niealgorytmiczne
Zastanów się: Czy wszystkie działania są algorytmiczne ?
Czy dla każdego zadania można skonstruować algorytm? Czy rozwiązanie każdego zadania
polega na wykonywaniu jednoznacznie opisanych, ściśle określonych czynności? Oczywiście, że
nie. Istnieją zadania, których realizacji nie można ująć w ramy jakiegoś planu działania. Taki
charakter ma np. każda twórczość artystyczna. Konieczna jest do tego wyobraźnia i twórcze
działanie, a na to nie ma przepisu.
Budowa algorytmów
Algorytmy powinny być tak przedstawiane, aby było możliwe ich jednoznaczne odczytanie i
zastosowanie. Niektóre algorytmy można opisać w języku potocznym, zwłaszcza wtedy, gdy
jego wykonawcą ma być człowiek (w informatyce zajmujemy się opracowywaniem algorytmów,
których wykonanie powierzamy komputerom).
Z czego składa się algorytm?
Zawiera on opis danych, opis wyników oraz plan działania, czyli przetworzenia danych. Plan ten
można przedstawić w postaci ciągu czynności, które muszą być wykonane w określonej
kolejności. Opis czynności występujących w algorytmie nazywamy instrukcjami.
Algorytm liniowy
Ćwiczenie 1
Opracuj algorytm gotowania jaja na miękko.
Zastanów się jak ugotować jajko na miękko. Na początku opracowywania algorytmu przyjmijmy
założenie, że używamy kuchenki gazowej, posiadamy garnek i wodę. Oczywiście niezbędne jest
też samo jajko. Zakładamy również, że nic nie utrudni samej czynności, to znaczy np. w trakcie
gotowania nie zostaniemy pozbawieni dopływu gazu, czy też osoba nie wie co to garnek.
Ćwiczenie 2
Opracuj algorytm telefonicznego zaproszenia koleżanki na ciasto. Numer telefonu : 666-22-88.
Wiesz już jak wyglądał poprzedni algorytm oraz co to jest algorytm liniowy. W tym przypadku
zrobimy założenie, że nic nie utrudni połączenia (a więc już za pierwszym razem zostaniemy
połączeni z wybraną osobą), a wykonawca czynności zna cyfry i wie jak wybiera się je z tarczy
telefonu.
Instrukcja warunkowa
W rzeczywistości, większość algorytmów ma bardziej rozbudowaną strukturę. Często występują
w nich instrukcje, których wykonanie uzależnione jest od spełnienia pewnego warunku lub też
spełnienie pewnego warunku powoduje wykonanie jednej instrukcji, a niespełnienie go -innej.
Taką instrukcję nazywamy instrukcją warunkową. Działa ona według jednego z dwóch
przedstawionych schematów:
Jeśli spełniony jest warunek W, wykonaj instrukcję A.
Jeśli spełniony jest warunek W, to wykonaj instrukcję A; w przeciwnym razie wykonaj instrukcję B.
Instrukcja A i B opisuje jedną instrukcję lub instrukcję składającą się z ciągu instrukcji
wykonywanych sekwencyjnie. Instrukcja warunkowa pozwala dokonać wyboru jednej z dwóch
dalszych dróg wykonania algorytmu.
Ćwiczenie 2
Popraw opracowany wcześniej algorytm tak, aby uwzględniał sytuację, gdy po wybraniu numeru
jest on zajęty lub połączenie okazało się błędne.
Kiedy słychać sygnał zajętości numeru, a więc nie udało się uzyskać połączenia trzeba Odłożyć
słuchawkę. Tak samo postępujemy, gdy nawiązane zostało połączenie z innym Numerem.
Aby zrealizować taką sytuację zastosujemy instrukcję warunkową. Zrobimy to po to, aby opisać
czynności, powinny być wykonane wtedy kiedy zostało nawiązane poprawne połączenie, jak
również nie zostało nawiązane. Zauważ, że wtedy wykonawca znajdzie się w punkcie wyjścia,
czyli jakby w ogóle nie podjął próby telefonowania.
Instrukcja iteracyjna
Instrukcja iteracyjna - ze znaną ilością powtórzeń
Przyjrzyj się uważnie algorytmowi. Zauważyłeś, że istnieją tu powtarzające się instrukcje, aż
czterokrotnie występuje "Wybierz cyfrę 2".
Takie wielokrotne powtarzanie niektórych instrukcji jest cechą charakterystyczną wielu
algorytmów, jednak nie zawsze (tak jak w tym algorytmie) możemy określić dokładnie liczbę
powtórzeń. Może ona zależeć od spełnienia pewnych warunków. Wielokrotne powtarzanie
instrukcji umożliwiają instrukcje iteracyjne (pętle) . Działa ona według schematu:
Ćwiczenie
Popraw opracowany wcześniej algorytm tak, aby sekwencję jednakowych czynności zastąpić
pętlą.
Instrukcja iteracyjna
W naszym algorytmie sprawdzamy warunek uzyskania połączenia z koleżanką (krok 4).
Czasami zdarza się jednak, że już po podniesieniu słuchawki słychać, że linia jest zajęta.
Należałoby wtedy odłożyć słuchawkę i ponownie ją podnieść. Jeśli okazałoby się, że nadal
słychać w niej sygnał zajętości linii czynność należałoby powtórzyć. Musielibyśmy wykonywać
te czynności dopóki linia nie byłaby "czysta". W takim przypadku stosujemy instrukcję, która
działa według schematu: