PROGRAM  VarConst1;
CONST a='3';b=3;
VAR   c:CHAR; d:INTEGER;
BEGIN WRITE(a);WRITELN(b);
c:=PRED(a);WRITE(c);
d:=b+1;WRITELN(d)
END.

Output: 3    3
        2    4

.
PROGRAM  VarConst2;
CONST t=TRUE; f=FALSE;
VAR   b:BOOLEAN;
BEGIN b:=f; WRITELN(b);
      WRITELN(t)
END.

Output:  FALSE
         TRUE

.
PROGRAM  Array1;
CONST a=5;b='3';
VAR   c:INTEGER; d:CHAR;
e:ARRAY [2..a] OF CHAR;
f:ARRAY ['0'..b] 
        OF INTEGER;
BEGIN c:=a-2; d:=PRED(b);
e[c]:=SUCC(b);
WRITELN(e[3]);
f[d]:=20*a;WRITELN(f['2'])
END.

Output: 4
        100

.
PROGRAM  Array2;
CONST t=TRUE;
VAR b:BOOLEAN;
m:ARRAY [BOOLEAN]
        OF INTEGER;
BEGIN
m[FALSE]:=0; m[TRUE]:=1;
b:=TRUE; WRITELN(m[FALSE]);
WRITE(m[b]);
WRITELN(m[t]);
END.

Output: 0
        1  1

.
PROGRAM  TypConst;
CONST n=4;
      t:INTEGER=5;
VAR   w:INTEGER;
BEGIN w:=t-n; t:=w+1;
WRITELN(t);
END.

Output: 2

.
PROGRAM  VarPos1;
VAR b:BOOLEAN;
    i:INTEGER;
    c:CHAR;
BEGIN i:=0
END.

.
PROGRAM VarPos2;
{more rational}
VAR b:BOOLEAN; c:CHAR;
    i:INTEGER;
BEGIN i:=0
END.

.
PROGRAM  calc;
VAR  a,b,c:INTEGER;
BEGIN a:=3; b:=a+2;
b:=SQR(b);b:=b-2;
c:=b mod a;
writeln(c);
END.

Output: 2

.
PROGRAM char_func;
CONST e='1';
VAR   i:INTEGER;
      c:CHAR;
BEGIN
i:=ORD(e);WRITELN(i);
c:=CHR(49);WRITELN(c);
c:=SUCC(e);WRITELN(c);
c:=PRED(e);WRITELN(c);
END.

Output: 49
        1
        2
        0

.
PROGRAM logic;
CONST a=FALSE; b=FALSE;
VAR   c,d,e,f:BOOLEAN;
BEGIN c:=a AND b;
d:=NOT a; e:=NOT b;
f:=e OR d; f:=NOT f;
WRITE(f); WRITE(' xor ');
WRITELN(c);
f:=c XOR f; WRITELN(f)
END.

Output: FALSE xor FALSE
        FALSE

.
PROGRAM cifra;
CONST n:INTEGER=345;
VAR   i:INTEGER;
c:ARRAY [1..3] OF INTEGER;
BEGIN c[3]:=n MOD 10;
n:=n DIV 10;
c[2]:=n MOD 10;
c[1]:=n DIV 10;
FOR i:=1 TO 3 DO
    WRITELN(c[i]);
END.

Output: 3
        4
        5

.
PROGRAM  IfInt;
VAR   x,s:INTEGER;
BEGIN x:=2;
if x<0 then s:=-1
       else s:=1;
writeln(s)
END.

Output: 1

.
PROGRAM  IfBool;
VAR i:INTEGER;
    b:BOOLEAN;
    c:CHAR;
BEGIN 
i:=1; b:=i=0;
if b then c:='0'
     else c:='1';
writeln(c)
END.

Output: 1

.
PROGRAM StepMinEdin;
CONST n:INTEGER=3;
VAR   r,e:INTEGER;
BEGIN r:=n MOD 2;
IF r=0 THEN e:=1
       ELSE e:=-1;
WRITELN(e);
END.

Output: -1

.
PROGRAM  Sign;
CONST x=2;
VAR   s:INTEGER;
BEGIN
IF x<0 THEN s:=-1
       ELSE s:=1;
IF x=0 THEN s:=0;
writeln(s)
END.

Output: 1

.
PROGRAM cifra;
CONST c:CHAR='3';
VAR   i:INTEGER;
      l,r,w:BOOLEAN;
