1 / 19

Opakovanie

Opakovanie. s ekvenci a postupnosť príkazov (príkaz je povel, ktorý počítač alebo iné zariadenie pozná a dokáže vykonať) vykonávanú v takom poradí, v akom sú jednotlivé časti zapísané

tanaya
Download Presentation

Opakovanie

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. Opakovanie • sekvencia postupnosť príkazov (príkaz je povel, ktorý počítač alebo iné zariadenie pozná a dokáže vykonať) vykonávanú v takom poradí, v akom sú jednotlivé časti zapísané • vetvenie poskytuje možnosť rozhodnúť sa podľa pravdivosti skúmaného znaku. Skladá sa z podmienky uvedenej za slovíčkom ak a z príkazov, ktoré sa vykonajú v prípade kladného a záporného výsledku. Týmto dvom častiam hovoríme vetvy. • cyklus umožňuje ľubovoľnú činnosť opakovať. Pri opakovaní je dôležité čo(telo cyklu) sa má opakovať a dokedy (podmienka cyklu) sa má opakovať.

  2. Riadenie nemysliaceho zariadenia • Majme k dispozícii robotický vysávač, ktorý dokáže nasledovné činnosti: • posun – posunie vysávač vpred o 50 cm, • vysaj – zapne vysávanie prachu na 10 s, • vľavo bok - otočí sa o 90° doľava.

  3. Príklad sekvencie • Zabezpečte, aby vysávač vysal metrový pás v smere, ktorý má nastavený.

  4. Riešenie • vysaj // 50 cm • posun • vysaj // 100 cm • posun // nie je potrebné • Problém sme vyriešili vďaka sekvencii príkazov, ktoré sa vykonávajú v takom poradí, v akom sú zapísané. • Vo všeobecnosti možno sekvenciu zapísať nasledovne: príkaz1 príkaz2 ... príkazn

  5. Príklad alternatívy • Zabezpečte, aby sa vysávač v prípade narazenia na prekážku otočil doľava. • Na riešenie problému potrebujeme, aby vysávač dokázal zistiť (rozhodnúť), či má pred sebou prekážku alebo nie. Nevyhnutnou je teda nová schopnosť: • prekážka – v prípade existencie prekážky vráti hodnotu ANO, inak hodnotu NIE,

  6. Riešenie ak prekážka = ÁNO tak vľavo bok inak posun • zápis obsahuje dve vetvy (alternatívy), pričom stroj, ktorý príkazy vykonáva si vyberie v závislosti od splnenia podmienky. • vo všeobecnosti: ak podmienka tak príkaz11 príkaz12 ...príkaz1m inak príkaz21 príkaz22 ...príkaz2n koniec ak

  7. Príklad cyklu Zabezpečte, aby vysávač vyčistil 15 metrový pás. • úlohu by sme mohli riešiť zápisom sekvencie tak, že by sme 30 ráz za sebou zopakovali dvojicu: vysaj posun vysaj posun vysaj posun vysaj posun.... • vhodnejšie riešenie však predstavuje použitie cyklu. • počet opakovaní nám je známy (30 x - prečo?)

  8. Riešenie opakuj 30 krát vysaj posun • vo všeobecnosti: opakuj počet krát príkaz1 príkaz2 ... príkazn koniec opakuj

  9. Typy cyklov • použitý cyklus je cyklus s pevným (známym) počtom opakovaní • nie vždy je nám však počet opakovaní známy v momente vytvárania algoritmu => potreba kontroly ukončenia cyklu buď: • pred vykonaním kroku (tela) cyklu – cyklus s podmienkou na začiatku • po vykonaní tela cyklu – cyklus s podmienkou na konci • v prvom prípade sa cyklus nemusí vykonať vôbec, v druhom prebehne minimálne raz – prečo?

  10. Príklad: cyklus s podmienkou na začiatku • Napíšte algoritmus, ktorý zabezpečí vysávanie od aktuálnej polohy po prekážku. pokiaľ prekážka = NIE rob vysaj posun koniec pokiaľ • všeobecne: pokiaľ podmienka rob príkaz1 príkaz2 ... príkazn koniec rob

  11. Príklad: cyklus s podmienkou na konci • Upravte algoritmus zabezpečujúci vysávanie od aktuálnej polohy po prekážku tak aby sa vysávanie vykonalo minimálne raz. rob vysaj posun pokiaľ bude prekážka = NIE • všeobecne: rob príkaz1 príkaz2 ... príkazn pokiaľ bude podmienka

  12. Cyklus vo VD • s pevným/známym počtom opakovaní - i je riadiaca premenná cyklu, n je počet opakovaní, p je príkaz (resp. zložený príkaz), ktorý sa opakuje • s neznámym počtom opakovaní s podmienkou na začiatku • s neznámym počtom opakovaní s podmienkou na konci

  13. Cyklus so známym počtom opakovaní • používa sa, ak počet opakovaní je známy pred odštartovaním cyklu • počet možno vyjadriť prostredníctvom spodnej a hornej hodnoty • po vykonaní príkazov cyklu sa hodnota riadiacej premennej zvýši a skontroluje sa, či nepresiahla hornú hranicu • cyklus prebiehajúci od a po b sa vykoná b-a+1 ráz • napr. od 5 do 10 sa vykoná pre hodnoty 5, 6, 7, 8, 9, 10, t.j. spolu 6 krát

  14. Jednoduché príklady • Vypočítajte hodnotu súčtu prvých N prirodzených čísel. • Zistite faktoriál zadaného čísla. • Pre interval zadaný prostredníctvom hraníc a a b zistite, koľkokrát sa v ňom nachádzajú čísla deliteľné hodnotou d.

  15. Cyklus s podmienkou na začiatku • používa sa, ak nie je zrejmé koľkokrát má cyklus prebehnúť, prípadne ak závisí na výpočtoch realizovaných v jeho tele • cyklus obsahuje podmienku, pri splnení ktorej prebehnú príkazy uvedené v jeho tele– ak podmienka nie je splnená, vykonávanie cyklu sa ukončí, • => v prípade nesplnenej podmienky nemusí prebehnúť ani raz – „opatrný cyklus“ • využitie – pomerne univerzálne

  16. Jednoduché príklady • Vypočítajte ciferný súčet číslic daného prirodzeného čísla N. • Napíšte algoritmus, ktorý zistí počet deliteľov zadaného čísla. • Napíšte algoritmus, ktorý nájde najväčšieho spoločného deliteľa dvoch čísel. • Napíšte algoritmus, ktorý vykráti zlomok zadaný prostredníctvom čitateľa a menovateľa. • Napíšte algoritmus, ktorý pre zadané číslo vráti jeho zrkadlový obraz (za akých podmienok je riešenie správne?).

  17. Cyklus s podmienkou na konci • najprv sa vykoná telo cyklu, potom sa zisťuje splnenie podmienky • ak je podmienka cyklu splnená, vykonávanie cyklu sa ukončí, • => cyklus vždy prebehne minimálne raz • využitie – kontrola vkladaných hodnôt

  18. Cyklus s podmienkou na konci II. • Pre trojicu zadaných hodnôt zistite, či môžu byť stranami trojuholníka. • Napíšte algoritmus, ktorý bude vykonávať matematické operácie a po zobrazení výsledku sa opýta, či má pokračovať alebo skončiť.

  19. Cyklus s podmienkou na konci III. • Pre postupnosť čísel ukončenú nulou vypíšte nájdite maximum. • Pre postupnosť rôznych čísel ukončenú nulou nájdite najmenšie a druhé najmenšie číslo. • Pre zadanú postupnosť čísel ukončenú nulou zistite, koľko sa v nej nachádza párnych a koľko nepárnych čísel.

More Related