PPT

pr1j_02_algoritmizacia.ppt

Formát
PPT
Veľkosť
193 kB
Pridané
Stiahnutí
803
Hodnotenie
4,0/5
Stiahnuť PPT · 193 kB

Preber si túto poznámku so svojou AI

Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto poznámky.

Otvoriť AI: ChatGPT · Claude · Gemini

Náhľad poznámky

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

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.

Príklad sekvencie

Zabezpečte, aby vysávač vysal metrový pás

v smere, ktorý má nastavený.

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íkaz

1

príkaz

2

...
príkaz

n

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,

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íkaz

11

príkaz

12

...príkaz

1m

inak

príkaz

21

príkaz

22

...príkaz

2n

koniec ak

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?)

Riešenie

opakuj 30 krát

vysaj
posun

 vo všeobecnosti:

opakuj počet krát

príkaz

1

príkaz

2

...
príkaz

n

koniec opakuj

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?

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íkaz

1

príkaz

2

...
príkaz

n

koniec rob

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íkaz

1

príkaz

2

...
príkaz

n

pokiaľ bude podmienka

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

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

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.

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

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

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

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

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.

Document Outline


Automaticky vygenerovaný textový náhľad. Pre plné formátovanie si stiahnite súbor.