2012-05-18 5 views
2

COBOL에서 작업하는 방법이 궁금합니다. if 문을 사용하여 데이터 파일에서 일치하는 데이터 레코드를 출력하는 프로그램을 작성하려고합니다. 그러나 나는 아직 이렇게하지 않았다. 내가해야 할 일이 다른 데이터 유형에 대한 코드를 만드는 것임을 알았다.; "if"문에 사용하기 위해

blue = 1
brown = 2.

그래서 이렇게 시도했지만 작동하지 않습니다. 이것은 내가 마스터 레코드에 선언 :

01 COLOR-IN PIC (9) 
    05 BLUE   VALUE 1. 
    05 BROWN  VALUE 2. 

그럼 난 그냥 쓸 수 생각 if 문 그래서

IF COLOR-IN = BLUE 
    PERFORM 200-OUTPUT. 

같은 나는 색상이 숫자와 동일하게 어떻게되고 요구하고있는 무슨 또는 알파벳 코드. 어떤 종류의 진술서를 써야합니까?

나는 그것을 알아 냈다. 88 문장을 사용했습니다. 이처럼

88  MALE  VALUE 'M'. 

하지만 다른 문제가 있습니다. 결과는 'if'문구 기준을 만족하는 레코드를 나열하지만 프로그램이 실행될 때 머리카락과 눈 색깔이 1 또는 2 대신 인쇄되도록 프로그램에서 실제 머리카락과 눈색을 코딩해야합니다. 누구든지 저에게 어떻게 할 수 있는지에 대한 예나 힌트를 제공합니까?

+0

코드를 지금과 같이 표시하십시오. – cschneid

+0

제목 앞에 "COBOL :"등을 붙이지 마십시오. 그것이 바로 태그가있는 것입니다. –

답변

4

+1 약 88 초를 학습합니다. 그들은 매우 유용합니다.

값에 해당하는 표 (배열)가 원하는 것입니다. 88 MALE VALUE 'M'의 경우와 같이 알파벳 코드를 사용하는 경우 테이블에 값과 라벨 항목이 있습니다.

01 INPUT-VALUE     PIC X(1). 
    88 MALE     VALUE "M". 
    88 FEMALE     VALUE "F". 

01 LABELS-AND-VALUES-AREA. 
    05 LABELS-AND-VALUES. 
     07 ONE-LABEL-AND-VALUE OCCURS 2. 
      09 ONE-LABEL  PIC X(6). 
      09 ONE-VALUE  PIC X(1). 
    05  FILLER REDEFINES LABELS-AND-VALUES 
           VALUE "MALE MFEMALEF". 
01 I       PIC S9(4) COMP. 
01 DISPLAY-LABEL    PIC x(6). 

    MOVE "?" TO DISPLAY-LABEL 
    PERFORM VARYING I FROM 1 BY 1 UNTIL I > 2 
     IF INPUT-VALUE = ONE-VALUE(I) 
      MOVE ONE-LABEL(I) TO DISPLAY-LABEL 
     END-IF 
    END-PERFORM 

입력 값에 숫자를 사용하는 경우 조회를 건너 뛰고 원하는 레이블로 바로 이동할 수 있습니다.

01 INPUT-VALUE     PIC 9(1). 
    88 MALE     VALUE "1". 
    88 FEMALE     VALUE "2". 
    88 VALID-INPUT    VALUE "1", "2". 

01 LABELS-AND-VALUES-AREA. 
    05 LABELS-AND-VALUES. 
     07 ONE-LABEL-AND-VALUE OCCURS 2. 
      09 ONE-LABEL  PIC X(6). 
    05  FILLER REDEFINES LABELS-AND-VALUES 
           VALUE "MALE FEMALE". 
01 DISPLAY-LABEL    PIC x(6). 

    IF VALID-INPUT 
     MOVE ONE-LABEL(INPUT-VALUE) TO DISPLAY-LABEL 
    ELSE 
     MOVE "?" TO DISPLAY-LABEL 
    END-IF 

이 경우 누락되거나 알 수없는 데이터에 대한 코드를 추가 할 수 있습니다.

업데이트 I 누락/알 수없는 데이터를 처리 할 수있는 몇 가지 코드를 추가했다.

+0

그것은 엄청난 도움이되었습니다. 고마워요 :)))) –

+0

왜 그냥 평가하지 않습니까? –

관련 문제