CHAPTER 6

 

MOVING DATA, PRINTING INFORMATION, AND DISPLAYING OUTPUT INTERACTIVELY

 

 

CHAPTER OBJECTIVES

 

After completion of this chapter, the student should be able to:

 

1.         Explain the purpose and format of the MOVE statement with numeric and alphanumeric fields.

 

2.         Define the terms sending field and receiving field.

 

3.         Explain the outcome of a MOVE operation with fields that are not the same length.

 

4.         Explain how a portion of a field may be referenced in a MOVE operation.

 

5.                  Define the term editing and explain how it is performed.

 

6.                  Explain the function and use the following edit symbols:  . (period), Z, $, , (comma), *, -, +, CR, DB, B, 0, and /.

 

7.         Describe how and why print records are defined in WORKING-STORAGE.

 

8.         Explain how the MOVE and WRITE operations are used to print from WORKING-STORAGE.

 

9.         Explain how the WRITE ... FROM instruction is used to write from WORKING-STORAGE.

 

10.       Explain what the JUSTIFIED RIGHT clause is used for.

 

11.       Explain the purpose of the BEFORE or AFTER ADVANCING clause.

 

12.       Explain how to control page overflow and print page numbers on a report.

 

13.              Describe the procedure for accessing and processing the current date using compilers that are not Y2K-compliant.

 

14.              Describe the procedure for accessing and processing the current date using compilers that provide Y2K-compliant dates.


15.       Explain the purpose and use of the COBOL constant QUOTE.

 

16.       Explain how to define and process an interactive screen using the enhanced forms of the ACCEPT and DISPLAY statements.

 

17.       Explain how to define and process an interactive screen using the SCREEN SECTION along with the DISPLAY and ACCEPT verbs.

 


LECTURE OUTLINE

 

I.          Introduction

 

A.        The MOVE statement causes the contents of a sending field to be copied to a receiving field.

 

B.         The MOVE statement appears in the PROCEDURE DIVISION.

 

C.        At the end of the MOVE operation both the receiving field and the sending field have the same contents if their PIC clauses are the same.

 

II.         The Instruction Formats of the MOVE Statement

 

A.        FORMAT 1:

 

MOVE identifier-1 TO identifier-2

 

B.         FORMAT 2:

 

MOVE literal-1 TO identifier-2

 

C.        Rules for forming numeric literals are:

 

1.         1 to 18 digits.

 

2.         Decimal point is optional.

 

3.         Sign is optional.

 

D.        Rules for forming nonnumeric literals are:

 

1.         1 to 160 characters. Some computer systems allow even longer nonnumeric literals; the VAX, for example, permits 255 characters.

 

2.         May use any character except the quote mark or apostrophe.

 

3.         Enclosed in quote marks or apostrophes.

 

E.         Literals may be defined in VALUE clauses in the DATA DIVISION or used directly in the PROCEDURE DIVISION.

 

F.         The receiving field of a MOVE instruction must always be an identifier, never a literal.

 

G.        The MOVE statement can also move a figurative constant to an identifier.

 

III.       Numeric MOVE

 

            A.        Definition

1.         A numeric MOVE is one in which a numeric field or literal is moved to a numeric receiving field.

 

2.         Both the sending and receiving fields must be numeric.

 

B.         When Sending and Receiving Fields Have the Same PIC Clauses

 

1.         The contents of the sending field is placed in the receiving field.

 

2.         The value of the sending field remains unchanged.

 

C.        When Sending and Receiving Fields Have Different PIC Clauses

 

1.         When the sending and receiving fields have different PICTURE clauses, the MOVE operation will not produce the same contents in the receiving field as in the sending field.

 

2.         Moving Integer Portions of Numeric Fields:

a.         When moving an integer sending field or an integer portion of a numeric sending field to a numeric receiving field, movement is from right to left.

b.         All non-filled high-order (leftmost) integer positions of the receiving field are replaced with zeros.

c.         If the receiving field has fewer integer positions than the sending field, the most significant digits will be truncated.

 

