and | kaj | function | funkcio | program | programo |
array | tabelo | goto | al | record | rikordo |
begin | starto | if | se | repeat | ripetu |
case | okazo | in | en | set | aro |
const | konst | label | marko | to | supre |
div | div | mod | mod | then | tiam |
do | faru | nil | nul | type | tipo |
downto | sube | not | ne | until | ĝis |
else | alie | of | el | var | var |
end | fino | or | aŭ | while | dum |
file | dosiero | packed | pakita | with | super |
for | por | procedure | proceduro |
Abs | abs | Integer | entjera | Sin | sin |
ArcTan | tanArk | Ln | ln | Sqr | kvad |
Boolean | Bulea | MaxInt | maksEnt | Sqrt | rad |
Char | signa | New | kreu | Succ | sek |
Chr | sgn | Odd | nepara | Text | teksta |
Cos | kos | Ord | nro | True | vero |
Dispose | detruu | Output | eligo | Trunk | trunko |
Eof | doFin | Pack | paku | Unpack | malpaku |
Eoln | liFin | Page | paĝo | Reset | hejmen |
Exp | eksp | Pred | ant | Rewrite | reskribu |
False | malvero | Put | metu | Round | ronde |
forward | daŭrigota | Read | legu | Write | skribu |
Get | prenu | Readln | leguLin | Writeln | skribuLin |
Input | enigo | Real | reela |
Noto. La mallongigoj kot, kos, tg aperis jam en la «Fundamenta Krestomatio» («La sunhorloĝo de Dijon»); la formojn div, eksp, kos, rad, sin, tan donas [EKV] kajaŭ [Rei87]; cetere tiu lasta proponas maltangenton, dum ni restas ĉe la PIV-a tangentarko.
TIPO semajntago = (lu,ma,me,ĵa,ve,sa,di); { enumeracio } labortago = lu..ve; { subvariejo de semajntago } litero = 'A' .. 'Z'; { subvariejo de signa } vertikalo = 1..80; { subvariejo de entjera } natura = 0..maksEnt; { subvariejo de entjera }
Subvariejo ebligas pli klare prezenti programon. Al la tradukilo subvariejo donas okazon ŝpari memoron (ekz-e por la valoroj de la tipo vertikalo sufiĉas unu bajto, dum por nelimigita entjero multaj tradukiloj rezervas 4 bajtojn) kaj kontroli la akcepteblon de la valoroj (ekz-e de indica variablo) pli proksime al la loko, kie unue estiĝas eraro (t.e. en la esprimo, kie la variablo ricevis maltaŭgan valoron, kiu loko povas esti tre malproksima de ĝia apero en la indica pozicio).
TIPO kompleksa = RIKORDO re, im: reela FINO; dato = PAKITA RIKORDO jaro : 1990..2100; monato: 1..12; tago : 1..31; FINO; figuro = RIKORDO x, y, areo: reela; { kampoj komunaj al ĉiuj varioj } OKAZO f : formo EL ortogramo : (lateroA,lateroB:reelo; oblikvo:angulo); triangulo : (latero: reela; klino,alfo,beto: angulo); cirklo : (diametro: reelo) FINO; VAR z: kompleksa; jubileo: dato; bildeto: figuro;
TIPO monato = (jan,feb,mar,apr,maj,jun,jul,aŭg,sep,okt,nov,dec); VAR longo,jaro: entjera; mon: monato;
por determini la tagnombron longo en la monato mon uzeblas la okazelekta ordono:
OKAZO mon EL jan, mar, maj, jul, aŭg, okt, dec: longo := 31; feb: SE (jaro MOD 4 = 0) KAJ (jaro MOD 100 ≠ 0) TIAM longo := 29 ALIE longo := 28; apr, jun, sep, nov: longo := 30 FINO { de la okazelekta ordono }
La aperoj de la monatnomoj en tiu okazelekta ordono estas nomataj okazmarkoj, kiujn oni ne konfuzu kun saltmarkoj (vd salto); la esprimo mon estas la okazindico; la okazmarkoj devas esti konstantoj de tiu sama tipo, kiel la okazindico, kaj tiu tipo rajtas esti nur numerebla tipo. Ago konsistiganta apartan okazon (aŭ «branĉon»), sintakse estas ordono; se oni bezonas branĉon el pluraj ordonoj, oni arigu ilin en parentezan ordonon.
DUM i > 1 FARU STARTO SE nepara(i) TIAM y := y * x; i := i DIV 2; x := kvad(x); FINO; DUM NE doFin(d) FARU STARTO P(d↑); prenu(d) FINO
En la unua ekzemplo nombrila iteracio ne taŭgas, ĉar la «iteracinombrilo» i ne estas simple krementata; en la dua ekzemplo komenckondiĉa iteracio pli konvenas ol finkondiĉa iteracio, ĉar la dosiero d povas esti tute malplena.
Komenckondiĉa iteracio havanta la formon:
SE Kondiĉo TIAM STARTO Ordono; DUM Kondiĉo FARU Ordono; FINO
(se la Ordono ne entenas markitan ordonon).
POR i:=1 SUPRE 63 FARU SE grizogrado[i]<0.5 TIAM skribu(' ') ALIE skribu('*')
Estu nombrila iteracio havanta la formon:
STARTO ñ:=Esprimo1; ë:=Esprimo2; β:=malvero; SE ñ≤ë TIAM STARTO { resp. SE ñ≥ë TIAM STARTO } RIPETU Ordono; SE ñ=ë TIAM β:=vero ALIE ñ:=sek(ñ); { resp. ñ:=ant(ñ) } ĜIS β FINO { ñ iĝas nedifinita } FINO