background image

 

 

ALGORYTMY, 

SCHEMATY BLOKOWE

background image

 

 

Definicja algorytmu

W matematyce oraz informatyce to skończony 

uporządkowany zupełnie zbiór jasno 

zdefiniowanych czynności koniecznych do 

wykonania pewnego zadania w skończonej 

liczbie kroków. 

Ma on przeprowadzić system z pewnego stanu 

początkowego do pożądanego stanu 

końcowego.

 

background image

 

 

HISTORIA ALGORYTMU

Słowo 

algorytm

 pochodzi od nazwiska 

arabskiego matematyka z 

IX

 wieku 

Muhammeda ibn Musa Alchwarizmiego

Początkowo słowem 

algorism

 nazywano 

czynności konieczne do wykonywania obliczeń 

z użyciem dziesiętnego systemu liczbowego. 

Obecne znaczenie słowa algorytm jako 

zestawu ścisłych reguł powstało wraz z 

rozwojem matematyki i techniki.

background image

 

 

HISTORIA ALGORYTMU

1842

 roku 

Charles Babbage

, który na 

podstawie swoich doświadczeń 
sformułował ideę maszyny analitycznej 
zdolnej do realizacji złożonych 
algorytmów matematycznych.

background image

 

 

ROZWÓJ  MASZYN LICZĄCYCH

Wraz z wynalezieniem pod koniec 

XIX wieku 

kart perforowanych

 elektro-mechaniczne 

maszyny osiągnęły zdolność realizacji 
algorytmów przetwarzających ogromne 
zbiory danych.

 

Karty perforowane stały się wejściem, z 
którego dane przetwarzały proste algorytmy 
sumujące. Jako wyjście służyły odpowiednie 
zegary. 

background image

 

 

ROZWÓJ  MASZYN LICZĄCYCH

XX wieku

 postęp elektroniki pozwolił 

na budowę 

maszyn analogowych

 

potrafiących w swoim wnętrzu odtwarzać 
pewne algorytmy matematyczne. 

Mogły one dokonywać operacji 
arytmetycznych oraz różniczkować i 
całkować.

background image

 

 

KOMPUTERY

Badacze zdali sobie sprawę, że maszyny 

najlepiej radzą sobie z szybkim 

powtarzaniem bardzo prostych operacji.

 

Alan Turing

 - Badacz ten podczas prac nad 

algorytmami szyfrującymi, zdał sobie 

sprawę, że każdy z nich da się sprowadzić 

do zestawu instrukcji realizowanych przez 

pewną teoretyczną maszynę. Miała ona 

zdolność do czytania i pisania poleceń z 

nieskończonej taśmy. Jej rozkazy mogły 

zawierać polecenia przesunięcia się o ileś 

kroków głowicy, zapisu/odczytu w jakimś 

miejscu taśmy nowej instrukcji.

 

background image

 

 

KOMPUTERY

Według tej idei zbudowano pierwsze 

komputery. Posługiwały się algebrą 

Boole'a

 

oraz binarnym systemem liczbowym. 

Tak proste maszyny były w stanie realizować 

bardzo złożone algorytmy matematyczne, 

jak np. obliczanie trajektorii pocisków czy 

rakiet.

Dzisiaj komputery są powszechne oraz tanie 

i przez to implementacja w nich właściwych 

algorytmów stała się bardzo ważną gałęzią 

gospodarki.

background image

 

 

ALGORYTMY KOMPUTEROWE

Komputery przetwarzają przekazywane im 

informacje z wykorzystaniem pewnych 

algorytmów. Program jest algorytmem zapisanym 

w języku zrozumiałym dla maszyny.

Zwykle algorytmy pracują na pewnych danych 

wejściowych i uzyskują z nich dane wyjściowe. 

Każdy algorytm komputerowy musi być wyrażony 

w bardzo rygorystycznie zdefiniowanym języku.  

background image

 

 

ALGORYTMY KOMPUTEROWE

Komputery mogą reagować tylko na całkowicie 
jednoznaczne instrukcje. 

Jeżeli dany algorytm da się wykonać na 
maszynie o dostępnej mocy obliczeniowej i 
pamięci oraz akceptowalnym czasie, to mówi 
się, że jest 

obliczalny

.

Poprawne działanie większości algorytmów 
implementowanych w komputerach opiera się 
na kolejnej realizacji pewnego zestawu 
warunków. Jeżeli, któryś z nich nie zostanie 
spełniony, to program kończy się komunikatem 
błędu. 

background image

 

 

Podstawowe paradygmaty 

tworzenia algorytmów 

komputerowych:

 

dziel i zdobywaj

 – dzielimy problem na 

kilka mniejszych i je znowu dzielimy, aż 
ich rozwiązania nie staną się oczywiste 
(rekurencja), 

programowanie dynamiczne

 – problem 

dzielony jest na kilka, ważność każdego z 
nich jest oceniana i po pewnym 
wnioskowaniu wyniki analizy niektórych 
prostszych zagadnień wykorzystuje się do 
rozwiązania głównego problemu, 

background image

 

 

Podstawowe paradygmaty 

tworzenia algorytmów 

komputerowych:

metoda zachłanna

 – nie analizujemy 

podproblemów dokładnie, tylko 

wybieramy najbardziej obiecującą w tym 

momencie drogę rozwiązania, 

programowanie liniowe

 – oceniamy 

rozwiązanie problemu przez pewną 

funkcję jakości i szukamy jej minimum, 