3.         Moving Decimal Portions of Numeric Fields:

a.         When moving a decimal portion of a numeric sending field to the decimal portion of a numeric receiving field, movement is from left to right, beginning at the implied decimal point.

b.         Low-order (rightmost) non-filled decimal positions of the receiving field are replaced with zeros.

c.         If the receiving field has fewer decimal positions than the sending field, the least significant decimal digits will be truncated.

d.         Decimal alignment is always maintained in a numeric MOVE.

 


D.        Moving Numeric Literals to Numeric Fields

 

1.         Numeric literals are moved to numeric data fields in exactly the same manner as numeric fields are moved.

 

2.         The same rules for moving integer and decimal portions of one numeric field to another apply.

 

E.         Moving Signed Numbers:  An Introduction

 

1.         An S must be included in the PIC clause of a numeric field whenever the sign of the number is to be retained.

 

2.         Signed numbers are discussed in more detail in the next chapter.

 

IV.       Nonnumeric or Alphanumeric MOVE

 

A.        Basic Rules

 

1.         A nonnumeric MOVE is a move in which the receiving field is nonnumeric.

 

2.         A nonnumeric MOVE might involve:

a.         Moving an alphanumeric or alphabetic field, defined by a PICTURE of X’s or A’s, to another alphanumeric or alphabetic field.

b.         Moving a nonnumeric literal to an alphanumeric or alphabetic field.

c.         Moving a numeric field or numeric literal to an alphanumeric field or to any group item.

 

3.         Rules for nonnumeric moves:

a.         Data is transmitted from the sending field to the receiving field from left to right.

b.         Low-order (rightmost) positions of the receiving field that are not replaced with sending field characters are filled with spaces.

c.         When the receiving field is smaller than the sending field the rightmost characters of the sending field are truncated.

 

4.         It is the receiving field that determines the type of MOVE operation.  Thus, if the sending field is numeric and the receiving field is nonnumeric, the MOVE will be a nonnumeric MOVE.


5.         Literals or figurative constants can be moved to a nonnumeric receiving field.

 

6.         Do not MOVE alphanumeric fields to numeric fields.  The results could cause a program interrupt if the receiving field is used later in an arithmetic operation and it does not contain numeric data.

 

B.         A Group Move is Considered a Nonnumeric Move

 

1.         All group fields are considered to be alphanumeric fields.

 

2.         A group MOVE is considered to be a nonnumeric MOVE regardless of the PICTURE clauses of the elementary items within the group item.

 

V.        Other Options of the MOVE Statement

 

A.        Qualification of Names

 

1.         Names or identifiers that define fields within records need not be unique; the same name may be used to define fields in different records.

 

2.         File-names and record-names must always be unique.

 

3.         If the same data-name is used to define fields in different records or group items, the data-name must always be qualified with either the record-name or the group item name.

 

4.         The format used to qualify a field is:

 

identifier-1 {OF/IN}

    {record-name-1/group-item-name-1}

 

B.         Performing Multiple Moves with a Single Statement

 

1.         A single sending field may be sent to multiple receiving fields with a single MOVE instruction.

 

2.         This is an excellent method to initialize a series of fields to zero at the beginning of a procedure.


 

C.        Reference Modification:  Accessing Segments of a Field Using COBOL 85

 

1.         It is possible to reference a portion of an elementary field with COBOL 85.

2.         An example of reference modification is:

 

            MOVE NAME-IN (5:6) TO NAME-OUT

 

            where,

a.         The first digit in parentheses indicates the starting position of the MOVE.

b.         The second digit in parentheses indicates the length of the MOVE.

c.         The effect of this statement is to move the 5th through 10th characters of NAME-IN to NAME-OUT.

 

VI.       Producing Printed Output and Screen Displays

 

A.        Features of Printed Output and Screen Displays

 

1.         Computer-produced displays and reports are designed for people and must, therefore, be clear, neat, and easy to understand.

 

