ack/doc/pascal/example.doc
1991-11-01 09:43:36 +00:00

93 lines
2.1 KiB
Plaintext

.sp 1.5i
.ft B
Appendix C: An example
.ft R
.nh
.nf
\h'+10u' 1 \fBprogram\fR factorials(input, output);
\h'+10u' 2 { This program prints factorials }
\h'+10u' 3
\h'+10u' 4 \fBconst\fR
\h'+10u' 5 FAC1 = 1;
\h'+10u' 6 \fBvar\fR
\h'+10u' 7 i : integer;
\h'+10u' 8
\h'+10u' 9 \fBfunction\fR factorial(n : integer) : integer;
10 \fBbegin\fR
11 \fBif\fR n = FAC1 \fBthen\fR
12 factorial := FAC1
13 \fBelse\fR
14 factorial := n * factorial(n-1);
15 \fBend\fR;
16
17 \fBbegin\fR
18 write('Give a number : ');
19 readln(i);
20 \fBif\fR i < 1 \fBthen\fR
21 writeln('No factorial')
22 \fBelse\fR
23 writeln(factorial(i):1);
24 \fBend\fR.
.bp
.po
.DS
mes 2,4,4 loc 16
\&.1 cal $_wrs
rom 'factorials.p\(rs000' asp 12
i lin 19
bss 4,0,0 lae input
output cal $_rdi
bss 540,0,0 asp 4
input lfr 4
bss 540,0,0 ste i
exp $factorial lae input
pro $factorial, ? cal $_rln
mes 9,4 asp 4
lin 11 lin 20
lol 0 loe i
loc 1 loc 1
cmi 4 cmi 4
teq tlt
zeq *1 zeq *1
lin 12 lin 21
loc 1 .4
stl -4 rom 'No factorial'
bra *2 lae output
1 lae .4
lin 14 loc 12
lol 0 cal $_wrs
lol 0 asp 12
loc 1 lae output
sbi 4 cal $_wln
cal $factorial asp 4
asp 4 bra *2
lfr 4 1
mli 4 lin 23
stl -4 lae output
2 loe i
lin 15 cal $factorial
mes 3,0,4,0,0 asp 4
lol -4 lfr 4
ret 4 loc 1
end 4 cal $_wsi
exp $m_a_i_n asp 12
pro $m_a_i_n, ? lae output
mes 9,0 cal $_wln
fil .1 asp 4
\&.2 2
con input, output lin 24
lxl 0 loc 0
lae .2 cal $_hlt
loc 2 end 0
lxa 0 mes 4,24,'factorials.p\(rs000'
cal $_ini
asp 16
lin 18
\&.3
rom 'Give a number : '
lae output
lae .3
.DE