COBOL STDIN에서 3 줄의 입력을 읽고 3 가지 변수에 저장하려고합니다. 필자는 이러한 입력에 COMPUTE를 사용하여 계산을 수행 할 계획입니다.COBOL : SYSIN에서 INPUT을 읽고 변수에 저장
나는 TutorialsPoint (COBOL을 코딩하는 법을 가르쳐왔다.)를 보았지만 아무 소용이 없다.
IDENTIFICATION DIVISION.
PROGRAM-ID. SOLUTION.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SYSIN ASSIGN TO KEYBOARD ORGANIZATION LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD SYSIN.
01 INPUT-LINE PIC X(255).
88 EOF VALUE HIGH-VALUES.
WORKING-STORAGE SECTION.
01 MEAL-COST PIC 9(2)V9(2).
01 TIP-PERCENT PIC 9(3).
01 TAX-PERCENT PIC 9(3).
PROCEDURE DIVISION.
OPEN INPUT SYSIN
READ SYSIN
AT END SET EOF TO TRUE
END-READ
DISPLAY MEAL-COST
DISPLAY TIP-PERCENT
DISPLAY TAX-PERCENT
CLOSE SYSIN.
STOP RUN.
의 입력 양식이 될 것입니다 :
12.00
5
20
그리고 결과는 정수 아래에서
내가 지금까지 가지고있는 코드입니다 (다른 프로그래밍 언어의 의미에서).변수를 저장하는 유일한 방법은 각 순차 반복마다 카운터를 만들어 각 변수 (식사 비용, 팁 - 퍼센트, 세금 - 백분율)에 저장하는 것입니다. 그러나 이것을하기위한 더 쉬운 방법이있을 것입니다.
이것은 내가 한 일이지만 아직 입력을 가져 와서 올바른 변수에 저장하는 더 좋은 방법이라고 생각합니다. 누구든지 어떤 제안이 있다면, 그것은 많이 감사 할 것입니다.
IDENTIFICATION DIVISION.
PROGRAM-ID. SOLUTION.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SYSIN ASSIGN TO KEYBOARD ORGANIZATION LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD SYSIN.
01 INPUT-LINE PIC X(255).
88 EOF VALUE HIGH-VALUES.
WORKING-STORAGE SECTION.
01 MEAL-COST PIC 9(3)V9(2).
01 TIP-PERCENT PIC 9(3)V9(2).
01 TAX-PERCENT PIC 9(3)V9(2).
01 TIP PIC 9(3)V9(2).
01 TAX PIC 9(3)V9(2).
01 TOTAL-COST PIC 9(3)V9(2).
01 ROUNDED-TOTAL-COST PIC 9(3).
01 FORMATTED-RESULT PIC Z(3).
PROCEDURE DIVISION.
OPEN INPUT SYSIN
READ SYSIN
AT END SET EOF TO TRUE
NOT AT END
MOVE INPUT-LINE TO MEAL-COST
READ SYSIN
AT END SET EOF TO TRUE
NOT AT END
MOVE INPUT-LINE TO TIP-PERCENT
READ SYSIN
AT END SET EOF TO TRUE
NOT AT END
MOVE INPUT-LINE TO TAX-PERCENT
END-READ.
COMPUTE TIP= (MEAL-COST * TIP-PERCENT/100).
COMPUTE TAX= (MEAL-COST * TAX-PERCENT/100).
COMPUTE TOTAL-COST= MEAL-COST + TIP + TAX.
COMPUTE ROUNDED-TOTAL-COST ROUNDED = TOTAL-COST.
MOVE ROUNDED-TOTAL-COST TO FORMATTED-RESULT.
DISPLAY "The total meal cost is" FORMATTED-RESULT " dollars.".
CLOSE SYSIN.
STOP RUN.
나뿐만 아니라 수락 사용하려고했습니다 '수락 세금 PERCENT' 'DISPLAY 식사 - COST' '디스플레이 TIP-PERCENT' '디스플레이 세금 PERCENT' 'CLOSE SYSIN.' – qxzsilver
동의 사용할 때는 OPEN을 사용하지 마십시오. ACCEPT 데이터 이름. 컴파일러에 따라 입력이 변환되거나 변환되지 않습니다. 그래서, 어떤 컴파일러/OS를 사용하고 있습니까? –
[내장 함수] (http://stackoverflow.com/documentation/cobol/7580/intrinsic-functions), 특히'FUNCTION NUMVAL'도 확인하고 싶을 것입니다. –