1 / 28

ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

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

makara
Download Presentation

ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ÚLOHA A ALGORITMUS RIEŠENIA ÚLOHY

  2. 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.

  3. 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.

  4. {VST: vstupné podmienky} ? {VYST: výstupné podmienky}

  5. príklad zo školskej matematiky – formulácia úlohy pre riešenie kvadratickej rovnice ax2 + bx + c = 0

  6. 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í ax2 + bx + c = 0

  7. {VST: a, b, c - reálne, a≠0} ? {VYST: x ∈X}

  8. 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.

  9. č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.

  10. 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í.

  11. 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é.

  12. 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.

  13. Algoritmus je postup, realizáciou ktorého získame zo zadaných vstupných údajov správne výsledky.

  14. 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).

  15. 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.

  16. 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ť.

  17. 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.

  18. 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 }

  19. 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-šujemealgoritmické 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í.

  20. 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.

  21. 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.

  22. ZÁKLADNÉ ALGORITMICKÉ KONŠTRUKCIE • Postupnosť príkazov (činností) • Vetvenie v závislosti od splnenia istej podmienky • Cyklus - viacnásobné opakovanie istej činnosti.

  23. 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.

  24. 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.

  25. Cyklus Činnosť, ktorá sa má opakovať, nazývame telom cyklu, podmienku, ktorá určuje dokedy sa bude telo cyklu opakovať, nazývame podmienka cyklu

  26. 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").

  27. Cyklus s podmienkou na začiatku Najčastejšie sa volí cyklus (nazvime ho "opatrný"), kedy sa telo cyklu opakuje, pokiaľ platí podmienka cyklu.

  28. 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.)

More Related