● charakterizujte úplné a neúplné vetvenie
● nakreslite vývojové diagramy jednotlivých typov vetvení
● charakterizujte logický údajový typ, operácie, funkcie
● charakterizujte pozičné a nepozičné číselné sústavy
● vytvorte program podľa zadania (porovnanie 3 prirodzených čísel)
Algoritmická konštrucia - ak je úloha algoritmicky riešiteľná , jej algoritmus možno vytvoriť kombináciou algoritmických konštrukcií. Algoritmické konštrukcie sú - sekvencia, vetvenie a cyklus.
- lineárna jednoduchá štruktúra (sekvenčná) - algoritmus prebieha lineárne bez opakovania a obsahuje v podstate vstupné, výpočtové a výstupné operácie. Sekvenciou rozumieme postupnosť príkazov, ktorá sa vykonáva v takom poradí, v akom sú jednotlivé časti zapísané.
- lineárna rozvinutá štruktúra (rozhodovacia) - algoritmus opäť prebieha lineárne bez opakovania, obsahuje však naviac operáciu výberu, keď určité operácie sa prevedú len za splnenia určitých podmienok. V opačnom prípade sa pokračuje ďalej vo výpočte alebo sa realizujú iné operácie. Dochádza teda k vetveniu v lineárnej sekvencii operácie programu. Vetvenie môže byť viacnásobné, závislé na hodnotách, ktoré obsahuje premenná nazývaná prepínač.
- cyklická štruktúra - algoritmus môže prebiehať dvojako. V prvom prípade prebieha cyklus tak dlho, pokiaľ podmienka má hodnotu ÁNO. V druhom prípade sa opakuje tak dlho, pokiaľ podmienka má hodnotu NIE; cyklus teda prebehne minimálne raz. Tieto druhy cyklov používame v tom prípade, keď môžeme predom stanoviť počet opakovaní cyklu.
Vetvenie
Vetvenie - sa používa, ak vykonanie príkazu (alebo skupiny príkazov) je podmienené splnením určitej podmienky. Nesplnenie danej podmienky môže viesť k vykonaniu inej skupiny príkazov.
Úplné vetvenie
Ak je podmienka splnená, program pokračuje vetvou "+", ak nie je splnená, pokračuje vetvou "-".
Neúplné vetvenie
Vetvenie môže byť aj neúplné, t.j. ak je podmienka splnená, vykoná sa príkaz, ak nie je, nevykoná sa nič.
Štruktúra podmienky
IF podmienka THEN prikaz1;
{vykoná prikaz1 len vtedy, ak je splnená podmienka}
IF podmienka THEN prikaz1 ELSE prikaz2;
{vykoná príkaz1 len vtedy, ak je splnená podmienka,
inak vykoná prikaz2}
IF podmienka1 {najskôr skontroluje platnosť podmienky1}
THEN {ak platí podmienka1, tak}
IF podmienka2 {skontroluje platnosť podmienky2}
THEN {ak platí aj podmienka2, tak}
prikaz2; {vykoná príkaz2}
IF (podmienka1) and (podmienka2) then prikaz2; {alternatívny zápis pre predchádzajúci príklad
ak je splnená podmienka1 a podmienka2, tak...}
Štruktúra zápisu zloženého príkazu
IF podmienka THEN
begin
prikaz1;
prikaz2;
...
prikazX; {zložený príkaz - môže/nemusí byť}
end
ELSE
begin
prikaz1;
prikaz2;
...
prikazY; {zložený príkaz - môže/nemusí byť}
end;
Logický údajový typ
Logický typ je najjednoduchší údajový typ. Je definovaný nad množinou pravdivostných hodnôt a môže nadobúdať iba dve hodnoty - pravda (true) a nie je pravda (false). Pri definovaní všetkých typov (aj logického typu) budeme postupovať tak, že najskôr uvedieme identifikátor (BOOLEAN), potom množinu hodnôt {false, true}, ktorú môže nadobúdať, potom operácie, a nakoniec štandardné funkcie.
Operácie
and logický súčin
or logický súčet
not logická negácia
< menší
> väčší
= rovný
<= menší alebo rovný
>= väčší alebo rovný
<> nerovná sa
Štandardné funkcie
succ - nasledovník
pred - predchodca
ord - poradové číslo
PASCAL - Program na porovnanie 3 prirodzených čísel
program cislo; uses crt; var a,b,c,max_num:integer; begin clrscr; writeln('Porovnanie 3 cisel'); writeln('------------------'); writeln('Zadaj prve cislo'); readln(a); writeln('Zadaj druhe cislo'); readln(b); writeln('Zadaj tretie cislo'); readln(c); clrscr; IF a > b THEN begin IF a > c THEN begin IF b > c THEN begin writeln('Najvacsie cislo je ',a,' potom ',b,' potom ',c); end else begin writeln('Najvacsie cislo je ',a,' potom ',c,' potom ',b); end; end else begin writeln('Najvacsie cislo je ',c,' potom ',a,' potom ',b); end; end else begin IF b > c THEN begin IF a > c THEN begin writeln('Najvacsie cislo je ',b,' potom ',a,' potom ',c); end else begin writeln('Najvacsie cislo je ',b,' potom ',c,' potom ',a); end; end else begin writeln('Najvacsie cislo je ',c,' potom ',b,' potom ',a); end; end; readln; end.
Žiadne komentáre:
Zverejnenie komentára