• ベストアンサー

メインルーチンとサブルーチンについて。

すみません。メインルーチンは、どの言語でもどのプログラムでも必ずあるものなのでしょうか?ご教授頂けると幸いです。すみませんが。

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5129/13395)
回答No.18

> 例えば、excelの中には、マクロの保存や、名前をつけて保存などが、共通の処理を集めたプログラムという事でしょうか? そういった共通の処理はライブラリを利用している可能性が高いですね。

zasx1098
質問者

補足

それが、サブルーチンを集めた処理という事でしょうか?ご教授頂けると幸いです。すみません。

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

その他の回答 (17)

  • SPROCKETER
  • ベストアンサー率26% (2061/7704)
回答No.7

簡単に言いますと、何度も繰り返し呼び出して使う処理系をサブルーチンとか、プロシージャと言います。それに対して、サブルーチンを呼び出す側の処理系をメインルーチンと呼びます。メインルーチンのプログラムはほとんどがサブルーチンを呼び出すCALL命令で出来ている例が多く、他にフラグ判定命令、比較命令、条件分岐命令などで構成されています。  サブルーチンを作らずに、全てのプログラムを1本で作り上げる事も可能ですが、わかりにくくなるので、メインルーチンとサブルーチンに分けて作るのが普通です。

zasx1098
質問者

お礼

CALL命令とは何でしょうか?ご教授頂けると幸いです。すみませんが。それは、サブルーチンのどの様な時に使うのでしょうか?ご教授頂けると幸いです。すみませんが。

zasx1098
質問者

補足

どのくらいの行とかは、無いのでしょうか?ご教授頂けると幸いです。すみませんが。一体どういう時に、メインルーチンとサブルーチンは分けるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • t_ohta
  • ベストアンサー率38% (5129/13395)
回答No.6

主たるアプリケーションとして作られるプログラムには必ずメインルーチンが存在します。 プログラミング言語が何かは関係ありません。 しかしアプリケーションプログラムから呼び出されるライブラリにはメインルーチンは存在せず、アプリケーションから呼び出されるサブルーチンだけで構成されます。

zasx1098
質問者

補足

アプリケーションから呼び出されるライブラリとは何でしょうか?ご教授頂けると幸いです。すみませんが。

全文を見る
すると、全ての回答が全文表示されます。
  • watanabe04
  • ベストアンサー率18% (295/1597)
回答No.5

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

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

ルーチン=きめられた事を行うこと プログラム=物事を行う手順のもくろみ。予定の計画表。 つまりプログラムの中身がルーチンであり、全体をまとめたルーチンがメインルーチンで、個別処理がサブルーチンとなります。 メインルーチンで何度も何度も同じ一定の長さの演算方法を使う場合、メインルーチンに全て書くと、プログラムが長くなりますが、サブを呼び出して使うというやり方ならメインルーチンは短くなります、つまりメモリの効率化、高速化のためサブルーチンを使います。 又プログラムが無ければ、ルーチンはぐちゃぐちゃになります(無計画)、ルーチンだけではどの手順で行うかが不明確になり、何をやればよいかわからなくなります。 これはコンピューターに限らず。ある製品(車)の製造に関して、完成手順と統括管理がプログラムです、メインルーチンは主たる組み立てのルーチンワークです。 サブルーチンはタイヤの製造、エンジンの製造、内装の製造、ガラスの製造などと考えて下さい、メインルーチンですべてやるには莫大な作業量と作業場所が必要で無駄も多くなります。 サブルーチンとして専業メーカーを使うことで、大幅にメインルーチンの負担は減ります。 無論他の仕事においても、計画立案と管理の中で会社でメインルーチンを行い、専門業者にサブルーチンを委託します。

zasx1098
質問者

補足

つまり、どの言語でも、どのプログラムでも必ずメインルーチンは、必ず存在するのですね?ご教授頂けると幸いです。すみませんが。

全文を見る
すると、全ての回答が全文表示されます。
  • Kaneyan-R
  • ベストアンサー率42% (1277/2972)
回答No.3

メインルーチン(メインプログラム)とは、そのプログラムの中で最も重要なフローを管理するプログラムの事で、すべてのプログラムでメインルーチンは存在しています。 サブルーチン(サブプログラム)とは、同じ処理が複数回登場するような場合、プログラム内に入れてしまうと、プログラムが長くなり、その処理を修正したい場合にすべての箇所を修正する必要が出てしまい、メンテナンス性が悪くなります。 二、三回出てくるならまだしも、二十、三十回出てくる処理ならどうするか。数千行のプログラムの中から三十数箇所を探すことは、非効率です。 なので、その処理をサブルーチン化すれば、そのサブルーチンのみ修正すれば良く、メインルーチンは一切触らなくても良くなります。 当然修正がサブルーチンの処理に起因する場合に限ります。原因がメインルーチンからの引数に起因する場合は、メインルーチンを触る必要がありますが、「メインルーチンからの引数が原因」と特定するためには、サブルーチンの処理が正しく行われている事を確認する必要があります。

zasx1098
質問者

補足

