Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

ALGO – Algoritmizace 1. cvičení

Podobné prezentace


Prezentace na téma: "ALGO – Algoritmizace 1. cvičení"— Transkript prezentace:

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.


Stáhnout ppt "ALGO – Algoritmizace 1. cvičení"

Podobné prezentace


Reklamy Google