이 중 많은 부분이 환경에 따라 다르다는 점에 유의하십시오. 일부 COBOL 컴파일러는 다르게 동작하며 플랫폼 간에는 차이가 있습니다. (HP3000 COBOL에서 Linux NetCOBOL 로의이 포팅 코드로 많은 재미를 보았습니다.)하지만 일반적으로 말하자면 ...
1) 컴파일러가 사물을 다르게 초기화 할 수 있기 때문에이 책은 대답을 "알 수 없음"이라고 말할 수 있습니다. INITIALIZE PAY-TABLE
0으로 PAY-VALUE 각 인스턴스를 설정할 수 있거나 PAY-TABLE 스페이스에 (25 PAY-VALUE들로 구성되는 125 바이트 문자 영역)을 설정할 수있다. 그러나 (이전의 경우처럼) 그것이 무엇이되어야 하는가는 0입니다.
2) 올바르지 않습니다. 다시 말하지만, (# 1에서 언급 한 이유 때문에) 분산의 가능성이 있지만 0이어야합니다. PAY-VALUE (SUB의 PERFORM = 9 이전)에는 아무 것도 발생하지 않았으므로 여전히 초기화 된 값이됩니다.
3) # 2에서와 같이 동일한주의 사항으로 대답은 0이어야합니다. LOAD-TABLE
단락은 SUB이 10보다 커질 때까지만 수행되므로 PAY-VALUE (25)은 초기화 된 값에서 절대로 변경되지 않습니다.
주 또한 프로그램이 잘못 작성된 것을 - STOP RUN.
없이 MAINLINE-ROUTINE
의 끝에서, 프로그램은 계속하고 DISPLAY-ROUTINE
및 LOAD-TABLE
문단 마지막으로 한 번 실행됩니다.
도 오타의 수, PAY-VALUE의 사용 (NO S) (AN S)와 PAY - 값의 특히 정의가있다.여기
은 샘플 실행이 (내가
LOAD-TABLE
에
MOVE
문 전후에 디스플레이를 추가하고
PERFORM LOAD-TABLE
문이 완료된 후. 별도의 표시를합니다.)입니다
Before move -- Sub: 01 PV: 00000
After move -- PV: 00100
Before move -- Sub: 02 PV: 00000
After move -- PV: 00200
Before move -- Sub: 03 PV: 00000
After move -- PV: 00300
Before move -- Sub: 04 PV: 00000
After move -- PV: 00400
Before move -- Sub: 05 PV: 00000
After move -- PV: 00500
Before move -- Sub: 06 PV: 00000
After move -- PV: 00600
Before move -- Sub: 07 PV: 00000
After move -- PV: 00700
Before move -- Sub: 08 PV: 00000
After move -- PV: 00800
Before move -- Sub: 09 PV: 00000
After move -- PV: 00900
Before move -- Sub: 10 PV: 00000
After move -- PV: 01000
Completed Perform of LOAD-TABLE.
PAY-VALUE(25): 00000
00000
Before move -- Sub: 11 PV: 00000
After move -- PV: 01100
베어 마음에 그 대한 지불 값이이면 값이 암시적인 소수점이 있고 오른쪽에 두 자리가 있음을 의미하는 9 (03) V99로 정의되므로 값은 수백 (예 : 001 대신 1)으로 표시됩니다.
희망이 도움이됩니다.
코드 누락이 있어야합니다. 1) 누락 된 헤더와 2 개의 누락 기간 때문에 샘플을 컴파일하지 않아야합니다. 이 말을 떠나서 나는 모든 * 주어진 답이 틀렸다는 것을 여전히 말할 것입니다. –
@SimonSobisch, 답변 해 주셔서 감사합니다! 이 대답은 나에게 주어지며 코드의이 부분은 나에게 주어진다. – Abc
@SimonSobisch, 첫 번째 질문에는 변형이있다 : 5; 0; 10; 4. 2nd : 12; 0; 7; 없음. 3시 25 분; 0; 10; 없음. 이 중 일부가 정확하다고 생각하십니까? – Abc