Sponsored Link
 
>>  Main > Programing > Primary > 0003

D言語入門 第03章 - 変数

#01 - 変数とは

今回は…

さて、今まではテキストな電卓程度のことしかプログラミングできませんでした。もっとプログラムらしいことをさせたいとは思いませんか?
ここで、もっと自由度を聞かせるために、「変数」についてのお話をしてみようと思います。
数学の変数について思うところのある方は、ぶっちゃけつまらないページなのでに急ぎましょう(笑)

今回のミソ

  • 「変数」とは変えられる数のこと
  • 数学で言えば x や y のこと
  • 値を入れる入れ物のようなもの
  • 変数と対象に、定まった数のことは「定数」という

内容

変数とは、変えることができる数字って言う意味で、数学で言えば x や y にあたります。
これが使えるようになると、ぐんとできることの幅が広がります。
プログラミングのミソといってもいいかもしれません。

変数と言うのは、平たく言うと入れ物です。
入れ物の中に値を入れます。
この値は基本好きなときに見ることができます。
便利です。
今まで使ってきた数字とかは、 5 とか 7 とか、見るからに数字ですって言うようなものばかりでした。
これは、数学やプログラミングの世界では「定数」と言います。いわゆる定まった数字です。この数は変えることができません。プログラムがその場所を通った時点ではいつも同じように判断されます。

ここで、変数と言う概念を導入します。すると、今まではずっと同じだった数を変えることができるようになります。つまり、入れ物の中身をかえてやるんです。
数学の変数では
3x + 2
となっていた場合、 x が変数となっています。
また、 3 や 2 は定数となります。
上の場合では、 x が3なら 3 * 3 + 2 = 11 で、 11 という計算結果になります。
また、 x が 5 なら 3 * 5 + 2 = 17 となり、計算結果は 17 です。
このように、変数の中身をかえてやることができれば、同じ書き方で、違った値をもらうことができるようになります。

まとめ

今回は文章オンリーです。 次のも文章のみです。 つまらないですね。 でも、この概念はとても大切なものなのです。
次は、プログラムの中で変数を使うに当たって必要な知識「型」について説明していきます。
文章ばかりで暇かもしれませんが、お付き合いくださいな。

#02 - プログラミングでの変数

今回は…

今回は、変数の方について説明します。
今まで、数値には「実数」や「整数」があり、また、「文字列」もあるなどといったことを解説しました。これは、プログラミングでは「型」と呼ばれています。
たとえばJavascriptやPerlなどといった言語には型は存在していません。大雑把にobjectやHASHなどといった区別はありますが、変数はすべて同じように扱うことができす。
しかし、D言語では、この変数の型は厳格に決められており、整数型には、整数しか格納できず、文字列型には文字列しか格納できません。
不便と思う人もいるかもしれませんが、D言語はそうなのです。あきらめましょう。
余談ですが、反対に型のない言語もあります。タイプルーズな言語とか呼ばれる言語です。先に紹介した、Javascript、Perlなんかですね。

今回のミソ

  • 型の対応は次のようになっています
    • 整数 … int
    • 実数 … real
    • 文字列 … char[]

内容

う~ん、なんというか、今回のミソでほとんど今回の内容完璧に物語っているような気もしますが…
一応補足です。

整数型の変数を定義するには、 int というものを使います。
実数では real で、
文字列は char[] です。
実数な変数 x を定義したければ、次のようにします
real x; まぁ、詳しくは次回のプログラムを見ればわかると思います。

まとめ

次回は、実際のプログラムを通して変数のありがたさを実感してみようかと思います。
やる内容は、「円の面積」を「半径」から求めるプログラムです。
数学の内容で行けば、
S = 2πr2
ですね。
S が円の面積をあらわす変数、
πは円周率を表す定数
r は円の半径をあらわす変数
と言う風になっています。

では、それを踏まえたうえで、お次へどうぞ~。

#03 - 変数の使い方

今回は…

