Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quellcode-Bibliothek

© Kompilation durch diese Firma

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

Datei: sw.xml   Sprache: Cobol

Original von: verschiedene©

      ******************************************************************
      *                                                                *
      *                      G E T   N U M B E R                       *
      *                                                                *
      *                      Judson D. McClendon                       *
      *                      Sun Valley Systems                        *
      *                      329 37th Court NE                         *
      *                      Birmingham, AL 35215                      *
      *                         205/853-8440                           *
      *                                                                *
      *    CONVERTS A NUMBER IN FREE FORMAT DISPLAY FORM:              *
      *        FOR EXAMPLE:                                            *
      *                                                                *
      *            "999,999,999,999.999999 "                           *
      *            "-999,999,999,999.999999"                           *
      *            "              -23.61   "                           *
      *            "                      4"                           *
      *            "0                      "                           *
      *            "    .000001            "                           *
      *            "0000000000123456789.10-"                           *
      *            "                       "  BLANK IS VALID = 0       *
      *                                                                *
      *    INTO FIXED NUMERIC FORM:                                    *
      *                                                                *
      *        PIC S9(12)V9(06)                                        *
      *                                                                *
      *                                                                *
      *    USAGE:  MOVE <FREE FORM NUMBER> TO NW-WORK-NBR.             *
      *            PERFORM 003000-GET-NBR                              *
      *               THRU 003000-EXIT.                                *
      *                                                                *
      *    RESULT: NW-NBR-ERROR-FLAG = 0 INPUT IS A VALID NUMBER       *
      *                                1 INPUT NOT A VALID NUMBER      *
      *                                                                *
      *       IF NW-NBR-ERROR-FLAG = 0 THEN:                           *
      *                                                                *
      *            NW-EXTRACTED-NBR  = NUMBER AS:  PIC S9(12)V9(06)    *
      *                                                                *
      *            NW-DEC-PLACES     = NUMBER OF DIGITS TO THE RIGHT   *
      *                                OF THE DECIMAL POINT (0=NONE)   *
      *                                                                *
      *            NW-BLD-SIGN       = +1 OR -1 AS:  PIC S9(01)        *
      *                                                                *
      *            NW-BLD-INTEGER    = INTEGER DIGITS AS:  PIC  9(12)  *
      *                                                                *
      *            NW-BLD-DECIMAL    = DECIMAL DIGITS AS:  PIC V9(06)  *
      *                                                                *
      ******************************************************************
      *
       003000-GET-NBR.
      *
           MOVE 0      TO NW-NBR-ERROR-FLAG.
           MOVE ZERO   TO NW-EXTRACTED-NBR.
      *
           MOVE 0      TO NW-DEC-PLACES.
           MOVE ZERO   TO NW-BLD-NBR.
           MOVE +1     TO NW-BLD-SIGN.
           SET NW-BDX  TO 1.
           SET NW-WLIM TO 25.
      *
      *  ** LOCATE LEFTMOST DIGIT OF NUMBER **
      *
           SET NW-WX  TO 1.
           SEARCH NW-WORK-CHAR
               WHEN NW-WORK-CHAR(NW-WX) NOT = SPACE
                   PERFORM 003010-DECODE-NBR
                      THRU 003010-EXIT.
      *
           IF (NW-WORK-NBR NOT = SPACES)
               MOVE 1 TO NW-NBR-ERROR-FLAG
           ELSE
               COMPUTE NW-EXTRACTED-NBR = NW-BLD-NBR * NW-BLD-SIGN.
      *
       003000-EXIT.
           EXIT.
      *
      *
      *                     DECODE NUMBER
      *
       003010-DECODE-NBR.
      *
           IF (NW-WORK-CHAR(NW-WX) = "-")
               MOVE -1    TO NW-BLD-SIGN
               MOVE SPACE TO NW-WORK-CHAR(NW-WX)
               SET NW-WX UP BY 1.
      *
           PERFORM 003020-GET-INT-PART
              THRU 003020-EXIT
                UNTIL (NW-WX > NW-WLIM).
      *
            SET NW-DEC-PLACES TO NW-BDX.
            SUBTRACT 1 FROM NW-DEC-PLACES.
      *
       003010-EXIT.
           EXIT.
      *
      *
      *               GET INTEGER PART OF NUMBER
      *
       003020-GET-INT-PART.
      *
           IF (NW-WORK-CHAR(NW-WX) NUMERIC)
               IF (NW-BLD-INTEGER > 99999999999)
                   SET NW-WX TO NW-WLIM
               ELSE
                   COMPUTE NW-BLD-INTEGER =
                       NW-BLD-INTEGER * 10 + NW-WORK-DIGIT(NW-WX)
                   MOVE SPACE TO NW-WORK-CHAR(NW-WX)
           ELSE
               IF (NW-WORK-CHAR(NW-WX) = ".")
                   MOVE SPACES TO NW-WORK-CHAR(NW-WX)
                   SET NW-WX UP BY 1
                   PERFORM 003030-GET-DEC-PART
                      THRU 003030-EXIT
                        UNTIL (NW-WX > NW-WLIM)
               ELSE
                   IF (NW-WORK-CHAR(NW-WX) = ",")
                       MOVE SPACE TO NW-WORK-CHAR(NW-WX)
                   ELSE
                       SET NW-WX TO NW-WLIM.
      *
           SET NW-WX UP BY 1.
      *
       003020-EXIT.
           EXIT.
      *
      *
      *               GET DECIMAL PART OF NUMBER
      *
       003030-GET-DEC-PART.
      *
           IF (NW-WORK-CHAR(NW-WX) NUMERIC)
               IF (NW-BDX > 6)
                   SET NW-WX  TO NW-WLIM
               ELSE
                   MOVE NW-WORK-DIGIT(NW-WX) TO NW-BLD-DEC-DIGIT(NW-BDX)
                   MOVE SPACES TO NW-WORK-CHAR(NW-WX)
                   SET NW-BDX UP BY 1
           ELSE
               IF (NW-WORK-CHAR(NW-WX) = "-")
                   MOVE -1    TO NW-BLD-SIGN
                   MOVE SPACE TO NW-WORK-CHAR(NW-WX)
                   SET NW-WX  TO NW-WLIM
               ELSE
                   SET NW-WX  TO NW-WLIM.
      *
           SET NW-WX UP BY 1.
      *
       003030-EXIT.
           EXIT.

¤ Dauer der Verarbeitung: 0.20 Sekunden  (vorverarbeitet)  ¤





Druckansicht
unsichere Verbindung
Druckansicht
sprechenden Kalenders

Eigene Datei ansehen




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



                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik