Vous êtes sur la page 1sur 9

SOLUTIONS TO REVIEW QUESTIONS I. 1. 2. 3. True-False Questions F T F The collating sequences are different.

For example, the relative positions of letters and digits are different. An OUTPUT PROCEDURE may be used along with the USING clause.

4. 5. 6.

T F F There is no limit to the number of sort fields that may be specified. An alternative is to use either a utility or a database management systems sort program. A programmer may also write his or her own sort program. The sort field need not be numeric. While paragraph-names are most common, section names may be used. Any file described with an SD must be defined in a SELECT clause. While there are lower values in the EBCDIC collating sequence, blank has the lowest value of the printable characters. However, the SORT verb DOES distinguish between upper- and lower case letters.

7. 8. 9. 10.

F F F F

II. 1.

General Questions Store No 001 002 002 002 003 003 003 Dept No 01 01 02 02 01 02 02 Salesperson O'CONNOR GONZALES CHANG ADAMS FRANKLIN BROWN ANDREWS Amt of Sales 05899 12500 06275 18733 12358 05873 09277

2.

Store No 003 003 003 002 002 002 001

Dept No 02 02 01 02 02 01 01

Salesperson ANDREWS BROWN FRANKLIN ADAMS CHANG GONZALES O'CONNOR

Amt of Sales 09277 05873 12358 18733 06275 12500 05899

3. IDENTIFICATION DIVISION. PROGRAM-ID. CH14QST3. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. SELECT INPUT-FILE ASSIGN TO 'CH14QST3.IN' ORGANIZATION IS LINE SEQUENTIAL. SELECT SORT-FILE ASSIGN TO 'CH14QST3.SRT'. SELECT OUTPUT-FILE ASSIGN TO 'CH14QST3.OUT' ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD 01 SD 01 INPUT-FILE. INPUT-RECORD SORT-FILE. SORT-RECORD. 05 STORE-NO 05 DEPT-NO 05 SALESPERSON 05 AMT-OF-SALES OUTPUT-FILE. OUTPUT-RECORD PIC X(20).

PIC PIC PIC PIC

X(3). X(2). X(10). 9(5).

FD 01

PIC X(20). PIC X(3) PIC 9(3) VALUE 'YES'. VALUE 'NO '. VALUE ZERO.

WORKING-STORAGE SECTION. 01 ARE-THERE-MORE-RECORDS 88 NO-MORE-RECORDS 01 INPUT-RECORD-COUNTER

PROCEDURE DIVISION. 100-MAIN-MODULE. SORT SORT-FILE ASCENDING KEY DEPT-NO INPUT PROCEDURE IS 200-COUNT-INPUT-RECORDS GIVING OUTPUT-FILE STOP RUN. 200-COUNT-INPUT-RECORDS. OPEN INPUT INPUT-FILE PERFORM UNTIL NO-MORE-RECORDS READ INPUT-FILE AT END MOVE 'NO ' TO ARE-THERE-MORE-RECORDS NOT AT END ADD 1 TO INPUT-RECORD-COUNTER RELEASE SORT-RECORD FROM INPUT-RECORD END-READ END-PERFORM CLOSE INPUT-FILE DISPLAY 'THE INPUT FILE CONTAINS ' INPUT-RECORD-COUNTER ' RECORDS'. 4. IDENTIFICATION DIVISION. PROGRAM-ID. CH14QST4. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. SELECT INPUT-FILE ASSIGN TO 'CH14QST4.IN' ORGANIZATION IS LINE SEQUENTIAL. SELECT SORT-FILE ASSIGN TO 'CH14QST4.SRT'. SELECT OUTPUT-FILE ASSIGN TO 'CH14QST.OUT' ORGANIZATION IS LINE SEQUENTIAL.

DATA DIVISION. FILE SECTION. FD 01 SD 01 INPUT-FILE. INPUT-RECORD SORT-FILE. SORT-RECORD. 05 STORE-NO 05 DEPT-NO 05 SALESPERSON 05 AMT-OF-SALES OUTPUT-FILE. OUTPUT-RECORD PIC X(20).

PIC PIC PIC PIC

X(3). X(2). X(10). 9(5).

FD 01

PIC X(20). PIC X(3) VALUE 'YES'. VALUE 'NO '. PIC 9(7) VALUE ZERO. PIC $$,$$$,$$9.

WORKING-STORAGE SECTION. 01 ARE-THERE-MORE-RECORDS 88 NO-MORE-RECORDS 01 TOTAL-AMT-OF-SALES 01 TOTAL-AMT-OF-SALES-EDITED PROCEDURE DIVISION.

100-MAIN-MODULE. SORT SORT-FILE ASCENDING KEY DEPT-NO SALESPERSON USING INPUT-FILE OUTPUT PROCEDURE IS 200-ACCUMULATE-SALES STOP RUN. 200-ACCUMULATE-SALES. OPEN OUTPUT OUTPUT-FILE PERFORM UNTIL NO-MORE-RECORDS RETURN SORT-FILE AT END MOVE 'NO ' TO ARE-THERE-MORE-RECORDS NOT AT END ADD AMT-OF-SALES TO TOTAL-AMT-OF-SALES WRITE OUTPUT-RECORD FROM SORT-RECORD END-RETURN END-PERFORM MOVE TOTAL-AMT-OF-SALES TO TOTAL-AMT-OF-SALES-EDITED CLOSE OUTPUT-FILE DISPLAY 'TOTAL AMOUNT OF SALES = ' TOTAL-AMT-OF-SALES-EDITED.

