【第6章】誤操作を防ぐ工夫(1)
2020.03.22

 さて、前章で学んだストリングやPRINT命令の様々な使い方を活用して、台形の面積を求めるプログラムを作ってみましょう。ここではオペレータの誤操作をできるだけ防ぐ工夫についてもお話します。
 台形の面積は、上底をa、下底をb、高さをhとしたとき、


(a+b)×h÷2
で求められました。

プログラムは次のようになりますね。

   INPUT A
   INPUT B
   INPUT H
   S=(A+B)*H/2
   PRINT S
   END


 図6_2.実行結果


[できる限り誤操作対策をしよう]

 このプログラムを実行すると図6_2のようになります。プログラム中にINPUT命令が3回でてきますから、実行すると図のような入力ボックスが3回現れます。INPUT命令が多いと、それだけ現れる入力ボックスも多くなり、オペレータがそのプログラムを作った当人なら別として、そうではないときは「今ここで何のデータを入力するのか」がわかりにくくなります。また、実行画面も何が何だかわからなくなってきます。それは誤操作を招きやすくなるということでもあります。筆者の経験で言うと、コンピュータから個人情報などが漏洩するトラブル、システム全体をダウンさせたなどの原因の半分以上は誤操作によるものです。そして「操作がわかりにくい」「画面が見づらい」は誤操作を招く最大要因です。
 このプログラムを次のように改造して実行しましょう。

   PRINT "台形の面積を求める"
   INPUT "上底=";A
   INPUT "下底=";B
   INPUT "高さ=";H
   S=(A+B)*H/2
   PRINT
   PRINT "面積=";S
   END

 1行目ではこのプログラムが何のプログラムかを画面に表示しています。これを表示することにより、今ここで実行してよいプログラムかどうかオペレータに確認させるようにします。ここの実習ではそんな危険なプログラムは扱いませんが、実際のシステムでは、今ここで実行してはいけないプログラムを誤実行(誤操作の最も酷いもの)してシステムダウンを引き起こした、などというケースもあるからです。LINEなどのSNSでは送信相手の名前が画面上に表示されるようになっていますが、あれも誤操作・誤実行防止のためです。「今から帰る、愛してるよ、chu」と奥様に送るのを間違えて学生のグループに送信してしまったら?・・・明日からどのツラ下げて出勤するんだ!ということになります。
 プログラムの始めに「何のプログラムか」を表示させるようにする、これも習慣づけておきましょう。
 2行目のINPUT命令が実行されると、キーボードからの入力待ちになりますが、このとき入力ボックスと実行画面の両方に INPUT の後ろのストリングがそのまま表示されていることを確認してください(図6_3)。


図6_3.上底を入れるところ


 上底の値(この例は10)と入れてOKをクリックするとプログラムは先に進み、次は3行目のINPUT命令で下底の入力待ちになります(図6_4)。


図6_4.下底を入れるところ

 下底の値(この例は15)と入れてOKをクリックするとプログラムはさらに先に進み、次は4行目のINPUT命令で高さの入力待ちになります(図6_5)。

図6_5.高さを入れるところ

 高さの値(この例は4)を入れてOKをクリックするとプログラムは5行目に進み、ここまでで入れた上底、下底、高さをもとに台形の面積を計算します。
 そして最後に7行目で計算結果をディスプレイに表示します(図6_6)

図6_6.計算結果が表示された

 このようにキーボードからの入力待ちのところで、何のデータを入れるのかを表示することで、操作がわかりやすくなり、誤操作防止になります。
 尚、前章のサンプルにはありませんでしたが、INPUT命令ではストリングも扱えます。たとえば
INPUT "お名前は";NAMAE$
のようにすると、キーボードからの入力内容をストリングとしてNAMAE$に代入します。ストリングを代入する変数は、変数名の後ろに $ を付けるのを忘れないように。

[INPUT命令の便利な使い方]

Tiny BASICのINPUT命令は、次のような書き方ができます。

INPUT ストリング , 変数名
INPUT ストリング ; 変数名


 ストリングと変数名の区切りには , と ; が使えます。 , の場合はストリングが表示されるだけですが(図6_7)、 ; にするとストリングの後ろに?マークが付加されます(図6_8)。


