Misplaced Pages

Picture clause: Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editNext edit →Content deleted Content addedVisualWikitext
Revision as of 16:32, 20 February 2008 editLoadmaster (talk | contribs)Extended confirmed users, Pending changes reviewers, Rollbackers13,240 edits Structure: converted to table, removed incorrect text about sign 'S'← Previous edit Revision as of 16:44, 20 February 2008 edit undoLoadmaster (talk | contribs)Extended confirmed users, Pending changes reviewers, Rollbackers13,240 edits Structure: bold format characters, added CR, DB, E, G, P, *, and $ formatsNext edit →
Line 4: Line 4:
The picture clause was first used in the ] (Commercial Translator) language developed by ] of ] in 1957. In 1959, it was incorporated into the original definition of ]. Since then, many other programming languages have copied this feature. The picture clause was first used in the ] (Commercial Translator) language developed by ] of ] in 1957. In 1959, it was incorporated into the original definition of ]. Since then, many other programming languages have copied this feature.


== Structure == == Formatting ==
A picture clause is made up of various characters, each of which represents a certain type of data item. The number of repeated characters indicates the size of the data item. A picture clause is made up of various characters, each of which represents a certain type of data item. The number of repeated characters indicates the size of the data item.
Here are some examples (from COBOL) of picture characters and what they represent: Here are some examples (from COBOL) of picture characters and what they represent:


{| width="70%" border="2" align="center" {| width="80%" border="2" align="center"
|- |-
! Character ! Character
! Description ! Description
|- |-
|align="center"| A |align="center"| '''A'''
|Alphabetic character (A-Z, a-z, blank) |Alphabetic character (A-Z, a-z, or blank)
|- |-
|align="center"| B |align="center"| '''B'''
|Blank (space) character |Blank (space) character
|- |-
|align="center"| X |align="center"| '''CR'''
|Sign indicator ('CR' if negative, blanks if positive)
|Any character, alphabetic, numeric, or other symbols
|- |-
|align="center"| 9 |align="center"| '''DB'''
|Sign indicator ('DB' if negative, blanks if positive)
|Numeric digit (0-9)
|- |-
|align="center"| Z |align="center"| '''E'''
|Floating-point exponent<ref name="extension">Non-standard extension provided by ] and others.</ref>
|Numeric digit, but leading-zero-suppressed (replaced by a blank when equal to zero)
|- |-
|align="center"| S |align="center"| '''G'''
|Double-wide graphic/alphanumeric character<ref name="extension"/>
|Implied sign for a number
|- |-
|align="center"| V |align="center"| '''P'''
|Implied decimal point |Implied scaling digit (not displayed)
|- |-
|align="center"| , |align="center"| '''S'''
|Implied sign (not displayed)
|-
|align="center"| '''V'''
|Implied decimal point (not displayed)
|-
|align="center"| '''X'''
|Any character, alphabetic, numeric, or other symbols
|-
|align="center"| '''Z'''
|Numeric digit, but leading-zero-suppressed (replaced by a blank when equal to zero)
|-
|align="center"| '''9'''
|Numeric digit (0-9)
|-
|align="center"| ''','''
|Digit group separator<ref name="comma">The comma and decimal point can be switched for European use.</ref> |Digit group separator<ref name="comma">The comma and decimal point can be switched for European use.</ref>
|- |-
|align="center"| . |align="center"| '''.'''
|Decimal point<ref name="comma"/> |Decimal point<ref name="comma"/>
|- |-
|align="center"| + |align="center"| '''+'''
|Sign ('-' if negative, '+' if positive) |Sign ('-' if negative, '+' if positive)
|- |-
|align="center"| - |align="center"| '''-'''
|Sign ('-' if negative, blank if positive) |Sign ('-' if negative, blank if positive)
|-
|align="center"| '''$'''
|Floating currency sign (blank for leading zeroes, '$' to the left of the most significant digit, otherwise digit 0-9)
|-
|align="center"| '''*'''
|Floating digit fill ('*' for leading zeroes, otherwise digit 0-9)
|} |}



Revision as of 16:44, 20 February 2008

A picture clause is an element in programming languages that is used to describe a data item, by using sample characters that indicate the item characteristics and size.

History

The picture clause was first used in the COMTRAN (Commercial Translator) language developed by Bob Bemer of IBM in 1957. In 1959, it was incorporated into the original definition of COBOL. Since then, many other programming languages have copied this feature.

Formatting

A picture clause is made up of various characters, each of which represents a certain type of data item. The number of repeated characters indicates the size of the data item. Here are some examples (from COBOL) of picture characters and what they represent:

Character Description
A Alphabetic character (A-Z, a-z, or blank)
B Blank (space) character
CR Sign indicator ('CR' if negative, blanks if positive)
DB Sign indicator ('DB' if negative, blanks if positive)
E Floating-point exponent
G Double-wide graphic/alphanumeric character
P Implied scaling digit (not displayed)
S Implied sign (not displayed)
V Implied decimal point (not displayed)
X Any character, alphabetic, numeric, or other symbols
Z Numeric digit, but leading-zero-suppressed (replaced by a blank when equal to zero)
9 Numeric digit (0-9)
, Digit group separator
. Decimal point
+ Sign ('-' if negative, '+' if positive)
- Sign ('-' if negative, blank if positive)
$ Floating currency sign (blank for leading zeroes, '$' to the left of the most significant digit, otherwise digit 0-9)
* Floating digit fill ('*' for leading zeroes, otherwise digit 0-9)

Examples

picture clause data type sample contents
PICTURE IS 999 3-digit number 123, 005, 087, any number from 000 through 999
PICTURE IS S999 3-digit internally signed number +123, -005, +087, any number from -999 through +999
PICTURE IS +999 3-digit output signed number +123, -005, +087, any number from -999 through +999, with sign displayed.
PICTURE IS ZZ9 3-digit number, leading zeros suppressed 123, 5, 87, any number from 000 through 999
PICTURE IS A(8) 8-character alphabetic string "Fredrick", "Fred ", any string of 8 alphabetic letters (may include spaces)
PICTURE IS X(8) 8-character string "Smithson", "O'Riley ", "Bon-Jovi", "23Skidoo", any string of 8 characters (may include spaces)

Footnotes

  1. ^ Non-standard extension provided by IBM and others.
  2. ^ The comma and decimal point can be switched for European use.
  3. These examples are from COBOL.
Categories: