• 締切済み
  • 暇なときにでも

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
  • 閲覧数178
  • ありがとう数0

みんなの回答

  • 回答No.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.」何故転送元と転送先が同じ名前? とにかく項目名の説明がないとなかなか理解し辛いものがあります。項目名はプログラムを作る上での前提条件です。ここの名前をもう少し統一されるとよろしいかと思います。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • COBOLのプログラム

    IDENTIFICATION DIVISION. PROGRAM-ID. KADAI1. AUTHOR. KYU99 ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. WIN-PC. OBJECT-COMPUTER. MSR-3. INPUT-OUTPUT SECTION. FILE-CONTROL. ====SELECT IN-F ASSIGN TO "DEMO.TXT". ====SELECT OU-F ASSIGN TO "MEISAI.TXT". DATA DIVISION. FILE SECTION. FD ( 1 ) BLOCK 10 RECORDS ====LABEL RECORD STANDARD ====DATA RECORD IN-R. 01==IN-R PICTURE X(122). FD==OU-F LABEL RECORD OMITTED ====DATA RECORD OU-R. 01 ( 2 ) PICTURE X(122). WORKING-STORAGE SECTION. 01 KAIGA PICTURE X(122). PROCEDURE DIVISION. ====OPEN INPUT IN-F OUTPUT ( 3 ). ( 4 ). READ IN-F AT END GO TO ( 5 ). ====MOVE SPACE TO OU-R. ====MOVE IN-R TO KAIGA. ====WRITE ( 6 ) FROM KAIGA AFTER O. ====GO TO ( 7 ). OWARI. CLOSE ( 8 ) OU-F. ====STOP RUN. これは、学校の課題です。さっぱりわからないのでここで質問しました。 括弧にはいるものを教えてください。ヒントだけでもいいのでよろしくお願いします。=は無視してください。

  • cobolプログラムをCSV出力しても空白に...

    2度目の質問です。 宜しくお願いします。 COBOLを勉強し始めて間もないのですが、プログラムを何とか参考書を見ながら書いており、 エラーが出なくなったのですが、CSVファイルで出力しても空白になってしまい、原因がわからず困惑しております。 以下、プログラムを記載します。 何が原因がわかる方おりましたらアドバイスをいただけると幸いです。 IDENTIFICATION DIVISION. PROGRAM-ID. REI-01. ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INFILE ASSIGN TO "C:\COBOL\kamokuUT2.txt" ORGANIZATION LINE SEQUENTIAL. SELECT OUTFILE ASSIGN TO "C:\COBOL\UT2.csv" ORGANIZATION LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD INFILE. 01 INREC. 02 I-NUMBER PIC 9(2). 02 I-NAME PIC X(20). 02 I-KAMOKU-SYURUI PIC 9(3). 02 I-KAMOKU-TEN PIC X(3). FD OUTFILE. 01 OUTREC PIC X(32). 01 W-MIDASHI. 02 W-ID PIC X(8) VALUE "社員番号". 02 W-COMMA PIC X(1) VALUE ",". 02 W-NAME PIC X(4) VALUE "名前". 02 W-COMMA PIC X(1) VALUE ",". 02 W-KAMOKU PIC X(4) VALUE "科目". 02 W-COMMA PIC X(1) VALUE ",". 02 W-TEN PIC X(4) VALUE "点数". 02 W-COMMA PIC X(1) VALUE ",". 01 W-MEISAI. 02 O-NUMBER PIC 9(2). 02 O-COMMA PIC X(1) VALUE ",". 02 O-NAME PIC X(20). 02 O-COMMA PIC X(1) VALUE ",". 02 O-KAMOKU-SYURUI PIC 9(3). 02 O-COMMA PIC X(1) VALUE ",". 02 O-KAMOKU-TEN PIC X(3). 02 O-COMMA PIC X(1) VALUE ",". WORKING-STORAGE SECTION. 77 W-FLAG PIC X(1). PROCEDURE DIVISION. PERFORM MAE-SHORI THRU MAE-SHORI-EXIT PERFORM SHU-SHORI THRU SHU-SHORI-EXIT UNTIL W-FLAG = "1" PERFORM ATO-SHORI THRU ATO-SHORI-EXIT STOP RUN. MAE-SHORI. OPEN INPUT INFILE OUTPUT OUTFILE MOVE "0" TO W-FLAG READ INFILE AT END MOVE "1" TO W-FLAG END-READ. MAE-SHORI-EXIT. EXIT. SHU-SHORI. WRITE OUTREC FROM W-MIDASHI. IF I-KAMOKU-TEN >= 70 THEN MOVE I-NUMBER TO O-NUMBER MOVE I-NAME TO O-NAME MOVE I-KAMOKU-SYURUI TO O-KAMOKU-SYURUI MOVE I-KAMOKU-TEN TO O-KAMOKU-TEN WRITE OUTREC FROM W-MEISAI ELSE CONTINUE END-IF. READ INFILE AT END MOVE "1" TO W-FLAG END-READ. SHU-SHORI-EXIT. EXIT. ATO-SHORI. CLOSE INFILE OUTFILE. ATO-SHORI-EXIT. EXIT. 【出力ファイル.csv】の完成系ですが、 ________________ 社員番号 名前 科目 点数 01 ○○ 010 073   ・     ・   ・    ・   ・     ・   ・    ・ ________________ 【入力ファイル.txt】はこのような形です。 ________________ 01あああああいいいいい010070 ________________ ※入力ファイルの得点が70点以上のファイルのみ出力したいのですが・・・ 長文になってしまいましたが宜しくお願いします。

  • 何度もすみません(COBOLプログラミング)

    何度もすみません。 下記のようにプログラムを変更して実行しました。 IDENTIFICATION DIVISION. PROGRAM-ID. REI-01. ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INFILE ASSIGN TO "C:\COBOL\kamokuUT.txt" ORGANIZATION LINE SEQUENTIAL. SELECT OUTFILE ASSIGN TO "C:\COBOL\UT3.csv" ORGANIZATION LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD INFILE. 01 INREC. 02 I-NUMBER PIC 9(2). 02 I-NAME PIC X(20). 02 I-KAMOKU-SYURUI PIC 9(3). 02 I-KAMOKU-TEN PIC X(3). FD OUTFILE. 01 OUTREC. 02 O-NUMBER PIC 9(2). 02 O-COMMA PIC X(1) VALUE ",". 02 O-NAME PIC X(20). 02 O-COMMA PIC X(1) VALUE ",". 02 O-KAMOKU-SYURUI PIC 9(3). 02 O-COMMA PIC X(1) VALUE ",". 02 O-KAMOKU-TEN PIC X(3). WORKING-STORAGE SECTION. 77 W-FLAG PIC X(1). 01 W-MIDASHI. 02 W-ID PIC X(8) VALUE "社員番号". 02 W-COMMA PIC X(1) VALUE ",". 02 W-NAME PIC X(4) VALUE "名前". 02 W-COMMA PIC X(1) VALUE ",". 02 W-KAMOKU PIC X(4) VALUE "科目". 02 W-COMMA PIC X(1) VALUE ",". 02 W-TEN PIC X(4) VALUE "点数". PROCEDURE DIVISION. PERFORM MAE-SHORI THRU MAE-SHORI-EXIT PERFORM SHU-SHORI THRU SHU-SHORI-EXIT UNTIL W-FLAG = "1" PERFORM ATO-SHORI THRU ATO-SHORI-EXIT STOP RUN. MAE-SHORI. OPEN INPUT INFILE OUTPUT OUTFILE MOVE "0" TO W-FLAG READ INFILE AT END MOVE "1" TO W-FLAG END-READ. MAE-SHORI-EXIT. EXIT. SHU-SHORI. WRITE OUTREC FROM W-MIDASHI. IF I-KAMOKU-TEN >= 70 THEN MOVE I-NUMBER TO O-NUMBER MOVE I-NAME TO O-NAME MOVE I-KAMOKU-SYURUI TO O-KAMOKU-SYURUI MOVE I-KAMOKU-TEN TO O-KAMOKU-TEN WRITE OUTREC FROM INREC ELSE CONTINUE END-IF. READ INFILE AT END MOVE "1" TO W-FLAG END-READ. SHU-SHORI-EXIT. EXIT. ATO-SHORI. CLOSE INFILE OUTFILE. ATO-SHORI-EXIT. EXIT. そして、CSVファイルを開くと、 ____________ 社員番号 名前 科目 点数 社員番号 名前 科目 点数 社員番号 名前 科目 点数 ____________ としか表示されませんでした。 入力ファイルは前回のものと同様です・・・ 参考書を基に色々調べてみたのですが、解決できませんでした。。 回答いただけると幸いです。 宜しくお願い致します。

  • 回答No.1