図6_7.INPUT ストリング , 変数の場合


図6_8.INPUT ストリング ; 変数の場合



[入力→処理→出力]

 コンピュータに何らかのデータを入れることを入力といい、コンピュータで処理した結果をディスプレイに表示したりプリンタで印字することを出力といいます。今後は当カテゴリーでもこの言い方をすることにします。


図6_9.コンピュータのプログラムの基本は入力→処理→出力

 そしてコンピュータのプログラムは、銀行のシステムのような巨大なものから、ゲームのようなホビープログラム、ここでのサンプルに出てくる小規模なものまですべて、入力→処理→出力という流れが基本になります。この章のサンプルプログラムなら、INPUT命令で上底、下底、高さを読み込む所が入力、台形の面積を計算する所が処理、計算した結果をPRINT命令で表示する所が出力です。

[この章のまとめ]

操作がわかりにくい、画面が見づらい、は誤操作を招く最大要因である

プログラム中には、誤操作・誤実行防止の対策を施しておくことがのぞましい

INPUT命令は INPUT ストリング,(または ; )変数、という使い方ができる

コンピュータに何かのデータを入れることを入力、処理した結果を表示(印字)することを出力という

コンピュータによるデータ処理の基本は入力→処理→出力という流れである

【演習3】直方体の底面積と体積を求めるプログラムを作りなさい。底面のたてとよこ、立体の高さはキーボードから入力するものとします。ただし画面の見やすさを工夫し、誤操作・誤実行対策を施すこと

【第5章】文字列を扱う(1)
2020.03.21

[ストリングとは] 


 ずっと堅苦しい話が続きましたので、Tiny BASICを使ってもうちょっと楽しいことをやってみましょう。


図5_1.文字を画面に表示する

 ここまでずっと数値データばかり扱ってきました。変数に代入するのもPRINT命令で画面に表示するのもすべて数値のみでした。この章では画面に数値以外の文字を表示したり、文字データを扱うことを覚えましょう。まずは図5_1のように画面に文字を表示する方法です(思いっ切り筆者の趣味が入ったサンプルで申し訳ありません・・・汗)。これは、画面に何か表示するのだから PRINT命令を使うのかな、はい、そのとおりです。ではやってみましょう。プログラムはこうなるはず。では作って実行してみてください。

   PRINT C62型は国鉄で最後に作られた蒸気機関車
   END


図5_2.実行したらエラーになった

 
 実行したらこうなってしまいました(図5_2)。では次のように直してください。
   PRINT "C62型は国鉄で最後に作られた蒸気機関車"
   END
 どこが違うのかわかりますか。そうです。「C62型は」の前と「機関車」の後ろに"(ダブルクォーテーションまたは引用符とよばれる)が入っています。この" "で囲まれたものを文字列とか文字リテラルストリングと呼びます。当カテゴリーでは今後ストリングといいます。プログラミング言語ではストリングもまた「式」です。ストリングであることを示す引用符はTiny BASICでは"(ダブルクォーテーション)のみです。プログラミング言語によっては'(シングルクォーテーション)が使えるものもありますが、Tiny BASICでは ' は別の意味を持つのでご注意ください。引用符は始めも終わりも " です。日本語の「 」のように始め終わりの区別がありません。
 最初の例がエラーとなった原因ですが、PRINT命令は続くオペランド(式)が数値、計算式、関数、ストリング以外のときはすべて変数とみなします。この場合だと「C62型~機関車」が" "で囲まれていないのでストリングではなく変数とみなされます。変数名は半角英数字という規則がありました(第2章)。なので「これは何?」ということでエラーになってしまったというわけです。
 では次のようなプログラムはどういう結果になるでしょうか。考えてみてください。

   PRINT 50+30
   PRINT "50+30"
   END

 結果は図5_3のようになります。1行目のPRINT命令のオペランドの内容は 50+30 の計算結果ですが、2行目は " で囲まれているため「ご、ゼロ、たす、さん、ゼロ」というストリングとみなされていることがわかります。


