Pristine Ack-5.5
[Ack-5.5.git] / doc / em / exam.p
1   program example(output);
2   {This program just demonstrates typical EM code.}
3   type rec = record r1: integer; r2:real; r3: boolean end;
4   var mi: integer;  mx:real;  r:rec;
5
6   function sum(a,b:integer):integer;
7   begin
8     sum := a + b
9   end;
10
11   procedure test(var r: rec);
12   label 1;
13   var   i,j: integer;
14         x,y: real;
15         b: boolean;
16         c: char;
17         a: array[1..100] of integer;
18
19   begin
20         j := 1;
21         i := 3 * j + 6;
22         x := 4.8;
23         y := x/0.5;
24         b := true;
25         c := 'z';
26         for i:= 1 to 100 do a[i] := i * i;
27         r.r1 := j+27;
28         r.r3 := b;
29         r.r2 := x+y;
30         i := sum(r.r1, a[j]);
31         while i > 0 do begin j := j + r.r1; i := i - 1 end;
32         with r do begin r3 := b;  r2 := x+y;  r1 := 0 end;
33         goto 1;
34   1:    writeln(j, i:6, x:9:3, b)
35   end; {test}
36   begin {main program}
37     mx := 15.96;
38     mi := 99;
39     test(r)
40   end.