つまり、どの言語でも、どのプログラムでも必ずメインルーチンは、必ず存在するのですね?ご教授頂けると幸いです。すみませんが。

全文を見る
すると、全ての回答が全文表示されます。
  • watanabe04
  • ベストアンサー率18% (295/1597)
回答No.2

OSから呼び出すのがメインルーチンなので必ずあります。 (メインというルーチン名を書かない場合はあります)

zasx1098
質問者

補足

メインというルーチン名を書かない場合はありますとは、どういうことでしょうか?例を示していただけないでしょうか?ご教授頂けると幸いです。すみませんが。

全文を見る
すると、全ての回答が全文表示されます。
  • ngwaver
  • ベストアンサー率26% (323/1202)
回答No.1

ない場合もある

zasx1098
質問者

補足

ない場合はがあるとは、どういうことでしょうか?ご教授頂けると幸いです。すみませんが。

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

関連するQ&A

  • メインルーチンについて。

    メインルーチンとは何でしょうか?メインルーチン単体で使う事はあるのでしょうか?ご教授下さい。すみませんが。サブルーチンがない場合は、どうなるのでしょうか?ご教授下さい。すみませんが。

  • ルーチンについて。

    例えば、ABCBCDというプログラムがあって、BCをサブルーチン化して、Eとおいて、AEEDとした時、AとDは、ただのルーチンというのでしょうか?それとも、メインルーチンと言ってもいいのでしょうか?教えていただけると幸いです。すみません。

  • ルーチンとライブラリについて。

    例えば、ABCBCDというプログラムがあって、BCをEというサブルーチンにしておいて、Aは、abcbcdというプログラムになっているので、Aは、メインルーチンといってもいいのでしょうか?Dも同様でしょうか?教えていただけると幸いです。すみません。

  • メインルーチンの変数をモジュールに渡す

    Perlの勉強をし始めの者なんで、恥ずかしい質問ですけど・・・ モジュールの使い方です。 以下のプログラムではTest_module.pmで定義した変数$testをメインルーチンでprintしています。 ***** メインルーチン *****  #perl /usr/bin/perl  use Test_module;  our $test=10;  print $Test_module::test; ***** Test_module.pm *****  package Test_module;  our $test=10;  1; これはちゃんと動いています。 ところが逆にメインルーチンで定義した変数$testをTest_module.pmに渡そうとすると、うまくいきません。 以下のプログラムをどう直せばいいのでしょうか。 ***** メインルーチン *****  #perl /usr/bin/perl  use Test_module;  our $test=10;  &Test_module::print_test(); ***** Test_module.pm *****  package Test_module;  sub print_test {  print $Main::test;  }  1;

    • ベストアンサー
    • Perl
  • メインルーチンとサブルーチンについて。

    これについてご教授下さい。例を示していただきたいです。後、以下のURL、はなぜ、メンルーチンしか使っていないのでしょうか?ご教授下さい。 Link: http://codepad.org/Oxfd5gz9

  • メインルーチンとサブルーチンについて。

    これについてご教授下さい。例を示していただきたいです。後、以下のURL、はなぜ、メンルーチンしか使っていないのでしょうか?ご教授下さい。 Link: http://codepad.org/Oxfd5gz9 で、#include<stdio.h> void sub_1(int i){ printf("%d\n",++i); } int main(void){ int i = 1; printf("%d\n",i); sub_1(i); printf("%d\n",i+2); return 0; これは、どう言う意味になるのでしょうか?ご教授下さい。すみませんが。 このURLからです。 https://sp.okwave.jp/qa/q9852335.html

  • ルーチンとライブラリについて。

    プログラムがあって、ABCBCDが、あってこのプログラム全体を、メインルーチン、BCをEとしてまとめたものを、サブルーチンで、AやDをルーチンとなっていますが、 状況によって(別プログラム)で 考えた時には、AやDがサブルーチンとなるプログラムは、どんなものでしょうか?教えていただけると助かります。すみません。意味不明でしたら、聞き返してください。教えていただけると助かります。

  • ルーチンについて。

    例えば、ABCBCDというプログラムがあって、BCをEというサブルーチンにしておいて、Aは、abcbcdというプログラムになっているので、Aは、ルーチンといってもいいのでしょうか?Dも同様でしょうか?教えていただけると幸いです。すみません。

  • 「ルーチン」という言葉の意味

    私は、C言語を勉強中のものですが、 「ルーチン」という言葉は具体的にどういう意味なのですか、 お教えください。 C言語では、「関数」と同義語でしょうか。 「新ANSI C言語辞典」(平林雅英 著、 技術評論社)の「ルーチン」の説明: 定められた処理をするためのプログラムのひとかたまり

  • ルーチンとプログラムについて。

    ルーチンとは、コード(Aプログラム、BプログラムCプログラム等)の集まりで、ライブラリは入れ物という解釈であっていますでしょうか?教えていただけると助かります。すみません。

標準保証の内容を知りたい
このQ&Aのポイント
  • 1ヵ年の標準保証の内容を知りたい。センドバックなのか?オンサイトなのか?
  • 接続方法や関連するソフト・アプリなどの詳細も教えてください。
  • ブラザー製品に関する質問です。
回答を見る