+ All Categories
Home > Documents > Předchůdci počítačů a počítače 0....

Předchůdci počítačů a počítače 0....

Date post: 05-Aug-2021
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
12
Základy algoritmizace
Transcript
Page 1: Předchůdci počítačů a počítače 0. generaceold.pglbc.cz/files/DUM_2013/Informatika-Zizka/DUM_In_Zi...Základy algoritmizace Vlastnosti algoritmů (2) 5) Jednoznačnost (Determinovanost)

Základy algoritmizace

Page 2: Předchůdci počítačů a počítače 0. generaceold.pglbc.cz/files/DUM_2013/Informatika-Zizka/DUM_In_Zi...Základy algoritmizace Vlastnosti algoritmů (2) 5) Jednoznačnost (Determinovanost)

Algoritmus

• Toto je sice na první pohled pravdivá, ale při bližším prozkoumání nepřesná definice. Například některé matematické postupy by této definici vyhovovaly, ale nejsou algoritmy.

• Přesné znění definice algoritmu zní: „Algoritmus je procedura proveditelná Turingovým strojem.“

• Turingův stroj (1937) je teoretický model počítače popsaný matematikem Alanem Turingem. Skládá se z procesorové jednotky, tvořené konečným automatem a programu ve tvaru pravidel přechodové funkce a potenciálně nekonečné pásky pro zápis mezivýsledků a vstupů dat. Využívá se pro modelování algoritmů v teorii vyčíslitelnosti.

Základy algoritmizace

Page 3: Předchůdci počítačů a počítače 0. generaceold.pglbc.cz/files/DUM_2013/Informatika-Zizka/DUM_In_Zi...Základy algoritmizace Vlastnosti algoritmů (2) 5) Jednoznačnost (Determinovanost)

Algoritmus

• Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků.

nebo

• Algoritmus lze definovat jako jednoznačně určenou posloupnost konečného počtu elementárních kroků vedoucí k řešení daného problému (úlohy), přičemž musí být splněny základní vlastnosti každého algoritmu.

• Ačkoliv se dnes tento pojem používá především v informatice a přírodních vědách obecně, tak je jeho působnost daleko širší (kuchyňské recepty, návody a postupy...). Samotné slovo „algoritmus“ pochází ze jména perského matematika 9. století Abu Jafar Muhammada ibn Mūsā al-Chwārizmího, který ve svých dílech položil základy algebry (arabské číslice, řešení lineárních a kvadratických rovnic).

Základy algoritmizace

Page 4: Předchůdci počítačů a počítače 0. generaceold.pglbc.cz/files/DUM_2013/Informatika-Zizka/DUM_In_Zi...Základy algoritmizace Vlastnosti algoritmů (2) 5) Jednoznačnost (Determinovanost)

Vlastnosti algoritmů (1)

1) Konečnost – Algoritmus má konečné množství kroků (musí mít začátek konec).

– Po konečném počtu kroků musí dojít od počátku do konce.

2) Korektnost (správnost) – Algoritmus skončí pro libovolná (korektní) data správným výsledkem v konečném

množství kroků.

– Jinak řečeno: algoritmus je správný tehdy, když pro všechny údaje splňující vstupní podmínku se proces zastaví a výstupní údaje splňuji výstupní podmínku.

3) Obecnost (hromadnost, univerzálnost) – Algoritmus neřeší jeden konkrétní problém (např. výpočet 9 + 3), ale řeší obecnou třídu

obdobných problémů (např. výpočet součet dvou čísel).

4) Rezultativnost – Algoritmus při zadání vstupních dat vždy vrátí výsledek (může se jednat i o chybové

hlášení).

Základy algoritmizace

Page 5: Předchůdci počítačů a počítače 0. generaceold.pglbc.cz/files/DUM_2013/Informatika-Zizka/DUM_In_Zi...Základy algoritmizace Vlastnosti algoritmů (2) 5) Jednoznačnost (Determinovanost)

Vlastnosti algoritmů (2)

5) Jednoznačnost (Determinovanost) – Každý krok algoritmu musí být jednoznačně a přesně definován.

– V každé situaci musí být naprosto zřejmé, co a jak se má provést, jak má provádění algoritmu pokračovat.

– Protože běžný jazyk neposkytuje naprostou přesnost a jednoznačnost vyjadřování, byly pro zápis algoritmů navženy programovací jazyky, ve kterých má každý příkaz jasně definovaný.

6) Opakovatelnost – Při stejných vstupních hodnotách musíme dostat vždy stejný výsledek.

7) Srozumitelnost – Algoritmus musí být srozumitelný i pro uživatele, který daný algoritmus nevytvářel.

Základy algoritmizace

Page 6: Předchůdci počítačů a počítače 0. generaceold.pglbc.cz/files/DUM_2013/Informatika-Zizka/DUM_In_Zi...Základy algoritmizace Vlastnosti algoritmů (2) 5) Jednoznačnost (Determinovanost)

Jak sestavit algoritmus?

• Popsat všechny operace, pomocí kterých transformujeme vstupní data na požadovaná data výstupní. – Počáteční údaje = vstupní data – Požadovaný výsledek = výstupní data

• Možnosti reprezentace algoritmů:

– slovní popis,

– matematický zápis,

– strukturogramy,

– rozhodovací tabulky,

– vývojové diagramy,

– počítačové programy.

Základy algoritmizace

Page 7: Předchůdci počítačů a počítače 0. generaceold.pglbc.cz/files/DUM_2013/Informatika-Zizka/DUM_In_Zi...Základy algoritmizace Vlastnosti algoritmů (2) 5) Jednoznačnost (Determinovanost)

Vývojové diagramy

Vý vojový diagram je graficke zna zorne ní jednotlivý ch kroků (pr í kazů ), ze který ch se skla da , a jejich

na vazností pomocí normalizovaný ch znac ek.

Základní značky pro tvorbu vývojových diagramů

Kvadratická rovnice Mezní značka (začátek a konec programu)

d = b2 - 4*a*c Zpracování (příkaz, operace, činnost)

Podmínka

D < 0 Větvení

Načti a, b, c Vstup a výstup hodnot (dat)

Výpočet kořenů

kvadratické rovnice Podprogram, funkce, procedura

1 Spojka

Cyklus i = 1, n Příprava (např. příprava cyklu)

Ano Ne

Page 8: Předchůdci počítačů a počítače 0. generaceold.pglbc.cz/files/DUM_2013/Informatika-Zizka/DUM_In_Zi...Základy algoritmizace Vlastnosti algoritmů (2) 5) Jednoznačnost (Determinovanost)

Vývojové diagramy

Základní algoritmizační úloha: výměna obsahu dvou proměnných

Jedna se o c astoů operaci, ktera je soůc a stí mnoha dals í ch algoritmů .

Výměna proměnných

Načti a, b

pom = a

a = b

b = pom

Zobraz a, b

Konec

Page 9: Předchůdci počítačů a počítače 0. generaceold.pglbc.cz/files/DUM_2013/Informatika-Zizka/DUM_In_Zi...Základy algoritmizace Vlastnosti algoritmů (2) 5) Jednoznačnost (Determinovanost)

Vývojové diagramy

Výpočet kořenů kvadratické rovnice

Kvadratická rovnice

Načti a, b, c

D = b2 - 4*a*c

D < 0

Ne

Ano

D == 0 Ano

x = -b/(2*a)

„Rovnice má

jedno řešení:“ x

Ne

x1 = (-b+√(D))/(2*a)

x2 = (-b-√(D))/(2*a)

„Rovnice má řešení:“ x1, x2

„Rovnice nemá

řešení v R“

Konec programu

Page 10: Předchůdci počítačů a počítače 0. generaceold.pglbc.cz/files/DUM_2013/Informatika-Zizka/DUM_In_Zi...Základy algoritmizace Vlastnosti algoritmů (2) 5) Jednoznačnost (Determinovanost)

Vývojové diagramy

Součet číslic v čísle

Součet číslic v celém čísle

Načti a

suma = 0

Sestavte algoritmůs, který zjistí soůc et cifer v zadane m cele m c í sle. Vý stůpem algoritmů bůde zadane

c í slo a jeho ciferný soůc et.

a >= 10

cislo = a % (10)

a = (a-cislo)/10

suma = suma + cislo

zaloha = a

+

-

suma = suma + a

„Zadali jste číslo:“ zaloha

„Součet číslic čísla“ zaloha

„je:“ suma

Konec programu

Poznámka:

Algoritmus využívá toho, že většina programovacích

jazyků má operaci modulo - tedy zjištění zbytku po

celočíselném dělení.

V PHP, Javě, C # a dalších jazycích se pro operaci

modulo používá operátor %.

Page 11: Předchůdci počítačů a počítače 0. generaceold.pglbc.cz/files/DUM_2013/Informatika-Zizka/DUM_In_Zi...Základy algoritmizace Vlastnosti algoritmů (2) 5) Jednoznačnost (Determinovanost)

Zdroje

• Roubal, Pavel. Informatika a výpočetní technika pro střední školy – praktická učebnice. ISBN: 978-80-251-3227-2.

Základy algoritmizace

Page 12: Předchůdci počítačů a počítače 0. generaceold.pglbc.cz/files/DUM_2013/Informatika-Zizka/DUM_In_Zi...Základy algoritmizace Vlastnosti algoritmů (2) 5) Jednoznačnost (Determinovanost)

jméno autora Tomáš Žižka

název projektu Informatika a digitální technika

číslo projektu CZ.1.07/1.5.00/34.0158

číslo šablony III/2 Inovace výuky pomocí ICT

předmět/ třída (ročník) Informatika/oktáva

pořadové číslo DUM 20

datum 22. 4. 2013

název DUM Základy algoritmizace

metodická poznámka k využití

Výuková prezentace, která je zaměřena na problematiku

algoritmizace a programování. Určeno pro frontální výuku s celou

třídou.


Recommended