2.         Data should be edited.  Editing symbols are used to make data fields clearer, neater, and more readable.

 

3.         The lines on printed and displayed output should be properly spaced for ease of reading by using line spacing, margins, and page breaks.

 

4.         Printed and displayed output must be aligned so that it can be understood.

 

5.         Printed output should contain complete headings (report headings, page headings, and column headings) so that the report is meaningful.  Total lines and footings may also appear at the end of a page or report.

 

6.         The Printer Spacing Chart may be used to design printed output.  A Screen Layout Form is used in a similar way to plan the formatting for displayed output.

 


B.         The Editing Function

 

1.         Basic Editing Functions discussed are:

a.         Printing of decimal points (.).

b.         Suppression of leading zeros (Z).

c.         Printing of dollar signs and commas ($ ,).

d.         Printing of asterisks for check protection (*).

e.         Printing of plus or minus signs (+ -).

f.          Printing of debit or credit symbols for accounting applications (CR, DB).

g.         Printing of spaces, zeros, or slashes as separators within fields (B, 0, /).

 

2.         The first six editing functions (a-f) described above may only be performed on numeric fields.  The last set of editing functions (g) may be performed on any data field.

 

3.         Editing is accomplished by moving an elementary item to a report-item.  A report-item is an elementary item that contains editing symbols in its PICTURE clause.

 

4.         It is the PICTURE clause of the receiving field (report-item) that determines the editing to be performed.

 

5.         The GIVING option of the arithmetic verbs permits the receiving field to be a report-item.

 

6.         Editing can be accomplished by:

a.         moving a field to a report-item.

b.         performing an arithmetic operation where the result is a report-item.

 

7.         Printing or Displaying Decimal Points:

a.         To print or display a decimal point, insert the decimal point where desired in the PICTURE clause of the report-item.

b.         Unlike the implied decimal point (V) used in a numeric field, the decimal point in a report-item occupies one byte of storage.

 


8.         Suppressing Leading Zeros:

a.         Leading or non-significant zeros are zeros appearing in the leftmost positions of a field and having no significant value.

b.         To suppress leading zeros with blanks, the edit symbol Z is used.

c.         When suppressing leading zeros, the sending field must be defined as numeric.

d.         It is recommended that you not suppress all digits in a field when it is possible that the value of the field is zero.  It is good practice to print a single zero when a zero balance exists.

e.         The combined use of Z's and 9's in a report-item can be used to control which digits are suppressed and which are not.

f.          All Z's must precede any 9's in a report-item.

g.         Generally we do not suppress to the right of a decimal point.

h.         A PICTURE clause such as ZZ.ZZ will suppress zeros to the right of the decimal point only if the entire field is zero.  In this case, the report-item will be filled with five spaces.

 

9.         Printing or Displaying Dollar Signs and Commas:

a.         Dollar signs and commas are placed into the PICTURE clause of the report-item where desired.

b.         Dollar signs and commas each use one position of storage.

c.         If used with the zero suppression character, any leading commas will be suppressed.

 

10.       Printing or Displaying Asterisks for Check Protection:

a.         Asterisks are zero-suppression characters that replace each non-significant zero and comma with * instead of a space.

b.         The asterisk is commonly used as a check protection symbol.

c.         To print or display an asterisk instead of a blank when zero suppression is desired, use the asterisk in place of the Z editing symbol.

 

11.       Printing or Displaying Plus and Minus Signs:

a.         Unless instructed otherwise, the computer will print or display numeric quantities without a sign.

b.         The editing symbol minus (-) is used to print or display a minus sign when the amount is negative and a blank when the amount is not negative.

c.         The editing symbol plus (+) is used when a sign is required for all values (positive, negative and zero).  It will display as a – for negative amounts and a + for zero or positive values.

d.         The minus (-) or plus (+) sign is placed either to the left or the right of the report-item.

e.         When the + and – edit symbols are used, the sending field must have an S in its picture clause to allow for signed values.

 

12.       The editing symbols DB (for debit) or CR (for credit) may be placed to the right of a numeric field instead of a minus sign for accounting applications.  As with a minus sign, the DB or CR are printed only if the amount is negative; otherwise two blanks are printed.  The sending field must have an S in its picture clause to allow for signed values.

 

13.       For clarity, spaces may be inserted as separators in report-items by using the symbol B. The edit symbol B in a PICTURE clause of a report-item will cause a space to be inserted in the corresponding position.

 

14.       Likewise, zeros and slashes may be inserted into fields by using the edit symbols 0 (zero) or /.  Using these edit symbols in the PICTURE clause of a report-item will cause a 0 or / to be inserted in the corresponding position of the receiving field.

 

15.       Using COBOL 85 you may move a report-item field which contains edit symbols to a numeric field.  This is known as de-editing.

 

16.       When accepting input interactively, it is best to allow users to enter the data in standard decimal form.  De-editing can then be used to convert the input data into a field with an implied decimal point so that arithmetic can be performed.

 

C.        Editing Using Floating Strings

 

1.         When editing using floating strings, a leading edit character such as a plus sign, minus sign, or dollar sign may be made to appear in the position directly preceding the first significant digit.

 

2.         A floating string will cause suppression of leading zeros and commas and, at the same time, force the floating character to appear in the position adjacent to the first significant digit.

 

3.         To accomplish a floating string operation:

a.         Create the report-item PICTURE clause as before.

b.         Replace all Z's with the desired floating character.

c.         There will be one more floating string character than integer positions to be accepted by the report-item.  This is so the edit symbol can print when the field is filled.

 

4.         Two different floating string characters are not allowed in one report-item.  Only one character can float.

 

 

 

D.        BLANK WHEN ZERO Option

 

1.         BLANK WHEN ZERO is used to print or display spaces when a sending field consists entirely of zeros.

 

2.         BLANK WHEN ZERO is used in conjunction with the appropriate PICTURE clause. 

 

3.         BLANK WHEN ZERO should not be used with the asterisk since it would defeat the purpose of using the check-protection edit symbol.

 

E.         Defining Print Records in WORKING-STORAGE

 

1.         Each record format for printed output should be established as a separate area in WORKING-STORAGE.

 

2.         The VALUE clause is used to establish the constants in a print record defined in WORKING-STORAGE.

 

3.         Each print record in WORKING-STORAGE can be printed by moving it to the print area and writing the print area.  This requires a MOVE operation followed by a WRITE operation.

 

4.         If a field within a print structure is not directly accessed in the PROCEDURE DIVISION, it is customary to leave the field-name blank  The field-name FILLER is optional.

 

F.         The WRITE ... FROM Statement

 

1.         A WRITE ... FROM instruction may be used in place of a MOVE and WRITE to print lines.

 

2.         The following are equivalent:

a.         WRITE OUTPUT-RECORD FROM WS-RECORD

b.            MOVE WS-RECORD TO OUTPUT-RECORD

     WRITE OUTPUT-RECORD


 

G.        JUSTIFIED RIGHT Option

 

1.         Data is normally left-justified when it is moved into an alphanumeric field.

 

2.         If the JUSTIFIED RIGHT option is included as part of the PIC clause of an alphanumeric field, then a MOVE will right-justify the contents into the field.

 

H.        The ADVANCING Option for Spacing Printed Forms

 

1.         The AFTER ADVANCING or BEFORE ADVANCING option should be used with each WRITE instruction to indicate the spacing of the form.

 

2.         Any number of blank lines may be obtained between printed lines by using an AFTER ADVANCING or BEFORE ADVANCING option with every WRITE instruction.

 

3.         The actual spacing achieved with the AFTER ADVANCING clause is summarized in this chart:

 

AFTER ADVANCING Clause

Type of Spacing Achieved

Number of Blank

Lines Inserted

AFTER ADVANCING 1 LINE

Single spacing

0

AFTER ADVANCING 2 LINES

Double spacing

1

AFTER ADVANCING 3 LINES

