example.doc 2.1 KB

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