28
Algorytmy i algorytmika Opracowanie: Maciej Karanowski

Algorytmy i algorytmika Opracowanie: Maciej Karanowski

Embed Size (px)

DESCRIPTION

Algorytmy i algorytmika Opracowanie: Maciej Karanowski. ALGORYTMY I ALGORYTMIKA. Najważniejsze pojęcia. Historia algorytmów. Co należy koniecznie wiedzieć?. Sposoby przedstawiania algorytmów. Sprawdź się!. Poznajmy najważniejsze pojęcia. - PowerPoint PPT Presentation

Citation preview

Page 1: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

Algorytmy

i algorytmika

Opracowanie: Maciej Karanowski

Page 2: 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ę!

Page 3: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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!

Page 4: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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ć!

Page 5: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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”.

Page 6: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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.

Page 7: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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.

Page 8: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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ć?

Page 9: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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

Page 10: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

Algorytmy

Sposoby przedstawiania algorytmów

Opis słowny Lista kroków

Zapis z wykorzystaniemjednego z języków programowania

Schemat blokowy

Page 11: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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

Page 12: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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

Page 13: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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ć

Page 14: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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

Page 15: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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ść

Page 16: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

Algorytmy

KLOCEK WYKONAWCZY

W tym klocku można umieszczać jedną lub kilka instrukcji. Korzysta się z instrukcji przypisania(:=) i operatorów arytmetycznych(+; -; *; /; ^)

instrukcje dowykonania

Page 17: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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

Page 18: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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...

Page 19: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

Algorytmy

W zadaniach umieszczonych na kolejnych

slajdach należy wskazywać elementy, które

powinny być kolejno dołączane do schematu

blokowego.

Muszę sięzastanowić!

Page 20: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

Algorytmy

Podaj (b)S=: a + b

Pisz sumę

STOP

Obliczanie sumy dwóch liczb

START

Podaj (a)

Page 21: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

Algorytmy

Podaj (b)

S=: a + b

Piszsumę

STOP

Obliczanie sumy dwóch liczb

START

Podaj (a)

Page 22: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

Algorytmy

Podaj (b)

S=: a + b

Pisz sumę

STOP

Obliczanie sumy dwóch liczb

START

Podaj (a)

Page 23: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

Algorytmy

Podaj (b)

S=: a + b

Pisz sumę

STOP

Obliczanie sumy dwóch liczb

START

Podaj (a)

Page 24: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

Algorytmy

Podaj (b)

S=: a + b

Pisz sumę

Obliczanie sumy dwóch liczb

START

Podaj (a)

STOP

Page 25: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

Algorytmy

Podaj (b)

S=: a + b

Pisz sumę

STOP

Obliczanie sumy dwóch liczb

START

Podaj (a)

Page 26: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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

Page 27: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

Algorytmy

Przykład schematu blokowego

Przykład 2 Start

WYJRZYJ PRZEZ OKNO

CZY PADA DESZCZ?

WEŹ PARASOL

TAK

WYJDŹ

Stop

NIE

Page 28: Algorytmy  i algorytmika Opracowanie: Maciej Karanowski

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