BEGIN l:=c>='0'; r:=c<='9';
      w:=l AND r;
IF w 
  THEN WRITELN('number')
  ELSE WRITELN('not number');
END.

.
PROGRAM primer;
CONST a:INTEGER=2;
      b:INTEGER=15;
VAR   c:INTEGER;
BEGIN c:=0;
      WHILE a<b DO
            BEGIN a:=a+5;
                  c:=c+1
            END;
      WRITELN(c)
END.

Output:  3

.
PROGRAM poisk;
VAR i:INTEGER;
t:ARRAY [1..11] OF CHAR;
BEGIN FOR i:=1 TO 10 DO
          READ(t[i]);
t[11]:='A'; i:=1;
WHILE t[i]<>'A' DO i:=i+1; 
IF i<11 THEN WRITELN(i)
        ELSE WRITELN('no');
END.

.
PROGRAM SQRT;
VAR x,y,s:INTEGER;
BEGIN
READLN(x); y:=0;
REPEAT
      y:=y+1; 
      s:=SQR(y);
UNTIL s>=x;
WRITELN(y)
END.

.
PROGRAM text;
VAR i:INTEGER;
t:ARRAY [1..10] OF CHAR;
BEGIN  i:=0;
REPEAT i:=i+1;
       READ(t[i])
UNTIL  t[i]='.'
END.

.
PROGRAM  cycle_FOR1;
VAR  i:INTEGER;
BEGIN
FOR i:=1 TO 9
    DO WRITELN(i)
END.

.
PROGRAM  cycle_FOR2;
VAR  i:INTEGER;
BEGIN
FOR i:=9 DOWNTO 1
    DO WRITELN(i)
END.

.
PROGRAM  cycle_FOR3;
VAR  c:CHAR;
BEGIN
FOR c:='A' TO 'Z'
    DO WRITE(c)
END.

.
PROGRAM  cycle_FOR4;
VAR  c:CHAR;
BEGIN
FOR c:='Z' DOWNTO 'A'
    DO WRITE(c)
END.

.
PROGRAM  cycle_FOR5;
VAR  b:BOOLEAN;
BEGIN
FOR b:=FALSE TO TRUE
    DO WRITELN(b)
END.

.
PROGRAM  cycle_FOR6;
VAR  b:BOOLEAN;
BEGIN
FOR b:=TRUE DOWNTO FALSE
    DO WRITELN(b)
END.

.
PROGRAM  factor_WHILE;
VAR   i,n,f:INTEGER;
BEGIN n:=3;
      f:=1; i:=1;
WHILE i<=n DO
BEGIN f:=f*i;
      i:=i+1
END;
writeln(f)
END.

.
PROGRAM  factor_REPEAT;
VAR  i,n,f:INTEGER;
BEGIN  n:=3;
       f:=1; i:=1;
REPEAT f:=f*i;
       i:=i+1
UNTIL  i>n;
writeln(f)
END.

.
PROGRAM  factor_FOR;
VAR   i,n,f:INTEGER;
BEGIN n:=3;
      f:=1;
FOR i:=1 TO n DO f:=f*i;
writeln(f)
END.

.
PROGRAM Gauss;
CONST n=100;
VAR   i,s:INTEGER;
BEGIN s:=0;
FOR i:=1 TO n DO s:=s+i;
WRITELN(s);
END.

Output: 5050

.
PROGRAM bool;
VAR  b,n:BOOLEAN;
BEGIN
FOR b:=FALSE TO TRUE DO
   BEGIN WRITE('b=');
         WRITE(b);
         n:=not b;
         WRITE(' not(b)=');
         WRITELN(n)
   END;
END.

Output: b=FALSE   not(b)=TRUE
        b=TRUE  not(b)= FALSE

.
PROGRAM summa;
CONST n=5;
VAR   i,s:INTEGER;
m:ARRAY [1..n] OF INTEGER;
BEGIN
FOR i:=1 TO n DO
    readln(m[i]); s:=0;
FOR i:=1 TO n DO s:=s+m[i];
WRITELN(s);
END.

.
PROGRAM OtrElem;
CONST n=5;
VAR i:INTEGER; a,b:BOOLEAN;
m:ARRAY [1..n] OF INTEGER;
BEGIN FOR i:=1 TO n DO
       readln(m[i]);  i:=0; 
