DATA TYPES
----------
 1> Simple -- Boolean, char, integer, real, enumerated, subrange
 2> Structured -- array, string, record, set, file
 3> Pointer.

var X:integer;  Y:real;       Y:=X;

INTEGER
-------
maxint  32767
var i1,i2:integer;
    remainder:integer;
+ - * div mod
a*b   ab
14 div 2     9 div 2    299 div 100    7 mod 3

             L div,mod R
    L  R  DIV   MOD
    -  -  ---   ---
    +  +   +     +         -7 mod 2
    +  -   -     +         7 mod -2
    -  +   -     -         7 div -2
    -  -   +     -

<  >  <=   >=   <> =

REAL
----
0.6   .6   89.0   89.
1.536   300000.0   3.0E5   0.3E6   -612.3   -6123E2   -0.006123E5
+ - * /     8.2*2   1/2

BOOLEAN
-------
Var Leap:boolean;
    error,endofdata:boolean;
error:=true;
endofdata:=false;
A   B   A AND B   A OR B   NOT A
-   -   -------   ------   -----
T   T      T        T        F
T   F      F        T        F
F   T      F        T        T
F   F      F        F        T

CHAR
----
'3'    3   ASCII
var space:char;
    initial,p,nextchar:char;
initial:='j';
space:=' ';
nextchar:=space;


ABS  SQR  SIN  COS  ARCTAN  EXP  LN  SQRT
ODD  PRED  SUCC  ORD  CHR

c:=sqrt(sqr(a)+sqr(b));       tan:=sin(alpha)/cos(alpha);
y:=exp(p*ln(x));              logbofx:=ln(x)/ln(b);
round(7.84)
trunc(7.84)
num:=ord(c)-ord('0');
dig:=(orc(c)-ord('a'))+1;

constants          const name='Ronnie';
                   age=2;
                   pug='-';
                   years:=7*age;

1> if x>=y then max:=x              2> a:=1;  b:=2;  c:=3;  d:=0;
           else max:=y;                if (a<b) and (b<c) then a:=1
                                                                else a:=0;
   program test;                       if a<b and b<c then a:=1
   var num1,num2:integer;                                   else a:=0;
       pos,zero,neg:boolean;           if (a<b) and (b<c) then a:=1;
   begin                                                        else a:=0;
     readln(num1);                     if (a<b) or (b<c) then b:=1
     pos:=num1>0;                                               else b:=0;
     zero:=num1=0;                     if not (a<0) then c:=1
     neg:=(not pos) and (not zero);                    else c:=0;
     readln(num2);                     if ((a<b) or (c<b)) and (a<d)
     writeln(num1>num2)                      then d:=1
   end.                                      else d:=0;

3> a:=false;  b:=true;  c:=false;    4> max:=min; min:=max;
    a or b and not c
    not((a or b) and c)                 if max<min then begin
    not(c and (a or b))                   tmp:=max;
    not c and a or b                      max:=min;
                                          min:=tmp
                                        end;
5> begin b:=b+c;                     6>var big,small:real;
   if b>m                              if big>small then big:=small;
   then begin p:=m; c:=                                  small:=0;
   0.15*b; end else                    if big>small then begin
   begin p:=b; c:=0                      big:=small; small:=0  end;
   end end                             if big>small then big:=small;
                                                    else small:=0;

Precedence:  not
             and
             or
             >  >  <=  >=  <>  =  in

7> if score>70 then write('GREAT!!')
               else if score<30 then write('AWFUL!!')
                                else write('OK');
   if (tally<>0) and (total div tally > min) then ...
   if (tally<>0 then if total div tally > min then ...

writeln('You wouldn''t, I couldn''t');
2,000     x
write()     writeln()
writeln(num:5);          writeln(x:6:2);
read()      readln()
*,/,div,mod     +,-