変数を使ってようやっとプログラムを組んで見ます。
でもまあ、今回は一応使ってみる程度で、変数を使わなくても同じようなことが一応できるのですが…とりあえず…ね。

今回のミソ

  • = は、数学的な「左辺と右辺は等しい」という意味ではなく、「右辺の値を左辺の変数に代入する」という意味。
  • 変数名; // で変数の定義
  • 変数 = 値; // で変数に値を代入
  • 変数名 = 初期値; // で変数の定義+変数の初期化
  • 変数には型ごとに初期値が決まっている
  • int型の初期値は 0
  • 文字列を代入するときは.dupでコピーしたものを代入する。(なぜこうするかは今はおまじない。)
  • 一応初期値はあるけれど、期待通りの動作をさせたいならとりあえず初期化しましょう。

サンプルコード

// おまじない
import std.stdio;

// おまじない
int main(char[][] args)
{
    // int型(整数型)の変数 a の定義
    int a;
    
    // a に 10を代入。
    a = 10;
    
    // writef で出力すると、10と表示されることがわかる。
    writefln(a);
    
    
    // real型(実数型)の変数 b の定義+初期化
    real b = 3.5;
    
    // writef で出力すると、3.5と表示されることがわかる。
    writefln(b);
    
    
    // 変数 b に別の数値を割り当てることもできる。
    b = 1.8;
    // 1.8と表示される。
    writefln(b);
    
    // 変数 b に b を使って新しい数値を代入する
    // この例では 1.8 + 2.5 なので b の値は 4.3 ということになる
    b = b + 2.5;
    
    // 文字列の変数は、次のように定義。
    char[] c;
    
    // 文字列を代入
    c = "文字列の代入".dup;
    
    // 出力。「文字列の代入」と表示される
    writefln(c);
    // 書式も使える。
    writefln("%s+書式で出力", c);
    
    // 文字列を、ほかの文字列とつなげる。
    // c は「文字列の代入+文字列の連結」になる。
    c = c ~ "+文字列の連結";
    // 出力
    writefln(c);
    
    // 整数の初期値は 0
    int d;
    // 0と表示されます。
    writefln(d);
    
    // おまじない
    return 0;
}

実行結果

10
3.5
1.8
文字列の代入
文字列の代入+書式で出力
文字列の代入+文字列の連結
0

まとめ

というわけで、今回は編集を使って出力をしてみました。
今回のこと程度では前回の計算とあわせて電卓が多少楽になった程度でしょう。
次章ではこの変数を使って、入力するといったことをやっていこうと思います。
とりあえず今回は以上でーす。
お次へどうぞー

#summary - まとめ

第03章のミソ

  • 「変数」とは変えられる数のこと
  • 数学で言えば x や y のこと
  • 値を入れる入れ物のようなもの
  • 変数と対象に、定まった数のことは「定数」という
  • 型の対応は次のようになっています
    • 整数 … int
    • 実数 … real
    • 文字列 … char[]
  • = は、数学的な「左辺と右辺は等しい」という意味ではなく、「右辺の値を左辺の変数に代入する」という意味。
  • 変数名; // で変数の定義
  • 変数 = 値; // で変数に値を代入
  • 変数名 = 初期値; // で変数の定義+変数の初期化
  • 変数には型ごとに初期値が決まっている
  • int型の初期値は 0
  • 一応初期値はあるけれど、期待通りの動作をさせたいならとりあえず初期化しましょう。

宿題

変数を使って、一辺5の立方体の底面積と体積を求めてみましょう。
底面積 : 25
体積 : 125
というような出力結果が得られるはずですね。

コメント

さてさて、できましたかな~?
とりあえず、変数はとてもよく使うので、変数の何たるかはどうでもいいとしても、使い方は覚えておきましょう。
そんなわけで、宿題できたら、あるいは予想ついたら次にいきましょう~

ページトップ / 目次 / 次へ
Copyright©SHOO All rights reserved. / LastModified : 2007/12/12(水)[06:09:30]