Triple spacing

2

 

4.         Format:

 

WRITE record-name-1 [FROM identifier-1]

    [{AFTER/BEFORE} ADVANCING

    {integer/identifier-2} [LINE/LINES]]

 

5.         The BEFORE ADVANCING and AFTER ADVANCING clauses should not be used in the same program because it may result in overprinting.

 

6.         To achieve overprinting or underlining, use the clause AFTER ADVANCING 0 LINES.

 

7.         The reserved word PAGE used after the word ADVANCING will cause the paper to skip to a new page.


 

8.         To advance to a new page when a page is full:

a.         Determine the number of lines to be printed on a page.

b.         Establish a line-counter field initialized to zero in WORKING-STORAGE.

c.         After each WRITE statement, increment the line-counter field.

d.         Before each WRITE statement, test the line counter field to see if it equals or exceeds the desired number of lines to be printed per page.  If so, print a heading at the top of a new page and reinitialize the line-counter to zero.

 

I.          Printing Page Numbers

 

1.         A numeric field that is used for counting pages is defined in WORKING-STORAGE and initialized to 1.  It is incremented each time a page is printed.

 

2.         In the headings routine, the page counter is moved to the corresponding report record before the headings are written.

 

3.         The page counter is then incremented by 1 in the headings routine.

 

J.          Printing or Displaying the Date of the Run

 

1.         Using Compilers Which are Not Y2K-Compliant

a.         Older compilers were designed to work with 6-digit dates (yymmdd).

b.         The computer stores the current date in a field that can be accessed with the COBOL reserved word DATE.

c.         The date may be accessed from the operating system using the ACCEPT instruction with the format:

 

ACCEPT identifier FROM DATE

 

Identifier is defined in WORKING-STORAGE as a six-digit unsigned numeric field in the format yymmdd.

d.         Printing the date in the form month/day/year requires moving each elementary month, day, and year field to report-item fields which have been separated into month, day, and year.


 

2.         Using Compilers That Provide Y2K-Compliant Dates

            a.         The Y2K Problem

                                    b.         Enhancements added to the new COBOL standard in 1989 provide Y2K-compliant dates.  Most 1985 compilers include these features.

c.         The intrinsic function CURRENT-DATE supplies the date in the format yyyymmdd.

d.         To obtain the current date, code the statement

MOVE FUNCTION CURRENT-DATE TO WS-DATE

where
WS-DATE is defined in WORKING-STORAGE as an eight-byte field of the form yyyymmdd.

e.         COBOL 2000+ will provide for ACCEPT identifier FROM DATE to access a Y2K-compliant date.

 

3.         Creating Y2K-Compliant Dates Using Older Compilers

a.         An interim approach being used by some companies whose compilers are not Y2K-compliant is to have the program (rather than the operating system) insert the century into date fields.

b.         A common scheme is to treat years in the range 00 – 35 as though they were 2000 – 2035 and all other years (36 – 99) as though they were 1936 – 1999.

c.         This is only a temporary “fix.”  The best course of action is to use a compiler that is Y2K-compliant.

 

K.        Printing or Displaying Quotation Marks

 

Since nonnumeric literals are enclosed in quotes, quotation marks may not be included within the literal.  To print or display a quotation mark, use the COBOL figurative constant QUOTE in the VALUE clause.


 

L.                                          Coding Guidelines for Designing Reports:

 

1.         Include a heading that identifies the report.

 

2.         Include the date and page number in either a report or page heading.

 

3.         Include column headings to identify the fields to be printed.

 

4.         Place the most significant fields where they are most visible.

 

5.         Edit numeric fields for readability.

 

6.         Include totals at the end of the report or at the end of a page.

 

7.         Use *'s to identify the level of a total.

 

8.         Include page footings at the end of each page and report footings at the end of the report, if desired.

 

VII.            Displaying Output Interactively Using Screen Input and Output

 

A.        Introduction

 

1.         Input/output applications on PC’s often make use of interactive processing with input being entered on a keyboard and output being displayed on a screen. 

 

