• ベストアンサー

コボルのプログラム教えてください!

コボルのPERFORM構文がわかりません。教えてください。 どのサイトの解説を見ても、本を見てもさっぱり言ってる内容が理解できません。この構文だけは・・・。 手続き1とか何のことかわかりません。 ifとgotoを使った繰り返しのプログラムをPERFORMで書き直すことを目標としています。例題などをまじえてわかりやすく解説をしてくれませんか?パターンが5個くらいありましたが、すべてにおいての解説をよろしくお願いします!

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

  • ベストアンサー
  • j38
  • ベストアンサー率22% (9/40)
回答No.3

例を示します。 例1).セクション名 PROCEDURE DIVISION. .....PERFORM INIT-SEC. .....PERFORM MAIN-SEC UNTIL FLG-END = '1'. .....PERFORM FINAL-SEC. .....GOBACK.(※STOP RUNでも可) ************ * 初期処理 *********** INIT-SEC SECTION. ....OPEN INPUT IN-FILE ..........OUTPUT OUT-FILE. ....PERFORM IN-FILE-READ-SEC. 例2).セクション名無し PERFORM VARYING IX-1 FROM 1 BY 1 UNTIL IX-1 > 9 ....PERFORM VARYING IX-2 FROM IX-1 + 1 BY 1 > IX-2 > 10 ........IF ........... ....END-PERFORM. END-PERFORM.

その他の回答 (2)

回答No.2

