Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
ALGO – Algoritmizace 1. cvičení
ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.
2
Algoritmus - algorithm
rytmus Definice: Algoritmem rozumíme postup řešení, kterým lze řešit třídu problémů. Každý algoritmus musí mít tyto vlastnosti: Konečnost a resultativnost ukončí se v reálném čase a s konkrétním výsledkem Hromadnost není pouze pro jeden problém, ale pro celou řadu (třídu) problémů (aritmetický průměr) Jednoznačnost – viz. násl.
3
Vlastnosti algoritmu Jednoznačnost
přechod do následujícího stavu algoritmu je jednoznačně určen výsledkem stavu předchozího algoritmus složen z kroků každý krok je charakterizován jako přechod z jednoho stavu do jiného stav algoritmu je dán zpracovávanými daty (stavem dat po zpracování kroku) a to určí následující krok
4
3 typy algoritmických problémů
řešitelné za přijatelnou dobu a na realizovatelném počítači 2. řešitelné, ale nepřijatelná doba ale realizovatelný počítač 3. neřešitelné z principu puzzle ETERNITY , 2 milióny dolarů
5
1. Řešitelný algoritmus požadavek na skončení algoritmu pro libovolný legální vstup (sčítání dvou písmen !) vrácení správného výsledku Časová složitost funkce počtu zpracovaných elementů O=f (N) Prostorová složitost kolik paměti pro provedení výpočtu (i dynamické struktury- zásobník)
6
Definice složitosti Je-li definice složitosti dána funkcí O:
O = N2 + 5N – 5, pak říkáme, že složitost je řádu N2 a zapisujeme O(N2), kde N je počet zpracovaných elementů obvyklé řády složitosti: 1, Log2N, N Log2N, N, N2 ,N3, 2N, N!, Nn rozumně použitelné alg. s polynomiální složitostí, exponenciální složitost nejsou prakticky použitelné
7
Numerické a nenumerické algoritmy
numerické algroritmy operace nad čísly, řeší matematické problémy nenumerické algroritmy obecné úlohy, vstup není množina čísel, ale musí se transformovat do numerické oblasti – viz. násl.
8
Příklad nenumerické úlohy
Bludiště Jak lze najít cestu ven z bludiště, existuje-li? Řešení: Na každém rozcestí, kterého se dosáhne, se zjistí všechny možné cesty, jimiž lze pokračovat, vybere se jedna z nich, ostatní se zapamatují. Tímto postupem se postupuje dopředu tak dlouho, pokud to jde nebo dokud se nedostane do situace, ve které se již bylo. Nejde-li postupovat dál, návrat na poslední rozcestí, kde došlo k rozhodnutí a výběr jiné cesty, kterou se dosud nešlo. Speciální případ algoritmického vyhledávání – prohledávání s návratem – backtraking. nevýhoda – velká časová náročnost
9
Způsob zápisu algoritmu
slovní popis (kuchařka) vývojový diagram strukturogram zápis v programovacím jazyku (pseudojazyku)
10
Vývojový diagram Definice: Vývojový diagram je orientovaný graf sloužící pro zápis algoritmu, jehož uzly odpovídají jednotlivým krokům nebo stavům zpracování úlohy a hrany určují směr postupu výpočtu. ČSN ISO/IEC (369028) Informační technologie - Hodnocení softwarového produktu Symboly vývojových diagramů pro systémy zpracování dat
11
PSEUDOJAZYK návrat k textovému popisu odsazení textu doprava
každá dílčí struktura začíná a končí speciálními příkazy – podoba se skutečnými jazyky (BASIC, Pascal, Visual Basic) Read number N While N <> 0 Print N If N sude Print “sude cislo” Else Print “liche cislo” End if End while
12
Příklad Sestavte program pro výpočet poloviční hodnoty součtu a rozdílu vstupních čísel X a Y. PSEUDOJAZYK: READ ČÍSLO X, Y A = ( X + Y ) / 2 B = ( X – Y ) / 2 PRINT X, Y, A, B
13
Řídící struktury – větvení programu
testujeme podmínku: splnění nebo nesplnění podmínky If podmínka then příkaz End if příkaz 1 Else příkaz 2
14
Příklad – Najdi větší číslo
Sestavte algoritmus, který ze dvou vstupních čísel vytiskne větší z nich. Read X, Y max = X If max < Y then max = Y End if Tisk X, Y, max
15
Příklad – Porovnání dvou čísel
Pro dvojici čísel X, Y sestavte algoritmus, který vytiskne: číslo 1, jestliže X < Y číslo 2, jestliže X > Y číslo 0, jestliže X = Y ČTI X,Y IF X < Y THEN VYSLEDEK = 1 ELSE IF X = Y THEN VYSLEDEK = 0 VYSLEDEK = 2 END IF TISK VYSLEDEK JE VÍCE ŘEŠENÍ !
16
DÚ – Kladné nebo záporné ?
Pro číslo X sestavte algoritmus, který vytiskne: číslo - 50, jestliže X je záporné číslo + 50, jestliže X je kladné číslo , jestliže X je rovno nule.
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.