- 締切済み
ルーチンとライブラリについて。
プログラムがあって、ABCBCDが、あってこのプログラム全体を、メインルーチン、BCをEとしてまとめたものを、サブルーチンで、AやDをルーチンとなっていますが、 状況によって(別プログラム)で 考えた時には、AやDがサブルーチンとなるプログラムは、どんなものでしょうか?教えていただけると助かります。すみません。意味不明でしたら、聞き返してください。教えていただけると助かります。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- superside0
- ベストアンサー率64% (461/711)
> AやDは、ただのルーチンとは言わないのでしょうか? 「サブルーチン」か「ルーチン」かというという分け方をすることはないですね。 サブルーチンの中にだって、特定の範囲をルーチンと呼ぶことはあるのですし。 ただ、前後の文脈として、 サブルーチンにしないでメインルーチンに直接記述してある部分を指して、 ここは「ただのルーチン」と説明してあっても ニュアンスとしては分かるかと思います。(正確な表現ではないにしても)
- superside0
- ベストアンサー率64% (461/711)
> Aをメインルーチン置いて、また、a b c b c dとなっていた場合、bとcをサブルーチンになって、a やdはルーチン(ただの)というのは、正しいのでしょうか? メインルーチン内で A E E Dと 記述してあるが Eは、処理BとCを行うサブルーチンの呼び出しになっていて これを実行すると、処理として A B C B C D の順で実行される という解釈で正しいか?という意味なら、それで 正しいです。 もしかして補足でのご質問の内容は、メインルーチン内で A E E D (Eは B とCを行うサブルーチン) と記述したとき AやDのことを「ルーチン」 Eのことを「サブルーチン」 と呼んでいるのは、正しいのかという意味なのでしょうか? もし、参考にされている記事かなにかで、 AやDのように メインルーチンに直接、処理を記述することを 「ルーチン」と呼んでいるのであれば、 (つまり、サブルーチンの対義語としてルーチンという言葉を使っているのであれば) 一般的な使い方でなく、その文章を書かれた人の独特な言い回しかなと思います。 ルーチンとは 処理の塊のことなので、 サブルーチンの中であっても、アルゴリズム単位で分けて 「このルーチンにバグがある」なんていう言い方もするし、 なので、メインルーチンに直接記述することを、ルーチンとは言わないと思いますよ。 (もしかして、その文書の但し書きで、略語としての「ルーチン」の定義を説明してあるとか、 事前の文章によっては 辻褄あうのかもしれませんが)
- superside0
- ベストアンサー率64% (461/711)
たとえば、 処理Aが初期化 処理Bがデータの入力 処理Cが計算 処理Dが結果の出力 があって、それを A B C B C D という順に処理を行う必要がある プログラムがあったとき、 処理Bと処理Cを Eというサブルーチンにまとめておけば メインルーチンに A E E Dの順で記述すれば 実際はA B C B C D の処理が行われます。 こうすることで、処理B と 処理Cを わざわざ2回も記述しないですみますし メンテナンスもしやすくなります。 > AやDがサブルーチンとなるプログラムは、どんなものでしょうか? 上記の 処理AをFというサブルーチン にし 処理DをGサブルーチンにしておいて メインルーチンでは、 F E E G と記述することで 実際には、A B C B C Dが処理されるようにするとことも可能です。 処理AやDは、1度し使わない処理ではありますが、 こうするメリットは 機能ごとにサブルーチンに分かれるのでプログラムの見通しがよくなる チームでプログラム開発するとき、担当者や機能ごとにファイルを分けることができる 他のプログラムでも使えそうなサブルーチンならば、共通ライブラリ化できる といったことでしょう。 演習での例題プログラムとか、小規模なプログラムなら、 わざわざ サブルーチンに分けたりしないこともありますけど、 基本的には、 機能のまとまりでサブルーチン化して 構造化する癖を付けておくと、よいかと思います。
補足
すみません。Aをメインルーチン置いて、また、a b c b c dとなっていた場合、bとcをサブルーチンになって、a やdはルーチン(ただの)というのは、正しいのでしょうか?教えていただけると助かります。すみません。
- watanabe04
- ベストアンサー率18% (295/1598)
メインルーチンは最初に呼び出されて これが終わるとプログラム全体が終わるものを言います。 サブルーチンはメインルーチンやサブルーチンから呼び出されて これが終わると呼び出されたメインルーチンやサブルーチンに帰るものを言います。 ライブラリーはサブルーチンの塊で1つの作業をするものを言います。
補足
そうです。そういうことです。AやDは、ただのルーチンとは言わないのでしょうか?教えていただけると助かります。すみません。