noname#5645
noname#5645

>COMPUTER COMPUTEでは無いのでしょうか? COMPUTERでも使えるコボルもあるのかな? >MOVE MOVE文のところで移送している相手の項目のレベルがちょっとわかり難い部分があるのですが・・・。 ちなみに各セクションを、PROCEDURE__DIVISIONの中にPERFORM文によって呼び出してやったほうが、良いですよ。 PROCEDURE__DIVISIONはC言語のMAIN関数のようなものだと思えれば、今後のためになると思います。 PROCEDURE__DIVISIONの中で、各セクションの中にフラグをたてて終了条件をつくることや、その他処理の振分けなどが出来ますし。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • おしえてください。

    cobol言語のスクールにかよっていますがわからないのでおしえてください。 素数判定プログラムなのですが(ある数が割り切れたとき、素数ではない 割り切れなければ素数) 途中から PERFOM KEISAN UNTIL OWARI = "N". DISPLAY SPACE. STOP RUN. KEISAN. MOVE SPACE TO H-ATAI. ACCEPT H-ATAI AT 0436. MOVE H-ATAI TO ATAI. PERFORM KEISAN2 VARYING N FROM 2 BY 1 UNTIL N > ATAI - 1. <==ここに1回でも割り切れたとき DISPLAY KOTAE AT 0535.    判定する言語をおしえて ACCEPT OWARI AT 1045.     この文だと全部「素数」と、 KEISAN2.            出てしまうのですが。 DIVIDE ATAI BY N GIVING HENSU REMAINDER AMARI. IF AMARI = 0 MOVE "素数ではありません" TO KOTAE ELSE MOVE "素数です"TO KOTAT. お願いします。

  • 英語で言うと、どれが適切ですか?

    英語で「明日から英語で日記を書いてみようかな」というようなニュアンスを表す時、下記の英文のどれを使うか迷っています。 下記の英文の中で、適切で自然な言い方はどれですか? あと、おかしい箇所があれば教えていただけると嬉しいです! (1)I'll try to write a diary in English from tomorrow. (2)I think try to write a diary in English from tomorrow. (3)I'm going to try writing a diary entry in English from tomorrow.

  • thenの使い方がわかりません。

    In any society where people frequently move from one place to another,friendships can be close and strong for a while and then disappear when the individuals move away from each other. Neither side feels especially slighted when this occurs. Both individuals may write to each other for a year or two, then no more. 上の文章でthen が2つ有りますがその役目が分かりません、誰か助けてください。

  • この場合は過去完了形?過去形?

    ある問題で I ( ) in Tokyo from 1990 to 1993 and moved to Osaka. の括弧の中にliveを適切な形に変えて入れなさい。という問題がありました。 答えはlivedだったんですが、この場合過去完了形の had livedでは間違いになるんでしょうか? 確かに完了形でfrom~to~の形はあまり見たことがないんですが、1990年から1993年までずっと住んでいたという意味で過去完了形の継続の意味は当てはまらないんでしょうか? よろしくお願いします!!<m(__)m>

  • こちらのバッチファイルの改修をお願いしたいです。

    過去に別のIDで質問したのですがパス紛失してしまったので・・・ http://okwave.jp/qa/q6858298.html?&status=true&errcode=&msg=&qid=6858298 改修の内容としては下記2点になります。 【○○】 [△△] □□.txt (1)○○や△△の部分にドット等の記号があるとそのファイルはスルーしてしまうので、スルーせずに動くように。 (2)もし、同じファイル名があったら上書きせずに「C:\被り」のフォルダに振り分ける。 どなたかお手すきでしたらよろしくお願い致します。 ----------- echo off set from=C:\振り分け set to=C:\整理済 for /f "delims=" %%a in ( 'dir /b "%from%\*.txt"' ) do call :sub "%%a" echo 振り分け終了しました exit /b :sub for /f "tokens=1 delims=]" %%f in ( "%~n1" ) do set findname=%%f] :FolderA if exist "%to%\A\%findname%*" move "%from%\%~nx1" "%to%\A\"&&goto :EOF :FolderB if exist "%to%\B\%findname%*" move "%from%\%~nx1" "%to%\B\"&&goto :EOF :FolderC if exist "%to%\C\%findname%*" move "%from%\%~nx1" "%to%\C\" goto :EOF

  • 日本語は左から?

    Do you write from lefts to write in Japanese or from top of the page to the bottom? 海外の方からメールをいただきました(英語圏の方ではありません。) 。おそらく日本語の文章に関して左から書くのか?上から下まで書くのか?といった感じなのでしょうが、意味がいまいち理解できず何と答えたらよいのかわかりません。 私の送った日本語メールに対しての返事だと思いますが、特に前後の文章もなく悩んでいます。推測でかまいませんので、もし分かる方いましたら教えてください。よろしくお願いいたします。

  • 英語が分からないので教えてください。

    次の文章から推定される英単語は何ですか? 1.These days it's possible to....in from any computer that has access to the Internet. 単語はc???kです。 2.I'm sorry, sir, but you can'ttake that case with tou in the cabin. It won't fit in the locker. 単語はo?e??e?d 3.It's so hot and....today. I'm sure we'll have a thunderstorm this afternoon. 単語はh???dです。 4.Is this a....flight or do I have to make a connection? 単語はd??e?tです。 5.Look at those clounds! I think it's going to....any minute now. 単語はpo??です。

  • 英語 並べ替え問題

    彼らはコンピューターテクノロジーを専門とするその男の提案に同意した。(1語不要) [they/who/to/the/in/proposal/from/agreed/man/propose/the/specializes]computer technology. この問題をどなたか解いてください。 よろしくお願いします。

  • move_uploaded_fileのエラーについ

    画像をアップロードするために move_uploaded_file()の関数を使ったプログラムがうまくいきません。 いろいろ調べたのですが、PHPは初心者なのでアドバイスをお願いします。 --------------------------------------------------------------------------------- Warning: move_uploaded_file(画像アップ先URL) [function.move-uploaded-file]: failed to open stream: HTTP wrapper does not support writeable connections in PHPファイルディレクトリ on line 33 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpxs7jG1' to '画像アップ先URL' in PHPファイルディレクトリ on line 33 --------------------------------------------------------------------------------- 上記のエラーがでます。 調べて試したのですがうまくいきません。 画像格納用ファルダのパーミッションをいろいろ試して最終的777しましたがだめでした。 $file['tmp_name']こちらにうまく入っていないような感じですが?? サーバーはXサーバーを利用しています。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • Please tell me how to install Japanese font

    Now I live in china,and using computer。 I want to use Japanese character,input Japansese。 But here china I cannot do so。I can only read Japanese character and Japansese homepage。 I think this computer has not been installed Japanese font,so I cannot use Japanese。Anybody please tell me how to install Japanese font into computer。I feel it trouble so much。I do not know computer very much,just like bigineer。 So if you tell me the way of install,please tell me as easily as possible。And write in Japanese,do not write in English。 Best regards。