A VIRT programozási nyelv

Utasítások, vezérlési szerkezetek

Szelekció

Szintaxis
If_statement = if Expression1 then { Statement } { elsif Expression2 then { Statement } } [ else { Statement } end ] Expression1 = Expression Expression2 = Expression
Jelentés

A Virt-ben az elágazás kifejezéseinek értéke standard Integer kell, hogy legyen. Ha az Expression1 nem nulla, akkor a következõ then után folytatódik a végrehajtás, ha nulla, akkor az elsif-et értékeli ki. Ha a Expression2 nem nulla akkor a következõ then-nel folytatja, egyébként a következõ elsif-el. Ha mindegyik kifejezés nulla, akkor az else ág hajtódik végre, ha nincs ilyen, akkor semmi sem.

Példák
if X < 3 then A := 1 elsif X < 0 then A := 2 elsif X = 0 then A := 3 else A := 4 end

Iteráció: Repeat ciklus

Szintaxis
Repeat_statement = repeat { Statement } until Expression
Jelentés

A kifejezés eredménye Integer kell legyen. A repeat és until közötti utasítások addig hajtódnak végre amíg a kifejezés értéke nulla nem lesz.

Példa
K := 10560 J := 11 repeat K := K / J writeln( K ) until K = 0
960 87 7 0

Iteráció : While ciklus

Szintaxis
While_statement = while Expression do { Statement } end
Jelentés

A While ciklusoknál a kifejezések értéke szintén Integer kell, hogy legyen. Elõször a kifejezés kerül kiértékelésre. Mindaddig, amíg a kifejezés értéke nem nulla, a ciklusmagban szereplõ utasítás végrehajtásra kerül. Amint a kifejezés értéke nulla lesz, az utasítás többet nem lesz végrehajtva.

Példa
L := [ 1, [ 2, [ 3, * ] ] ] P == L while not Null( P ) do writeln( P[ 1 ] ) P == P[ 2 ] end
1 2 3

Iteráció : For..to..do..

Szintaxis
For_statement = for Counter ":=" Expression1 to Expression2 do { Statement } end Expression1 = Expression Expression2 = Expression Counter = Variable
Jelentés
Temp1 := Expression1 Temp2 := Expression2 if Temp1 <= Temp2 then Counter := Temp1 Body while Name <> Temp2 do Counter := Counter + 1 Body end end
Példák
A := array( N ) for I:=1 to N do A[ I ] := Random( 1000 ) end
function F( N ) if N <= 1 then Z := 1 else Z := N * F( N - 1 ) end return Z for I:=1 to 12 do writeln( F( I ) ) end return

Vezérlésátadó utasítások

A goto utasítással a kódban az egyes címkékhez (label) ugorhatunk.

Szintaxis
Goto_statement = goto Label_ID Label_statement = label Label_ID Label_ID = Identifier
Példa
A := [ [ 10, *, 'abc' ], [ 23.9, 11 ], [ 567, 21, *, *, 'dc' ] ] for I:=1 to Card( A ) do for J:=1 to Card( A[I] ) do if Null( A[I,J] ) then goto Found end end end label Found writeln( I ) writeln( J )
Eredmény
1 2