【変数】コンピュータプログラムではメモリに名前を付けてそこに収めたデータを処理する

プログラミングの基礎

こんにちは。渡辺です。

以前、コンピュータの動作をざっくりと分けてみました。

<過去記事>

まずprint文に慣れる:画面に文字や数字を出力する

その先頭に選んだ動作は、これです。

  • 指定したメモリに数字を書き込んだり、別のメモリにコピーする

たとえば、コンピュータに100+200の計算をさせる場合をイメージしてみましょう。

コンピュータのメモリが学校の下駄箱みたいに、箱がズラーっと箱が並んでいる様子を想像してみてください。

ちなみにこのイメージがすんなり湧くなら、機械語のプログラミングができるかも(あまり使う機会はなさそうですが)。

まずメモリの先頭に100を入れます(以下のイメージ図だと「000000」番地です)。

次にメモリの2番目に200を入れます(以下のイメージ図だと「000001」番地です)。

そして、「000000」番地の内容と「000001」番地の内容を足して、その答えを「000002」番地に入れます。

 

どんな複雑なアプリでも、こんな単純な動きの組み合わせでできているわけです。

いちいち「000002」なんて指定できない(怒)! ならば最初から名前を付けよう

実際にプログラムを書く時には、たくさんの数字や文字、記号を計算したり動かしたり、変更したり・・・。

そのため、それぞれの数字や文字、記号を保存する場所として、たくさんのメモリを指定する必要があります。

いちいち性別は「000002」番地、年齢は「000003」番地に入れて、とか指定していたら、ひどく煩雑でプログラム開発にえらい時間が掛かります。

20世紀前半の超初期のコンピュータプログラマーは、こんな煩雑なことをしていたわけですが。

面倒くさいということは間違える確率が増えるということで、バグだらけ。これはコンピュータプログラムとしては致命的です。

なるべくシンプルに、楽にやることが結局、プログラムの質を高めることになります。

そこでプログラムを作るときは、最初にメモリに名前を付けてしまいます。

たとえば、長方形の面積を計算するプログラムを書く場合、計算式は「タテの長さ」×「ヨコの長さ」ですから、tateとyokoという名前をメモリに付けてみます。

そして例として、タテ8cm、ヨコ12cmであれば、’=’を付けて、そのメモリの中身はそれぞれ8と12にするよう、指定します。

tate = 8
yoko = 12

これでメモリ(数値を入れる器)が2つ用意され、そこに四角形の「タテの長さ」、「ヨコの長さ」を入れることができます。

計算して結果を表示するのは、すでに学習したprint()文を使います。

print(tate*yoko)

<過去記事>

Pythonを電卓代わりに使う : 2つの数の計算

「Run ‘study00’」で実行させると、96という計算結果が得られました。

別の値でも、最初の行と2番目の行を変えるだけでよい

このようにメモリに名前を付けて、必要に応じて数値とか文字を入れたり(この世界では「代入する」といいます)、それらの数値を計算したり、動かしたり、比較することで、コンピュータは処理を進めていきます。

このように名前を付けてデータを入れる容器のことを、「変数」と呼びます。

「変」とは、「変てこりん」ということでなく、「可変」、「いろいろ変わる」という意味で、中身を自在に変えたり、操作したりできるものです。

たとえば、ここで大きさの異なる別の長方形(タテ20cm、ヨコ25cm)の面積も計算するように依頼されたら、どうしますか?

真面目な人だと、新しくプログラムを作ろうとするかもしれません。

でも、すでに長方形の面積プログラムを1回作っているので、それを再利用すれば手っ取り早くプログラムができます。

上で作ったプログラムを以下のように変更するだけです。

tate = 8 20
yoko = 12 25
print(tate*yoko)

こんな短いプログラムだと有り難みが感じられないかもしれませんが、少なくても30文字打ち込まないといけないところが、数値の修正だけだと、4文字でできます。

変数はコンピュータプログラムの基本であり、うまく使うことで、分かりやすく効率の良いプログラムを書くことができます。

ちなみに変数は半角の英数字で好きな名前を付けることができますが、”print” のようなPythonプログラムですでに使われている単語はエラーになります。

<今日の要点ノート>

コンピュータプログラムは、数値やデータをメモリに入れて計算や処理を進める。メモリを使う時は、自分で分かりやすい名前(英数字)を付けることで、どこに何のデータがあるか把握できる。

コメント

  1. […] […]

タイトルとURLをコピーしました