Pristine Ack-5.5
[Ack-5.5.git] / doc / pascal / example.doc
1 .sp 1.5i
2 .ft B
3 Appendix C: An example
4 .ft R
5 .nh
6 .nf
7
8
9 \h'+10u' 1      \fBprogram\fR factorials(input, output);
10 \h'+10u' 2      { This program prints factorials }
11 \h'+10u' 3
12 \h'+10u' 4      \fBconst\fR
13 \h'+10u' 5              FAC1 = 1;
14 \h'+10u' 6      \fBvar\fR
15 \h'+10u' 7              i : integer;
16 \h'+10u' 8
17 \h'+10u' 9      \fBfunction\fR factorial(n : integer) : integer;
18 10      \fBbegin\fR
19 11              \fBif\fR n = FAC1 \fBthen\fR
20 12                      factorial := FAC1
21 13              \fBelse\fR
22 14                      factorial := n * factorial(n-1);
23 15      \fBend\fR;
24 16
25 17      \fBbegin\fR
26 18              write('Give a number : ');
27 19              readln(i);
28 20              \fBif\fR i < 1 \fBthen\fR
29 21                      writeln('No factorial')
30 22              \fBelse\fR
31 23                      writeln(factorial(i):1);
32 24      \fBend\fR.
33 .bp
34 .po
35 .DS
36  mes 2,4,4                                           loc 16
37 \&.1                                                 cal $_wrs
38  rom 'factorials.p\(rs000'                                   asp 12
39 i                                                    lin 19
40  bss 4,0,0                                           lae input
41 output                                               cal $_rdi
42  bss 540,0,0                                         asp 4
43 input                                                lfr 4
44  bss 540,0,0                                         ste i
45  exp $factorial                                      lae input
46  pro $factorial, ?                                           cal $_rln
47  mes 9,4                                             asp 4
48  lin 11                                              lin 20
49  lol 0                                               loe i
50  loc 1                                               loc 1
51  cmi 4                                               cmi 4
52  teq                                                 tlt
53  zeq *1                                              zeq *1
54  lin 12                                              lin 21
55  loc 1                                              .4
56  stl -4                                              rom 'No factorial'
57  bra *2                                              lae output
58 1                                                    lae .4
59  lin 14                                              loc 12
60  lol 0                                               cal $_wrs
61  lol 0                                               asp 12
62  loc 1                                               lae output
63  sbi 4                                               cal $_wln
64  cal $factorial                                      asp 4
65  asp 4                                               bra *2
66  lfr 4                                              1
67  mli 4                                               lin 23
68  stl -4                                              lae output
69 2                                                    loe i
70  lin 15                                              cal $factorial
71  mes 3,0,4,0,0                                       asp 4
72  lol -4                                              lfr 4
73  ret 4                                               loc 1
74  end 4                                               cal $_wsi
75  exp $m_a_i_n                                asp 12
76  pro $m_a_i_n, ?                                     lae output
77  mes 9,0                                             cal $_wln
78  fil .1                                              asp 4
79 \&.2                                                2
80  con input, output                                   lin 24
81  lxl 0                                               loc 0
82  lae .2                                              cal $_hlt
83  loc 2                                               end 0
84  lxa 0                                               mes 4,24,'factorials.p\(rs000'
85  cal $_ini
86  asp 16
87  lin 18
88 \&.3
89  rom 'Give a number : '
90  lae output
91  lae .3
92 .DE