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

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

Algoritmus.

Podobné prezentace


Prezentace na téma: "Algoritmus."— Transkript prezentace:

1 Algoritmus

2 Základné pojmy Algoritmus Program Programovanie
- všeobecné pravidlá určujúce postupnú transformáciu vstupných údajov na výstupné - návod, ktorý určuje postup, ktorý vedie k riešeniu danej úlohy - postupnosť krokov vedúca k vyriešeniu úlohy Program - realizácia algoritmu - zápis algoritmu vo tvaru programu Programovanie - tvorba algoritmov a ich prepis do tvaru programu pomocou príkazov programovacieho jazyka

3 Základné vlastnosti algoritmov
Hromadnosť tzn. Algoritmus je použiteľný na ľubovoľné vstupné údaje spĺňajúce požadované podmienky (Množina prípustných vstupných údajov = oblasť použitia algoritmu) Determinovanosť v každom kroku algoritmu musí byť jednoznačne dané, čo treba robiť; realizácia algoritmu nesmie byť podmienená inými podmienkami ako tými, ktoré sú v ňom uvedené, nesmie byť závislá od riešiteľa a prostredia, v ktorom sa algoritmus realizuje Rezultatívnosť transformácia predpísaná algoritmom dá po konečnom počte krokov výsledok

4 Načo algoritmizovať? život je algoritmus (resp. je zložený z algoritmov) moje vstávanie: zazvoní budík, otvorím pravé oko, udriem ho (budík), zatvorím pravé oko, o dvadsať minút sa strhnem, v zhone zhltnem raňajky bežím do práce na čo je dobrý popis algoritmu? vďaka popisu dokážeme vykonávaním algoritmu poveriť iného človeka alebo počítač vďaka vyjadreniu myšlienok sa nám problém stáva zrozumiteľnejším a sme schopní lepšie mu porozumieť

5 Algoritmizácia proces, ktorý pri zápise algoritmu vykonávame
na začiatku vždy potrebujeme určiť: vstupné podmienky (napr. rozsah hodnôt, ktoré môžu do algoritmu vstupovať) výstupné podmienky (vlastnosti výsledku) Zadanie algoritmu zapisujeme: {VST: vstupné podmienky} ? {VÝS: výstupné podmienky} {VST: a, b, c : reálne čísla rôzne od 0} ? {VÝS: V – reálne číslo - objem}

6 Zápis algoritmov slovne (verbálne) textom štruktúrogram
formalizované jazyky, ktoré sa od programovacích jazykov odlišujú použitím slov národného textom štruktúrogram zhutnená obdoba vývojových diagramov, ktorá však oproti vývojovým diagramom nie je definovaná normou vývojový diagram postupnosť činností popisovaná prostredníctvom grafických značiek a textu v nich v tvare programu formalizované algoritmické jazyky často založené na redukcii slov anglického jazyka rozhodovacie tabuľky popisujú zložitejšie problémy pozostávajú zo zoznamu podmienok, kombinácie podmienok, zoznamu činností a kombinácie činností – pre našu prácu nie sú vhodné

7 Algoritmizácia kroky algoritmu sa vykonávajú postupne za sebou, ak nie je explicitne dané iné poradie ak idem hľadať algoritmus konkrétnej úlohy, riešim tieto 2 otázky: vhodná štruktúra programu štruktúra programu programová štruktúra by mala korešpondovať s realitou, ktorú táto dátová štruktúra modeluje

8 Konštrukcia algoritmu
tvorivý proces všeobecný návod na konštrukciu nejestvuje, ale existujú heuristiky (určité rady) získané skúsenosťami, ktoré proces tvorby algoritmu uľahčujú Postup konštrukcie algoritmu formulácia problému stanovenie cieľov tvorba idei a stratégie riešenia zápis vytvorených postupov overenie správnosti vytvorených postupov

9 Všeobecné stratégie tvorby algoritmu
Dekompozícia rozdelenie problému na podproblémy, ktoré sú z určitého hľadiska jednoduchšie Abstrakcia proces, v ktorom na danej úrovni prvky problému zanedbáme alebo ukryjeme Vstupné údaje reprezentujú počiatočný stav problému Výstupné údaje tvoria množinu koncových stavov

