28
ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

  • Upload
    makara

  • View
    56

  • Download
    2

Embed Size (px)

DESCRIPTION

ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY. Pre vyriešenie problému na počítači musíme mať k dispozícii vhodný program. - PowerPoint PPT Presentation

Citation preview

Page 1: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Page 2: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Pre vyriešenie problému na počítači musíme mať k dispozícii vhodný program.

Pretože program je návod ako spracovávať určité informácie, musíme najskôr náš problém sformulovať ako problém spracovania informácií. To znamená, že najskôr musíme vytvoriť určitý informačný model riešenia problému.

Page 3: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Informačný model

musí obsahovať: • 1. popis informácií potrebných pre riešenie

problému, t.j. popis vstupných podmienok, • 2. popis informácií, ktoré majú predstavovať

riešenie úlohy, t.j. popis výstupných podmienok,

• 3. vzťahy, ktorými sa dostaneme od vstupných k výstupným podmienkam.

Page 4: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

{VST: vstupné podmienky} ?

{VYST: výstupné podmienky}

Page 5: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

príklad zo školskej matematiky –

formulácia úlohy pre riešenie kvadratickej rovnice

ax2 + bx + c = 0

Page 6: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Informačný model:1. Vstupné podmienky: ľubovoľné reálne čísla a,

b, c, pričom a ≠ O 2. Výstupné podmienky: podmnožina X reálnych

čísel predstavujúcich riešenie kvadratickej rovnice.

3. Vzťahy medzi vstupnými a výstupnými informáciami:

pre každé x X platí ax∈ 2 + bx + c = 0

Page 7: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

{VST: a, b, c - reálne, a≠0}

?

{VYST: x X} ∈

Page 8: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Všeobecnosť úlohy

naša úloha vlastne predstavuje nekonečne veľa konkrétnych kvadratických rovníc pre rôzne a, b, c. To znamená, že ak nájdeme nástroj pre jej riešenie, budeme mať prostriedok pre riešenie všetkých kvadratických rovníc. Túto vlastnosť nazývame všeobecnosť úlohy.

Page 9: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

čo sa stane, ak zoslabíme vstupné podmienky: Podmienku a ≠ 0 nahradíme podmienkou: ak a = 0, tak b # 0. V tomto prípade našu úlohu rozšírime tak, že bude naviac obsahovať aj všetky lineárne rovnice typu bx + c = 0. Zovšeobecnili sme riešenie úlohy.

Ak však naopak budeme uvažovať podmienku b = -5 a c = 3, potom chceme riešiť iba tie rovnice, ktoré môžeme napísať v tvare ax2 - 5x + 3 = 0. Došlo teda k zúženiu (zníženiu) všeobecnosti.

Page 10: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Ak budeme mať k dispozícii nástroj pre riešenie zovšeobecnenej úlohy, môžeme jeho pomocou vyriešiť všetky konkrétne rovnice pôvodnej úlohy, ale aj rovnice úlohy, ktoré majú zníženú všeobecnosť. Naopak to však neplatí.

Page 11: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Zúžená úloha obsahuje rovnicu ax2-5x+3=0

Zovšeobecnená úloha obsahuje rovnice ax2 + bx + c = 0, a je nenulové.

Zovšeobecnená úloha ax2 + bx + c = 0 ak a=0, potom b je nenulové.

Page 12: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Algoritmus riešenia úlohy

• úlohu má riešiť počítač. Je to nemysliace zariadenie, schopné presne a rýchlo vykonávať postup zapísaný v jazyku, ktorému "rozumie". Pretože toto zariadenie nie je schopné uvažovať, musí mu byť postup "pretlmočený" v takom tvare, aby ho mohlo realizovať.

• Postup určený pre nemysliace zariadenie sa nazýva algoritmus.

Page 13: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Algoritmus je postup, realizáciou ktorého získame

zo zadaných vstupných údajov správne výsledky.

Page 14: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Vlastnosti algoritmu• P1 Elementárnosť: Postup sa skladá z činností

elementárnych pre realizátora. • P2 Determinovanosť: V každom momente vykonávania

postupu je jednoznačne určené, akou činnosťou sa má pokračovať.

• P3 Rezultatívnosť: Pre rovnaké vstupné údaje dáva realizácia postupu vždy rovnaké výsledky.

• P4 Konečnosť: Realizácia postupu vždy skončí po vykonaní konečného počtu činností.

• P5 Hromadnosť: Postup dáva správne výsledky pre celú triedu prípustných vstupných údajov.

• P6 Efektívnosť: Postup realizuje riešenie úlohy v čo najkratšom čase a s využitím čo najmenšieho počtu prostriedkov (napríklad počtu pamätaných údajov).

Page 15: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Každý algoritmický jazyk má dve zložky, zodpovedajúce vlastnostiam elementárnosti a determinovanosti. Sú to:

- operačná zložka - prostriedky pre spracovanie údajov,

- riadiaca zložka - prostriedky pre riadenie postupnosti vykonávania jednotlivých činností algoritmu.

Page 16: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Vety algoritmického jazyka nazývame príkazy,

