COBOL programmeringsspråk definerer alle minnevariabler i Data- Division , en av fire store divisjoner språket krever av hvert program . I Data- divisjon , har hver variabel et navn , en størrelse og et format. Hvis et program trenger for å utføre regnestykket på tall , bruker Comp -3 format , som lagrer numeriske data i pakket desimal form . Desimal Math
COBOL har en flere måter å representere tall i minnet : i et tegns display format , som heltall og som pakket desimal. Du kan skrive inn , vise og skrive ut tall i karakter format , men du kan ikke utføre regnestykket på dem . Du kan gjøre regnestykket på heltall , men de har ikke desimaler . Comp -3 pakket desimal format lar deg utføre regnestykket på tall med desimaler , for eksempel dollar beløp , priser og brøk mengder. For eksempel , multipliserer en lønn beregning en timer - arbeidet variabel ved en betal -rate variabel , plassere resultatet i en brutto - lønn variabel. Arbeidstakers timelønn rate og brutto lønn er i kroner og øre . Hennes arbeidstimer er i desimal timer. Disse variablene er perfekte kandidater til Comp -3 format.
Pakket versus skjerm Desimal
Internt lagrer datamaskinen en desimal siffer i hver halvdel -byte av en fullpakket desimal variabel. Dette sparer minne og hastigheter beregninger. En skjerm desimal feltet, for eksempel for utskrift og skjerm, bruker ett siffer per byte . I pakket desimal , gjør litt ordninger ikke tilsvarer å vise tegn , så hvis du prøver å vise en Comp -3 -feltet , får du vrøvl tegn .
Bilde klausul
Hver variabel i Data- divisjon har et bilde klausul som definerer hvordan datamaskinen lagrer og bruker informasjon. Bildet klausulen setter variabel størrelse, desimaltegn og andre funksjoner . For Comp -3 format, gjør COBOL bare enkelte bilde klausul tegn : S, representerer ni og V. A " 9 " et siffer , "V" lokaliserer implisitt desimal punkt i variabel og en " S" forteller COBOL du vil å holde oversikt over antall er skiltet. COBOL benytter en "V " i stedet for en periode for å indikere at den ikke lagrer selve desimaltegnet tegnet i en komp -3 -feltet. Hvis du utelater "S" for variabelens tegn, antar COBOL den inneholder bare positive tall .
Maksimal størrelse
COBOL begrenser Comp - tre variabler til maksimalt 18 sifre , pluss skiltet. Bildet leddet for dette er S9 (18). Du kan finne implisitt desimal punkt hvor som helst innenfor 18 siffer , slik at bildet klausul S9 ( 16 ) V99 er også gyldig . Merk at "V" for implisitt desimal punkt ikke bruker opp et desimaltall .
Bruk
Du finner Comp - tre variabler i både data poster og i Working -Storage Seksjon for data divisjon, men aldri i trykte eller vises data , da disse krever karakter felt. COBOL sjekker hvilken type data som skal flyttes inn i en Comp - tre variable . Hvis et program feilaktig setter navn eller andre tegn data inn i en Comp - tre felt , viser COBOL en feil og stopper programmet.