Algorytmy i algorytmika Opracowanie: Maciej Karanowski
-
Upload
gage-bauer -
Category
Documents
-
view
45 -
download
0
description
Transcript of Algorytmy i algorytmika Opracowanie: Maciej Karanowski
Algorytmy
i algorytmika
Opracowanie: Maciej Karanowski
Algorytmy
ALGORYTMY I ALGORYTMIKA
Najważniejsze pojęcia
Historia algorytmów
Co należy koniecznie wiedzieć?
Sposobyprzedstawiania
algorytmów
Sprawdź się!
Algorytmy
Poznajmy najważniejsze pojęcia...
Mimo, że słowo „algorytm” brzmi trochę obco,
to jednak okazuje się, że pod nim kryje się nasz dobry
znajomy!
Definicja mówi:
Algorytm jest to precyzyjny opis sposobu
rozwiązania określonego zadania lub osiągnięcia
jakiegoś celu. Rozumiem!
Algorytmy
Poznajmy najważniejsze pojęcia...
A l g o r y t m i k a
jest działem informatyki zajmującym się
poszukiwaniem, konstruowaniem i badaniem
własności algorytmów w kontekście ich
przydatności do rozwiązywania problemów za
pomocą komputerów.
Trzeba to przemyśleć!
Algorytmy
Kilka słów o historii algorytmów
Pojęcie algorytm pochodzi od brzmienia
fragmentu nazwiska arabskiego matematyka
Muhammada ibn Musa al.- Chorezmiego, uznawanego za prekursora obliczeniowych metod
w matematyce.
Żył na przełomie VIII i IX wieku i to on upowszechnił
system dziesiętny i stosowanie zera jako symbolu
oznaczającego „nic”.
Algorytmy
Kilka słów o historii algorytmów
W historii informatyki można spotkać
wiele śladów poszukiwania sposobów
rozwiązywania problemów nazywanych
algorytmami.
To głównie matematycy dążyli do
wynalezienia maszyny, która
wykonywałaby czasochłonne i żmudne
obliczenia. Najstarsze odnalezione
przyrządy do liczenia tzw. abakusy
pochodzą z X w. p.n.e.
Później powstały liczydła, jedno z takich
liczydeł, używanych do dziś w Japonii,
to soroban widoczny obok na zdjęciu.
Algorytmy
Kilka słów o historii algorytmówJednym z najstarszych i najbardziej znanych
algorytmów jest algorytm Euklidesa, który podany
został już 2500 lat temu.
Algorytm ten służy do obliczania największego dzielnika
dwóch liczb (ale nie ma nic wspólnego z rozkładem liczb
na czynniki pierwsze) i należy obecnie do kanonu
wiedzy informatycznej.
Wydaje się, że każdy informatyk powinien znać zasadę działania tego algorytmu.
Algorytmy
Z algorytmami w szkole po raz pierwszy spotykasz się
na lekcjach matematyki, kiedy stosujesz pewien sposób
rozwiązania zadania np. algorytm pisemnego mnożenia
dwóch dowolnych liczb.
Czy potrafisz sformułować przepis na obliczenie
iloczynu dwóch liczb sposobem pisemnym?
Algorytm jest pojęciem ściśle związanym z
informatyką, a każdy program komputerowy jest zapisem
pewnego algorytmu (wyrażonym w określonym języku
programowania).
Co należy koniecznie wiedzieć?
Algorytmy
Co należy koniecznie wiedzieć?
Wykonawcą algorytmu może być komputer lub człowiek.
Każdy problem, który ma być rozwiązany musi zostać
najpierw poddany s p e c y f i k a c j i, która polega
na dokładnym opisie zadania.
W ramach specyfikacji problemu podaje się:
• d a n e dla rozwiązywanego problemu
• w a r u n k i, jakie te dane muszą spełniać
• w y n i k i z w a r u n k a m i, jakie muszą one spełniać
• z w i ą z e k w y n i k ó w z d a n y m i
Algorytmy
Sposoby przedstawiania algorytmów
Opis słowny Lista kroków
Zapis z wykorzystaniemjednego z języków programowania
Schemat blokowy
Algorytmy
Często w codziennym życiu masz do czynienia
z sytuacją, w której przekazujesz komuś przepis
na wykonanie jakiegoś zadania czy dojścia do
określonego celu. Jeżeli jest to przepis, który
precyzyjnie określa kolejne czynności i w
jednoznaczny sposób pozwala dojść do celu, to
właśnie posługujesz się opisem słownym algorytmu.
Opis słowny algorytmu
Algorytmy
1. Podejdź do telefonu
2. Podnieś słuchawkę
3. Sprawdź, czy jest sygnał...
4. ...
Zapewne domyślasz się – jest to początek algorytmu wykonania telefonu podany w postaci listy kroków
Zobacz też algorytm Euklidesa Pamiętaj by w jednym punkcie (kroku) opisać
t y l k o j e d n ą o p e r a c j ęt y l k o j e d n ą o p e r a c j ę
Algorytm w postaci listy kroków
Algorytmy
Schemat blokowy
jest graficzną reprezentacją
słownego zapisu algorytmu
Elementy, z których buduje się schematy
blokowe poznasz przeglądając kolejne slajdy
Algorytm w postaci schematu blokowego
Muszę je koniecznie obejrzeć
Algorytmy
Podstawowe klocki schematu blokowego
KLOCKI GRANICZNE
Używany do zakończenia algorytmu (zwykle jeden, można używać kilku - algorytm ma wtedy mniej ścieżek i jest bardziej przejrzysty)
Używany do rozpoczęcia algorytmu (tylko jeden)
Stop
Start
Algorytmy
KLOCKI WEJŚCIA I WYJŚCIA
Służy do wprowadzania danych (wartości) z zewnątrz
Służy do wyprowadzania danych
podajwartość
wyprowadźwartość
Algorytmy
KLOCEK WYKONAWCZY
W tym klocku można umieszczać jedną lub kilka instrukcji. Korzysta się z instrukcji przypisania(:=) i operatorów arytmetycznych(+; -; *; /; ^)
instrukcje dowykonania
Algorytmy
KLOCEK WARUNKOWY
Klocek ten ma jedno wejście i dwa wyjścia.
Pytamy np. czy lewa strona jest równa prawej(a=b). Otrzymujemy odpowiedź TAK lub NIE i wychodzimy jednym z wyjść.
Nie ma znaczenia po której stronie jest znak Tak lub Nie. W klocku warunkowym umieszcza się tylko jedno wyrażenie logiczne. Wyrażenie logiczne budujemy za pomocą operatora logicznego, inaczej znaku relacji(=; <; >; <=; >=; <>)
wyrażenielogiczne TakNie
Algorytmy
Aby przedstawić algorytm
w postaci programu
(czyli zapisany w języku programowania)
trzeba go zbudować z ciągu instrukcji
określonego języka programowania.
Algorytm przedstawiony w języku programowania
Tyle tych języków...Który wybrać?Może Pascal,
albo C++ lub Logo...
Algorytmy
W zadaniach umieszczonych na kolejnych
slajdach należy wskazywać elementy, które
powinny być kolejno dołączane do schematu
blokowego.
Muszę sięzastanowić!
Algorytmy
Podaj (b)S=: a + b
Pisz sumę
STOP
Obliczanie sumy dwóch liczb
START
Podaj (a)
Algorytmy
Podaj (b)
S=: a + b
Piszsumę
STOP
Obliczanie sumy dwóch liczb
START
Podaj (a)
Algorytmy
Podaj (b)
S=: a + b
Pisz sumę
STOP
Obliczanie sumy dwóch liczb
START
Podaj (a)
Algorytmy
Podaj (b)
S=: a + b
Pisz sumę
STOP
Obliczanie sumy dwóch liczb
START
Podaj (a)
Algorytmy
Podaj (b)
S=: a + b
Pisz sumę
Obliczanie sumy dwóch liczb
START
Podaj (a)
STOP
Algorytmy
Podaj (b)
S=: a + b
Pisz sumę
STOP
Obliczanie sumy dwóch liczb
START
Podaj (a)
Algorytmy
Przykład schematu blokowego
Przykład 1 BUDOWA ALGORYTMU:
START
- podaj liczbę a,- oblicz kwadrat liczby a,- oblicz sześcian liczby a,- podaj wartość kwadratu liczby a,- podaj sześcian liczby a.
STOP
Start
a:=Podaj liczbę
a2:=a*a a3:=a*a*a
a2:=
a3:=
Stop
Algorytmy
Przykład schematu blokowego
Przykład 2 Start
WYJRZYJ PRZEZ OKNO
CZY PADA DESZCZ?
WEŹ PARASOL
TAK
WYJDŹ
Stop
NIE
Algorytmy
Pomysł Euklidesa na obliczanie NWD
1. Dane są dwie niezerowe liczby naturalne a i b.
2. Dopóki liczby nie są równe powtarzaj krok 3,
w przeciwnym razie przejdź do kroku 4.
3. Od większej liczby odejmij mniejszą i tę większą zastąp otrzymaną różnicą.
4. Wyprowadź wynik: NWD (największy wspólny dzielnik) jest równy pierwszej liczbie.
Wiem, że to jest
lista kroków Powrót dolisty kroków
Powrót do historii