Tento cyklus na prvý pohľad vyzerá oproti cyklu s podmienkou na začiatku ako opačný – najprv sa vykoná telo cyklu a až potom sa zisťuje splnenie podmienky. Ak je podmienka cyklu splnená, vykonávanie cyklu sa ukončí, v opačnom prípade sa pokračuje opätovným vykonávaním tela cyklu. Dôsledkom takéhoto riadenia je, že cyklus vždy prebehne minimálne raz.
Tento cyklus sa môžeme označiť ako “neopatrný”: najskôr sa niečo vykoná, potom sa rozhoduje, či to bolo dobre; cyklus s podmienkou na začiatku sa naproti tomu niekedy nazýva ako opatrný – najprv otestuje platnosť podmienky a až potom sa vykonáva.
Tento typ cyklu sa často využíva napr. pri vkladaní vstupných hodnôt a testovaní ich správnosti – v prípade algoritmov síce vieme určiť vstupné podmienky, no pri programovej realizácii ťažko dokážeme nariadiť nedisciplinovanému používateľovi, aby ich aj skutočne dodržiaval – ošetrenie musíme zabezpečiť na úrovni samotného algoritmu.
Vráťme sa k algoritmu, ktorý delí dve čísla. Zabezpečte, aby algoritmus požadoval zadanie druhej hodnoty dovtedy, kým používateľ zadá nenulovú hodnotu.
{VST: a,b – ľubovoľné čísla}
?
{VÝS: podiel – podiel a/b}
- načíta sa osobitne prvá hodnota (delenec). Nebudeme načítavať obe hodnoty súčasne, pretože v prípade zadania nulového b, by sa museli zadávať opätovne obe.
- prečítame hodnotu b
- a budeme to opakovať dovtedy, kým b nebude rôzne od 0
- vypočítame podiel
- a vypíšeme ho
1. Napíšte algoritmus, ktorý bude sčítavať dve čísla. Zabezpečte, aby sa po skončení výpočtu opýtal, či chce používateľ pokračovať a aby skončil až vtedy, keď odpoveď na otázku bude „nie“.