Tuesday, May 19, 2009

PROGRAM IN COBOL THAT SORTS THE VALUES IN A VECTOR (SINGLE DIMENSIONAL ARRAY).

WRITE A PROGRAM IN COBOL THAT SORTS THE VALUES IN A VECTOR (SINGLE DIMENSIONAL ARRAY). THE PROGRAM SHOULD ALSO BE ABLE TO SEARCH A GIVEN VALUE IN THE VECTOR.

ANSWER:

SOLUTION 1 of question 2:

IDENTIFICATION DIVISION
PROGRAM-ID ARRAY
ENVIRONMENT DIVISION
INPUT-OUTPUT SECTION

FILE CONTROL
SELECT ARRAY ASSIGN TO DISK
ORGANISATION IS LINE SEQUENTIAL

DATA DIVISION
FILE SECTION
FD ARRAY
VALUE OF FILE-ID “ARRAY”

01 ARRAY
02 NUM PIC 9(9)
WORKING STORAGE SECTION

01 VAR
02 WCHECK PIC X
02 SEARCH NAME PIC 9(9)
02 CHECK PIC 9
02 WNUM PIC 9(9)
PROCEDURE DIVISION
OPEN OUTPUT ARRAY
MOVE 0 TO CHECK
READ DATA
DISPLAY “ENTER NUM”
ACCEPT WNUM
MOVE WNUM TO NUM
WRITE ARRAY
DISPLAY “ANY MORE”
ACCEPT WCHECK
IF WCHECK = ‘Y’ THEN
GOTO READ-DATA
CLOSE ARRAY
SEARCH-PARA
DISPLAY “ENTER NO TO SEARCH”
ACCEPT SEARCHNUM
OPEN INPUT ARRAY
READ-ARR
READ ARRAY AT END GO TO SORT-DATA
IF NUM = SEARCHNUM THEN
MOVE 1 TO CHECK
GOTO SEARCH PARA
ELSE
GOTO READ-ARR
SORT-PARA
IF CHECK = 1 THEN
DISPLAY “ FOUND”
ELSE
DISPLAY “ NOT FOUND”
SORT ARRAY ON ASCENDING NUM

READ-SORT
READ ARRAY AT END GOTO TERMINATE
DISPLAY NUM
GOTO READ-SORT
TERMINATE
CLOSE ARRAY
STOP RUN




Another solution of above question

IDENTIFICATION DIVISION.
PROGRAM-ID. SORTING.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 A PIC 99 OCCURS 50 TIMES.
77 I PIC 99.
77 J PIC 99.
77 TEMP PIC 99.
77 TN PIC 99.
PROCEDURE DIVISION.
PARA-1.
DISPLAY "ENTER HOW MANY NUMBERS".
ACCEPT TN.
DISPLAY "ENTER THE ELEMENTS".
PERFORM PARA-2 VARYING I FROM 1 BY 1 UNTIL I>TN.
PERFORM PARA-3 VARYING I FROM 1 BY 1 UNTIL I=TN.
DISPLAY "THE SORTED LIST IS AS ".
PERFORM PARA-5 VARYING I FROM 1 BY 1 UNTIL I>TN.
STOP RUN.
PARA-2.
ACCEPT A(I).
PARA-3.
PERFORM PARA-4 VARYING J FROM I BY 1 UNTIL J > TN.
PARA-4.
IF A(I)>A(J) THEN
MOVE A(J) TO TEMP
MOVE A(I) TO A(J)
MOVE TEMP TO A(I).
ENDIF.
PARA-5.
DISPLAY A(I).

No comments:

Post a Comment