REPEAT i:=i+1; a:=m[i]<0; 
b:=i=n; b:=a OR b UNTIL b;
IF a THEN WRITELN(m[i])
     ELSE WRITELN('no -')
END.

.
PROGRAM  Hex;
VAR i:INTEGER; s:CHAR;
h:ARRAY [0..15] OF CHAR;
BEGIN s:='0';
FOR i:=0 TO 9 DO
 BEGIN h[i]:=s; s:=SUCC(s);
 END;  s:='A';
FOR i:=10 TO 15 DO
 BEGIN h[i]:=s; s:=SUCC(s);
 END;  WRITELN(h[13]);
END.

Output:  D

.
PROGRAM text;
CONST n=10; e='.';
VAR   i,j:INTEGER;
t:ARRAY [1..n] OF CHAR;
BEGIN i:=0;
REPEAT i:=i+1;READ(t[i]);
UNTIL t[i]=e;          
FOR j:=1 TO i DO
    WRITE(t[j]);
END.

.
PROGRAM OutText;
BEGIN
WRITELN('Text example')
END.

Output:  Text example

.
PROGRAM OutVar;
VAR 
m:ARRAY [1..3] OF CHAR;
i:INTEGER;
BEGIN m[3]:='Q'; i:=3;
WRITELN(m[i])
END.

Output:  Q

.
PROGRAM OutputExample;
VAR   c:CHAR;
BEGIN c:='3';
WRITE('Example');
WRITELN(' of output');
WRITE('c=');
WRITELN(c)
END.

Output:  Example of output
         c=3

.
PROGRAM read_int;
VAR a,b:INTEGER;
BEGIN READLN(a);
      READLN(b);
      WRITE(a); WRITE(b)
END.

.
PROGRAM read_char;
VAR a,b:CHAR;
BEGIN READ(a);
      READ(b);
      WRITE('=>');
      WRITE(a); WRITE(b)
END.

.
PROGRAM oform;
VAR   a:INTEGER;
BEGIN WRITE('A=');
      READLN(a);
      WRITE('A=');
      WRITELN(a)
END.

.
PROGRAM proc1;
VAR a:INTEGER;
PROCEDURE
proc(a:integer);
BEGIN    WRITELN(a);
  a:=5;  WRITELN(a)
END;
BEGIN
a:=7;    WRITELN(a);
proc(a); WRITELN(a)
END.

Output:   7
          7
          5
          7

.
PROGRAM proc2;
PROCEDURE proc(a:integer);
BEGIN  WRITELN(a);
       a:=5; WRITELN(a)
END;
BEGIN
proc(3);
END.

Output:  3
         5

.
PROGRAM proc3;
VAR a:INTEGER;
PROCEDURE
proc(VAR a:integer);
BEGIN    WRITELN(a);
  a:=5;  WRITELN(a)
END;
BEGIN
a:=7;    WRITELN(a);
proc(a); WRITELN(a)
END.

Output:   7
          7
          5
          5

.
PROGRAM proc4;
VAR a:INTEGER;
PROCEDURE proc(b:integer);
VAR a:INTEGER;
BEGIN    WRITELN(a); {???}
  a:=5;  WRITELN(a)
END;
BEGIN
a:=7;    WRITELN(a);
proc(a); WRITELN(a)
END.

Output: 7
        [unpredictable number]
        5
        7

.
PROGRAM Geron;
CONST a:INTEGER=2;
b:INTEGER=4; c:INTEGER=4;
VAR s,p:INTEGER;
PROCEDURE rab(x:INTEGER);
VAR r:INTEGER;
BEGIN r:=p-x; s:=s*r END;
BEGIN p:=a+b; p:=p+c;
p:=p DIV 2; s:=p; rab(a);
rab(b); rab(c); WRITELN(s);
END.

Output:  15

.
PROGRAM CalcFunc;
VAR x,y:INTEGER;
FUNCTION
func(k:INTEGER):INTEGER;
VAR r:INTEGER;
BEGIN r:=SQR(k);func:=20*r
END;
BEGIN FOR x:=1 TO 5 DO
BEGIN y:=func(x);writeln(y)
END;
END.

Output: 20
        80
       180
       320
       500

.
PROGRAM pech;
VAR x:INTEGER;
PROCEDURE pech(s:CHAR);
BEGIN WRITE('sign "');
WRITE(s); WRITELN('"')
END;
BEGIN READLN(x);
IF x<0 THEN pech('-')
       ELSE pech('+')
END.
.
.