図5_3. " "で囲むと計算式とはみなされない

 ところで、大変細かいことなのですが、お気づきになったでしょうか。PRINT命令での表示のとき、ストリングは普通に(左詰めで)表示されますが、数値の場合は最上桁の左側に半角1文字分のスペースが空きます。これは本来正負を表す + 、 - の符合が入るところです。負の数の場合は - (マイナス)が表示されますが、正の数の場合、 + (プラス)は省略されます。トライアルコード(3和音)では、マイナーコードを表す小文字のmは書かれるけれど、メジャーコードを表す大文字のMは普通は省略されるというのと似ています(筆者の本業は・・・ええい、しつこい!)

図5_4.メジャーコード(左)とマイナーコード(右)


「変数にストリングを代入する」

次のプログラムを実行すると、図5_5のようになります。「誰か」の部分はご自分の名前でも好きな人の名前でもなんでもけっこうです。
   A$="誰か"
   B$="さん、こんにちは"
   C$=A$+B$
   PRINT C$
   END


図5_5.実行結果

 プログラム1、2行目の代入文を見てください。ストリングはこのように変数に代入することもできます。ストリングを入れる変数は変数名の後ろに半角の $ (ダラー、またはドルマーク)を付けます。
3行目ですが「えっ?文字と文字のたし算って?」と思われた方もいらっしゃると思います。これはたし算ではなく、ストリングの連結です。このサンプルの場合、A$に入っているストリングの後ろに変数B$に入っているストリングが連結されそれが変数C$に代入されます。

「PRINT命令の使い方いろいろ」

 今度は少し長く面倒ですが、次のプログラムを実行してみましょう。 ; (セミコロン)と , (カンマ)を入れ間違えないように気をつけてください。
   A$="誰か"
   B$="さん、こんにちは"
   D$=DATE$
   PRINT A$;B$,"今日は";D$;"です"
   PRINT
   PRINT "今日もお仕事がんばってください"
   END
 3行目に出てきたDATE$は、画面に美少女が現れてデートしてくれる・・・わけではなく(冷汗)、今日の日付です(現在のパソコンは、筆者の知る限りすべての機種で内部にカレンダー・時計機能を持っています)。DATE$はコンピュータが管理している日付を引っ張り出してくる(多くのプログラミング言語のマニュアルでは「与える」という言い方をします)関数です。Windows10+Tiny BASICの場合、日付は西暦4桁/月2桁/日2桁になります。DATE$は $ が付いているので想像つくと思いますが、日付をストリングで与えますから、3行目のように $ の付いた変数に代入して使うことが可能です。
 このプログラムを実行するとこのようになります。PRINT命令は続くオペランドの中に式(表示するもの)が複数入っていてもよいのですが、その区切りを ; にすると続けて表示、 , にすると少し間隔を空けて表示します。またオペランドが全くないPRINTだけだと改行のみ行ないます。1行空けるときなどに使います。


図5_5.実行結果


[この章のまとめ]

画面に文字を表示するには表示したい文字を " で囲む

"  "で囲まれたものを文字列、文字リテラル、ストリングという

変数名に $ を付けた変数にはストリングが代入できる

PRINT命令で数値を表示すると最上桁の左に正負の符合が入る半角1つのスペースが空く

PRINT命令で複数の式を表示させるとき、区切りを ; にすると続けて表示、 , にすると少し間隔を空けての表示となる。オペランドが何もないと改行のみ行なう

DATE$はコンピュータが管理している日付をストリングで与える関数である

【第4章】キーボードからデータを入力するプログラム
2020.03.20
 前章で作ったプログラムはこうなっていました。
   A=10
   B=6
   S=A*H/2
   PRINT S
   END


 このプログラムは変数Aを底辺、Hを高さとしたときの三角形の面積Sを求めるものでした。そこでAを10、Hを6として計算したわけですが(下線部)、もしAに7、Hに4を代入すれば今度は底辺が7、高さが4の三角形の面積が求められます。異なる底辺、高さで計算したいときは代入文(下線部)を変更すればいいわけです。これでも一応変数を使う意味はあるのですが、底辺と高さの値が変わる度に代入文を修正する必要があり少々不便です。ということで、このブログラムを使い勝手が良くなるように改造します。


