Showing posts with label single dimensional array. Show all posts
Showing posts with label single dimensional array. Show all posts

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).