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

  1.  
  2.        ╔═════════════════════════════════════════════════════╗
  3.        ║  Lesson 7 Part 160 F-PC 3.5 Tutorial by Jack Brown  ║
  4.        ╚═════════════════════════════════════════════════════╝
  5.  
  6.             ┌───────────────────────────────────────┐
  7.             │  Arithmetic Progression by Recursion  │
  8.             └───────────────────────────────────────┘
  9.  
  10. Here is how the definition would look using MYSELF .  I have added a
  11. line at the beginning of the word definition and at the end of the word
  12. definition to monitor the stack and status.  Remove these lines when you
  13. understand what is going on.
  14.  
  15.     VARIABLE A     3 A !    ( the 0th term )
  16.     VARIABLE D     5 D !    ( the common difference )
  17.  
  18.    : APN  ( n    nth)
  19.          CR ." Entering " .S
  20.          DUP IF   ( n is not zero )
  21.                   1- MYSELF  D @ +      \  Use RECURSE for F-PC
  22.              ELSE ( n is zero )
  23.                   DROP A @
  24.              THEN
  25.          CR ." Leaving " .S ;
  26.  
  27. If you are using Laxen and Perry F83 or F-PC for the PC there is a
  28. different approach to making recursive definitions. You can simply
  29. declare a word to be recursive using the word RECURSIVE , and then you
  30. can use the word you are defining in its own definition. Here is F-PC
  31. version:
  32.  
  33.    VARIABLE A     3 A !    ( the 0th term )
  34.    VARIABLE D     5 D !    ( the common difference )
  35.  
  36.    : APN  ( n    nth)  RECURSIVE     \  Recursive declaration
  37.           CR ." Entering " .S
  38.           DUP IF   ( n is not zero )
  39.                   1- APN  D @ +
  40.               ELSE ( n is zero )
  41.                    DROP A @
  42.               THEN
  43.           CR ." Leaving " .S ;
  44.  
  45.           ┌─────────────────────────────────────────────────┐
  46.           │  Recursive Definition of Geometric Progression  │
  47.           └─────────────────────────────────────────────────┘
  48. ╓────────────────╖
  49. ║  Problem 7.11  ║
  50. ╙────────────────╜
  51. I didn't like the definition I was given for the geometric progression
  52. any better than the one I was given for the arithmetic progression ( you
  53. see it to is recursive). Here it is:
  54.  
  55. Definition 14.2013  A geometric progression is a sequence in which each
  56. term after the first is obtained by multiplying the same fixed number,
  57. called the common ratio, by the preceding term. Your homework: Write a
  58. recursive definition to compute the nth term of a geometric progression.
  59. Call the word GPN . Use G(0) = A for the first term.  and R for the
  60. common ratio. With A = 3 and R = 2 your the geometric progression would
  61. be:
  62.            3, 6, 12, 24, 48, 96,  etc
  63.  
  64. The problem is to write a recursive definition to compute geometric
  65. progressions.  Hints on homework problem:
  66. Here is the word algorithm for the geometric progression.
  67.  
  68. To find G(n):
  69.        examine n:
  70.       IF   ( n is not zero )
  71.            call myself with argument (n-1)
  72.            and multiply the result by r, the common ratio.
  73.       ELSE ( n is equal to zero )
  74.            then the answer is just
  75.            G(0) = a , the 0th term.
  76.  End of algorithm:
  77.  
  78.  The program would start as follows:
  79.  
  80.   VARIABLE A  3 A !   ( The first term )
  81.   VARIABLE R  2 R !   ( The common ratio )
  82.  : GPN  ( n  nth)   RECURSIVE   ( if you are using L&P F83 )
  83.       Opps,  I just realized I'm doing your homework!
  84.  
  85. ┌────────────────────────────────────┐
  86. │  Please Move to Lesson 7 Part 170  │
  87. └────────────────────────────────────┘
  88.  
  89.