Cobol 문법 (9) : Table (1)

yoneeki·2023년 8월 24일

cobolGrmr

목록 보기
9/11

Table

설명

코볼에서 "테이블"이라는 용어는 데이터를 구조화하고 관리하기 위한 중요한 개념 중 하나입니다. 코볼에서의 테이블은 배열 또는 리스트와 비슷한 역할을 하며, 데이터를 조직적으로 저장하고 접근할 수 있도록 도와줍니다.

코볼에서의 테이블에 대한 주요 특징과 개념은 다음과 같습니다:

  • 구조화된 데이터 저장: 테이블은 여러 데이터 항목을 구조화하여 저장하는 데 사용됩니다. 각 항목은 하나 이상의 열(column)로 구성되며, 이러한 열은 서로 다른 유형의 데이터를 저장할 수 있습니다.
  • 인덱스와 접근: 테이블 내의 각 항목은 인덱스를 가집니다. 이 인덱스를 사용하여 특정 항목에 빠르게 접근할 수 있습니다. 이러한 인덱스는 항목의 위치를 나타내며, 일반적으로 숫자로 표현됩니다.
  • 테이블 크기 동적 조정: 코볼에서는 테이블의 크기를 동적으로 조정할 수 있습니다. 이것은 데이터의 추가, 삭제 또는 변경에 유용합니다.
  • 반복과 검색: 테이블은 반복문을 사용하여 모든 항목을 순회하거나, 특정 조건을 충족하는 항목을 검색하는 데 사용됩니다. 이는 데이터 처리 작업에 필수적입니다.
  • 다차원 테이블: 코볼에서는 다차원 테이블도 지원됩니다. 이것은 행과 열이 여러 개인 테이블을 의미하며, 복잡한 데이터 구조를 처리하는 데 도움이 됩니다.

코드

IDENTIFICATION DIVISION.
PROGRAM-ID. TAB1.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 WEEK-TABLE.
	02 DAY-NAME PIC X(10) OCCURS 7 TIMES.
PROCEDURE DIVISION.
	MOVE 'MONDAY' TO DAY-NAME(1).
    MOVE 'WEDNESDAY' TO DAY-NAME(3).
    DISPLAY DAY-NAME(1) DAY-NAME(3).
    DISPLAY DAY-NAME(6).
    STOP RUN.

[결과]

MONDAY    WEDNESDAY 
           *> NULL

create a MULTI LEVEL TABLE

IDENTIFICATION DIVISION.
PROGRAM-ID. TAB1.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.

01 STUDENT-TABLE.
	05 STUDENTS PIC X(10) OCCURS 30 TIMES.
    	10 STUDENT-NAME PIC X(15).
        19 SUBJECTS 	PIC 9(3) OCCURS 3 TIMES.


PROCEDURE DIVISION.
	MOVE 'STEVE     35 57 83' TO STUDENT-TABLE.
    DISPLAY STUDENTS(1).
    DISPLAY SUBJECTS(1 2).
	STOP RUN.

search a TABLE using PERFORM

IDENTIFICATION DIVISION.
PROGRAM-ID. TAB1.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.

01 WEEK-TABLE.
	05 DAY-NAME PIC X(10) OCCURS 7 TIMES.
01 I PIC 9(2) VALUE ZEROES.
01 TO-BE-FOUND PIC X(10) VALUE 'FRIDAY'.

PROCEDURE DIVISION.
	
    MOVE 'MONDAY' TO DAY-NAME(1).
    MOVE 'TUESDAY' TO DAY-NAME(2).
    MOVE 'WEDNESDAY' TO DAY-NAME(3).
    MOVE 'THURSDAY' TO DAY-NAME(4).
    MOVE 'FRIDAY' TO DAY-NAME(5).
    MOVE 'SUNDAY' TO DAY-NAME(6).
    
    PERFORM VARYING (I) FROM 1 BY 1 UNTIL I > 7
    	DISPLAY DAY-NAME(I)
    END-PERFORM.
    
    PERFORM VARYING I FROM 1 BY 1 UNTIL I > 7
    	IF DAY-NAME(I) = TO-BE-FOUND
        	DISPLAY DAY-NAME(I)
        END-IF
    END-PERFORM.
    
	STOP RUN.

[결과]

MONDAY    
TUESDAY   
WEDNESDAY 
THURSDAY  
FRIDAY    
SUNDAY    
          
FRIDAY    
profile
Working Abroad ...

0개의 댓글