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

  1. \      ╔════════════════════════════════════════════════════╗
  2. \      ║ Lesson 5 Part 150  F-PC 3.5 Tutorial by Jack Brown ║
  3. \      ╚════════════════════════════════════════════════════╝
  4.  
  5. \ Part six of CHKBOOK.SEQ
  6. /* ************************************************************ */
  7. /*                                                              */
  8. /* Function: BALANCE  - Handle user menu in checkbook program.  */
  9. /*                                                              */
  10. /* Notes: Uses nested IF ... ELSE ... THENs for menu choices    */
  11. /*        This is a perfect place for the CASE statement that   */
  12. /*        we will be looking at in one of the following lessons */
  13. /* ************************************************************ */
  14.  
  15. : BALANCE ( --  flag )
  16.  
  17.    ." You may choose one of the following:" CR CR
  18.    ."    (1) Write a check." CR
  19.    ."    (2) Make a deposit." CR
  20.    ."    (3) Check your balance." CR
  21.    ."    (4) Net change this session." CR
  22.    ."    (5) Total checks this session." CR
  23.    ."    (6) Total deposits this session." CR
  24.    ."    (7) Average check written this session." CR
  25.    ."    (8) Exit." CR
  26.    ."    (9) Reinitialize." CR CR
  27.    ." Enter your choice by typing the corresponding number." CR
  28.  
  29.         SCAN_FOR_INT  CR
  30.  
  31.         1  OVER = IF DROP WRITE_A_CHECK                  1 ELSE
  32.         2  OVER = IF DROP MAKE_A_DEPOSIT                 1 ELSE
  33.         3  OVER = IF DROP 40 HBAR
  34.                      ." Your current balance is: "
  35.                       BAL_DOLLARS @ BAL_CENTS @ $XX.XX CR
  36.                      40 HBAR                             1 ELSE
  37.         4  OVER = IF DROP NET_CHANGE                     1 ELSE
  38.         5  OVER = IF DROP TOT_CHECKS                     1 ELSE
  39.         6  OVER = IF DROP TOT_DEPOSIT                    1 ELSE
  40.         7  OVER = IF DROP AVERAGE                        1 ELSE
  41.         8  OVER = IF DROP
  42.                      60 CLR_HBAR
  43.                      ." Check Book terminated normally "
  44.                      ." with a balance of: "
  45.                      BAL_DOLLARS @ BAL_CENTS @ $XX.XX CR
  46.                      60 HBAR FAST  QUIT ( CR 0 0 BDOS )    ELSE
  47.         9  OVER = IF DROP                                0 ELSE
  48.                      40 CLR_HBAR
  49.                       7 DUP DUP EMIT EMIT EMIT
  50.                      ." That choice is unavailable, try again." CR
  51.                      ." Type 1, 2, 3, 4, 5, 6, 7, 8 or 9." CR
  52.                      40 HBAR DROP 1
  53.          THEN THEN THEN THEN THEN THEN THEN THEN THEN      ;
  54.  
  55. /* ************************************************************ */
  56. /*                                                              */
  57. /* Function: Checkbook  main function of the checkbook program. */
  58. /*                                                              */
  59. /* Date:        July 21, 1988                                   */
  60. /*                                                              */
  61. /* Interface:   int checkbook()                                 */
  62. /*                                                              */
  63. /* Notes: This program will do your checkbook calculations      */
  64. /* Why would anyone use a computer to balance their checkbook?  */
  65. /*                                                              */
  66. /* ************************************************************ */
  67.  
  68. : MAIN ( -- )
  69.    SLOW
  70.    BEGIN
  71.    BAL_DOLLARS OFF BAL_CENTS OFF TR_DOLLARS OFF TR_CENTS OFF
  72.    OLD_DOLLARS OFF OLD_CENTS OFF CHK_DOLLARS OFF CHK_CENTS OFF
  73.    DEP_COUNT OFF CHK_COUNT OFF DEP_DOLLARS OFF DEP_CENTS OFF
  74.  
  75.    40 CLR_HBAR
  76.    ." Welcome to your checkbook." CR
  77.    ." Please enter your current balance:" CR
  78.    40 HBAR
  79.    GET_DOLLARS DUP OLD_DOLLARS ! BAL_DOLLARS !
  80.    GET_CENTS   DUP OLD_CENTS   ! BAL_CENTS   !
  81.    40 HBAR
  82.    ." Thank you. Your current balance is: "
  83.    BAL_DOLLARS @ BAL_CENTS @ $XX.XX CR
  84.    40 HBAR
  85.    BEGIN   BALANCE   0= UNTIL
  86.    AGAIN ;
  87.  
  88. \ ╓─────────────╖
  89. \ ║ Project 5.1 ║
  90. \ ╙─────────────╜
  91. \ I would like you to rewrite the Check Book program so that all
  92. \ arithmetic is performed using the new Fixed Point word set that
  93. \ was given in Lesson 5 Part 8 and Lesson 5 Part 9.  You can modify
  94. \ The existing program or throw it out and start all over....
  95. \ it is up to you.  If you want to learn any programming language
  96. \ including FORTH you must read lots of programs, modify lots of
  97. \ programs and write lots of programs.  Here is your chance to learn
  98. \ to use the new Fixed Point word set in a fairly structured
  99. \ environment.  Good Luck!
  100.  
  101.