COBOL PICTURE Symbols and Character Strings
							
	
	
What is PICTURE symbol? 
- PICTURE symbol (PIC/PICTURE) is the letter that specifies the variable type during its declaration. 
- These are delimited only by space, comma, semicolon, or period.
- These are not case-sensitive (lowercase and uppercase letters are considered as equivalent). 
These are two types -
- PICTURE symbol for data types
- PICTURE symbol for editing.
For example -
A, B, E, G, N, P, S, V, X, Z, CR, DB.
PICTURE symbol for data types - 
PICTURE symbol for data types specifies the PICTURE symbols assigned for each data type in COBOL. Those are -
	
		
			| Data Type | PICTURE Symbol | Declaration Meaning | 
	
	
		
		    | Alphabetic | A | Alphabetic character or space. 
Represents alphabetic data type.
For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| HELLO | PIC A(5) | HELLO |  | 
		
		    | Numeric | 9 | Numeric character. 
Represents numeric data type.
For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| 123 | PIC 9(5) | 00123 |  
			| 000123 | PIC 9(4) | 0123 |  | 
		
		
		    | Alphanumeric | X | Alphanumeric character or space. 
Represents alphanumeric data type.
For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| HELLO | PIC X(5) | HELLO |  
			| HI | PIC X(5) | HI |  | 
		
		| Assumed decimal point | V | Represents the decimal point. 
It is not counted in the size of the variable/variable.
For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| 123.45 | PIC 999V99 | 12345 |  
			| 123.45 | PIC 99V99 | 2345 |  | 
		
		| Operational sign | S | Represents the Sign of the value. 
It is not counted in the size of the variable unless a SIGN clause with the SEPARATE CHARACTER phrase is specified. 
For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| -123 | PIC S999 | 12L |  
			| +123 | PIC S999 | 12C |  
			| -123 | PIC S999 SIGN IS LEADING SEPERATE CHARACTER | -123 |  
			| -123 | PIC S999 SIGN IS TRAILING SEPERATE CHARACTER | 123- |  | 
	
PICTURE symbol for editing - 
The PICTURE symbol for editing is used to display the data in the user's desired format. 
These are classified into two types, and those are -
Insertion editing - It is a way to format the data in the numeric variables, for displaying in human-readable format.
	
		
			| Type | Description | PIC Symbols | 
	
	
		
		    | Simple insertion | Simple insertion editing involves inserting character(s) like blank, 0, /, and space in the PICTURE string while displaying for better readability. | B
0
/
  (Space) | 
		
		    | Special insertion | Special insertion editing is used to insert the decimal-point while displaying the decimal values of a variable. | . (Dot) | 
		
		    | Fixed insertion | Fixed insertion editing is used to insert fixed characters (-, +, CR, DB, and $) into a numeric edited item. | cs 
+ 
- 
CR 
DB | 
		
		    | Floating insertion | Floating insertion editing is used for formatting numeric variables, mainly when dealing with currency values. | cs 
+ 
- | 
	
ZERO suppression and replacement editing 
	
		
			| Type | Description | PIC Symbols | 
	
	
		
		    | Zero suppression and replacing with spaces | Zero Suppression involves omitting leading zeros from a number, and replacement editing involves replacing leading zeros with a space. | Z 
* | 
		
		    | Zero suppression and replacing with asterisks | Zero Suppression involves omitting leading zeros from a number, and replacement editing involves replacing leading zeros with an asterisk (*). | Z 
* 
+ 
- 
cs | 
	
Examples -
Below are the total PICTURE clause symbol list -
	
		| Symbol | Declaration Meaning | 
|---|
	
	
		| B | Space insertion character that represents numeric-edited and alphanumeric-edited character. For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| 150682 | PIC 99B99B99 | 15 06 82 |  
			| 15061982 | PIC XXBXXBXXXX | 15 06 1982 |  | 
		| P | Decimal scaling position but not counted in size of variable. For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| 77 | PIC 99P | 77 |  
			| 77 | PIC P99 | 77 |  | 
		| Z | Zero suppression character. For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| 123 | PIC ZZZZZ. | 123 |  
			| 000123 | PIC ZZZZZZ. | 123 |  | 
		| 0 | Zero insertion character. For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| 1234 | PIC 990099. | 120034 |  
			| 1234 | PIC 999900. | 123400 |  | 
		| / | Slash insertion character. For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| 150682 | PIC 99/99/99. | 15/06/82 |  | 
		| , | Comma insertion character. For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| 123456 | PIC 999,999. | 123,456 |  
			| 12345 | PIC zzz,999. | 12345 |  | 
		| . | Decimal point or period editing control character. For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| 1234.56 | PIC 9999.99. | 1234.56 |  
			| 1234.56 | PIC 999.99. | 234.56 |  
			| 1234.56 | PIC 9999.9. | 1234.5 |  | 
		| + | Plus sign insertion editing control character. For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| +12345 | PIC +9(5). | +12345 |  
			| -123 | PIC +9(3). | -123 |  
			| -123 | PIC 9(3)+. | 123- |  | 
		| - | Minus sign editing control character. For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| -123 | PIC -9(3). | -123 |  
			| +123 | PIC +9(3). | 123 |  
			| -123 | PIC 9(3)-. | 123- |  | 
		| CR | Credit editing control character. For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| +123 | PIC 9(3)CR. | 123 |  
			| -123 | PIC 9(3)CR. | 123CR |  | 
		| DB | Debit editing control character or Check protect insertion character.For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| +123 | PIC 9(3)DB. | 123 |  
			| -123 | PIC 9(3)DB. | 123DB |  | 
		| $ | Currency symbol insertion character. $ is the default. For example - 
	
		
			| Input | PICTURE Clause | Output |  
			| 000 | PIC $,$$9.99. | 0.00 |  
			| 90 | PIC $$9.00. | $90.00 |  
			| 12345 | PIC $$,$$9. | $2,345 |  | 
	
	
		
			
			
				
					-  Insertion Editing  
						
					
-  ZERO suppression and replacement Editing