今回は…
さて、今まではテキストな電卓程度のことしかプログラミングできませんでした。もっとプログラムらしいことをさせたいとは思いませんか?
ここで、もっと自由度を聞かせるために、「変数」についてのお話をしてみようと思います。
数学の変数について思うところのある方は、ぶっちゃけつまらない回なので次に急ぎましょう
内容
変数とは、変えることができる数字って言う意味で、数学で言えば x や y にあたります。
これが使えるようになると、ぐんとできることの幅が広がります。
プログラミングのミソといってもいいかもしれません。
変数と言うのは、平たく言うと入れ物です。
入れ物の中に値を入れます。
この値は基本好きなときに見ることができます。
便利です。
今まで使ってきた数字とかは、 5 とか 7 とか、見るからに数字ですって言うようなものばかりでした。
これは、数学やプログラミングの世界では「定数」と言います。いわゆる定まった数字です。この数は変えることができません。プログラムがその場所を通った時点ではいつも同じように判断されます。
ここで、変数と言う概念を導入します。すると、今まではずっと同じだった数を変えることができるようになります。つまり、入れ物の中身をかえてやるんです。
数学の変数では
3x + 2
となっていた場合、 x が変数となっています。
また、 3 や 2 は定数となります。
上の場合では、 x が3なら
3 * 3 + 2 = 11
で、 11 という計算結果になります。
また、 x が 5 なら
3 * 5 + 2 = 17
となり、計算結果は 17 です。
このように、変数の中身をかえてやることができれば、同じ書き方で、違った値をもらうことができるようになります。
まとめ
今回は文章オンリーです。 次のも文章のみです。 つまらないですね。 でも、この概念はとても大切なものなのです。
次は、プログラムの中で変数を使うに当たって必要な知識「型」について説明していきます。
文章ばかりで暇かもしれませんが、お付き合いくださいな。
今回は…
今回は、変数の型について説明します。
今まで、数値には「実数」や「整数」があり、また、「文字列」もあるなどといったことを解説しました。これは、プログラミングでは「型」と呼ばれています。
たとえばJavascriptやPerlなどといった言語には型は存在していません。大雑把にobjectやHASHなどといった区別はありますが、変数はすべて同じように扱うことができす。
しかし、D言語では、この変数の型は厳格に決められており、整数型には、整数しか格納できず、文字列型には文字列しか格納できません。
不便と思う人もいるかもしれませんが、D言語はそうなのです。あきらめましょう。
余談ですが、反対に型のない言語もあります。タイプルーズな言語とか呼ばれる言語です。先に紹介した、Javascript、Perlなんかですね。
内容
う~ん、なんというか、今回のミソでほとんど今回の内容完璧に物語っているような気もしますが…
一応補足です。
整数型の変数を定義するには、 int というものを使います。
実数では real で、
文字列は char[] です。
実数な変数 x を定義したければ、次のようにします
real x; まぁ、詳しくは次回のプログラムを見ればわかると思います。
まとめ
次回は、実際のプログラムを通して変数のありがたさを実感してみようかと思います。
やる内容は、「円の面積」を「半径」から求めるプログラムです。
数学の内容で行けば、
S = πr2
ですね。
S が円の面積をあらわす変数、
πは円周率を表す定数
r は円の半径をあらわす変数
と言う風になっています。
では、それを踏まえたうえで、お次へどうぞ~。
今回のミソ
- = は、数学的な「左辺と右辺は等しい」という意味ではなく、「右辺の値を左辺の変数に代入する」という意味。
- 変数の定義の仕方は…
型 変数名; // で変数の定義
- 変数に値を代入するには…
変数 = 値; // で変数に値を代入
- 型 変数名 = 初期値; // で変数の定義+変数の初期化
- 変数には型ごとに初期値が決まっている
- int型の初期値は 0
- 文字列を代入するときは.dupでコピーしたものを代入する。(なぜこうするかは今はおまじない。)
- 一応初期値はあるけれど、期待通りの動作をさせたいならとりあえず初期化しましょう。
サンプルコード
sample0303p.d
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | - ! - - | ! - | ! | - | | ! | - | | | | | | ! | | ! |
|
Tango用はこちら |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | - ! - - | ! - | ! | - | | ! | - | | | | | | ! | | ! |
|
まとめ
というわけで、今回は変数を使って出力をしてみました。
今回のこと程度では前回の計算とあわせて電卓が多少楽になった程度でしょう。
次章ではこの変数を使って、入力するといったことをやっていこうと思います。
とりあえず今回は以上でーす。
お次へどうぞー
サンプルコード
sample0304p.d
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | - ! - - ! | - ! | - ! | | - ! | - ! | | - ! - ! | - | ! | - ! | - ! | - ! - ! | - | ! - ! | - ! - ! | - ! ! |
|
Tango用はこちら |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | - ! - - ! | - ! | - ! | | - ! | - ! | | - ! - ! | - | ! | - ! | - ! | - ! - ! | - | ! - ! | - ! - ! | - ! ! |
|
実行結果
1 2 3 4 5 6 7 8 |
|
まとめ
今回は前回の内容を掘り下げて、さまざまな型やパターンで変数を取り扱いました。
特に以下のようなパターンは理解が難しいかと思いますので、いろいろ試しながら理解を深めていってください。
|
とりあえず今回はこれで終わりでーす。
お次へどうぞー
第03章のミソ
- 「変数」とは変えられる数のこと
- 数学で言えば x や y のこと
- 値を入れる入れ物のようなもの
- 変数と対象に、定まった数のことは「定数」という
- 型の対応は次のようになっています
- 整数 … int
- 実数 … real
- 文字列 … char[]
- = は、数学的な「左辺と右辺は等しい」という意味ではなく、「右辺の値を左辺の変数に代入する」という意味。
- 変数の定義の仕方は…
型 変数名; // で変数の定義
- 変数に値を代入するには…
変数 = 値; // で変数に値を代入
- 型 変数名 = 初期値; // で変数の定義+変数の初期化
- 変数には型ごとに初期値が決まっている
- int型の初期値は 0
- 文字列を代入するときは.dupでコピーしたものを代入する。(なぜこうするかは今はおまじない。)
- 一応初期値はあるけれど、期待通りの動作をさせたいならとりあえず初期化しましょう。
- 数値や文字列など、さまざまなものに変数を使用することができる。
コメント
さてさて、できましたかな~?
とりあえず、変数はとてもよく使うので、変数の何たるかはどうでもいいとしても、使い方は覚えておきましょう。
そんなわけで、宿題できたら、あるいは予想ついたら次にいきましょう~
投票とコメント
Show recent 10 comments. Go to the comment page.
Page Info | |
---|---|
Page Name : | Articles/D言語入門講座/第03章 - 変数 |
Page aliases : | None |
Page owner : | SHOO |
Can Read | |
Groups : | All visitors |
Users : | All visitors |
Can Edit | |
Groups : | No one |
Users : | SHOO |