20th Jún2012

Pascal podmienky (doplnkové učivo)

by Zippersk

[more...]

Toto je doplnkové učivo,čiže vedieť vám ho netreba.  Zatiaľ sme o takýchto veciach ešte na informe nepočuli. Píšem to pre tých, ktorý sa ma na informe pýtajú, ako som urobil toto, a tam-to...

V pascaly máme 2 druhy podmienok. Úplné a neúplné.

Úplná podmienka:

IF (podmienka) THEN BEGIN
príkaz;


END
ELSE BEGIN
príkaz;

END;

Skrátená (častejšie používaná)

IF (podmienka) THEN BEGIN
príkaz;

END;

Pri podmienkach sa často používajú znamienka väčšie, menšie..... Tu sú príklady:

 IF (X=10)  THEN ak je x rovné číslu 10
 IF (X<10)  THEN ak je x menšie ako 10
 IF (X>10)  THEN ak je x väčšie ako 10
 IF (X<=10)  THEN ak je x menšie, alebo rovné 10
 IF (X>=10)  THEN ak je x väčšie, alebo rovné 10
 IF (X<>10)  THEN ak je x rôzne od 10

A taktiež sa používajú aj výrazy AND, OR a NOT.

IF (X=10) AND (Y=X) THEN .. ak x=10 a zároveň y=x
IF (X<Y) OR (X=Y) THEN .. ak x<y alebo x=y
IF NOT (X=Y) THEN .. ak neplatí x=y

To by bolo k teórii. Teraz by sme si mohli ukázať nejaký jednoduchý program.

program podmienky;

var a,b:integer;
begin
readln(a);
IF (a=10) THEN BEGIN
writeln('Napísal si číslo 10');
END
ELSE BEGIN
writeln('Napísal si iné číslo ako 10');
END;
end. 

Toto bola naozaj jednoduchá podmienka. Ak si zadal do premennej "a" číslo 10, tak ti program vypísal "Napísal si číslo 10", a ak nejaké iné číslo, tak program napísal "Napísal si iné číslo ako 10".

Teraz by sme mohli túto podmienku urobiť trošku zložitejšou.

program podmienky2;
var a,b:integer;
begin
readln(a);
readln(b);
IF (a>=10) and (b>=15) THEN BEGIN
writeln('Obidve čísla sú väčšie ako 15');
END
ELSE BEGIN
writeln('Jedno, alebo obe čísla sú menšie ako 15');
END;
End. 

Teraz máme program, do ktorého zadáme 2 čísla, a on nám povie, či obidve sú väčšie ako 15.
Príkaz IF má svoje výhody, ale aj nevýhody. Výhodou je že sa dajú doň ho vložiť viac premenných, ale nevýhodou je, že zaberá strašne veľa miesta. Aby sme ušetrili miesto, máme tu príkaz Case. Funguje nasledovne.

program PríkazCase;
var a:integer;
begin
readln(a);
Case a of
1:writeln('Zadal si číslo jedna');
2:writeln('Zadal si číslo 2');
2..50:writeln('Zadal si číslo od 2 do 50');
else
writeln('Zadal si väčšie číslo ako 50');
end;
end. 

Príkaz Case sa používa veľmi často. Ukážem vám ešte pár príkladov jeho využitia.
program Case2;
var a:string;
begin
readln(a);
Case a of
'a':writeln('Bola stalačená klávesa A');
'b':writeln('Bola stalačená klávesa B');
'c':writeln('Bola stalačená klávesa C');
else
writeln('Bola stlačená neznáma klávesa.');
end;
end. 

Tak tento program nám vypíše, ktorú klávesu sme stlačili. Všimnite si, že premenná "a" je v type string, do ktorej sa ukladajú textové premenné. Posledný príklad na Case, ktorý ma napadol je:

program Case3;
var a:string;
begin
readln(a);
Case a of
'a','e','i','o','u','y':writeln('Napísal si samohásku.');
'ô':writeln('Dvojhláska');
else
writeln('Spoluhláska');
end;
end. 

To je zatiaľ k podmienkam všetko. Keď ma ešte niečo napadne, tak to tu doplním. ;)

Pridaj komentár