2.         PC versions of COBOL have added enhancements that extend COBOL’s ability to include interactive processing.  These enhancements are not, however, the same for all PC versions of the language.

 

3.         There are two varying approaches used for adding interactivity to COBOL programs:

a.         Use ACCEPT and DISPLAY statements with numerous options that allow the programmer to define the appearance of data on the screen, or

b.         Use a SCREEN SECTION in the DATA DIVISION to define the screen, along with simple ACCEPT and DISPLAY statements in the PROCEDURE DIVISION.


 

B.         ACCEPT Statement for Screen I-O

 

1.         Many compilers enable programmers to use the ACCEPT statement to control the placement of data on the screen and to add other features to the appearance of that data.

 

2.         The following format of the ACCEPT statement includes many options available with most PC compilers:

 

ACCEPT identifier

[AT] [LINE NUMBER {identifier-1/integer-1}]

[{COLUMN/COL} NUMBER {identifier-2/integer-2}]

[WITH

[AUTO]

[BACKGROUND-COLOR IS integer-3]

[{BELL/BEEP}]

[BLINK]

[FOREGROUND-COLOR IS integer-4]

[HIGHLIGHT]

[SECURE]

[REVERSE-VIDEO]

[{LEFT-JUSTIFY/RIGHT-JUSTIFY}]

[{SPACE-FILL/ZERO-FILL}]

[TRAILING SIGN]

[UNDERLINE]

[UPDATE]]

3.         Options available for the ACCEPT statement are listed in the table below.

 

LINE and COLUMN

Specifies the screen location of the data to be accepted.

AUTO

Causes the cursor to automatically skip to the next position for entering input when the current entry is complete.  If this option is omitted, then the user must press the Enter key after each data entry.

BACKGROUND- and FOREGROUND-COLOR

Changes the background/foreground colors of the screen.  Available colors are listed in Figure 6.6 of the text.  In MicroFocus, 78-level items may be defined in WORKING-STORAGE to allow the use of words in place of the color codes.

BELL and BEEP

Causes the computer to make the corresponding sound when the entry is made.

BLINK

Causes the data being entered to blink.

HIGHLIGHT

Causes the entry to appear in high-intensity (boldface) mode.

SECURE

Prevents the entry from appearing on the screen.

REVERSE-VIDEO

Causes the entry to be displayed with foreground and background colors reversed.

RIGHT-JUSTIFY and

LEFT-JUSTIFY

Places the data being entered in the rightmost/leftmost positions of the field.

SPACE-FILL and

ZERO-FILL

Places blanks/zeros in the high-order positions of a field.

TRAILING SIGN

Places the sign for any signed number after the number.

UNDERLINE

Places underscores in the field.

UPDATE

Displays the initial value of the field before the user has entered any new data.

 

C.        DISPLAY Statement for Screen I-O

 

1.         The DISPLAY statement is often used with the ACCEPT statement to make an application interactive.

 

2.         The following is a format of the DISPLAY statement used with many PC compilers:

 

 

DISPLAY {identifier-1/literal-1}

[AT] [LINE NUMBER {identifier-2/integer-1}]

[{COLUMN/COL} NUMBER {identifier-3/integer-2}]

[WITH

[BACKGROUND-COLOR IS integer-3]

[{BELL/BEEP}]

[BLINK]

[FOREGROUND-COLOR IS integer-4]

[HIGHLIGHT]

[REVERSE-VIDEO]

[UNDERLINE]

[BLANK {SCREEN/LINE}]]

 

3.         Most of the options found in the DISPLAY statement also appear in the ACCEPT statement.  Options unique to the DISPLAY statement are listed below.

 

BLANK SCREEN

Initially clears the entire screen.

BLANK LINE

Clears the specified line.

 

 

D.        The SCREEN SECTION

 

1.         The SCREEN SECTION allows the programmer to set up a full description of a screen in the DATA DIVISION.  The SCREEN SECTION follows the WORKING-STORAGE SECTION.

 