[前に作ったプログラムを修正する]


 では前章で作ったプログラムを次のように改造します。下線部が変更する部分です。
  INPUT A
  INPUT H
  S=A*H/2
  PRINT S
  END
 この程度の長さのプログラムなら始めから全部作り直してもいいのですが、今後もっと長いプログラムを作るようになったとき、あるいは一度作ったプログラムにミスがあって修正する必要が出てきたというような場合のことを考え、ここでは前章で作ったプログラムを呼び出して(パソコンに向かって「おーい、プログラム出てこーい」と叫ぶのではありません。既存のプログラムやドキュメントを開いて再利用できるようにすることです。プログラミングの世界ではほかに「関数の呼び出し」のような使われ方をします)、編集し再び保存という方法を覚えましょう。
 前に作ったプログラムを呼び出すには、編集画面から「プログラム」→「開く」と進みます(図4_1)。




図4_1.既存のプログラムを呼び出す

 すると前章で作った ex1.tbt というプログラムが表示されるので、これをクリックして「開く」をクリックするか、ex1.tbt をダブルクリックします。これもWord、Excelを使ったことのある方にはおなじみの方法です。

図4_2.呼び出したいプログラムを選ぶ

 呼び出しが成功すると、ex1.tbt のプログラムが編集画面に出てきますから、最初の2行を図4_3のように修正します。カーソルを直したいところにもっていって直します。Wordやメモ帳と同じです。修正では新規作成と違って、1行修正するごとに【ENTER】を押す必要はありません(【ENTER】を押すとそこで改行します)。

図4_3.このように修正する

 修正が終わったら、実行してみてもいいのかと思われそうですが、実行前に保存はプログラム修正時も同じです。今やった編集作業はあくまでコンピュータの主記憶装置の中だけで行われたことであり、保存されているプログラムが自動的に直っているわけではないからです。修正したプログラムの保存は編集画面上の「プログラム」から「上書き保存」です(図4_4)。


図4_4.修正したプログラムの保存

 保存が終わったら実行してみましょう。編集画面上部の「即実行」をクリックしてください。実行するとすぐに図4_5になると思います。これはキーボードからの入力待ちです。入力窓に15と入れて「OK」をクリックしてください。するともうひとつ入力窓が現れます(図4-6)。今度は10と入れてみましょう。「OK」を押すと実行画面に底辺15、高さ10の三角形の面積75が表示されます(図4-7)。

図4_5.修正したプログラムを実行


図4_6.キーボードからの入力待ち


図4_7.実行結果



[データをキーボードから入力する]

 このプログラムを実行すると途中でオペレータ(コンピュータを操作している人とお考えください)がキーボードからデータを入力するのを待つために一時停止します。INPUTはキーボードから入力された内容を、後に続く変数に読み込む(代入)する命令です。そしてこれが実行されるとプログラムはキーボードから何かデータが入ってくるまで実行をいったん停止します。

 INPUT命令を使う最大の利点は、異なるデータで同じ処理を行いたい場合、いちいちプログラムを書き換えないで済むことです。現段階ではまだこのありがたみは実感できないと思いますが、この後に出てくるサンプルプログラムを見ていただければ「なるほどな」と納得していただけると思います。

[順次処理]

 図4_3と図4_7をもう一度見てください。プログラムは最初のステートメントから順番に実行されていることがおわかりいだけると思います。コンピュータのプログラムは基本的には体育祭や演奏会のプログラムと同じです。図4_8は演奏会のプログラムの例です(しつこいようですが筆者の本業はピアノの先生です)。演奏会では普通、会場入口でお客様に差し上げたプログラムのとおりに最後まで演奏されます。この場合ならベートーヴェン、ショパン、ドビュッシーの順に演奏されて終わりです(アンコールで何かもう1曲演奏されることはありますが)。よほどの事態が発生しない限り、ベートーヴェンとショパンの演奏順が入れ替わったり、ドビュッシーまで終わったところで、もう一度ベートーヴェンに戻って最初から、ということは起こりません。コンピュータのプログラムも同じで、通常は最初のステートメントから終わりに向かって順番に実行されてゆきます。このような処理を順次処理といいます。コンピュータのプログラムは同じ処理を一定回数繰り返し実行したり、条件によって処理内容を変えたりすることができるのですが、その場合でも基本は順次処理です。