poszukiwanie i wyliczanie

 – kiedy 

przeszukujemy zbiór danych aż do 

odnalezienie rozwiązania, 

background image

 

 

Podstawowe paradygmaty 

tworzenia algorytmów 

komputerowych:

probabilistyczne rozwiązanie

 – algorytm 

działa poprawnie z bardzo wysokim 
prawdopodobieństwem, ale wynik nie jest 
pewny, 

heurystyka

 – człowiek na podstawie swojego 

doświadczenia tworzy algorytm, który działa 
w najbardziej prawdopodobnych warunkach, 
rozwiązanie zawsze jest przybliżone. 

background image

 

 

Najważniejsze techniki 

implementacji algorytmów 

komputerowych:

 

proceduralność

 – algorytm dzielimy na 

szereg podstawowych procedur, wiele 
algorytmów dzieli wspólne biblioteki 
standardowych procedur, z których są one 
wywoływane w razie potrzeby, 

praca po kolei

 – wykonywanie kolejnych 

procedur algorytmu, według kolejności ich 
wywołań, na raz pracuje tylko jedna 
procedura, 

background image

 

 

Najważniejsze techniki 

implementacji algorytmów 

komputerowych:

praca

 

równoległa

 – wiele procedur 

wykonywanych jest w tym samym czasie, 

wymieniają się one danymi, 

rekurencja

 – procedura wywołuje sama siebie, 

aż do uzyskania wyniku lub błędu, 

obiektowość

 

– procedury i dane łączymy w 

pewne obiekty reprezentujące najważniejsze 

elementy algorytmu oraz stan wewnętrzny 

wykonującego je urządzenia. 

background image

 

 

SCHEMAT BLOKOWY 

To sieć działań, czyli graficzna 
reprezentacja procedury lub programu 
sporządzana w celach poglądowych lub 
jako przedstawienie algorytmu do 
zapisania w języku programowania. 

background image

 

 

KLOCKI SCHEMATU 

BLOKOWEGO

KLOCKI GRANICZNE

KLOCKI WEJŚCIA I WYJŚCIA

KLOCEK WYKONAWCZY

 

KLOCEK WARUNKOWY 

background image

 

 

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

background image

 

 

KLOCKI WEJŚCIA I WYJŚCIA

Służy do wprowadzania 
danych(wartości) z zewnątrz. 

Służy do wyprowadzania 
danych. 

background image

 

 

KLOCEK WYKONAWCZY 

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

background image

 

 

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ść. W klocku warunkowym umieszcza 
się tylko jedno wyrażenie logiczne. Wyrażenie 
logiczne budujemy za pomocą operatora logicznego, 
inaczej znaku relacji(=; <; >; <=; >=; <>). 

background image

 

 

Przykład prostego algorytmu w 

postaci schematu blokowego na sumę 

trzech liczb:

background image

 

 

Zasady rysowania schematów 

blokowych:

Podstawową zasadą obowiązującą przy 

budowę schematów blokowych, jest łączenie 

strzałek wychodzących ze strzałkami 

wchodzącymi.

Po zbudowaniu schematu blokowego nie 

powinno być takich strzałek, które z nikąd nie 

wychodzą, lub do nikąd nie dochodzą. 

Każdy schemat blokowy musi mieć tylko jeden 

element startowy oraz co najmniej jeden 

element końca algorytmu.  

background image

 

 

SORTOWANIE BĄBELKOWE

Sortowanie bąbelkowe opiera się na bardzo 
prostej metodzie, a mianowicie po kolei 
porównywane są dwa sąsiednie elementy 
tablicy. Gdy element o mniejszym indeksie 
jest mniejszy od elementu o większym 
indeksie, (gdy sortujemy tablicę rosnąco) 
to zamieniane są one miejscami. 
Porównywane są w ten sposób wszystkie 
elementy tablicy. Algorytm kończy się, gdy 
cała tablica jest uporządkowana.

 

background image

 

 

SORTOWANIE BĄBELKOWE

2

4

-3

5

0

2

4

2

-3

5

0

2

2

-3

4

5

0

2

background image

 

 

ALGORYTM EUKLIDESA

START

Dane: a, b

a>b

a:= b
b:= (a mod b)

(a 
mod 
b)=0

TAK

NI
E

Pisz: NWD(a, b)= 

b

STOP

background image

 

 

PODSUMOWANIE 

WIADOMOŚCI

1. Algorytm to...

2. W którym wieku wynaleziono karty 

perforowane:

a) W XVIII

b)W XIX

c) W XX

background image

 

 

PODSUMOWANIE 

WIADOMOŚCI

3. Na czym polega zasada tworzenia 

algorytmów komputerowych „Dziel 

i zdobywaj”?

3. Podaj cechy schematu blokowego.

4. Czy klocki graniczne są elementami 

schematu blokowego?

TAK/NIE

background image

 

 

PODSUMOWANIE 

WIADOMOŚCI

6. Podaj nazwę poniższego klocka 

schematu blokowego:

7. Co umieszczamy w klocku 

wykonawczym?

8. Przedstaw w postaci schemat

blokowego algorytm włączenia 
telewizora.

background image

 

 

PODSUMOWANIE 

WIADOMOŚCI

9. Jaki problem porusza algorytm 

Euklidesa?

10. Przy pomocy sortowania 

bąbelkowego ustaw w kolejności od 
najmniejszej do największej 
następujące liczby:

16

-8

4

10

0

2


Document Outline