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

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

ALGO – Algoritmizace 1. cvičení 1.ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.

Podobné prezentace


Prezentace na téma: "ALGO – Algoritmizace 1. cvičení 1.ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D."— Transkript prezentace:

1 ALGO – Algoritmizace 1. cvičení 1.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ů 1.ř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 = N 2 + 5N – 5, pak říkáme, že složitost je řádu N 2 a zapisujeme O(N 2 ), kde N je počet zpracovaných elementů obvyklé řády složitosti: 1, Log 2 N, N Log 2 N, N, N 2,N 3, 2N, N!, N n 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 1.slovní popis (kuchařka) 2.vývojový diagram 3.strukturogram 4.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 Read number N 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 If podmínka then příkaz 1 Else příkaz 2 End if

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 ELSE 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 0, jestliže X je rovno nule.


Stáhnout ppt "ALGO – Algoritmizace 1. cvičení 1.ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D."

Podobné prezentace


Reklamy Google