• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:必要な変数について)

プログラムの処理で必要な変数とは?初心者のコツとは?

このQ&Aのポイント
  • プログラムの処理の中で必要な値、パラメータを変数として用意しましょう。算数の一般式のような感じで考えると良いです。
  • プログラム初心者が他の人のプログラムを読むときに大切なのは、変数の流れを理解することです。
  • Webでの検索も有効ですが、プログラミングは感覚的なものなので、実際に手を動かして練習することが重要です。

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

  • ベストアンサー
回答No.4

 「状況によって変化するので、ある時点での値を記憶しておかないとプログラムが機能しなくなってしまうもの」があったら、それを変数として準備しなければならないと思います。この「状況によって変化するので」と「ある時点での値を記憶しておかないと」いう部分が重要です。そうでないものは、必ずしも変数を定義する必要はありません。これが変数を設置する最低ラインの条件です。変数を決めるのにコツはありません。きちんと変数を定義していないとプログラムが動かないわけですから。  でも質問者様が意図されている「コツ」はそういうものでは無いですよね。。。  私は思う「コツ」の一つは、質問文中に例として挙げられている「パラメータ」を上手に使うことと関連していると思います。「パラメータ」も、状況によって異なる値が入る性質のものです。  例えばの話で、中学校でやった二次関数を例に出します。 x^2 + 3x + 1 この場合、xが変数と呼ばれます。xをどんどん変えていくと放物線が描ける式です。「簡単すぎるよ」と思うかも知れませんが、ちょっと待ってください。  x^2で使われているxと、3xで使われているxは同じ値ですか? もし違っていたら、この二次関数は正しく計算できません。言い換えれば、「xは変数でなければならない」ということになります。「状況によって変化するので」と「ある時点での値を記憶しておかないと」が重要だ、というのはこういうことです。  この式では、x^2の係数1とxの係数3、それから切片1は決まってしまっています。これらは変数ではありません。プログラム上でも定数として扱うことができます。 ですが、プログラムの目的を「任意の係数と切片をもった二次関数を計算する」と変えて、汎用性を持たせたときには、先ほどの式は、 ax^2 + bx + c  と書き換えられます。このa,b,cを「パラメータ」という訳です。  人間が見れば、xとa,b,cとでは使われている目的が違うと言うことは一目瞭然なのですが、プログラム上ではxとa,b,cとは区別無く「変数」として扱うことになります。 というわけで、私の考えるコツの一つは「必要最低限の変数のほかに、どの値を変数(=パラメータ)とすれば処理に汎用性を与えられるか」ということです。  他の人のプログラムを読みながら勉強しているということなので、「なぜこの変数は定義されなければならなかったのか」「絶対に必要な変数なのか、意外とそうでもないのか」という視点で見てみてはどうでしょうか。

ymoshimoshi
質問者

お礼

分かりやすく丁寧に教えていただきまして、ありがとうございました。

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

その他の回答 (3)

  • kaoaru
  • ベストアンサー率33% (42/127)
回答No.3

>ひとつだけコツをどなたかに教えていただきたいです。 >現在他の人が書いたプログラムを読む練習をしています。 所謂コツというものはありません。 しかし、他人のソフトを読もうという考え方はとてもよろしいと思います。他人に「丸投げ」をするような質問がある中で・・・。 他人のソースコードを読む場合、その変数がどのように使われているのか?というのがひとつのキーではあります。 ソース中のそこに自分で調べたことをコメントとして書いていきます。 処理ルーチン内でも、自分で気づいた点をコメントとして書いていきます。 具体的にはたったそれだけのことです。 最初からあまり大きなプロジェクトにタッチしない、というのがポイントでもありますが・・・。 いつのまにか、それが自分の中でアレンジされて、自分のソースに反映できる・・・というワケです。

すると、全ての回答が全文表示されます。
  • tsunji
  • ベストアンサー率20% (196/958)
回答No.2

変数は必要だから使うのです。 パラメータとして準備するだけではなく、一時的に使用するもの、例えば一時的に値を保持するものであったり、forループのループカウンタとして使ったり、計算途中をデバッガで見るためだけだったりというのもあるので、プログラムの流れ的に必要ではないものもあったりします。 あと、ただ単に眺めるのではなく、フローチャートに起こしてみるとプログラムの流れがわかりやすくなりますよ。

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

こんにちは。 VB系だけで、その言語はなにか分かりませんが、 >"プログラムの処理の中で必要な値、パラメータを変数として挙げてみる" >"算数でよく使うx+y=10のように一般式を作るような感じで考えてみる" 変数とは、両方とも違うのではないでしょうか? パラメータは、いわゆる引き数です。 「算数のx+y=10」は、x と y を求めることですから、変数として使うこともありますが、算数の考え方とは違います。総当り制のプロクラムならありますが、必ずしもそこに変数が使われるとは限りません。変数とは、プログラム上で一定の変化する値です。 >他の人が書いたプログラムを読む練習をしています。 そもそも、そのアプローチの仕方が違っているのではないでしょうか? 掲示板で覚えた人の中には、最悪のコードを書く人がいます。何でも知っているのに、根本的な問題自体を認識しないのです。 時々、読んで覚えるという方がいらっしゃいますが、あなたが天才的な人ならともかく、プログラムは書いて、Run(実行して)、Try and Error でしか、覚えられないと思っています。 まず、教本でそのコードを真似ることから始まります。そして、練習問題で、自分で考えてコードを書いて、答え合わせをします。 >どういうものを変数として用意し、流れを書いていくかというコツ 私の書いている内容が、ご質問者さんの聞いている意味が違うかもしれません。もし、いわゆるコーディング・スタイルの話だとしたら、初心者のレベルではありません。 ただ、私自身が感じるのは、あるレベルに達した人は、だいたい同じようなコーディングになります。それがなぜなのかは分かりません。逆に、あるレベルに達していない人は、一定のルールも持たない、何でもありのコードになってしまいます。VB系は何でもありのようですが、やはり、それなりに一定のルールを持って書いている人が大半です。しかし、初心者の人には、何が正しく、何がダメなのかは分かりませんから、あまり掲示板のコードは参考にしないほうがよいです。囲碁などでいう、定石外しが多く存在しますから、そのようなコツを覚えても初心者には意味がありません。

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

関連するQ&A