Algoritmus a problém

  • View
    46

  • Download
    0

Embed Size (px)

DESCRIPTION

Algoritmus a problm. predpokladom potreby algoritmu je existencia problmu v prvch rokoch ivota je rieenie problmov postaven na inch zkladoch ako neskr rieenie mnohch problmov je automatick bez uvedomenia si existencie algoritmu. Problm pitia kakaa. - PowerPoint PPT Presentation

Transcript

  • Algoritmus a problmpredpokladom potreby algoritmu je existencia problmuv prvch rokoch ivota je rieenie problmov postaven na inch zkladoch ako neskrrieenie mnohch problmov je automatick bez uvedomenia si existencie algoritmu

  • Problm pitia kakaaak nie je dos tepl, vrtime sa do bodu ___.,do przdnej lky zmieame cukor a kakao,dme ho zohria,overi dostatok surovnnechme vychladn,skontrolujeme mlieko,do hrneka nalejeme mlieko,zalejeme zmes v lke,vypijeme.a je po problme...

  • TerminolgiaProblm stav, v ktorom jestvuje rozdiel medzi tm, o v danom momente mme a tm, o chceme dosiahnu Rieenie problmu odstraovanie rozdielu medzi pvodnm stavom a tm, o chceme dosiahnu Algoritmuspostup, ktorm sa pri rieen problmu riadimeNie kad problm je rieiten anie vdy sa dopracujeme kpoadovanmu vsledku

  • Algoritmus a ivotriei pomocou algoritmu problmy relneho ivota je dos nron, pretoe sprvny algoritmus vdy berie do vahy vetky monosti, detaily, nhody alebo zriedkav situcie (pitie kakaa)o algoritmoch m zmysel hovori vtedy, ke mme k dispozcii urit obmedzen mnoinu prkazov (me by aj vemi vek), pomocou ktorch dokeme navrhn postup pri rieen.

  • Algoritmus a Programovanieelementrny pojem, potrebn korektn defincia:presn postupnos krokov a intrukci, ktor ns od (menitench) vstupnch dajov privedie v konenom ase k vsledku. nie kad postup je algoritmom, potrebuje spa nasledovn vlastnosti:

  • Vlastnosti algoritmuelementrnos: postup je zloen z jednoduchch krokov, ktor s pre vykonvatea (pota, nemysliace zariadenie, lovek) zrozumiten,determinovanos: postup je zostaven tak, e v kadom momente jeho vykonvania je jednoznane uren, ak innos m nasledova, alebo i sa u postup skonil,rezultatvnos: postup dva pre rovnak vstupn daje vdy rovnak vsledky,konenos: postup vdy skon po vykonan konenho potu krokov,hromadnos: postup je pouiten na cel triedu prpustnch vstupnch dajov,efektvnos: postup sa uskutouje v o najkratom ase a s vyuitm o najmenieho mnostva prostriedkov (asovch i pamovch).

  • Elementrnoskad postup me by zapsan viacermi spsobmi dleit je, aby mu rozumel jeho vykonvatezohrievanie mlieka v mikrovlnej rre:dlhodob vlastnk: zohrej mliekonov majite?diea (pokaj na rodiov a poiadaj ich) zistite 6 mocninu dvojkypre piataka-iestaka je formulcia OKdruhk ju nezvldne, napriek tomu, e ide len o 2.2.2.2.2.2jednoznanos:Me dva dni star roky! Rozbi dve vajcia!

  • Determinovanosv kadom kroku mus by jasn, kam sa m rieenie ubera, m pokraovaak by sa napr. obben umy, urobi za sebou poriadok, vyzliec a spa vykonvalo v inom porad, nemuselo by u by tm, o bolo pvodne zamanak by pota vykonal najprv asovo najnronejiu lohu: najprv pjde spa (vykon asovo najnronejiu lohu) a a ke sa vysp, urob poriadok, vyzleie sa a umyje

  • Rezultatvnosvsledok za rovnakch vstupnch podmienok m by vdy rovnakv benom ivote sa to vdy podari nemus varenie/peenieslicov technika, pokia nedjde k poruche, s tm problmy nem

    Skste:Traja chlapci si v portovom obchode kpili loptu. Zaplatili za u spolu 30,- Sk. Ke odili, predava zistil, e lopta stla len 25,- Sk a so zvynmi peniazmi poslal za nimi pomocnka. Ten im dal 3,- Sk a 2,- Sk si ponechal od cesty. Take chlapci (kee kad dostal 1,- Sk nazad) zaplatili za loptu po 9,- Sk a pomocnkovi zostali 2,- Sk.Spolu: 9 x 3 + 2 = 29,- Sk. Kam sa podela zvyn koruna?

  • Konenosvlastnos m zabezpei, aby sa algoritmus vdy skonil lovek, pracujci s problmom na zklade sksenost doke uri, i jeho postup d alebo ned sprvny vsledok (resp. i skon alebo nie). pota bez sksenost sa na takejto rovni rozhodn nedoke

    Algoritmus pre pota1. polo hrniec s jedlom na vari,2. pusti plyn,3. mieaj, km nezane vrie.

    ......

  • Konenos II.Kop, km nenaraz na poklad!Km je zadan slo menie ako jedna, vynsob ho dvoma!

    existuj aj problmy, ktorch rieenie je sce konen, ale njdenie vsledku trv vemi dlho. ifrovacie algoritmy, ke sce teoreticky dokeme rozifrova kad sprvu, no doba realizcie je tak dlh, e sprva po rozifrovan (po 10 rokoch) strca zmysel.potanie buniek v udskom tele, molekl v litri vzduchu zrniek piesku na pti.

  • Hromadnosvlastnos skr uiton ako nutnnie kad algoritmus vie by hromadn,je potrebn vklada do algoritmu urit vstupn parametrenapr. objem kvdra, vpoet dky brzdnej drhy pri rchlosti vozidla a povrchu vozovky a zadanej hmostnostipri tvorbe algoritmu nejde o vyrieenie konkrtneho problmu, ale len o popsanie postupu, pomocou ktorho mono zska vsledok

  • Efektvnosop nepovinn vlastnosnavrhn tak postup, ktor s pouitm minimlnych prostriedkov v o najkratom ase vyriei problm aj neefektvny algoritmus je algoritmom

    Pri prehliadke velite potreboval zisti poet nastpench vojakov. Vojaci stli v 32 radoch po 17. lohou poveril dvoch zstupcov. Prv postupoval nasledovne: 17+17+17+17+....+17, druh to sksil ako 17 x 32. o myslte, ktor sa dopracoval k vsledku skr? Problm stavania sel 1 a 100. Prv spsob, ktormu vetci rozumieme je postupova 1+2+3+4+...+100. K vsledku sa sce dostaneme, ale ak vezmeme dvojice sel 1+100, 2+99, 3+98... 50+51 (spolu ich je 50), vyrieime problm podstatne rchlejie: dvojc je 50, ich set je 101, teda 101 x 50 = 5 050.

  • Nao algoritmizova?ivot je algoritmus (resp. je zloen z algoritmov)moje vstvanie:zazvon budk, otvorm prav oko, udriem ho (budk), zatvorm prav oko, o dvadsa mint sa strhnem, v zhone zhltnem raajky bem do prcena o je dobr popis algoritmu?vaka popisu dokeme vykonvanm algoritmu poveri inho loveka alebo potavaka vyjadreniu mylienok sa nm problm stva zrozumitenejm a sme schopn lepie mu porozumie

  • Algoritmizciaproces, ktor pri zpise algoritmu vykonvame na zaiatku vdy potrebujeme uri:vstupn podmienky (napr. rozsah hodnt, ktor mu do algoritmu vstupova) vstupn podmienky (vlastnosti vsledku)

    Zadanie algoritmu zapisujeme: {VST: vstupn podmienky}? {VS: vstupn podmienky}

    {VST: a, b, c : relne sla rzne od 0}? {VS: V relne slo - objem}

  • Algoritmick jazykjazyk dorozumievac prostriedokslovensk jazyk cca 110.000 slovanglick jazyk 800.000 slovpouitie udskho jazyka je problematickfrazeologizmy, prslovia a porekadlsynonymhomonymtvary, pdy, osobyplynul prirodzen vvoj pribdanie a vypanie slov=> potreba redukcie prirodzenho jazyka

  • Algoritmick jazykyniekoko typov:a)vvojov diagramy (postupnos innost popisovan prostrednctvom grafickch znaiek a textu v nich),b)truktrogramy (zhutnen obdoba vvojovch diagramov, ktor vak oproti vvojovm diagramom nie je definovan normou),c)obrzkov jazyky (asto detsk programovacie jazyky umoujce programova prostrednctvom spjania obrzkov),d)rozhodovacie tabuky (popisuj zloitejie problmy pozostvaj zo zoznamu podmienok, kombincie podmienok, zoznamu innost a kombincie innost pre nau prcu nie s vhodn),e)slovn zpis algoritmu v nrodnom jazyku (formalizovan jazyky, ktor sa od programovacch jazykov odliuj pouitm slov nrodnho),f)programovacie jazyky (formalizovan algoritmick jazyky asto zaloen na redukcii slov anglickho jazyka).

  • Skladba algoritmickho jazykaoperan zloka:Prkazy: vety jazyka prikazujce procesoru vykona presne stanoven innosti. (vstupu, vstup a priradenie). musia spracva in objekty: premenn, kontanty a vrazy.Premenn objekt obsahujci poas realizcie algoritmu konkrtnu hodnotu presne stanovenho typu (napr. cel slo, relne slo, reazec znakov...).Kontanta objekt nadobdajci poas celej realizcie algoritmu jedin konkrtnu hodnotu prslunho typu. Je to obdoba kontnt znmych z matematiky, napr. p, e, ale aj z fyziky: g, c, k, e, m.Vraz predpis obsahujci kontanty, premenn a spsob ich spracovania pomocou operci a funkci podobnch tm, ktor poznme z matematiky. Vsledkom je hodnota prslunho typu, ktor vznikne po vykonan vo vraze naznaenho spracovania. napr. obsah=a*bobsah=p*r*r

  • Skladba algoritmickho jazykariadiaca zloka:prostriedky pre riadenie postupnosti vykonvania jednotlivch prvkov zloky operanejvaka nej je vkadom kroku algoritmu jednoznane uren innos, ktor sa m vykona sekvenciavetveniecyklus

  • Algoritmick kontrukciesekvencia postupnos prkazov (prkaz je povel, ktor pota alebo in zariadenie pozn adoke vykona) vykonvan vtakom porad, vakom s jednotliv asti zapsan vetvenie poskytuje monos rozhodn sa poda pravdivosti skmanho znaku. Sklad sa z podmienky uvedenej za slovkom ak azprkazov, ktor sa vykonaj vprpade kladnho azpornho vsledku. Tmto dvom astiam hovorme vetvy. cyklus umouje ubovon innos opakova. Pri opakovan je dleit o (telo cyklu) sa m opakova adokedy (podmienka cyklu) sa m opakova

  • Prklad sekvencieMajme k dispozcii robotick vysva, ktor doke nasledovn innosti:posun posunie vysva vpred o 50 cm,vysaj zapne vysvanie prachu na 10 s,vavo bok - oto sa o 90 doava.

    Zabezpete, aby vysva vysal metrov ps vsmere, ktor m nastaven.

  • Rieenievysaj // 50 cmposunvysaj // 100 cmposun// nie je potrebn

    Problm sme vyrieili vaka sekvencii prkazov, ktor sa vykonvaj v takom porad, v akom s zapsan.Vo veobecnosti mono sekvenciu zapsa nasledovne:

    prkaz1prkaz2...prkazn

  • Prklad alternatvyZabezpete, aby sa vysva vprpade narazenia na prekku otoil doava.

    Na rieenie problmu potrebujeme, aby vysva dokzal zisti (rozhodn), i m pred sebou prekku alebo nie. Nevyhnutnou je teda nov schopnos:prekka v prpade existencie prekky vrti hodnotu ANO, inak hodnotu NIE,

  • Rieenieak prekka = NO tak vavo bokinakposun

    zpis obsahuje dve vetvy (alternatvy), priom stroj, ktor prkazy vykonva si vyberie v zvislosti od splnenia podmienky. vo veobecnosti:ak podmienka takprkaz11prkaz12...prkaz1minakprkaz21prkaz22...prkaz2nkoniec ak

  • Prklad cykluZabezpete, aby vysva vyistil 15 metrov ps.

    lohu by sme mohli riei zpisom sekvencie tak, e by sme 30 rz za sebou zopakovali dvojicu: vysaj posun vysaj posun vysaj posun vysaj posun....vhodnejie rieenie vak predstavuje pouitie cyklu.poet opakovan nm je znmy (30 x - preo?)

  • Rieenieopakuj 30 krt vy