• ベストアンサー

COBOLのサブプログラムについて。

学校の課題でCOBOLに関するレポートを書いています。そこでいろいろネット検索しましたが細かいことは良くわかりません。教えてください。 1.COBOLはサブプログラムをオーバーロードすることができますか? 2.サブプログラムが別のサブプログラムを呼ぶ、または別のサブプログラムの宣言をすることができますか? 3.データ型を曖昧にして一般的なプロシージャをつくることは可能ですか?(C++でいう<template>的なことです。) 全部答えなくてもいいんでよろしくお願いしまっす。プレゼンせまってて困ってますマジでお願いします。

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

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

COBOLと言っても色々あるので、一般論で。 1. CALLとCANCELで出来ます。ただ実際にオーバーロードするかどうかは処理系(コンパイラや実行時ライブラリ)に依存します。 2. サブプログラムからサブプログラムを呼ぶのは可能です。プログラムの中で別のプログラムの記述は出来ませんが、出来る処理系もあります。 3. Object-COBOLというのがあるので、それでは可能だと思います。ただ、C++でなくCでも自分でtemplate相当のことが出来るように、一般のCOBOLでも自分でgenericなサブプログラムを作ることは可能です。言語機能でのサポートはないですが。

mishel1120
質問者

お礼

なるほど。ご丁寧にありがとうございます。 参考にさせていただきますー

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • COBOL のプログラマー人口ってどのくらい?

    ある、COBOL経験者の方と話をしていたら、 COBOLのプログラマー人口は全世界で 300万人くらいという話を聞きました。 そのうち、日本国内で 2~3割。 えっ?そんなにたくさん?と一瞬耳を疑いました。 世の中一般には、COBOLの話題はほかの言語に比べて少ない気がしますし、 参考書の数も C/C++系や Java が圧倒的に多いと感じます。 そこで、ネット検索してみたんですが、関係者側は確かにそう言っているようですね。 (統計の原典が同じなのかもしれませんが) 一例として、富士通さんのインタビューです。 http://www.atmarkit.co.jp/fdotnet/keyinterview/fujitsu_cobol/fujitsu_cobol01.html しかし、Micro Focus社の「COBOLプログラマ人口は米国だけで9万人にのぼります」 という記事も見つけてしまいました。 http://www.microfocus.co.jp/press/archives/011130.asp 日本より少ないなんて、変ですよね。ちょっと矛盾するような。 本当のところは(誰にもわからないかもしれないけど)どうなんでしょうね。 皆さんの感覚ではどうですか? 特定企業がどっさり COBOLプログラマを抱えていて、話題も含めて外に出ていないってことでしょうか?

  • COBOLの検索方法について

    はじめまして。今、COBOLでプログラムを作成しているんですが初めて触る言語でわからない事が多いです。その中でデータを最後から検索して最初のスペースがあれば、それより前のデータをを出力するというのがあるのですが、やり方がよくわかりません。わかりやすく教えてもらえませんか? 図で表すと AAAAAA BBBBBB CCCCCCCC これをCから検索して、最初のスペース(BとCの間)から左側を出力するプログラムで

  • COBOLのCALL文がいまいちつかめません。

    いつもお世話になっています。 WINDOWSでCOBOL85を使いながら、COBOLの勉強をしています。 JAVAを基本情報試験のために勉強したくらいの初心者です。 シーケンシャルファイルでマッチング処理を行う、 小さなプログラムを課題としている途中、 CALL文を使ってサブプログラムを作ってみてくださいと言われました。 そこで質問なのですが、 メインプログラムの集団項目をUSING指定で引数として、 サブプログラムで受け取り、処理をするまではいいのですが、 戻り値をどのようにして受け取ればいいのかが イメージがつかめません。 ・戻り値を受け取るための命令 ・戻り値は1つだと思うのですが、どの変数?に返ってくるのか (集団項目ごと返ってくる?) など、何かあればご助言をいただけないでしょうか? ソースは次の通りです。 よろしくお願いいたします。 ■メイン IDENTIFICATION DIVISION. PROGRAM-ID. MACHING_TEST. (省略) WORKING-STORAGE SECTION.   01 JUDGE_F.    03 KEY_F     PIC 9(01).    03 CHANGE_F     PIC X(06).    03 EXCEP_M     PIC 9(01). (省略) CALL "JUDGE_FEMALE" USING JUDGE_F ON EXCEPTION   DISPLAY N"エラーです。プログラムを終了します"   STOP RUN   NOT ON EXCEPTION    IF EXCEP_M = 9 THEN MOVE "ERRER!" TO FEMALE_OUT ELSE  IF EXCEP_M = 1 THEN MOVE CHANGE_F TO  FEMALE_OUT  END-IF    END-IF    END-CALL. (以下略) ■サブ IDENTIFICATION DIVISION. PROGRAM-ID. JUDGE_FEMALE. DATA DIVISION. LINKAGE SECTION. 01 JUDGE_F.  03 KEY_F PIC 9(01).  03 CHANGE_F PIC X(06).  03 EXCEP_M PIC 9(01). PROCEDURE DIVISION USING JUDGE_F. IF KEY_F = 1  THEN   MOVE "オトコ" TO CHANGE_F   MOVE 1 TO EXCEP_M  ELSE   IF KEY_F = 2 THEN  MOVE "オンナ" TO CHANGE_F  MOVE 1 TO EXCEP_M ELSE  MOVE 9 TO EXCEP_M END-IF END-IF. PROGRAM-END.  STOP RUN.

  • 汎用機のCOBOLのソース上でUNICODEのカンマを設定したい

    汎用機のCOBOLを使用しています。今回、ソース上でUNICODEのカンマを設定する必要がでてきたのですが、どのように設定していいかわかりません。。。 処理をしたデータをバイナリで(文字コードを変換しないで)転送する必要があり、かつデータの受け取り側がカンマをUNICODEでと指定してきているため、(COBOL上でカンマを打っても、汎用機の英数字コード(EBCDIK)になってしまいますので)どうしてもCOBOL上でUNICODEのカンマをしなければなりません。 UNICODEでのカンマはコードが「U+002C」ということなのですが、どのように設定すればUNICODEでカンマと認識されるのでしょうか? とりあえず、下記のような項目をつくってデータをつくってみたのですが・・・ 01 X-COMMA PIC X(02) VALUE X'002C' データの受け取り側がこのコードをカンマと判断してくれませんでした・・・ コードはU+002Cとなっているのでそのとおりに設定したかったのですが、「+」が設定できないため、上記のような書き方としました。 何かぜんぜん別の書き方をするのでしょうか? 質問の内容がわかりづらく申し訳ありませんが、どなたか知恵を貸していただければと思います。 よろしくお願いします。

  • MSワードで物理のポスター

    MSワードを用いて物理の実験のレポートを ポスター形式で提出せよ、という課題が出ました。 先生によると 「MSワードには、もとからレポートを書くときの 型(テンプレート?)が入っているので、 それを用いると一目見て興味が沸くようなものが 簡単に作れるでしょう、私はあまり詳しくはないのですが」 とのこと。 Googleで「MSワード テンプレート レポート」のようなキーワードで いくつか検索を繰り返してみたのですが、 なかなかマッチするものが見当たりません。 このようなテンプレート機能についてご存知の方、 アドバイスをお願いします。

  • 今情報処理の授業を受けているのですが

    私は高専の学生です。 今度の情報処理の課題でプログラミング言語についてのレポートを出さなくてはいけなくなりまして次の言語について詳しく教えてほしいのですが、 FORTRAN、COBOL、C言語、BASIC、VisualC、VisualBASICです。 よろしくお願いします。 関連のサイトについての情報もほしいです。

  • レポート 与えられたテーマは 絞ってよいか

    レポート課題があります。 A B C D テーマのどれかを選んでレポートをしなさいというものなんですけれど、 たとえば、Cを選んで、Cのいろいろな要素のなかのjという要素にのみ絞って書くというのは、一般に許されますか?

  • アクセスのレポートを使いまわせないのでしょうか?

    かなりの初心者です。なかなかのデザインのレポートをデザインしました。そして、まったく別のテーブルのデータ(項目はまったく同じ)をそのレポートにて印刷したいのですが、うまくいきません。そもそもそういう機能がないのでしょうか。レポートのテンプレート化は可能なのでしょうか?よろしくお願いいたします。

  • sr232cについて

    今度sr232cについてレポートを書くようにと課題が出たのですがネット上で検索してみてもsr232cについて見つかりませんでした。知っている方がいらっしゃいましたら、教えていただけないでしょうか?よろしくお願いします。

  • VB.NETでテンプレート関数・クラス

    VB.NET(.NET2.0ベース)でテンプレートを用いてクラスや関数を定義したいのですが、方法が分かりません。検索してもC#やC++ばかり出てきます。 C#が出てくるのだから、VBでも…と思いましたが、CILに展開される際、型毎に多重宣言でもしているんでしょうか? とりあえず、VB.NETでテンプレートの使い方をご教示頂ければ幸いです。