10 Vývojový diagram Štart Stop Id:=hodnota Z = začiatok = K
= zastavenie = = vstup, výstup Čítaj / Zobraz = priraďovací príkaz Id:=hodnota

11 = binárne vetvenie, podmienka
- + = binárne vetvenie, podmienka For c:= ...; = cyklus s pevným počtom opakovaní Popis operácie = dopredu definovaná činnosť 1 1 = pokračovanie

12 Príkaz priradenia priradenie hodnoty výrazu na pravej strane do premennej na ľavej strane; typ premennej a výrazu musia byť kompatibilné znak priradenia := napr. p:=2*(x+Y) p:=2*(x+Y) Čítame : Premennej p priraď hodnotu výrazu 2*(x+Y)

13 Príkazy vstupu a výstupu
tvar vstup(a1,..,an) – zo vstupného zariadenia sa prečíta n hodnôt a postupne sa priradia premenným a1,..,an. Výstup tvar výstup(b1,..,bn) – vytlačia sa výstupné údaje b1,..,bn vstup(a1,..,an) začiatok výstup(b1,..,bn) koniec

14 Podmienený príkaz Úplný podmienený príkaz + -
vytvorený z dvoch príkazov, z ktorých sa podľa splnenia/nesplnenia vykoná jeden (tzv. binárne vetvenie)+PAB+-- Čítame: Ak platí P, vykonaj A, inak vykonaj B tvar: ak P tak A inak B P A B + -

15 Podmienený príkaz Neúplný podmienený príkaz
ako úplný, ale chýba jedna vetva tzn. je vytvorený z jedného príkazu, ktorý sa realizuje ak podmienka platí; ak podmienka neplatí príkaz sa nerealizuje a pokračuje sa ďalej Čítame: tvar ak P tak A + P A -

16 Cyklus Cyklus s pevným počtom opakovaní
opakované vykonávanie príkazu alebo sekvencie príkazov, explicitne alebo implicitne udaným počtom opakovaní Cyklus s pevným počtom opakovaní – počet opakovaní príkazu/príkazov je daný explicitne (pevne) Cyklus s podmienkou na začiatku – počet opakovaní príkazu/príkazov je explicitne daný s testom podmienky na začiatku pred časťou, ktorá sa má vykonávať Cyklus s podmienkou na konci – počet opakovaní príkazu/príkazov je daný implicitne s testom po časť, ktorá sa má opakovať

17 Cyklus s pevným počtom opakovaní
počet opakovaní príkazu/príkazov je daný explicitne (pevne) + p:=i S p1:=j p:=p + 1 p  p1 - Čítame: pre p od i až po j opakuj S

18 Cyklus s podmienkou na začiatku
počet opakovaní príkazu/príkazov je explicitne daný s testom podmienky na začiatku pred časťou, ktorá sa má vykonávať Podmienka Príkaz/sekvencia + - Čítame: Pokiaľ je splnená podmienka, opakuj príkaz/sekvenciu !Cyklus nemusí zbehnúť ani raz!

19 Cyklus s podmienkou na konci
počet opakovaní príkazu/príkazov je daný implicitne s testom po časť, ktorá sa má opakovať Čítame: Opakuj A, až pokiaľ sa B nesplní /B neplatí !Cyklus je vždy vykonaný aspoň raz ! Príkaz /príkazy + - Podmienka

20 cena:=A*hlbka*hlbka+B
Príklad Začiatok Deklaruj: Const A, B: integer; Var hlbka, cena:real; Čítaj hlbka Píš cena koniec cena:=A*hlbka*hlbka+B Zistite cenu studne, ak je daná takáto závislosť pre cenu studne: cena studne = 800*hĺbka studne^ Analýza : 800, 1000 sú konštanty Hĺbka studne - hlbka je nezávislá premenná Cena studne je závislá premenná Pri konštantách deklarujeme typ aj hodnotu


Stáhnout ppt "Algoritmus."

Podobné prezentace


Reklamy Google