COBOLのCOUNTERとは?COBOL初心者の疑問解決方法

このQ&Aのポイント
  • COBOL初心者がCOUNTERの使用方法について疑問を抱いています。COUNTERは数字でなければならないのか、プログラムの書き方がわからないという問題に対して解決方法を教えてください。
  • COBOL97を使用しているCOBOL初心者が、人数と得点を入力してその統計情報を表示するプログラムを作成したいと考えています。PERFORM文とCOUNTERの指定方法についても具体的な説明がほしいそうです。
  • COBOL初心者がCOUNTERを使用して人数と得点の統計情報を表示するプログラムを作成したいと希望しています。COUNTERは数字でなければならないのか、どのようにプログラムを書けば良いのかわからないという具体的な問題に対して解決策を提供してください。
回答を見る
  • ベストアンサー

COBOLのCOUNTER

COBOL初心者です。 COBOL97を使用しています。 人数を入力して、入力した人数の得点を入力、 入力した得点の平均、合計、最大、最小を表示するプログラムを作成しています。 PERFORM文とCOUNTERの指定方法がよくわかりません。 COUNTERは数字でなければならないのでしょうか? どのようにプログラムを書いてよいかわかりません・・・・ どなたかお助け下さい。 お願いします。 01 VAL. 02 VAL PIC 9(4). 01 MAX-VAL PIC 9(4) VALUE ZERO. 01 MIN-VAL PIC 9(4). 01 TOTAL-VAL PIC 9(4). 01 AVERAGE-VAL PIC 9(4). 01 COUNTER PIC 9(1). 01 PEOPLE PIC 9(15). 01 MAX-Disp PIC Z(3)9. 01 TOTAL-Disp PIC Z(3)9. 01 AVERAGE-Disp PIC Z(3)9. 01 MIN-Disp PIC Z(3)9. 01 得点 PIC 9(4). PROCEDURE DIVISION. DISPLAY "人数を入力してください". ACCEPT PEOPLE. DISPLAY PEOPLE "人です". DISPLAY "テストの得点を入力してください". PERFORM TEST BEFORE VARYING COUNTER FROM 1 BY 1 UNTIL COUNTER > PEOPLE

質問者が選んだベストアンサー

  • ベストアンサー
  • stsu
  • ベストアンサー率62% (83/132)
回答No.2

コーディングの途中ですね。 完成させることは簡単ですが、ヒントだけに留めます。 PERFORM TEST BEFORE VARYING COUNTER FROM 1 BY 1 UNTIL COUNTER > PEOPLE  COUNTERの値を使いn件目の得点の入力促進メッセージ表示  n件目の得点の入力  入力された得点を合計値に加算  最大値、最小値との比較をそれぞれ行い入れ替える END-PERFORM ループを抜けた後で平均値の計算、結果の編集・表示を行う。 注) DISPLAY "テストの得点を入力してください".の位置は変えたほうが良い。 合計値および最小値の初期値が定義されていないので、初期値として 定義するか、ループ前に代入するロジックが必要。 多分、この程度で完成できるかと思います。

the-laugh
質問者

お礼

お礼が遅くなってしまい、申し訳ありません。 とてもわかりやすいヒントありがとうございました! 大変参考になりました! 頑張って作ってみます!!!

その他の回答 (1)

回答No.1

何を質問しているのかが、分かりにくいのですが? 前の質問(QNo.3179530)との関係が分かりません。 前の質問が解決した上で、この質問をしていますか? >COUNTERは数字でなければならないのでしょうか? 当然です。 ただし、COBOLは外部10進も数値として扱えます。 変数=PEOPLEは、9(15)ですが、ACCEPTでは数値を15桁で入力しないと、うまく入らないと思います。 (少なくとも、私が使用していたCOBOLコンパイラはそうでした) 5を入力する場合は、次のような感じです。 ○→000000000000005 ×→5 一方、変数=COUNTERは、9(1)と1桁になっていますが? 前の質問(QNo.3179530)で指摘を受け、修正したのではなかったのですか?

the-laugh
質問者

お礼