2.         The SCREEN SECTION contains many of the same clauses that would otherwise be coded in an enhanced ACCEPT or DISPLAY statement.

 

3.         The following format illustrates the clauses available with many PC COBOL compilers:

 

SCREEN SECTION.

Level-number {screen-name/FILLER}

[BLANK {SCREEN/LINE}]]

[{BELL/BEEP}]

[BLINK]

[HIGHLIGHT]

[REVERSE-VIDEO]

[UNDERLINE]

[BACKGROUND-COLOR IS {integer-1/data-name-1}]

[FOREGROUND-COLOR IS {integer-2/data-name-2}]

[LINE NUMBER {identifier-1/integer-3}]

[COLUMN NUMBER {identifier-2/integer-4}]

[VALUE IS literal-1]

{PICTURE/PIC} IS

{FROM identifier-4 TO identifier-5 |

          USING identifier-6}

[AUTO]

[SECURE]

                   [REQUIRED or EMPTY-CHECK]

 

4.         To use these advanced screen layout features, the programmer should:

a.         Define the screen format in the SCREEN SECTION.

b.         Use the DISPLAY screen-name statement to display the defined screen.

c.         Use the ACCEPT screen-name statement to receive any data keyed in by the user.


 

5.         The general form of a screen group item is:

 

level-number screen-name

     [various options]

 

where,

a.         Level-numbers range from 01-49.

b.         The screen-name conforms to the rules for COBOL user-defined words.

c.         The format for elementary screen items is given in the text.  Options available in Micro Focus COBOL for elementary screen items are listed in the following table.

d.         When these options are specified with a group item, they apply to all elements within the group item.

 

 

BLANK SCREEN

Clears the screen and positions the cursor at the home position.

LINE and COLUMN

Specifies the screen location of elements to be displayed or accepted.

BLANK LINE

Clears the specified line.

BELL or BEEP

Causes the corresponding sound to be geneated when an ACCEPT is executed.

UNDERLINE

Underlines displayed items.

REVERSE-VIDEO

Displays items with foreground and background colors reversed.

HIGHLIGHT

Displays the screen item in high-intensity mode.

BLINK

Displayed items blink.

VALUE

Used to define literals to be displayed.

PIC ... FROM

Provides the PIC clause for data to be displayed, along with the DATA DIVISION field that contains the data to be displayed.

PIC ... TO

Provides the PIC clause for an input field and indicates where in the DATA DIVISION the accepted entry should be stored.

BLANK WHEN ZERO

Displays a blank for a field that has a value of 0.

JUSTIFIED RIGHT

Right justifies the item.

AUTO

When an input field has been filled, the cursor automatically skips to the next input field.

SECURE

Keyed data is not displayed.  *’s or #’s appear in place of the actual data.

REQUIRED/EMPTY-CHECK

Data must be entered into the input field.

 

 

VIII.     Refer to and discuss the examples in the text.

 

 

IX.       COBOL 2000+ Changes

 

A..       Arithmetic may be performed on report-items.

 

B.         The symbol & will be available to concatenate nonnumeric literals.

 


SOLUTIONS TO REVIEW QUESTIONS

 

I.          True-False Questions

 

1.         T

 

2.         T

 

3.         F          Alphabetic and alphanumeric moves are left-justified. The receiving

                        field will contain XYZ.

 

4.         T

 

5.         F          Decimal portions of numeric fields are left-justified. The result will be

                        092Ù170.

 

6.         F          The figurative constant ZEROS may be moved to numeric or

                        alphanumeric fields.

 

7.         F          Only a field identified by a data-name may be a receiving field.

 

8.         F          A blank in a numeric field can cause a program to abort.

 

9.         T

 

10.       F          It is an alphanumeric move.  The receiving field determines the type of move.

 

II.      General Questions

 

 

Sending Field

Receiving Field *

 

Picture

Contents

Picture

Contents

1.

99V99

12Ù34

9(3)V9(3)

012Ù340