5. IDENTIFICATION DIVISION. PROGRAM-ID. CH14QST5. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. SELECT INPUT-FILE ASSIGN TO 'CH14QST5.IN' ORGANIZATION IS LINE SEQUENTIAL. SELECT SORT-FILE ASSIGN TO 'CH14QST5.SRT'. DATA DIVISION. FILE SECTION. FD 01 SD 01 INPUT-FILE. INPUT-RECORD SORT-FILE. SORT-RECORD. 05 STORE-NO 05 DEPT-NO 05 SALESPERSON 05 AMT-OF-SALES PIC X(20).

PIC PIC PIC PIC

X(3). X(2). X(10). 9(5).

WORKING-STORAGE SECTION. 01 FLAGS. 05 ARE-THERE-MORE-RECORDS 88 NO-MORE-RECORDS 88 MORE-RECORDS 05 FIRST-RECORD-FLAG 88 FIRST-RECORD 01 CALCULATION-FIELDS. 05 DEPT-TOTAL-SALES 05 DEPT-AVERAGE-SALES 05 SALESPERSON-COUNTER 01 CONTROL-BREAK-HOLD-FIELDS. 05 STORE-NO-HOLD 05 DEPT-NO-HOLD

PIC X(3) PIC X(3)

VALUE VALUE VALUE VALUE VALUE

'YES'. 'NO '. 'YES'. 'YES'. 'YES'.

PIC 9(7) VALUE ZERO. PIC $$$,$$9.99. PIC 9(2) VALUE ZERO. PIC X(3). PIC X(2).

PROCEDURE DIVISION. 100-MAIN-MODULE. SORT SORT-FILE ASCENDING KEY STORE-NO DEPT-NO USING INPUT-FILE OUTPUT PROCEDURE IS 200-DISPLAY-DEPT-TOTALS STOP RUN. 200-DISPLAY-DEPT-TOTALS. PERFORM UNTIL NO-MORE-RECORDS RETURN SORT-FILE AT END MOVE 'NO ' TO ARE-THERE-MORE-RECORDS NOT AT END PERFORM 300-PROCESS-ONE-RECORD END-RETURN END-PERFORM PERFORM 400-DEPT-BREAK PERFORM 500-STORE-BREAK. 300-PROCESS-ONE-RECORD. EVALUATE TRUE WHEN FIRST-RECORD MOVE STORE-NO TO STORE-NO-HOLD MOVE DEPT-NO TO DEPT-NO-HOLD DISPLAY 'SALES AVERAGES FOR STORE ' STORE-NO-HOLD ':' MOVE 'NO' TO FIRST-RECORD-FLAG WHEN STORE-NO NOT = STORE-NO-HOLD PERFORM 400-DEPT-BREAK PERFORM 500-STORE-BREAK WHEN DEPT-NO NOT = DEPT-NO-HOLD PERFORM 400-DEPT-BREAK END-EVALUATE ADD AMT-OF-SALES TO DEPT-TOTAL-SALES ADD 1 TO SALESPERSON-COUNTER.

400-DEPT-BREAK. DIVIDE SALESPERSON-COUNTER INTO DEPT-TOTAL-SALES GIVING DEPT-AVERAGE-SALES ROUNDED DISPLAY ' DEPARTMENT ' DEPT-NO-HOLD ' = ' DEPT-AVERAGE-SALES MOVE DEPT-NO TO DEPT-NO-HOLD MOVE 0 TO DEPT-TOTAL-SALES SALESPERSON-COUNTER. 500-STORE-BREAK. IF MORE-RECORDS MOVE STORE-NO TO STORE-NO-HOLD DISPLAY 'SALES AVERAGES FOR STORE ' STORE-NO-HOLD ':' END-IF.

III. 1.

Validating Data Routines should be added to check that TERR, AREAX, and DEPT are valid numeric fields. A control listing should be produced that includes: a. the total number of records processed from the IN-FILE file. b. the number of records containing errors from the IN-FILE file. c. a detailed description of each error found in the IN-FILE file. Internet/Critical Thinking Questions

2.

IV. 1.

Search Engine: yahoo.com Keywords: COBOL +"external sort" URL: http://www.nd.edu/~ndora/standard/cobol.htm Contents: Brief description of programming standards. Includes a recommendation Regarding sorts. Search Engine: yahoo.com Keywords: COBOL +external sort URL: http://cayfer.bilkent.edu.tr/~cayfer/ctp108/sort.htm Contents: Discussion and examples of sorting files in COBOL (RM-Cobol) Search Engine: altavista.com Keywords: external sort URL: http://www.nist.gov/dads/ Contents: Dictionary of Algorithms and Data Structures - Look up "sort" Search Engine: altavista.com Keywords: external sort URL: http://csc208.csudh.edu/makinde/csc353/ch6.html Contents: Chapter 6. External Sort/Merge Algorithms. Discussion of external sort/merge algorithms. 2. Since sorting creates great demands upon system resources, it is advisable to minimize the size of the file to be sorted when possible. The INPUT PROCEDURE allows the program to reduce the size of the input file prior to sorting by eliminating records and/or fields that are not needed in the final results. When it is possible to substantially decrease the size of the input file prior to sorting, then using an INPUT PROCEDURE to accomplish this is worthwhile.

SOLUTIONS TO DEBUGGING EXERCISES 1. The SORT-FILE is opened automatically and thus should not be included in the OPEN statement. Records must be RETURNed from the SORT-FILE, not the SORT-REC. The RELEASE statement is only permitted within an INPUT PROCEDURE. It should be deleted from this program. A STOP RUN is required at the end of 100-MAIN-MODULE. Without it, after 100MAIN-MODULE is executed, control falls into the module 200-ADD-TAX SECTION. There the RETURN statement will cause a program interrupt because the SORT-FILE is no longer open.

2. 3. 4.

Vous aimerez peut-être aussi