MODULO Bufro[1];
EKSPORTO deponu, elprenu;
IMPORTO atendu, evento, okazigu, pretigu, subtipo;
KONST lon = 256; (* la bufrolongo *)
VAR n: [0..lon]; (* la nombro de deponitaj datumoj *)
neplena, nemalplena: evento;
al, de: [0..lon-1]; (* la pozicimontriloj *)
buf: TABELO [0..lon-1] EL subtipo;
PROCEDURO deponu(x: subtipo);
STARTO n := n+1;
SE n>lon TIAM atendu(neplena) FINO;
buf[en] := x; en := (en+1) MOD lon;
SE n<=0 TIAM okazigu(nemalplena) FINO;
FINO deponu;
PROCEDURO elprenu(VAR x:subtipo);
STARTO n:=n-1;
SE n<0 TIAM atendu(nemalplena) FINO;
x:=buf[de]; de := (de+1) MOD lon;
SE n>=lon TIAM okazigu(neplena) FINO;
FINO elprenu;
STARTO (* la komencvalorizoj: *)
n:=0; en:=0; de:=0; pretigu(neplena); pretigu(nemalplena);
FINO Bufro.
PROCEDURO prima(VAR n:entjera): Bulea; (*ĉu n estas primo?*)
VAR divizoro: entjera;
STARTO
SE n MOD 2 = 0 TIAM REEN n=2 FINO;
divizoro:=3;
MAŜO (* --- komenciĝas senkondiĉa iteracio --- *)
SE divizoro*divizoro>n TIAM REEN vero FINO;
SE n MOD divizoro = 0 TIAM REEN falso FINO;
divizoro := divizoro+2
FINO (* --- de senkondiĉa iteracio *)
FINO
![[Indekso]](bildoj/indekso.gif)
![[Instrukcio]](bildoj/kovrilo.gif)