2.

9V99

7Ù89

9V9

7Ù8

3.

999V9

678Ù9

99V99

78Ù90

4.

99

56

XXX

56b

5.

XX

AB

XXX

ABb

6.

X(4)

CODE

XXX

COD

7.

XXX

124

999

124

 

*          The letter b is used to denote a space throughout this manual.


8.         With MOVE 0 TO ITEM-1:         ITEM-1A = 0b  ITEM-1B = bb

            With MOVE ZERO TO ITEM-1:      ITEM-1A = 00  ITEM-1B = 00

 

9.         013Ù5790

 

10.       3Ù5

 

 

Sending Field

Report-Item *

 

Picture

Contents

Picture

Contents

11.

999

123Ù45

$ZZZ.99

$123.45

12.

S99V99

00Ù98-

$ZZ.99+

$  .98-

13.

S99V99   

00Ù89+

$ZZ.99

$  .89

14.

S999

005+

$ZZZ.99CR

$  5.00

15.

S999

005+

$ZZZ.99DB

$  5.00

16.

S99V99

00Ù05-

$ZZZ.99CR

$  5.00CR

17.

9(5)V99

1357Ù00

$**,***.99

$*1,357.00

18.

XXXX

CRDB

XXBBXX

CR  DB

19.

999V99

135Ù79

$$$$.99

$135.79

20.

999V99

000Ù09

$$$$.99

   $.09

21.

S9(5)

00567-

++++++

bb-567

22.

S99

00+

+++

bb+

23.

S99

00+

---

bbb

24.

9999V99

0009Ù88

$$$$$.99

bbb$9.88

25.

9(4)V99

0009Ù88

$$$ZZ.99

bb$ 9.88

 

*          The letter b is used to denote a space throughout this manual.

 

 


III.    Internet/Critical Thinking Questions

 

1 and 2.            Since the Y2K Problem did not cause as much trouble as some people thought it would, there are very few post January 1, 2000 links in the search results.  Some possible starting points are given below, but many contain mostly pre-Year 2000 links.  Also, many of the links have expired since the topic is "history".  In general, use various search engines with keywords of "Y2K", "Y2K Problem", and similar keywords.

 

Search Engine:              yahoo.com>Computers & Internet>History>Year 2000 Problem>

Contents:                      Links to Y2K web sites

 

Search Engine:              yahoo.com>Computers & Internet>

Keywords:                   Y2K Computer Problem

URL:                            http://www.coyote.com/database/y2k.htm

Contents:                      Article, with links

 

Search Engine:  yahoo.com

Keywords:                   Y2K Computer Problem

URL:                            http://www.wired.com/news/y2k

Contents:                      Y2K articles, a few written after January 1, 2000

 

 


INTERPRETING INSTRUCTION FORMATS

 

1.         Cannot MOVE two items to the same receiving field.

 

2.         The word AND should be omitted:

 

MOVE 1 TO AMT1, AMT2

 

3.         It is not possible to MOVE to a numeric literal.

 

 


SOLUTIONS TO DEBUGGING EXERCISES

 

1.         Yes.  We cannot assume that the filler areas in the OUT-REC will be blank.

 

2.         It would be more efficient to describe the output record in WORKING-STORAGE so that VALUES could be assigned to the fields.

 

3.         a.         A syntax error will occur because the receiving field is too small. $(4) accepts                only three integer digits. (Not all compilers will actually flag this as a syntax

error; on most systems, a compiler option is used to specify whether the

compiler should look for this type of error).

 

b.         No syntax error, but the decimal digits will be truncated.

 

c.         No syntax error, but the receiving field only needs three Z’s to the left of the decimal point.

 

d.         No syntax error, but if the sending field contains all zeros, spaces will print.

 

e.         Depending on the compiler a warning-level syntax error may occur to indicate that the output is signed while the input is unsigned.

 

4.         No syntax error, but initializing a report-item is a waste of time.  Something will be moved to AMT6 anyway, so why bother to initialize the field?