home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / fpc / source / p3_21dc.seq < prev    next >
Encoding:
Text File  |  1990-04-05  |  1.9 KB  |  61 lines

  1. \ Answer for problem 3.21 by Dickson Cheng  04/04/90 21:30:34.56
  2.  
  3.  
  4.  
  5. \ Leaves true flag if speed < 0
  6. : BROKEN? ( speed -- flag ) 0< ;
  7.  
  8. \ Leaves true flag if speed is smaller than 16 kmph
  9. : VERY_SLOW? ( speed -- flag ) 16 < ;
  10.  
  11. \ Leaves true flag if speed is smaller than 31 kmph
  12. : SLOW? ( speed -- flag ) 31 < ;
  13.  
  14. \ Leaves true flag if speed is smaller than 56 kmph
  15. : NORMAL? ( speed -- flag ) 56 < ;
  16.  
  17. \ Leaves true flag if speed is smaller than 66 kmph
  18. : FAST? ( speed -- flag ) 66 < ;
  19.  
  20. \ Leaves true flag if speed is smaller than 100 kmph
  21. : VERY_FAST? ( speed -- flag ) 100 < ;
  22.  
  23. \ Leaves true flag if speed is smaller than 200 kmph
  24. : DANGEROUS? ( speed -- flag ) 200 < ;
  25.  
  26. \ Leaves true flag if speed is over 199
  27. : DEADLY? ( speed -- flag ) 199 > ;
  28.  
  29.  
  30. \ Check speed and print appropriate message
  31. : SPEED_CHECK           ( speed -- )
  32.    DUP BROKEN?
  33.    IF                     ." Impossible speed, Radar Gun error." DROP
  34.    ELSE DUP VERY_SLOW?
  35.       IF                  ." Issue ticket,     impeding traffic flow." DROP
  36.       ELSE DUP SLOW?
  37.          IF               ." Issue warning,    impeding traffic flow." DROP
  38.          ELSE DUP NORMAL?
  39.             IF            ." No action,        safe speed." DROP
  40.             ELSE DUP FAST?
  41.                IF          ." Issue warning,   exceeding speed limit." DROP
  42.                ELSE DUP VERY_FAST?
  43.                   IF       ." Issue ticket,    exceeding speed limit." DROP
  44.                   ELSE DUP DANGEROUS?
  45.                      IF    ." Arrest motorist, dangerous driving." DROP
  46.                      ELSE DUP DEADLY?
  47.                         IF ." Deadly serious,  got to catch him."
  48.                         THEN
  49.                      THEN
  50.                   THEN
  51.                THEN
  52.             THEN
  53.          THEN
  54.       THEN
  55.    THEN ;
  56.                         IF ." Deadly serious,  got to catch him."
  57.  
  58.  
  59.  
  60.  
  61.