pretože ich úlohou aj obsahom je prikázať realizátorovi algoritmu, akú činnosť má v

danom momente vykonať.

Page 17: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Algoritmizácia je schopnosť samostatne vytvárať algoritmy. Zvládnuť algoritmizáciu teda znamená poznať prostriedky algoritmického jazyka, schopnosti realizátora algoritmu a vedieť ich uplatniť pri tvorbe algoritmov. Algoritmizácia je však súčasne všeobecnou metódou myslenia a konania ľudí, ktorá sa vyznačuje schopnosťou formulovať riešenia problémov tak, aby tieto boli zrozumiteľné tomu, kto má tieto problémy riešiť. Nie je orientovaná len na vzťah k výpočtovej technike, ale ku komunikácii s prostredím (okolím) človeka vôbec.

Page 18: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Algoritmus činnosti (dobrého) učiteľa { VST: žiaci s ich schopnosťami, danosťami a

poznatkami} Kroky k odovzdaniu príslušného učiva predmetu

žiakom so zohľadnením každej individuality ("nenormálnosti") žiaka.

(Algoritmus musí zahŕňať spätnú väzbu, kontrolu úrovne zvládnutia učiva žiakmi, jeho súčasťou musí byť aj motivácia žiakov, ako aj ich výchova.)

{ VYST: žiaci, ktorí prerástli (nielen výškovo) svojho učiteľa }

Page 19: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Algoritmický a programovací jazyk

Algoritmický jazyk je určený pre ľubovoľné (nemysliace) zariadenie, ktoré dokáže plniť jeho príkazy (vety tohto jazyka).

V závislosti od toho, o aké "zariadenie" ide, rozli-šujeme algoritmické jazyky - určené skôr pre ľudí a programovacie jazyky - určené pre počítače. Každý programovací jazyk je súčasne aj algoritmickým jazykom, naopak to ale neplatí.

Page 20: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Programovací jazyk a program

Algoritmus pre počítač je obdobou algoritmu pre človeka. Rozdiel je iba v tom, že algoritmus pre počítač musíme zapísať v predpísanej, špecifickej forme. To znamená, že v algoritme môžeme použiť iba také príkazy, ktoré ponúka použitý komunikačný prostriedok. Pre formuláciu príkazov pre počítač slúžia programovacie jazyky. Programovací jazyk určuje, ktoré príkazy môžeme v algoritme použiť, a akú majú mať formu.

Algoritmus zapísaný v programovacom jazyku je program.

Page 21: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Počítač dokáže vykonávať iba jednoduché aritmetické a logické operácie, ktoré musia byť zaznamenané v operačnej pamäti v dvojkovo kódovanom (strojovom) jazyku počítača. Vytvárať programy v strojovom jazyku je pre človeka veľmi náročné. Pre urýchlenie procesu tvorby programov boli preto vytvorené programovacie jazyky.

Základnou úlohou programovacieho jazyka je to, aby umožňoval vytvárať programy efektívne, ale súčasne aj zrozumiteľné človeku. Programovací jazyk je kompromisom medzi ľudskou rečou a strojovým jazykom počítača.

Page 22: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

ZÁKLADNÉ ALGORITMICKÉ KONŠTRUKCIE

• Postupnosť príkazov (činností) • Vetvenie v závislosti od splnenia

istej podmienky • Cyklus - viacnásobné opakovanie

istej činnosti.

Page 23: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Postupnosť príkazov - sekvencia

Vyplní sa v poradí, v akom sú príkazy pod sebou zapísané:

príkaz 1 príkaz 2 ... príkaz N.

Page 24: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Vetvenie

V závislosti od splnenia podmienky sa postup vetví na rôzne prípady.

Ak je podmienka splnená (+), pokračuje sa plnením príkazu (činnosti) 1, v opačnom prípade (-) sa pokračuje vykonaním príkazu 2.

Page 25: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Cyklus

Činnosť, ktorá sa má opakovať, nazývame telom cyklu,

podmienku, ktorá určuje dokedy sa bude telo cyklu opakovať, nazývame podmienka cyklu

Page 26: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

l. Cyklus so známym počtom opakovaní

Telo cyklu sa opakuje vopred známy počet krát. Pre zisťovanie počtu už vykonaných opakovaní cyklu sa zavádza tzv. riadiaca premenná cyklu, ktorá nadobúda hodnoty od danej dolnej hranice po hornú hranicu (po "jednej").

Page 27: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Cyklus s podmienkou na začiatku

Najčastejšie sa volí cyklus (nazvime ho "opatrný"),

kedy sa telo cyklu opakuje, pokiaľ platí podmienka cyklu.

Page 28: ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

Cyklus s podmienkou na konci

Je prakticky opačný ako cyklus s podmienkou na začiatku: Najskôr sa vykoná telo cyklu. Potom sa zisťuje splnenie podmienky cyklu. Ak je splnená, vykonávanie cyklu sa ukončí, v opačnom prípade sa riadenie procesu znovu vráti na vykonávanie tela cyklu. (Tento cyklus môžeme označiť ako "neopatrný": najskôr sa niečo vykoná, potom sa rozhoduje, či to bolo dobre.)