products/sources/formale sprachen/Cobol/verschiedene-Autoren/Judson-McClendon/money image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei:   Sprache: Cobol

Original von: verschiedene©

       IDENTIFICATION DIVISION.
      *
       PROGRAM-ID.    DOLLARS.
      *
       DATE-WRITTEN.  05/27/96.
      *
      *        *******************************
      *        *                             *
      *        *     Judson D. McClendon     *
      *        *     Sun Valley Systems      *
      *        *     329 37th Court N.E.     *
      *        *     Birmingham, AL 35215    *
      *        *        205-853-8440         *
      *        *                             *
      *        *******************************
      *
       ENVIRONMENT DIVISION.
      *
       CONFIGURATION SECTION.
      *
       INPUT-OUTPUT SECTION.
      *
       FILE-CONTROL.
      *
      *
       I-O-CONTROL.
      *
       DATA DIVISION.
      *
       FILE SECTION.
      *
      *
       WORKING-STORAGE SECTION.
      *
       77  WS-AMOUNT                   PIC S9(15)V9(02) COMP VALUE 0.
      *
      *
      *
      ******************************************************************
      *                                                                *
      *                  M O N E Y   W O R K   A R E A                 *
      *                                                                *
      ******************************************************************
      *
       01  MONEY-WORK-AREA.
           03  MW-AMOUNT               PIC  9(15)V9(02).
           03  MW-AMOUNT-R             REDEFINES MW-AMOUNT.
               05  MW-AMOUNT-DOLLARS       PIC  9(15).
               05  MW-AMOUNT-DOLLARS-R     REDEFINES MW-AMOUNT-DOLLARS.
                   07  MW-AMOUNT-TRILLIONS     PIC  9(03).
                   07  MW-AMOUNT-BILLIONS      PIC  9(03).
                   07  MW-AMOUNT-MILLIONS      PIC  9(03).
                   07  MW-AMOUNT-THOUSANDS     PIC  9(03).
                   07  MW-AMOUNT-ONES          PIC  9(03).
               05  MW-AMOUNT-CENTS         PIC  9(02).
      *
           03  MW-WORK                 PIC  9(03).
           03  MW-WORK-R1              REDEFINES MW-WORK.
               05  MW-WORK-HUNDREDS        PIC  9(01).
               05  MW-WORK-TENS            PIC  9(01).
               05  MW-WORK-ONES            PIC  9(01).
           03  MW-WORK-R2              REDEFINES MW-WORK.
               05      FILLER              PIC  9(01).
               05  MW-WORK-TEENS           PIC  9(02).
      *
           78  MW-MCLIM                VALUE 50.
           03  MW-MONEY.
               05  MW-MONEY-CHAR       PIC  X(01)
                                           OCCURS MW-MCLIM TIMES.
           03  MW-MCX                  PIC  9(02)       COMP VALUE 0.
      *
           78  MW-MLLIM                VALUE 6.
           03  MW-MONEY-LINES.
      *        05  MW-MONEY-LINE       PIC  X(MW-MCLIM)
               05  MW-MONEY-LINE       PIC  X(50)
                                           OCCURS MW-MLLIM TIMES.
           03  MW-MLX                  PIC  9(02)       COMP VALUE 0.
      *
           03  MW-WORD-TEXT.
               05  MW-WORD-SIZE        PIC  9(01).
               05  MW-WORD.
                   07  MW-WORD-CHAR    PIC  X(01)
                                           OCCURS 9 TIMES.
           03  MW-WCX                  PIC  9(02)       COMP VALUE 0.
      *
           03  MW-IX1                  PIC  9(02)       COMP VALUE 0.
           03  MW-IX2                  PIC  9(02)       COMP VALUE 0.
      *
      *
           03  MW-ONES-VALUES.
               05      FILLER  PIC  X(10)      VALUE "3ONE ".
               05      FILLER  PIC  X(10)      VALUE "3TWO ".
               05      FILLER  PIC  X(10)      VALUE "5THREE ".
               05      FILLER  PIC  X(10)      VALUE "4FOUR ".
               05      FILLER  PIC  X(10)      VALUE "4FIVE ".
               05      FILLER  PIC  X(10)      VALUE "3SIX ".
               05      FILLER  PIC  X(10)      VALUE "5SEVEN ".
               05      FILLER  PIC  X(10)      VALUE "5EIGHT ".
               05      FILLER  PIC  X(10)      VALUE "4NINE ".
               05      FILLER  PIC  X(10)      VALUE "3TEN ".
               05      FILLER  PIC  X(10)      VALUE "6ELEVEN ".
               05      FILLER  PIC  X(10)      VALUE "6TWELVE ".
               05      FILLER  PIC  X(10)      VALUE "8THIRTEEN ".
               05      FILLER  PIC  X(10)      VALUE "8FOURTEEN ".
               05      FILLER  PIC  X(10)      VALUE "7FIFTEEN ".
               05      FILLER  PIC  X(10)      VALUE "7SIXTEEN ".
               05      FILLER  PIC  X(10)      VALUE "9SEVENTEEN".
               05      FILLER  PIC  X(10)      VALUE "8EIGHTEEN ".
               05      FILLER  PIC  X(10)      VALUE "8NINETEEN ".
      *
           03  MW-ONES-VALUE           REDEFINES MW-ONES-VALUES
                                           PIC  X(10)
                                           OCCURS 19 TIMES.
      *
      *
           03  MW-TENS-VALUES.
               05      FILLER  PIC  X(08)      VALUE "3TEN ".
               05      FILLER  PIC  X(08)      VALUE "6TWENTY ".
               05      FILLER  PIC  X(08)      VALUE "6THIRTY ".
               05      FILLER  PIC  X(08)      VALUE "5FORTY ".
               05      FILLER  PIC  X(08)      VALUE "5FIFTY ".
               05      FILLER  PIC  X(08)      VALUE "5SIXTY ".
               05      FILLER  PIC  X(08)      VALUE "7SEVENTY".
               05      FILLER  PIC  X(08)      VALUE "6EIGHTY ".
               05      FILLER  PIC  X(08)      VALUE "6NINETY ".
      *
           03  MW-TENS-VALUE           REDEFINES MW-TENS-VALUES
                                           PIC  X(08)
                                           OCCURS  9 TIMES.
      *
       PROCEDURE DIVISION.
      *
       000000-CONTROL.
      *
           DISPLAY  " ".
      *
           PERFORM 000100-PROCESS
              THRU 000100-EXIT.
      *
       000000-EXIT.
           STOP RUN.
      *
      *
      *                          P R O C E S S
      *
       000100-PROCESS.
      *
           DISPLAY "C O N V E R T E D D O L L A R A M O U N T"
               AT LINE 1 COL 1
               WITH ERASE EOS.
           DISPLAY MW-MONEY-LINE(1)
               AT LINE 3 COL 1.
           DISPLAY MW-MONEY-LINE(2)
               AT LINE 4 COL 1.
           DISPLAY MW-MONEY-LINE(3)
               AT LINE 5 COL 1.
           DISPLAY MW-MONEY-LINE(4)
               AT LINE 6 COL 1.
           DISPLAY MW-MONEY-LINE(5)
               AT LINE 7 COL 1.
           DISPLAY MW-MONEY-LINE(6)
               AT LINE 8 COL 1.
      *
           DISPLAY "Enter up to tttbbbmmmtttooo.cc (< 0 to exit): "
               AT LINE 10 COL 1.
      *
           MOVE ZERO TO WS-AMOUNT.
           ACCEPT WS-AMOUNT.
           IF (WS-AMOUNT < 0)
               GO TO 000100-EXIT.
      *
           MOVE WS-AMOUNT TO MW-AMOUNT.
           PERFORM 001000-MONEY
              THRU 001000-EXIT.
      *
           GO TO 000100-PROCESS.
      *
       000100-EXIT.
           EXIT.
      *
      *
      *
      ******************************************************************
      *                                                                *
      *                          M O N E Y                             *
      *                                                                *
      *                                                                *
      *    CONVERTS A NUMERIC MONEY AMOUNT INTO ONE OR MORE TEXT       *
      *    LINES FOR PRINTING ON CHECKS FOR SECURITY.  AMOUNTS UP      *
      *    TO $999,999,999,999,999.99 CAN BE CONVERTED.                *
      *                                                                *
      *    USAGE:  MOVE <AMOUNT> TO MW-AMOUNT.                         *
      *            PERFORM 001000-MONEY                                *
      *               THRU 001000-EXIT.                                *
      *                                                                *
      *    RESULT: MW-MONEY-LINES = TEXT AMOUNT CENTERED ON EACH LINE  *
      *                                                                *
      ******************************************************************
      *
       001000-MONEY.
      *
           MOVE SPACES TO MW-MONEY.
           MOVE 1      TO MW-MCX.
           MOVE SPACES TO MW-MONEY-LINES.
           MOVE 1      TO MW-MLX.
      *
           IF (MW-AMOUNT-TRILLIONS NOT ZERO)
               MOVE MW-AMOUNT-TRILLIONS TO MW-WORK
               PERFORM 001100-THREE-DIGITS
                  THRU 001100-EXIT
               MOVE "8TRILLION" TO MW-WORD-TEXT
               PERFORM 001400-MOVE-WORD
                  THRU 001400-EXIT.
      *
           IF (MW-AMOUNT-BILLIONS NOT ZERO)
               MOVE MW-AMOUNT-BILLIONS TO MW-WORK
               PERFORM 001100-THREE-DIGITS
                  THRU 001100-EXIT
               MOVE "7BILLION"  TO MW-WORD-TEXT
               PERFORM 001400-MOVE-WORD
                  THRU 001400-EXIT.
      *
           IF (MW-AMOUNT-MILLIONS NOT ZERO)
               MOVE MW-AMOUNT-MILLIONS TO MW-WORK
               PERFORM 001100-THREE-DIGITS
                  THRU 001100-EXIT
               MOVE "7MILLION"  TO MW-WORD-TEXT
               PERFORM 001400-MOVE-WORD
                  THRU 001400-EXIT.
      *
           IF (MW-AMOUNT-THOUSANDS NOT ZERO)
               MOVE MW-AMOUNT-THOUSANDS TO MW-WORK
               PERFORM 001100-THREE-DIGITS
                  THRU 001100-EXIT
               MOVE "8THOUSAND" TO MW-WORD-TEXT
               PERFORM 001400-MOVE-WORD
                  THRU 001400-EXIT.
      *
           IF (MW-AMOUNT-ONES NOT ZERO)
               MOVE MW-AMOUNT-ONES  TO MW-WORK
               PERFORM 001100-THREE-DIGITS
                  THRU 001100-EXIT.
      *
           IF (MW-AMOUNT-DOLLARS ZERO)
               MOVE "2NO"           TO MW-WORD-TEXT
               PERFORM 001400-MOVE-WORD
                  THRU 001400-EXIT.
      *
           IF (MW-AMOUNT-DOLLARS = 1)
               MOVE "6DOLLAR"  TO MW-WORD-TEXT
           ELSE
               MOVE "7DOLLARS" TO MW-WORD-TEXT.
           PERFORM 001400-MOVE-WORD
              THRU 001400-EXIT.
      *
           MOVE "3AND"         TO MW-WORD-TEXT.
           PERFORM 001400-MOVE-WORD
              THRU 001400-EXIT.
      *
           IF (MW-AMOUNT-CENTS = 0)
               MOVE "2NO"           TO MW-WORD-TEXT
               PERFORM 001400-MOVE-WORD
                  THRU 001400-EXIT
           ELSE
               MOVE MW-AMOUNT-CENTS TO MW-WORK
               PERFORM 001200-TWO-DIGITS
                  THRU 001200-EXIT.
      *
           IF (MW-AMOUNT-CENTS = 1)
               MOVE "6CENT**"  TO MW-WORD-TEXT
           ELSE
               MOVE "7CENTS**" TO MW-WORD-TEXT.
           PERFORM 001400-MOVE-WORD
              THRU 001400-EXIT.
      *
           COMPUTE MW-IX1 = (MW-MCLIM - MW-MCX) / 2 + 1 .
           STRING MW-MONEY DELIMITED BY SIZE
               INTO MW-MONEY-LINE(MW-MLX)
                   WITH POINTER MW-IX1.
      *
       001000-EXIT.
           EXIT.
      *
      *
      *             C O N V E R T   T H R E E   D I G I T S
      *
       001100-THREE-DIGITS.
      *
           IF (MW-WORK-HUNDREDS > 0)
               MOVE MW-ONES-VALUE(MW-WORK-HUNDREDS) TO MW-WORD-TEXT
               PERFORM 001400-MOVE-WORD
                  THRU 001400-EXIT
               MOVE "7HUNDRED" TO MW-WORD-TEXT
               PERFORM 001400-MOVE-WORD
                  THRU 001400-EXIT.
      *
           PERFORM 001200-TWO-DIGITS
              THRU 001200-EXIT.
      *
       001100-EXIT.
           EXIT.
      *
      *
      *               C O N V E R T   T W O   D I G I T S
      *
       001200-TWO-DIGITS.
      *
           IF (MW-WORK-TEENS > 0)
               IF (MW-WORK-TEENS < 20)
                   MOVE MW-ONES-VALUE(MW-WORK-TEENS) TO MW-WORD-TEXT
                   PERFORM 001400-MOVE-WORD
                      THRU 001400-EXIT
               ELSE
                   PERFORM 001300-TENS-ONES
                      THRU 001300-EXIT.
      *
       001200-EXIT.
           EXIT.
      *
      *
      *                C O N V E R T   T E N S / O N E S
      *
       001300-TENS-ONES.
      *
           IF (MW-WORK-TENS > 0)
               MOVE MW-TENS-VALUE(MW-WORK-TENS) TO MW-WORD-TEXT
               PERFORM 001400-MOVE-WORD
                  THRU 001400-EXIT.
      *
           IF (MW-WORK-ONES > 0)
               MOVE MW-ONES-VALUE(MW-WORK-ONES) TO MW-WORD-TEXT
               PERFORM 001400-MOVE-WORD
                  THRU 001400-EXIT.
      *
       001300-EXIT.
           EXIT.
      *
      *
      *                 M O V E   I N   N E W   W O R D
      *
       001400-MOVE-WORD.
      *
           COMPUTE MW-IX2 = MW-MCX + MW-WORD-SIZE + 3 .
           IF (MW-IX2 > MW-MCLIM)
               STRING "**" DELIMITED BY SIZE
                   INTO MW-MONEY
                       WITH POINTER MW-MCX
               COMPUTE MW-IX1 = (MW-MCLIM - MW-MCX) / 2 + 1
               STRING MW-MONEY DELIMITED BY SIZE
                   INTO MW-MONEY-LINE(MW-MLX)
                       WITH POINTER MW-IX1
               ADD  1      TO MW-MLX
               MOVE SPACES TO MW-MONEY
               MOVE 1      TO MW-MCX.
      *
           IF (MW-MCX = 1)
               STRING "**" DELIMITED BY SIZE
                   INTO MW-MONEY POINTER MW-MCX
           ELSE
               ADD  1      TO MW-MCX.
      *
           STRING MW-WORD DELIMITED BY SPACE
               INTO MW-MONEY
                   WITH POINTER MW-MCX.
      *
       001400-EXIT.
           EXIT.

¤ Dauer der Verarbeitung: 0.5 Sekunden  (vorverarbeitet)  ¤





Druckansicht
unsichere Verbindung
Druckansicht
sprechenden Kalenders

in der Quellcodebibliothek suchen




Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.


Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff