home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / fpc / tutor / l2p100 < prev    next >
Text File  |  1990-07-15  |  4KB  |  103 lines

  1.        ╔════════════════════════════════════════════════════╗
  2.        ║ Lesson 2 Part 100  F-PC 3.5 Tutorial by Jack Brown ║
  3.        ╚════════════════════════════════════════════════════╝
  4.  
  5.        ┌─────────────────────────────────────────────────────┐
  6.        │ We continue with exerpts from R.L. Smith's article: │
  7.        └─────────────────────────────────────────────────────┘
  8.  
  9. The following are the same plots for Floored integer division:
  10.  
  11.                             10q
  12.  FLOORED q vs m               +         Divisor = n = 3
  13.                               +
  14.                               +
  15.                               +
  16.                               +                             o
  17.                               +                       o o o
  18.                               +                 o o o
  19.                               +           o o o
  20.          -10                  +     o o o         10
  21. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-o-o-o-+-+-+-+-+-+-+-+-+-+-+-+-+m
  22.                         o o o +
  23.                   o o o       +
  24.             o o o             +
  25.       o o o                   +
  26. o o o                         +
  27.                               +
  28.                               +
  29.                               +          m  = nq + r
  30.                               +         m/n =  q + r/n
  31.                            -10
  32.      Quotient vs Dividend for Floored Integer Division
  33. ( m = dividend, n = divisor, q = quotient, and r = remainder)
  34.  
  35. [ note that the large step near the origin no nonger exists. jwb ]
  36.  
  37.                             10r
  38.  FLOORED r vs m               +         Divisor = n = 3
  39.                               +
  40.                               +
  41.                               +
  42.                               +
  43.                               +
  44.                               +
  45.     o     o     o     o     o +   o     o     o     o     o
  46.   o     o-10  o     o     o   + o     o     o     o     o
  47. o-+-+-o-+-+-o-+-+-o-+-+-o-+-+-o-+-+-o-+-+-o-+-+-o-+-+-o-+-+-o m
  48.                               +                   10
  49.                               +
  50.                               +
  51.                               +
  52.                               +
  53.                               +
  54.                               +
  55.                               +          m  = nq + r
  56.                               +         m/n =  q + r/n
  57.                            -10
  58.      Remainder vs Dividend for Floored Integer Division
  59. ( m = dividend, n = divisor, q = quotient, and r = remainder)
  60.  
  61. [ Note that the remainder is cyclical for both negative and
  62.   positive dividends  jwb ]
  63.  
  64. R.L. Smith continues....
  65.  
  66. Floored division is simply more useful in the majority of application
  67. programs.  The major objection is that the results are not what most
  68. people expect:  -1 divided by 4 gives 0 in the rounded toward zero
  69. division case  [Symmetric division jwb] , but -1 for Floored division.
  70. Both cases give the same results when the dividend and divisor have the
  71. same sign.....
  72.  
  73. The above is only an exerpt from Smiths article, see DDJ for the
  74. complete discussion.
  75.  
  76. We found R.L. Smiths division plots very informative in helping to
  77. understand  Floored vs Symmetric division.  The only problem was that
  78. there were not enough charts!.  We would like to see a chart for
  79. negative divisors so instead of constucting a chart for just one
  80. negative divisor we have written a progaram which will let you choose
  81. any positive or negative divisor between -10 and +10  and the program
  82. will construct the charts for you. The end user word in the program is:
  83.  
  84. INTDIV  ( n -- )  \ Where n is the divisor.
  85.  
  86. The following message has the results of executing:
  87.  
  88. -4  INTDIV <enter>
  89.  
  90. The only new word used in the program is the cursor positioning word AT
  91.  
  92. AT ( x y -- )  \ x is the horizontal position, y is the vertical.
  93.                \  0 0 is the upper left corner 80 22 is the lower right.
  94.  
  95. We threw this program together fairly quickly and it is not the best
  96. example of programming.  You might like to write an improved version
  97. that includes a bit more factoring of some of the common program
  98. phrases.
  99.  
  100. ┌──────────────────────────────────┐
  101. │ Please move to Lesson 2 Part 110 │
  102. └──────────────────────────────────┘
  103.