Vývojové diagramy

Cyklus s podmienkou na začiatku

 

Tento typ cyklu má podmienku, ktorá sa stará o ukončenie cyklu umiestnenú pred telom. Ak je podmienka splnená, vykoná sa telo cyklu a opäť sa otestuje. Ak „vstupná“ podmienka nie je splnená už pri prvom vstupe do cyklu, nemusí sa tento vykonať vôbec. Graficky vyzerá zápis nasledovne:

while

riesene
Napíšte algoritmus, ktorý zistí zvyšok pri delení dvoch čísel.

Pre používateľov by bolo najjednoduchšie riešiť túto úlohu ručne. Počítač však natoľko inteligentný nie je, a v prípade štandardného delenia môžeme získať len desatinné číslo. Čo s tým?
Ak si uvedomíme, že delenie je vlastne zistenie počtu výskytov jedného čísla v druhom, môžeme zvyšok nájsť tak, že budeme od prvého čísla (delenca) odpočítavať druhé číslo (deliteľa) dovtedy kým bude zostatok  väčší ako 0 (prípadne  rovný 0).
Vezmime napr. 72.
7-2=5, 5 je väčšie ako 2, odčítavať môžeme ďalej,
5-2=3, od 3 stále dokážeme 2 odčítať,
3-2=1 a 1 je už menšie číslo ako 2, takže zostane – je zvyškom.

Algoritmus zovšeobecníme a realizujeme ho prostredníctvom cyklu (odčítavanie sa opakuje). Presný počet odčítaní nepoznáme, teda cyklus so známym počtom opakovaní môžeme zavrhnúť. Podmienkou bude test, či číslo, ktoré nám zostalo je už menšie ako deliteľ. Kam dať podmienku? Môže sa stať, že delenec je menší ako deliteľ a vtedy by žiadne delenie prebehnúť nemalo – teda podmienka bude na začiatku.

{VST: a,b – celé kladné čísla}
?
{VÝS: zvyšok po vydelení a:b}

delenie zvysok

- prečítame vstupné hodnoty
- podmienka cyklu zabezpečujúca beh dovtedy, kým je hodnota a väčšia alebo rovná ako b a môžeme ju tým pádom odpočítavať,
- telo cyklu zabezpečí samotné odpočítavanie,
- cyklus skončí ak je b väčšie ako a a nemožno ho teda v obore prirodzených čísel odpočítať,
- hodnotu uloženú v a vypíšeme.

sledovacia-tabulka-1 

riesene
Pridajte do algoritmu výpočet podielu (napr. pri každom odčítaní zväčšiť podiel o 1).

Algoritmické i programovacie jazyky už v sebe zvyčajne funkcie pre celočíselné delenie a zistenie zvyšku po celočíselnom delení obsahujú. Ak chceme dve čísla vydeliť, použijeme namiesto „/“ operáciu div (7 div 3 je 2), ak chceme zistiť zvyšok, máme k dispozícii mod (37 mod 10 je 7). Pri použití týchto funkcií sa naše podmienkové algoritmy zmenia na štvorriadkovú sekvenciu.

zvysok a podiel

neriesene
 

1. Vypočítajte ciferný súčet párnych číslic daného prirodzeného čísla N (využite fakt, že poslednú cifru z čísla viete „odtrhnúť“ prostredníctvom operácie mod).

2. Vypočítajte aritmetický priemer vopred neznámeho počtu prirodzených čísel. Zadávanie čísel ukončite nulou, pričom nulu už do aritmetického priemeru nezaratajte.