COBOLといってもいろいろあります。 CODASYLのどの時期に準拠しているかだけでなく、どのメーカーのどのコンパイラのいつのバージョンなのかが分からなければ、具体的なアドバイスはできません。 PERFORM 手続名1 [THRU 手続名2] PERFORM 手続名1 [THRU 手続名2」 n TIMES PERFORM 手続名1 [THRU 手続名2」 TEST {AFTER|BEFORE} [VARYING 変数名 FROM 初期値 BY 増分値] UNTIL 条件 など、いろいろな記述方法があります。従来からの外PERFORMに加え、内PERFORMという書き方もあります。 あなたの使用環境を教えてもらえなければ、具体的な回答はできません。

  • notnot
  • ベストアンサー率47% (4849/10263)
回答No.1

解説や本を見てもわからない人にこの限られたスペースでしかも一方的に説明してわかるはずがありません。 PERFORMは全く異なった数種類の機能をまとめたものです。同じPERFORMと言っても全然機能が違います。 まずは、C とか VB とかの for 文や while 文 do 文を勉強してみてください。これらが理解できるとすこしわかるようになるのではと思います。

関連するQ&A

  • COBOLについて

    COBOL言語を使う会社にいますが、自分はプログラムの経験や知識がなく、苦戦しています。 PC教室のHPを見ても、COBOLを教えている所は少ないようで、都内埼京線か山の手沿いにあるCOBOLを使ったPC教室を知りたいです。 自分で本を購入しましたが、本を理解するのもなかなか難しく習いに行きたいと思ってます。 ちなみに、まったくの未経験でCOBOLを理解するには時間はかかるのでしょうか?自分はPCにすごく詳しいわけでもないのです。

  • cobolの関連ソースについて

    今、触ったこともないcobolのソースの管理をやれ、と言われてます。 で、cobolの実行プログラム、拡張子は、*****.so 見たいな感じなのですが、それをコンパイルするのに、多くのソースがいるみたいなのです、その関連を調べろ、と言われました。たとえば、cobolのmakefileと呼ばれているものを、unix上でviで開いてみると、「ヘッダープログラム」なるコメント文が書いていたり、オブジェクトとか書いていたり、、そして、そのヘッダーの部分をみると、たしかにプログラムの名称が書いているので、今度はそのプログラムの中身を見てみると、同じように、また違うプログラムを参照しているようなのです。ひとつの実行ファイルを生成するのに、ソースがツリー構造になっていて、それをすべて理解する必要があるのですが、中身をみたときに、どういうコマンド等を参照していけばいいのかわかりません。 分かりやすく整理すると、ある実行プログラムを生成するのに、ソースが必要なのですが、そのソースの全てを洗い出すには、どうすればいいのか?ということなのですが、 詳しい方、ぜひよろしくお願いします!

  • 【COBOL】みずほ銀行の新MINORIシステムは

    【COBOL】みずほ銀行の新MINORIシステムはメインフレームの勧銀の富士通のSTEPS、興銀の日立のC-base、富士銀のIBMのTOPとのCOBOLをそのまま稼働させて動かしているそうですが、COBOLはクラス化までの構文しか書けなかったはずで、それほど命令があるプログラム言語でないはずなのになぜ新しいオープンシステム言語に置き換えが出来なかったのでしょうか?解読が不明の意味が分からないんですが、全てのライブラリにあるプログラムを置き換えただけでは動かないのでしょうか?

  • COBOL学習用のテキスト

    今度、仕事でCOBOLを扱うことになりました。 基本情報技術者の試験(受験はCASL2、ただし理解は微妙。)には受かっているレベルです。コンピュータ系の仕事になる予定じゃなかったので、基本情報は試験だけのために勉強したって言っても過言じゃないぐらいです。 しかし、予定外に情報システム系の部門に配属され、COBOLのプログラミングをやり始めたのですが、入門用のようなテキストが職場にはなく、近所の本屋でも探してみたのですが、COBOLのものは1冊もありませんでした。 アマゾンとかでは何冊もあるようですが、どういったものを使っていいかわかりません。なんとなく、プログラムってこんなものかなぁ程度のヒトにわかりやすいCOBOLのテキストでおすすめのものがありましたら、教えてください。あと、その入門用と別に、仕事をしていく中でずっと使っていけるような本もありましたら、そっちのほうも教えてください。 よろしくお願いします。

  • プログラムの内容理解

    私は仕事で現在コボルを使用しています。 コボルどころかこういった専門的なものは初めての初心者です。 最初のうちは短い行のプログラムを読んで理解して修正して・・・と、苦しいながらも先輩方に聞きながら進んでいきました。 しかし段々と量が増え、さらにプログラムが複雑になり(色々なところに飛ぶ)ついていけなくなりました。 先輩方に部分部分聞いても自分自身が    「ここがこうなるからこっちはこうなる。そして次でこれが・・・」 という理解をできていないのですぐ分からなくなります。 そこで皆様に聞いてみたいのですが、長いプログラムを読むコツみたいなものはありますでしょうか? 「IF」などで分岐していくともう頭がこんがらがり余計に理解ができなくなってしまいます。 1をAに、さらにそれをBへ。そしてCに入れ最後にD・・・などもよくあるのですが「何故そんなに遠回りを?」と思い追いかける気力が無くなってしまいます。 どうかよろしくお願いします。 簡単ではないでしょうが頑張ってコツみたいなのをつかんで壁をこえたいです。

  • 集計のプログラムを組むには・・・・

    以前はCOBOLでプログラムを作っていましたが、今はリタイアして管理的な仕事をしています。 VBやACCESSの本は読みましたが理解は十分ではありません。 こんな私ですが、学ぶ努力はいといません。 一定期間の売上データを商品コードをキーに集計するプログラムをパソコン(WindowsXP)で作ろうと思っています。  売上データはサーバにあります。商品マスタもありますが、売上データより新規に作りたいと考えています。 COBOLであれば、処理イメージを描けるのですが、VBやACCESSではどのようにすればいいのでしょうか? または、他の言語ありましたら紹介していただきたいと思います。

  • COBOLのプログラミング力を上げるには?

    私は25歳女性、現在COBOLのプログラマーです。 去年の夏2か月ほどCOBOLのプログラミングをした経験がありますが 初めてで全然できず、いろんな上司に手伝ってもらいながらやっとできました (ほぼ他力)。 今月からまたプログラムを作ることになり、ソースは勉強して読めるようになりましたが、「この処理の詳細設計書いて!」と言われても。全く書けません。 どういう処理なのか教えてもらっても、理解するのに他人の10倍は時間が かかります。 あまりにできなくて自信がなくなり、質問しにいくのも恥ずかしく、落ちこんでばかりです。ネットで調べても、本を読んでも、あまり実務につながりません。 上司もなんだか呆れています。 派遣で今の会社にきて1年半、この間ほぼ事務職だった私には、はっきり言ってプログラミングは厳しいです。 新卒の子は一人一人に教育係がいるのですが、私はすべて自分で動かないと何も進みません。 なのに周りは男性ばかりで質問するのが恥ずかしく、一人で考えて煮詰まっちゃいます。 今のプロジェクトでがんばって、評価してもらおうと気合十分だったのですが、 早くも挫折してしまいました。 このままではタイトなスケジュールの中、私が足を引っ張り他のメンバーに 迷惑がかかってしまいます。 勇気を出して質問にいくようがんばりますが、それ以外に どう努力したらいいのでしょうか><。 どうようもないことで質問をしてすみません。 ちなみに今担当している処理は (1)ファイルを読み込む→データを抽出→抽出したデータをファイルに出力 (2)出力ファイルのデータをDBに取り込む 簡単そうでなかなかできません。

  • マシニングセンタ プログラムについて

    http://www.nmri.go.jp/eng/khirata/metalwork2/mc/program2/index.htmlの『NCプログラムの作成例』の『(3)荒削り』の内容である N020 ZP=ZS N021 G01 Z ZP F200 N022 G01 X XF N023 ZP=ZP-0.8 N024 IF [ZP LE ZF+0.1] N030 N025 G01 Z ZP N026 G01 X XS N027 ZP=ZP-0.8 N028 IF [ZP LE ZF+0.1] N030 N029 GOTO N021 の意味が全然わかりません。サイト内の解説も素人の私には、どうも助けになりません。このプログラム中のここ以外は理解できました。どなたかわかりやすく教えていただけませんでしょうか? 特に『 N023 ZP=ZP-0.8 』 前後でフラフラしています。

  • 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点以上のファイルのみ出力したいのですが・・・ 長文になってしまいましたが宜しくお願いします。

  • プログラムが作りたい

    プログラミング初心者です。3日前に入門サイトの説明に従い無料のDelphiをインストール。 サンプルコードを見ながら打ち込んだりして、「Hello,World」と表示させたり簡単な足し算をしておりました。そして思いついたことがありまして質問させていただく次第です。 (1)条件分岐、乱数、繰り返しを使いたい (2)そして簡単なゲームを作ってみたい この二点なのですが、プログラムとしては ・コンピュータが1~13よりランダムに数を1つ決定 ・Highボタンは8以上なら勝ち、Lowボタンは6以下なら勝ち、7ならもう一度 ・3連勝したら終わり というダブルアップゲームを作りたいのですが、実際どういう手順でコードを書くべきものなのか良く分かりません。 一つ一つの構文の働きはサイトの解説で何となく分かるのですが一連の流れというのでしょうか、プログラムとしての感覚が掴めません。 具体的にどのようにコードを書けばこのプログラムが出来るでしょうか。