Cobol Test Review 1. As an acronym, what does COBOL represent? Common Business Oriented Language 2. What are the four divisions of a Cobol program? 1) Identification 2) Environment 3) Data 4) Procedure 3. Describe how variables are allocated in Cobol. Static 4. Show the hex contents of the following fields: a) b) c) d) e) f) g) h) i) j) k) l) m) n) o) 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 FIELDA FIELDA FIELDA FIELDA FIELDA FIELDA FIELDA FIELDA FIELDA FIELDA FIELDA FIELDA FIELDA FIELDA FIELDA FIELDA FIELDA PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC X(3) VALUE "ABC". C1C2C3 X(3) VALUE "A". C14040 X(3) VALUE "ABCDEFG". C1C2C3 X(3) VALUE "ABC". C1C2C3 S9(3) VALUE "123". F1F2C3 9(3) VALUE "123". F1F2C3 S9(3) VALUE "-123". F1F2D3 S9(3) VALUE "123456". F4F5C6 S9(5) PACKED-DECIMAL VALUE "123". 00123C S9(5) PACKED-DECIMAL VALUE "-123". 00123D S9(5) PACKED-DECIMAL VALUE "-12345". 12345D S9(4) PACKED-DECIMAL VALUE “-12345”. 02345D S9(3)V99 PACKED-DECIMAL VALUE "12.34". 01234C S9(7) PACKED-DECIMAL VALUE ‘123.45” 0012345C S9(8) BINARY VALUE 24. 00000018 S9(4) BINARY VALUE 24. 0018 S9(4) BINARY VALUE -3. FFFD 5. Describe suitable output PICs for the fields described above in j,k, and l. J&K. PIC ZZZZ9L. ZZZ.996. Consider the information below: FILE-CONTROL. SELECT INPUT-FILE ASSIGN TO MYIFILE. SELECT OUTPUT-FILE ASSIGN TO MYOFILE. What is INPUT-FILE and where is it defined? Internal file name defined in an FD. What is MYIFILE and where is it defined? It is the DD Name of the file defined in the JCL. 7. Consider the information below: FD CUSTOMER RECORDING MODE IS F. 01 OUTPUT-REC. 10 10 FIELDA-O 10 10 FIELDB-O 10 10 FIELDC-O 10 PIC PIC PIC PIC PIC PIC PIC X(20) VALUE SPACES. ZZ.99-. X(5). Z,ZZ9.999-. X(5). ZZZ,ZZ9.9-. X(79). What does the RECORDING MODE IS F clause indicate? All records are fixed in length. Where is the storage associated with OUTPUT-REC? In system supplied buffers. Why would you code multiple 01s in an FD? You need multiple record types in the file, or for variable length records. What does the compiler do with VALUE clauses in an FD? Value clauses are ignored – there is no working storage to initialize. How would you print a record to the CUSTOMER file? WRITE OUTPUT-REC or WRITE OUTPUT-REC FROM (SOME OTHER AREA) 8. Consider the information FD INPUT-FILE RECORDING MODE IS F. 01 INPUT-REC. 10 FIELDA 10 FIELDB 10 FIELDC 10 below: PIC PIC PIC PIC S9(2)V99. S9(4)V9(3) PACKED-DECIMAL. S9(6)V9 PACKED-DECIMAL. X(68). Are value clauses allowed in INPUT-REC? YES, but ignored. How do you read a record from INPUT-FILE? READ INPUT FILE AT END … END-READ Where can you define fields in COBOL? WORKING-STORAGE SECTION, FD’S, LINKAGE-SECTION 10. Show how to define a name field that consists of three subfields: first, last and middle initial. 10 A-NAME. 15 FIRST-NAME 15 MI 15 LAST-NAME PIC X(10). PIC X. PIC X(20). 11. Show how to define a table of 50 name fields. Use the name structure you built in #10. Define the table twice – with and without indexes. 01 MY-TABLE. 10 A-NAME OCCURS 50 TIMES. 15 FIRST-NAME PIC X(10). 15 MI PIC X. 15 LAST-NAME PIC X(20). 01 MY-TABLE. 10 A-NAME OCCURS 50 TIMES INDEXED BY NDX. 15 FIRST-NAME PIC X(10). 15 MI PIC X. 15 LAST-NAME PIC X(20). 12. Show how to define a two dimensional table of name fields with 5 rows and 10 columns. Use the name structure you built in #10. 01 MY-TABLE. 05 ROW OCCURS 5 TIMES INDEXED BY I. 10 A-NAME OCCURS 10 TIMES INDEXED BY J. 15 FIRST-NAME PIC X(10). 15 MI PIC X. 15 LAST-NAME PIC X(20). 13. Show how to define a Sudoku table. 01 SUDOKU. 10 ROW OCCURS 9 TIMES 20 CELL PIC X OCCURS 9 TIMES. 14. Write a loop that would print the table of names in #11. Show how to do this with both indexes and without. Using indexes manually, show how to print the 10th and 11th names. PERFORM VARYING I FROM 1 BY 1 UNTIL I > 50 DISPLAY A-NAME(I) END-PERFORM MOVE 1 TO I or PERFORM UNTIL I > 50 DISPLAY A-NAME(I) ADD 1 TO I END-PERFORM 15. Write a loop that would print the Sudoku table in #13 in a rectangular form. 01 OUT-REC. 10 ITEM OCCURS 9 TIMES. 20 CELL-O PIC X. 20 PIC X VALUE SPACE. 10 PIC X(114). PERFORM VARYING I FROM 1 BY 1 UNTIL I > 9 PERFORM VARYING J FROM 1 BY 1 UNTIL J > 9 MOVE CELL(I , J) TO CELL-O(J) END-PERFORM WRITE OUTPUT-REC FROM OUT-REC AFTER ADVANCING 1 LINE END-PERFORM 16. Write a loop that would check the rows of a Sudoku table to see if a rule has been violated. PERFORM VARYING I FROM 1 BY 1 UNTIL I > 9 PERFORM VARYING J FROM 1 BY 1 UNTIL I > 9 PERFORM VARYING K FROM J + 1 BY 1 UNTIL K > 8 IF CELL(I J) = CELL(I K) DISPLAY “BAD ROW” MOVE 10 TO K MOVE 10 TO J MOVE 10 TO I END-IF END-PERFORM END-PERFORM END-PERFORM 17. Write a loop that would read all the records in INPUT-FILE defined in #8. READ INPUT FILE AT END MOVE ‘YES’ TO EOF END-READ PERFORM UNTIL EOF … READ INPUT FILE AT END MOVE ‘YES’ TO EOF END-READ END-PERFORM 18. How does Cobol determine if a file is used for input or output? Determined by the open statement OPEN INPUT OPEN OUTPUT OPEN EXTEND 19. Consider the field below: 15 FIELDA PIC S9(5). Show how give the field a second name and a PIC with all X’s. 15 FIELDA PIC S9(5). 15 FIELDA-1 REDEFINES FIELDA PIC X(5). 20. To assign FIELDB to FIELDA, what would you code if they are both PIC X(10) fields? What if they were numeric fields? MOVE FIELDB TO FIELDA Numeric: MOVE FIELDB TO FIELDA OR COMPUTE FIELDA = FIELDB 21. Describe two ways to set a numeric field to 0 at runtime. LET X BE THE FIELD 1) MOVE 0 TO X 2) INITIALIZE X 22. Describe two ways to set an alphanumeric field to spaces at run-time. 1) MOVE SPACES TO X 2) INITIALIZE X 23. Define a table of 10 integers in memory. Write the code to compute the average of the integers. 01 MYTABLE. 10 THE-DATA PIC X’12345678901234567890’. 10 X REDEFINES THE-DATA PIC S99 OCCURS 10 TIMES. 01 AVG PIC S999V99 PACKED-DECIMAL. 01 TOTAL PIC S99999V99. COMPUTE AVG = FUNCTION AVERAGE(X(ALL)) or MOVE 0 TO TOTAL PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10 ADD X(I) TO TOTAL END-PERFORM COMPUTE TOTAL = TOTAL / 10 24. Consider the following fields: 15 A PIC S9(5)V9(4) PACKED-DECIMAL. 15 B PIC S9(5)V9(4) PACKED-DECIMAL. 15 C PIC S9(5)V9(4) PACKED-DECIMAL. 15 D PIC S9(5)V9(4) PACKED-DECIMAL. 15 ANS PIC S9(5)V9(4) PACKED-DECIMAL. Show how to compute –b + √(b2 – 4ac) 2a Store the answer in ANS. COMPUTE ANS = (- b + FUNCTION SQRT ((b * b) – (4 * A * C))) / ( 2 * A) 25. Consider the following fields: 15 A PIC S9(5) PACKED-DECIMAL. 15 B PIC S9(5) PACKED-DECIMAL. 15 REM PIC S9(5) PACKED-DECIMAL. 15 X PIC S9(5) PACKED-DECIMAL. Show how to compute the remainder of A/B. in REM. DIVIDE A BY B GIVING X REMAINDER REM Put the answer 26. Write the code that would display the smallest of three integer fields X,Y, and Z. MOVE X TO SMALLEST IF (Y < SMALLEST) MOVE Y TO SMALLEST END-IF IF (Z < SMALLEST) MOVE Z TO SMALLEST END-IF DISPLAY SMALLEST 27. Write an EVALUATE that would AGE and display “Baby” if AGE <= AGE <= 17, and “Adult” if AGE >= EVALUATE TRUE WHEN AGE < 3 DISPLAY “BABY” WHEN AGE < 17 DISPLAY “CHILD” WHEN AGE IS POSITIVE DISPLAY END-EVALUATE examine integer field 3, “Child” if the 4 <= 18. “ADULT” 28. Write the code that would execute paragraph 100-PARA 10 times. PERFORM 100-PAR 10 TIMES 29. Write the code that would repeatedly execute paragraph 100-PARA until integer field X > 100. PERFORM 100-PARA UNTIL X > 100 30. Use a loop control variable I to execute paragraph 100-PARA 100 times. PERFORM 100-PARA VARYING I FROM 1 BY 1 UNTIL I > 100 31. Write the code that would call program SUBPROGA. MOVE “SUBPROGA” TO PROGNAME CALL PROGNAME or CALL “SUBPROGA” 32. Assume you have defined variables X, Y, and Z with PIC S9(5). Show the relevant code needed to call program SUBPROGA passing X,Y and Z. CALL “SUBPROGA” USING BY CONTENT X Y Z OR CALL “SUBPROGA” USING X Y Z 33. Show the relevant code in SUBPROGA needed to accept the variables passed in #32. LINKAGE SECTION. 01 A PIC S9(5). 01 B PIC S9(5). 01 C PIC S9(5). PROCEDURE DIVISION USING A B C. 34. What is the default parameter passing method in Cobol? BY REFERENCE 35. What is the effect of passing a parameter BY CONTENT? A COPY OF THE PARAMETER IS MADE AND THE COPY IS PASSED BY REFERENCE 36. Write an in-line PERFORM that displays 1,2,3,…10 on separate lines. PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10 DISPLAY I END-PERFORM 37. Describe how to search a table sequentially. Use a Search command. Set the index to an initial value. Issue the search on the field that occurs. 38. Describe how to search a table with a binary search. The data has to be sorted. Issue a Search All. 39. Assume the following fields: 15 X PIC X(10) VALUE “ABC”. 15 Y PIC X(10) VALUE “CDE”. 15 Z PIC X(10) VALUE “FGH”. 15 ANS PIC X(30). Show how to concatenate fields X, Y, and Z into ANS. STRING X DELIMITED BY SIZE Y DELIMITED BY SIZE Z DELIMITED BY SIZE INTO ANS Show how to concatenate fields X, Y, and Z into ANS removing the spaces inside each field. STRING X DELIMITED BY “ “ Y DELIMITED BY “ “ Z DELIMITED BY “ “ INTO ANS 40. Write the code that will display field X if it contains numeric data. IF X IS NUMERIC DISPLAY X END-IF 41. Consider the field below: 15 X PIC X(10) VALUE ‘ABCDEFGHIJ’. Show how to use reference modification to print the following: AB BC CD … IJ PEFORM VARYING I FROM 1 BY 1 UNTIL I > 9 DISPLAY X(I : 2) END-IF 42. Show how to define a variable length table. How much space is allocated to your table? When should you use a variable length table? 01 MY-TABLE. 10 X PIC X(3) OCCURS 1 TO 100 TIMES DEPENDING ON J.