Komandas

Piešķiršanas komanda

< mainīgais > := < izteiksme > ;

Mainīgajam piešķir vērtību.

a:=12;

tonis:='sarkans';

b:=(2+2)/2;

d:=d+1;

Procedūras izsaukšana

< procedūras nosaukums > ;

Liek izpildīt procedūru.

writeln(a:6:2);

galva(100,100,2);

ievade;

Beznosacījuma pāreja

GOTO < iezīme > ;

Maina komandu izpildes kārtību, pārejot pie komandas, kurai priekšā ir iezīme. Iezīmei jābūt aprakstītai aparkstošās daļas sadaļā LABEL.

program Kvadratskane;
var a:real;
label b;
begin
b:writeln('Ievadiet nenegatīvu skaitli');
  readln(a);
  if a<0 then goto b;
  writeln('Kvadrātsakne no ',a:5:2,' ir',sqrt(a):5:2)
end.

Apvienojuma komanda

BEGIN < komandas > END;

Vairākas komandas apvieno vienā blokā, kurš tiek uztverts kā viena komanda. Lieto vietās, kur drīkst rakstīt vienu komandu, bet vajag vairākas. Vārdus BEGIN un END mēdz saukt arī par operatoriekavām.

while x<10 do begin
  s:=s+x;
  x:=x+1;
end;

Sazarojuma komanda IF

IF < nosacījums > THEN < 1.komanda > ELSE < 2.komanda > ;

vai

IF < nosacījums > THEN < 1.komanda > ;

Ja nosacījums izpildās, tad tiek izpildīta 1.komanda. Pretējā gadījumā tiek izpildīta 2.komanda. Ja ELSE netiek lietots, tad nosacījuma neizpildīšanās gadījumā uzreiz tiek pāriets pie nākošās komandas, Ja aiz THEN vai ELSE nepieciešams rakstīt vairākas komandas, tad jālieto apvienojuma komanda, pie tam aiz END pirms ELSE neliek semikolu.

if a mod 2 = 0 then writeln(a,' ir pāra skaitlis') else writeln(a,' ir nepāra skaitlis');

if b<=n then b:=b+1;

if (atbilde='bite') or (atbilde='Bite') or (atbilde='BITE') then
  begin
    writeln('Pareizi');
    p:=p+1;
  end
else
  begin
    writeln('nepareizi');
    n:=n+1;
  end;

Varianta komanda CASE

CASE < izteiksme > OF
< 1.gadījums > : < 1.komanda > ;
< 2.gadījums > : < 2.komanda > ;
...
< n-tais gadījums > : < n-tā komanda > ;
ELSE < pēdējā komanda >
end;

Ja izteiksme ir vienāda ar kādu no gadījumiem, tad izpilda attiecīgo komandu. Ja izteiksme nav vienāda ar nevienu no gadījumiem, tad izpilda pēdējo komandu. ELSE var arī nelietot. Ja izteiksme ir vienāda ar vairākiem gadījumiem, tad izpildīsies pirmā no attiecīgajām komandām. Ja kādā no gadījumiem nepieciešamas vairākas komandas, tad jālieto apvienojuma komanda.

Case C of
’a’ : WriteLn (’nospiests A’);
’b’ : WriteLn (’nospiests B’);
’c’ : WriteLn (’nospiests C’);
else
WriteLn (’nospiests nepazīstams burts: ’,C);
end;

Case C of
’a’,’e’,’i’,’o’,’u’ : WriteLn (’īsais patskanis’);
’ā’,’ē’,’ī’,’ū’ : WriteLn (’garais patskanis’);
else
WriteLn (’Līdzskanis’);
end;

Case Skaitlis of
1..10 : WriteLn (’Mazs skaitlis’);
11..100 : WriteLn (’Normāls, vidējs skaitlis’);
else
WriteLn (’Milzīgs skaitlis’);
end;

Atkārtojuma komanda FOR

FOR < mainīgais > := < sākuma vērtība > TO < beigu vērtība > DO < komanda > ;

vai

FOR < mainīgais > := < sākuma vērtība > DOWNTO < beigu vērtība > DO < komanda > ;

Vispirms aplūkosim gadījumu ar TO. Sākumā mainīgajam tiek piešķirta sākuma vērtība un, ja tā nepārsniedz beigu vertību, tad tiek izpildīta komanda. Tad mainīgā vērtība tiek par vienu palielināta un, ja tā nepārsniedz beigu vertību, tad tiek izpildīta komanda. Tad atkal mainīgā vērtību palielina par vienu utt. Process beidzas brīdī, kad mainīgais sasniedzis beigu vertību un pēdējo reizi izpildīta komanda. Ja nepieciešams atkārtot vairāku komandu grupu, tad jālieto apvienojuma komanda. Ja beigu vērtība būs mazāka par sākuma vērtību, tad komanda netiks izpildīta nevienu reizi.

Lietojot DOWNTO mainīgais katrā solī tiek samazināts par vienu. Šajā gadījumā beigu vērtībai nevajadzētu būt lielākai par sākuma vērtību.

for i:=1 to 10 do writeln(i);

for i:=9 downto 1 do writeln(i,'*',i,'=',i*i);

Atkārtojuma komanda REPEAT

REPEAT
1.komanda;
2.komanda;
...
n-tā komanda;
UNTIL < nosacījums > ;

Vispirms tiek izpildītas komandas. Tad tiek pārbaudīts nosacījums. Ja nosacījums neizpildas, viss sākas no gala. Ja nosacījums izpildas, tiek izpildīta nākošā komanda aiz UNTIL.

program LKD;
var a,b,r:integer;
begin
  writeln('Ievadiet divus naturālus skatļus');
  readln(a,b);
  repeat
    r:=a mod b;
    a:=b;
    b:=r;
  until r=0;
  writeln('LKD=',a);
end.

Atkārtojuma komanda WHILE

WHILE < nosacījums > DO < komanda >

Ja nosacījums izpildas, tiek izpildīta komanda un viss sākas no jauna. Ja nosacījums kādā brīdī neizpildas, tiek izpildīta nākošā komanda aiz WHILE. Ja nepieciešams atkārtot vairāku komandu grupu, tad jālieto apvienojuma komanda.

program LKD;
var a,b:integer;
begin
  writeln('Ievadiet divus naturālus skatļus');
  readln(a,b);
  while a<>b do if a>b then a:=a-b else b:=b-a;
  writeln('LKD=',a);
end.

Komanda WITH