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.
Structure
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:
★ A -- an alphabetic character (A-Z or a-z, plus blank)
★ B -- the blank character
★ X -- any character, alphabetic, numeric, or other symbols
★ 9 -- a numeric digit
★ Z -- a numeric digit, but leading-zero-suppressed (replaced by a blank when equal to zero)
★ S -- a sign for a number
★ , -- the comma, used as a separator in displaying numbers
[1]
★ . -- the period, used as a decimal point in displaying numbers
★ + -- the plus sign, used in displaying signed numbers
★ - -- the minus sign, used in displaying signed numbers
Some picture characters are used in input fields and data storage, some only in output fields, and some in both. For example, ''S'' is used for a signed number on input and storage fields, but output fields will display a ''+'' or ''-'' sign.
== Examples
[2] ==
| 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", any string of 8 characters (may include spaces) |
Footnotes
1. The comma and decimal point can be switched for European use.
2. These examples are from COBOL.