図4_8.演奏会のプログラムの例

 ここまでで覚えたプログラムの作成、保存、プログラムの修正、プログラムの実行で、Tiny BASICを使うにあたって必要最小限の操作はひととおり終わりました。Tiny BASICにはプログラム開発に便利な機能がまだまだたくさんありますが、当カテゴリーの実習ではこれだけ覚えておけば充分です。今後は「保存しましょう」「プログラムから開くを選び~」などは言いません。ここまでの操作に不安がある方は前章までを読み返し、操作に習熟しておいてください。

[この章のまとめ]

一度作ったプログラムは修正・変更が可能である

修正したプログラムは再び保存する必要がある

INPUT命令
 キーボードから入力された内容を、後に続く変数に読み込む(代入する)

順次処理
 プログラムは通常、最初のステートメントから終わりに向かって順番に実行される

【演習2】キーボードからたて、よこの長さを入力し長方形の面積を求めるプログラムを作りなさい

【第3章】プログラミグはじめの一歩(順次処理)
2020.03.19
[プログラムの作成]

 では、いよいよプログラミングに入りましょう。コンピュータの世界でいうプログラムとは「処理の手順」です。ノンプロミングモードでは、変数に代入、計算、結果表示をワンステップずつ(OK表示になるごとに)実行しなくてはなりませんでしたが、これを自動化しちゃおう、という発想です。まずは昨日やった三角形の面積を求めたものを自動化(プログラム)にしてみましょう。



図3_1.編集画面を開く

プログラムを作成するには、編集画面を使います。Tiny BASICを起動したら編集画面側の左上にある「プログラム」をクリックします。するとメニューが表示されます。今は新しくプログラムを作るのですから、この中の「新規作成」をクリックします(図3_1)。すると図3_2のようなプログラム編集ウィンドウが開きます。このウィンドウ内にプログラムを書き込みます。

図3-2.プログラム編集ウィンドウ


 最初は変数Aに底辺の長さ 10 を代入するのでしたね。ではプログラム編集ウィンドウに半角英数字で A=10 と入れて【ENTER】を押してください。あれっ?何も起こらないぞ、とあわてずに。ノンプログラミングモードでは一命令ごとに(【ENTER】を1回押すごとに)代入→計算→表示といった仕事が行われますが、プログラム編集画面に入れられた命令はすぐには実行されません。すべて入れ終わって「実行」という指示を出すまでは仕事の手順が記憶されるだけです(当カテゴリーではこれをプログラミングモードとよぶことにします)。
 次は変数Hに高さの値6を代入しました。では H=6 と入れて【ENTER】を押してください。全く新規でプログラムを入れる場合は1行ごとに【ENTER】を押さないと次の行に改行しません。以下同様に、面積を計算して変数Sに代入、結果を表示するところまで入れてください(図3_3)。
 入れている途中で前に入れた行に間違いがあったりして修正したいときは、直したい箇所にカーソルをもっていって修正できます(Windowsのメモ帳やワープロソフトなどと同じです)



図3_3.プログラムをすべて入れ終わったところ

 最後にENDという一行がありますが、これは「プログラム実行終わり」という指示です。このプログラムのように実行される最後の命令が最後の行(図3_3の例なら PRINT S)である場合は、この END はなくても差支えないのですが、後の章で出てくるサブルーチンなどを使うときは、これがないとちょっと困ったことになります。ここで実行終わりという箇所には必要なくても必ず END を書くように習慣づけておいた方がいいでしょう.

[プログラムの保存]

 これでプログラムは入れ終わりました。よし、実行しよう!ちょっと待ったあ~!(なんだよ)作成したプログラムは必ず保存してから実行しましょう。どうしてかというと、もし作ったプログラムにミスがあって、コンピュータが暴走(ブワンブワンとエンジン音をたててコンピュータが走り出すわけではなく、誤動作でキーやマウスの入力を受け付けなくなること)してしまったら、強制的にシャットダウンするか少々乱暴ですが電源コードを引き抜くしか方法がなくなります。そうなると今作っていたプログラムはすべて消えてしまいます(最近のノートパソコンは強制シャットダウンしても今やっていた作業を保存してから電源が落ちるようになっているようですが、すべてのパソコンがそうなっているという保証はありません)。このサンプル程度の短いプログラムならもう一度作り直せばいいのですが、これがもし研究や仕事で使う500行にもおよぶ長いプログラムだったら・・・もう空を見上げて泣くしかありません。というわけで
作ったプログラムは必ず保存してから実行、
これは初心者のうちに習慣づけてください。


図3-4.プログラムの保存

 保存の方法はWordやExcelを使っている方にはおなじみの方法です(図3_4)。編集画面左上の「プログラム」をクリックします。表示されたメニューから「名前をつけて保存」を選んでクリックします。すると図3_5のようになります。ここで上部の「保存する場所」は【第0章】でやったTBasic.exeを保存した場所と同じになっていると思います。当カテゴリーの実習ではこのままでいきます。別の場所にしたい方は変更してください。プログラム名はUntitled(タイトルなし)という名前になっています。このままでもいいという方はそのままにしておいてください。ふつうはもう少しプログラムの内容がわかる名前にするので、ここではex0(exsampleの意)としていますが、これでなくても何でもかまいません(ただしお使いのパソコンのOSの制約を受けます)。日本語(全角文字)を含んでもOKです(練習_1など)。拡張子( .tbt)は変更・削除しても差支えないのですが、保存したプログラムを再利用するときに面倒なのでこのままにしておいた方がいいでしょう。

図3_5.名前をつけて保存


[プログラムの実行]

 プログラムの保存が完了したので、今作ったプログラムを実行(コンピュータに何かをさせることをコンピュータ屋さんはこのようにいいます)してみましょう。実行の方法はいくつかあるのですが、最も簡単なのは編集画面の上の方にある「即実行」です。これをクリックすると、実行画面に計算結果が表示されます(図3_6)。即実行をクリックした後はまったく手を触れずに計算結果の表示まで来ました。これがプログラムによる自動計算です。


図3_6.プログラムの実行


[Tiny BASICの文法(1)]ステートメント

 ところで、前にもお話ししたとおり、これはTiny BASICというプログラミング言語を用いてのプログラムなわけですが、「言語」というくらいですから、それぞれのプログラミング言語には文法があります。これから少しずつ覚えていってください。文法といってもやれ三人称単数現在だ、関係代名詞だ、現在完了形だというわけではありませんのでご安心を。筆者に言わせてもらえればプログラミング言語の文法とは、文法というより書き方です。ここまでで説明してきた算術演算子や代入演算子、変数の使い方などもTiny BASICの文法です。

 プログラムの一文をステートメント(または「文」)といいます。ステートメントは多くの場合、

命令語(指示語) オペランド(命令の内容)

です。たとえば print 3 + 5 は「3 + 5の計算結果を表示せよ」という命令になりますが、プログラミング言語では「表示せよ、 3 + 5 の計算結果を」と書くことになります。日本語ではなく英文法に使いものがあります。

[この賞のまとめ]

コンピュータのプログラムとは処理の手順である

作ったプログラムは実行する前に必ず保存する

プログラムの1行をステートメントという

ステートメトは多くの場合、命令語(指示語) オペランド(命令の内容)である

【演習1】粗利益を計算し画面に表示するプログラムを作りなさい。粗利益とは売上単価×売上個数-仕入れ単価×売上個数のことです。たとえば1個150円で仕入れた品を1個200円で10個売れば、粗利益は500円になります。仕入単価、売上単価、売上個数、粗利益はすべて変数を用いること。

【第2章】変数を使う
2020.03.18
 ノンプラグラムモードでの計算のやり方はおわかりいただけたでしょうか。このカテゴリーをご覧いただいているほとんどの方は「いいから早くプログラミグを教えてくれ」とお思いのことと思います。しかし、プログラムとは何ぞや、ということをご理解いただくためにはもう少しノンプログラミングモードで覚えていただきたいことがあります。今しばらくご辛抱ください(またかよ!)。

[変数の使い方]

 ではTiny BASICを起動してください。実行画面がOK表示になっていることを確認したら、A=10と入れて【ENTER】を押してください(Tiny BASICのノンプラグラミングモードでは何かを入力するときは最後に【ENTER】を押す必要があります)。【ENTER】を押しても今度は何も起こりませんね。ただ、コンピュータの中では「今入れた10という値が記憶された」ということが起こっています。コンピュータの内部動作は私たちの目には見えないだけのことです。そしてコンピュータの記憶装置(正しくは主記憶装置、後の章で詳細を説明します)は無限ではありませんがとてつもなく容量が大きいですから、今入れたデータが記憶装置のどこに入ったかをわかりやすいように「付箋」を貼っておきます。この例では付箋に相当するのが A です。この付箋のことをプログラミングの世界では変数とよびます。変数という言葉は元々数学で使われるものです。数学では y=ax+b のx、yのように「ともなって変わる数」という意味ですが、コンピュータのプログラミングでは記憶場所という意味になることに注意してください。PRINT Aとやってみると今、変数 A に記憶した 10 という値が表示されました。次に H=6としてください。同じように PRINT H で確かめると変数 H に6が記憶されたことがわかります。そうしたら今度は S=A*H/2とし、次に PRINT S としてみましょう。今度は30と表示されます(図2_1)。もうおわかりかと思いますが、これは底辺をA、高さをHとしたときの三角形の面積Sを求める計算です。
 変数を使ういちばん大きなメリットは一度記憶した変数の中味はずっと保存されるので(正確には次に何かプログラムを実行するまで)、ひとつのデータを何回も再利用するのがたいへん楽になることです(図2_2)。



図2_1.変数を使った計算例



図2_2.変数を使って記憶したデータは再利用がかんたんにできる


[変数名]

 今日のサンプルでは変数の名前はすべて英字1文字になっていますが、Tiny BASICでは変数名は半角英数字と _ (アンダーバー)の組み合わせで30文字以内で自由に決められます。ただし先頭の1文字は必ず英字でなくてはなりません。また英字は大文字小文字を区別しません。たとえば変数TATEYAMASOBAWA_OISHIIとtateyamasobawa_oishiiは同じ変数として扱われます(筆者と同じ居住地以外の方にはわかりにくい例えで申し訳ありません・・・^ ^;)。それから予約語は変数名としては使えません。予約語とはそのプログラミング言語が使っている命令や関数(後の章でやります)のことで、Tiny BASICならばたとえば PRINT という語は画面に表示せよという命令で使っていますから、 PRINT=5 のように変数名としては使えません。

[代入演算子]

 今日のサンプルでは = がたくさん出てきました。=は数学では等号と呼ばれ「左辺と右辺が等しい」という意味で使われますが、プログラミングでは = は右辺の値を左辺に代入せよという命令になります(後に出てくる条件判定の場合のみ等号になります)。Tiny BASICに限らず、筆者が知る限り、ほとんどのプログラミング言語でそうなっています。なので代入演算子(代入命令)としての = を使うときは、右辺は計算式でよいのですが、左辺は必ず変数1個になります。数学のようにA+B=C+Dのような書き方はできません。
 ではひとつ、数学の先生に叱られてしまいそうな例を。=は代入演算子とします。


a = 3
a = a + 1

 プログラミングが初めての方はえっえっ?何これ?と思われたことでしょう。=を代入演算子として使う場合はこのような使い方ができます。ではこの結果、変数 a の中味(値)はいくつになっているでしょうか。代入演算子の意味は「右辺の値を左辺に代入せよ」でした。つまりこれは「今、変数 a に入っている値に 1 を加算し、その結果を a に戻せ(再び代入せよ)」ということになります(図9.)。その結果、この場合 a の値は 4 となります。この考え方は実際のプログラミングではジャンジャンバリバリ(死滅語?)出てきます。

図2_3.代入演算子を使うと


 いかがですか。文章での説明が長くなってしまいましたが、ここまでで、これからプログラミングに入るのに大切な基礎知識をお話したつもりです。これまでのところが今ひとつ理解できていないという方は、次に進む前に、もう一度、前章とこの章を復習してください。

[この章のまとめ]

データは変数に記憶できる


変数に記憶したデータは再利用できる

代入演算子としての = は右辺の値を左辺に代入せよという意味である

代入演算子としての = では左辺は必ず変数1個である

- CafeNote -