- ベストアンサー
メインルーチンとサブルーチンについて。
すみません。メインルーチンは、どの言語でもどのプログラムでも必ずあるものなのでしょうか?ご教授頂けると幸いです。すみませんが。
- みんなの回答 (18)
- 専門家の回答
質問者が選んだベストアンサー
> 例えば、excelの中には、マクロの保存や、名前をつけて保存などが、共通の処理を集めたプログラムという事でしょうか? そういった共通の処理はライブラリを利用している可能性が高いですね。
その他の回答 (17)
- SPROCKETER
- ベストアンサー率26% (2125/7983)
簡単に言いますと、何度も繰り返し呼び出して使う処理系をサブルーチンとか、プロシージャと言います。それに対して、サブルーチンを呼び出す側の処理系をメインルーチンと呼びます。メインルーチンのプログラムはほとんどがサブルーチンを呼び出すCALL命令で出来ている例が多く、他にフラグ判定命令、比較命令、条件分岐命令などで構成されています。 サブルーチンを作らずに、全てのプログラムを1本で作り上げる事も可能ですが、わかりにくくなるので、メインルーチンとサブルーチンに分けて作るのが普通です。
お礼
CALL命令とは何でしょうか?ご教授頂けると幸いです。すみませんが。それは、サブルーチンのどの様な時に使うのでしょうか?ご教授頂けると幸いです。すみませんが。
補足
どのくらいの行とかは、無いのでしょうか?ご教授頂けると幸いです。すみませんが。一体どういう時に、メインルーチンとサブルーチンは分けるのでしょうか?
- t_ohta
- ベストアンサー率38% (5238/13705)
主たるアプリケーションとして作られるプログラムには必ずメインルーチンが存在します。 プログラミング言語が何かは関係ありません。 しかしアプリケーションプログラムから呼び出されるライブラリにはメインルーチンは存在せず、アプリケーションから呼び出されるサブルーチンだけで構成されます。
補足
アプリケーションから呼び出されるライブラリとは何でしょうか?ご教授頂けると幸いです。すみませんが。
- watanabe04
- ベストアンサー率18% (295/1598)
import os for bbb in range(110,130,1): aaa=500 filename='/{0}/{1}/test.dat'.format(aaa,bbb) aaa=(aaa-350)/25 bbb=(bbb-110) print (aaa, bbb) これはpython
- kimamaoyaji
- ベストアンサー率26% (2801/10379)
ルーチン=きめられた事を行うこと プログラム=物事を行う手順のもくろみ。予定の計画表。 つまりプログラムの中身がルーチンであり、全体をまとめたルーチンがメインルーチンで、個別処理がサブルーチンとなります。 メインルーチンで何度も何度も同じ一定の長さの演算方法を使う場合、メインルーチンに全て書くと、プログラムが長くなりますが、サブを呼び出して使うというやり方ならメインルーチンは短くなります、つまりメモリの効率化、高速化のためサブルーチンを使います。 又プログラムが無ければ、ルーチンはぐちゃぐちゃになります(無計画)、ルーチンだけではどの手順で行うかが不明確になり、何をやればよいかわからなくなります。 これはコンピューターに限らず。ある製品(車)の製造に関して、完成手順と統括管理がプログラムです、メインルーチンは主たる組み立てのルーチンワークです。 サブルーチンはタイヤの製造、エンジンの製造、内装の製造、ガラスの製造などと考えて下さい、メインルーチンですべてやるには莫大な作業量と作業場所が必要で無駄も多くなります。 サブルーチンとして専業メーカーを使うことで、大幅にメインルーチンの負担は減ります。 無論他の仕事においても、計画立案と管理の中で会社でメインルーチンを行い、専門業者にサブルーチンを委託します。
補足
つまり、どの言語でも、どのプログラムでも必ずメインルーチンは、必ず存在するのですね?ご教授頂けると幸いです。すみませんが。
- Kaneyan-R
- ベストアンサー率42% (1340/3127)
メインルーチン(メインプログラム)とは、そのプログラムの中で最も重要なフローを管理するプログラムの事で、すべてのプログラムでメインルーチンは存在しています。 サブルーチン(サブプログラム)とは、同じ処理が複数回登場するような場合、プログラム内に入れてしまうと、プログラムが長くなり、その処理を修正したい場合にすべての箇所を修正する必要が出てしまい、メンテナンス性が悪くなります。 二、三回出てくるならまだしも、二十、三十回出てくる処理ならどうするか。数千行のプログラムの中から三十数箇所を探すことは、非効率です。 なので、その処理をサブルーチン化すれば、そのサブルーチンのみ修正すれば良く、メインルーチンは一切触らなくても良くなります。 当然修正がサブルーチンの処理に起因する場合に限ります。原因がメインルーチンからの引数に起因する場合は、メインルーチンを触る必要がありますが、「メインルーチンからの引数が原因」と特定するためには、サブルーチンの処理が正しく行われている事を確認する必要があります。
補足
つまり、どの言語でも、どのプログラムでも必ずメインルーチンは、必ず存在するのですね?ご教授頂けると幸いです。すみませんが。
- watanabe04
- ベストアンサー率18% (295/1598)
OSから呼び出すのがメインルーチンなので必ずあります。 (メインというルーチン名を書かない場合はあります)
補足
メインというルーチン名を書かない場合はありますとは、どういうことでしょうか?例を示していただけないでしょうか?ご教授頂けると幸いです。すみませんが。
- ngwaver
- ベストアンサー率26% (324/1203)
ない場合もある
補足
ない場合はがあるとは、どういうことでしょうか?ご教授頂けると幸いです。すみませんが。
- 1
- 2
補足
それが、サブルーチンを集めた処理という事でしょうか?ご教授頂けると幸いです。すみません。