- 締切済み
COBOLプログラム2
このプログラムは売り上げファイルを読み、最初に見出し印刷し、1レコード1行で印刷し、最後に数量、金額の合計を印刷するプログラムです。 どこが間違ってるでしょうか。教えてください。 PROCEDURE__DIVISION. HAJIME. ___OPEN INPUT IN-F OUTPUT OU-F . ___MOVE SHOHIN-CODE TO SHOHIN. ___MOVE SURYOU TO SURYOU. ___MOVE DENPYO-NO TO DENPYO-NO. ___MOVE KINGAKU-W TO KINGAKU. ___WRITE OU-R FROM MIDASHI. NX.__READ IN-F AT END GO TO OWARI. ___MOVE SPACE TO OU-R. ___MOVE CORRESPONDING IN-R TO MEISAI. ___COMPUTER KINGAKU-L=SURYOU OF IN-R*TANKA OF IN-R. ___MOVE KINGAKU-L TO KINGAKU. ___WRITE OU-R FROM MEISAI. ___COMPUTER SURYOU-W=SURYOU-W+SURYOU. ___COMPUTER KINGAKU-W=KINGAKU-W+KINGAKU. ___GO TO NX. OWARI. ___MOVE SURYOU-W TO G-SURYOU. ___MOVE KINGAKU-W TO G-KINGAKU. ___WRITE OU-R FROM GOKEI. ___CLOSE IN-F OU-F. ___STOP RUN.
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- rvr3958
- ベストアンサー率33% (145/428)
1.下の方もおっしゃるようにCOMPUTER命令ではなくCOMPUTE命令の誤りですね。 2.COMPUTER SURYOU-W=SURYOU-W+SURYOU.は「COMPUTE SURYOU-W=SURYOU-W+SURYOU OF IN-R」でしょうか? 「SURYOU」はOPEN後の見出しに使われている項目名ですよね? 3.「MOVE SURYOU TO SURYOU.」「MOVE DENPYO-NO TO DENPYO-NO.」何故転送元と転送先が同じ名前? とにかく項目名の説明がないとなかなか理解し辛いものがあります。項目名はプログラムを作る上での前提条件です。ここの名前をもう少し統一されるとよろしいかと思います。
>COMPUTER COMPUTEでは無いのでしょうか? COMPUTERでも使えるコボルもあるのかな? >MOVE MOVE文のところで移送している相手の項目のレベルがちょっとわかり難い部分があるのですが・・・。 ちなみに各セクションを、PROCEDURE__DIVISIONの中にPERFORM文によって呼び出してやったほうが、良いですよ。 PROCEDURE__DIVISIONはC言語のMAIN関数のようなものだと思えれば、今後のためになると思います。 PROCEDURE__DIVISIONの中で、各セクションの中にフラグをたてて終了条件をつくることや、その他処理の振分けなどが出来ますし。