お礼が遅くなってしまい、申し訳ありません。 前回質問したプログラムとは異なるものです。 COUNTERの説明、よくわかりました。 私が使っているのは、スクール用の簡単なソフトみたいです。 でもほととんどCOBOLについて何もしらない人間ですので、 一苦労です・・・・ ありがとうございました。

関連するQ&A

  • COBOLのPERFORM文

    COBOL初心者です。 COBOL97使用で、 02 VAL OCCURS 15 TIMES PIC 9(4). と定義して、 PERFORM TEST BEFORE VARYING COUNTER FROM 1 BY 1 UNTIL COUNTER > 15 のPERFORM文を書きました。 エラーもなく起動したのですが、 15回過ぎても永遠処理が終わりません。 無限ループというのでしょうか? 15回目でバチッと終わるにはどういたらよいでしょうか? どなたかお助け下さい。

  • cobolのコントロールブレイク

    趣味の一環としてcobolのファイル入出力プログラムを勉強しているのですが、 リング構造を利用したコントロールブレイク機能の実装で躓いてしまいました。 知恵をお貸しいただければ幸いです。 ソースコードここから IDENTIFICATION DIVISION. PROGRAM-ID. BREAKDV1. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INF ASSIGN TO "C:\cobol\sample.cbl" STATUS FST. SELECT OUF ASSIGN TO "C:\cobol\data.txt". DATA DIVISION. FILE SECTION. FD INF. 01 F1R PIC X(72). WORKING-STORAGE SECTION. 01 INKEY PIC 9(01). 01 SAVKEY PIC 9(01). 01 FST PIC X(02). PROCEDURE DIVISION. ACCEPT INF OPEN INPUT INF OUTPUT OUF PERFORM 読込処理 THRU 読込出口 PERFORM UNTIL INKEY = HIGH-VALUE MOVE SAVKEY TO INKEY PERFORM UNTIL INKEY NOT = SAVKEY PERFORM 同一処理 THRU 同一出口 PERFORM 読込処理 THRU 読込出口 END-PERFORM PERFORM 合計処理 THRU 合計出口 END-PERFORM PERFORM 総計処理 THRU 総計出口 CLOSE INF OUF STOP RUN. 同一処理. DISPLAY "SAME" WRITE F1R DISPLAY F1R 同一出口. EXIT. 合計処理. DISPLAY "TOTAL" 合計出口. EXIT. 総計処理. DISPLAY "END" 総計出口. EXIT. 読込処理. PERFORM UNTIL FST NOT "00" READ INF END MOVE HIGH-VALUE TO INKEY NOT END CONTINUE END-READ END-PERFORM 読込出口. EXIT. ソースコードここまで(処理内容は仮のものです) 参考文献ではこのような組み方でよいはずなのですが、コンパイルした際に BREAKDV1.cbl:19: Error: syntax error, unexpected "end of file" とエラーが発生してしまいました。 このエラーを解消する方法をお教え下さい。 開発環境: Windows7SP1+MinGW32、サクラエディタ

  • COBOL わかりません。。。

    質問を書き直しました。テキストを読めば読むほどわからなくなります。 どなたか教えてくださいませんか?。。。 1月~6月の売上高の合計と、 半年の売上高の合計に対する各月の割合を表示するプログラムを作成しろという課題が出たのですが、実行してみたら合計の数字が違うのです。。。。 WORKING-STORAGE以下を貼り付けました。 01 1月 PIC 9(8). 01 2月 PIC 9(8). 01 3月 PIC 9(8). 01 4月 PIC 9(8). 01 5月 PIC 9(8). 01 6月 PIC 9(8). 01 半年合計 PIC 9(9). 01 表示半年合計 PIC Z(9)9. 01 1月割合 PIC Z(2)9.99. 01 2月割合 PIC Z(2)9.99. 01 3月割合 PIC Z(2)9.99. 01 4月割合 PIC Z(2)9.99. 01 5月割合 PIC Z(2)9.99. 01 6月割合 PIC Z(2)9.99. PROCEDURE DIVISION. DISPLAY "各月の売上高を入力してください。" AT 0505. DISPLAY "1月の売上高" AT 0705. ACCEPT 1月 AT 0718. DISPLAY "2月の売上高" AT 0805. ACCEPT 2月 AT 0818. DISPLAY "3月の売上高" AT 0905. ACCEPT 3月 AT 0918. DISPLAY "4月の売上高" AT 1005. ACCEPT 4月 AT 1018. DISPLAY "5月の売上高" AT 1105. ACCEPT 5月 AT 1118. DISPLAY "6月の売上高" AT 1205. ACCEPT 6月 AT 1218. COMPUTE 半年合計 = 1月 + 2月 + 3月 + 4月 + 5月 + 6月. MOVE 半年合計 TO 表示半年合計. DISPLAY "合計売上高は" AT 1405. DISPLAY 表示半年合計 AT 1428. DISPLAY "円です。" AT 1436. COMPUTE 1月割合 = 100.00 * (1月 / 半年合計). COMPUTE 2月割合 = 100.00 * (2月 / 半年合計). COMPUTE 3月割合 = 100.00 * (3月 / 半年合計). COMPUTE 4月割合 = 100.00 * (4月 / 半年合計). COMPUTE 5月割合 = 100.00 * (5月 / 半年合計). COMPUTE 6月割合 = 100.00 * (6月 / 半年合計). DISPLAY "半年間の売上高に対する各月の割合は" AT 1605. DISPLAY "1月:" AT 1905. DISPLAY 1月割合 AT 1912. DISPLAY "%" AT 1918. DISPLAY "2月:" AT 2005. DISPLAY 2月割合 AT 2012. DISPLAY "%" AT 2018. DISPLAY "3月:" AT 2105. DISPLAY 3月割合 AT 2112. DISPLAY "%" AT 2118. DISPLAY "4月:" AT 2205. DISPLAY 4月割合 AT 2212. DISPLAY "%" AT 2218. DISPLAY "5月:" AT 2305. DISPLAY 5月割合 AT 2312. DISPLAY "%" AT 2318. DISPLAY "6月:" AT 2405. DISPLAY 6月割合 AT 2412. DISPLAY "%" AT 2418. STOP RUN. 実行結果 例えば、1月 00000100       ・       ・       ・     6月 00000100 と各月すべて100と入力したら、合計は6円です。という具合に実行結果が出ます。 どのように直せばよいでしょうか?

  • COBOL初心者です

    COBOL初心者です。 1月~6月の売上高の合計と、 半年の売上高の合計に対する各月の割合を表示するプログラムを作成しろという課題が出たのですが、実行してみたら合計の数字が違うのです。。。。 01 1月 PIC 9(8). 01 2月 PIC 9(8). 01 3月 PIC 9(8). 01 4月 PIC 9(8). 01 5月 PIC 9(8). 01 6月 PIC 9(8). 01 半年合計 PIC 9(9). 01 表示半年合計 PIC Z(9)9. 01 1月割合 PIC Z(2)9.99. 01 2月割合 PIC Z(2)9.99. 01 3月割合 PIC Z(2)9.99. 01 4月割合 PIC Z(2)9.99. 01 5月割合 PIC Z(2)9.99. 01 6月割合 PIC Z(2)9.99. ・  ・  ・ 合計を求めるCOMPUTE文  COMPUTE 半年合計 = 1月 + 2月 + 3月 + 4月 + 5月 + 6月. MOVE 半年合計 TO 表示半年合計. DISPLAY "合計売上高は" AT 1405. DISPLAY 表示半年合計 AT 1428. DISPLAY "円です。" AT 1436.  ・  ・  ・ 割合を求めるCOMPUTE文。 COMPUTE 1月割合 = (1月 / 半年合計) * 100. COMPUTE 2月割合 = (2月 / 半年合計) * 100. COMPUTE 3月割合 = (3月 / 半年合計) * 100. COMPUTE 4月割合 = (4月 / 半年合計) * 100. COMPUTE 5月割合 = (5月 / 半年合計) * 100. COMPUTE 6月割合 = (6月 / 半年合計) * 100. 実行結果 例えば、1月 00000100 ・  ・  ・  6月 00000100 と各月すべて100と入力したら、合計は6円です。という具合に実行結果が出ます。 どのように直せばよいでしょうか?

  • COBOLのプログラムがビルドできません;;

    今年の4月からシステム関係の会社に就職する者です。 就職にあたって会社からの課題としてCOBOLのプログラムを転記して実行するというものが出たのですが、どうしてもビルドエラーになってしまい困っています。 IDENTIFICATION DIVISION. PROGRAM-ID.  KADAI005 ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. / DATA DIVISION. FILE SECTION. / WORKING-STORAGE SECTION. 01 W-九九TBL. 03 W-行 OCCURS 9. 05 W-列 OCCURS 9. 07 W-積 PIC 9(02). 01 W-指標1 PIC 9(02). 01 W-指標2 PIC 9(02). 01 W-合計 PIC 9(04). / PROCEDURE DIVISION. メインコントロール        SECTION. メインコントロールS. メインコントロール   PERFORM 初期処理. PERFORM 主処理. PERFORM 終了処理. メインコントロールE. EXIT. 初期処理             SECTION. 初期処理S. ワークエリアの初期化 MOVE ZERO TO W-九九TBL W-合計. 初期処理E. EXIT. 主処理              SECTION. 主処理S. PERFORM VARYING W-行 FROM 1 BY 1 UNTIL W-行 > 9 PERFORM VARYING W-列 FROM 1 BY 1 UNTIL W-列 > 9 COMPUTE W-積(W-行,W-列) = W-行 * W-列      COMPUTE W-合計 = W-合計 + W-行 * W-列    END-PERFORM END-PERFORM. DISPLAY "合計 =" W-合計. DISPLAY "5×4=" W-積(5,4). DISPLAY "2×7=" W-積(2,7). 主処理E. EXIT. 終了処理             SECTION. 終了処理S. プログラム終了 STOP RUN. 終了処理E. EXIT. 提出期限が明日に迫っていて焦っています; 回答よろしくお願いします。

  • COBOL初心者です。

    COBOL初心者です。 プログラミング自体初めて1か月です。 いかんせん本当に初心者なので どう質問したらイイのか分からないんですがヨロシクです。 実行したらなんか固まってしまう?んです。 記述がおかしいんでしょうけど、何がおかしいのか分からなくて… どう書けばイイのか分からないのでソースをそのまま貼り付けます。 IDENTIFICATION DIVISION. PROGRAM-ID. 000. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT IN-FILE ASSIGN TO "x.txt". DATA DIVISION. FILE SECTION. FD IN-FILE. 01 IN-REC. 03 X PIC X(10). WORKING STORAGE SECTION. 01 WORK. 03 WK-X PIC X(10). 01 END-FLAG PIC 9 VALUE 0. PROCEDURE DIVISION. MAIN-SEC SECTION. MAIN-010. OPEN INPUT IN-FILE. PERFORM UNTIL END-FLAG = 1 READ IN-FILE AT END MOVE 1 TO END-FLAG NOT AT END MOVE X TO WK-X DISPLAY WK-X END-PERFORM. CLOSE IN-FILE. STOP RUN. MAIN-SEC-END. EXIT. なんしか、"x.txt"を読み込みたいんです。 勉強中なのでとりあえず読み込みたいデータはちっちゃくしました。 うーんどう伝えたらイイんでしょう~ よろしくお願いします。

  • 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ファイルを開くと、 ____________ 社員番号 名前 科目 点数 社員番号 名前 科目 点数 社員番号 名前 科目 点数 ____________ としか表示されませんでした。 入力ファイルは前回のものと同様です・・・ 参考書を基に色々調べてみたのですが、解決できませんでした。。 回答いただけると幸いです。 宜しくお願い致します。

  • お助け下さい。

    初めて書き込みます。どなたかお助け下さい。 まだ入社して半年ほどのVBAを多少勉強した程度の初心者なのですが、上司にCOBOLの課題を出され期限が迫って困っています。お助け下さい。よろしくお願いします。 課題はCOBOLで簡単な住所録を出力させるというもの。参考書やネットで探してみてコーディングしてみたのですが、ここまでしかできませんでした。以下がコーディングしたものです。出来れば本日中か明日には回答を頂きたいです。 環境はWindowsXP、Open cobolで作成しています。 以下の条件に変更、追加したいのです。 (1):10回ループしている部分をUNTILで無限にループさせて、最初の項番に戻った時に値を入力せずにEnterでフラグを立たせて終了。 (2):項番や氏名などの入力で間違って入力した際に、戻って入力し直す。 IDENTIFICATION DIVISION. PROGRAM-ID. kadai2. ENVIRONMENT SETION. FILE-CONTROL. SELECT REN-F ASSIGN TO 'C:任意.DAT' ORGANIZAITION IS LINE SEQUENTIAL FILE STATUS IS REN-ST. DATA DIVISION. FILE SECTION. FD REN-F 01 SYAIN=RAC. 05 KOUBAN PIC X(2). 05 FILLER PIC X(2). 05 SIMEI PIC N(10). 05 FILLER PIC X(2). 05 YUUBIN PIC X(10). 05 FILLER PIC X(2). 05 KEN PIC N(10). 05 FILLER PIC X(2). 05 SIKU PIC N(20). 05 FILLER PIC X(2). 05 TATEMONO PIC N(20). WORKING-STRAGE SECTION. 01 REN-ST PIC XX. PROCEDURE DIVISION. SYU SECTION. INIT. OPEN OUTPUT REN-F. IF REN-ST NOT='00' THEN CONTINUE ELSE PERFORM KAKIKOMI THRU SYUURYO END-IF. PROG-END. STOP RUN. KAKIKOMI. PERFORM 10 TIMES DISPLAY "項番" WITH NO ADVANCING ACCEPT KOUBAN DISPLAY "氏名" WITH NO ADVANCING ACCEPT SIMEI DISPLAY "郵便番号" WITH NO ADVANCING ACCEPT YUUBIN DISPLAY "県名" WITH NO ADVANCING ACCEPT KEN DISPLAY "市町村" WITH NO ADVANCING ACCEPT SIKU DISPLAY "部屋番号" WITH NO ADVANCING ACCEPT TATEMONO WRITE SYAIN-RC END-WRITE END-PERFORM. SYUURYO. CLOSE REN-F 補足と致しまして 上司にはほうれんそうに関しては日報など逐一しています。 相談やアドバイスなども求めました。 事前に設計書なども自分なりに調べて作成し提出しましたが、具体的な指摘をもらえないので修正すべき部分が分からないので困ってます。 こいった所で聞くのは、筋違いだと思いますがよろしくお願いします。

  • COBOLでのランダムアクセス

    すみませんCOBOL初心者です。 FILE-CONTROL. SELECT URIAGE-MOKUHYOU ASSIGN TO "c:\dat\mokuhyou.dat" ORGANIZATION IS INDEXED ACCESS MODE IS RANDOM RECORD KEY IS UM-SHITEN-CODE. DATA DIVISION.   FILE SECTION.   FD URIAGE-MOKUHYOU.   01 UM-REC.    05 UM-SHITEN.     10 UM-SHITEN-CODE PIC X(4).     10 UM-SHITEN-MEI PIC X(20).    05 UM-KINGAKU PIC 9(10) OCCURS 12. WORKING-STORAGE SECTION.   01 TSUKI PIC 9(2).   01 WK-SHITEN-CODE PIC X(4). PROCEDURE DIVISION.   DISPLAY "支店コードを入力してください --> : "   ACCEPT WK-SHITEN-CODE   OPEN INPUT URIAGE-MOKUHYOU   READ URIAGE-MOKUHYOU    INVALID KEY     DISPLAY "ERROR; 支店コード = " WK-SHITEN-CODE    NOT INVALID KEY     DISPLAY WK-SHITEN-CODE " の売上げ目標は " UM-REC   END-READ.   STOP RUN. というプログラムを作成し、"mokuhyou.dat"という入力ファイルに正しくデータが格納されているのですが、コンパイルは問題なく、実行すると、 JMP0310I-U OPEN ERROR FILE=mokuhyou.dat. 'ACC-METHOD'. PGM=TEST046 ADR=00401258 とまず画面にでて、OKを押すと、 JMP0099I-U FORCED TERMINATION CODE=0310 というエラーになります。 おそらくファイルが正常に読み込めないものと推測されますが、解決法を教えてください。お願いします。

専門家に質問してみよう