りょうのゲーム塾 -122ページ目

りょうのゲーム塾

再開、準備中。

アルゴリズムとは作業の手順や処理の流れのことです。
前回のサンプルプログラムでは大まかに次のような手順で処理を実行しました。

1)単価を入力する
2)数量を入力する
3)金額を計算する
4)金額を表示(出力)する
5)処理終了

前回のプログラムでは項目5の処理終了は明確でなかったので修正したものは下記のようになります。

■プログラム
0001 INPUT "TANKA";T
0002 INPUT "SUURYOU";S
0003 K = T * S
0004 PRINT "KINGAKU=";K
0005 END


■書式
END
END文は処理を終了する命令です。


このプログラムで商品の金額が表示されますが、商品は一つだけでしょうか?
大概は複数の商品があるであろうということは想像できます。
では複数の商品の金額を計算するにはどうしたらいいでしょうか?

例)商品の数だけプログラムを実行する。

確かにこの方法でも計算はできます。
しかしプログラムで同じ計算を繰り返せばいいだけです。
そこで前回の処理は上から下へと順番に作業を進めるだけのアルゴリズムだったので、
今度は繰り返し同じ処理を行うアルゴリズムを作成してみましょう。

■プログラム
0001 @LOOP
0002 INPUT "TANKA";T
0003 INPUT "SUURYOU";S
0004 K = T * S
0005 PRINT "KINGAKU=";K
0006 GOTO @LOOP


0001行目はラベルといいます。
このラベルはラベルのある位置をプログラムで利用する際に参照するために宣言します。
そして0006行目にそのラベルを参照するGOTO文があり、この命令によりラベルのあるプログラム位置から実行が継続されます。

■書式
@ラベル名
プログラムの位置を宣言する命令です。


■書式
GOTO @ラベル名
GOTO文はプログラムの流れを変更する命令です。
@ラベル名で指定された位置から処理が継続されます。


■実行結果
TANKA?
100
SUURYOU?
3
KINGAKU=300
TANKA?
50
SUURYOU?
10
KINGAKU=500
TANKA?


処理が繰り返し実行されますね。

ただし、この場合いつまでも実行されます。
このようなもの(アルゴリズム)を無限ループといいます。
無限ループは終わりがありません。
実行を終了する場合は強制的に終了します。
前回のプログラムは変数に代入されたデータを計算しその結果を表示するものでした。

プログラム流れは

1)初期化
変数にデータを代入する。
2)計算
変数を計算しその結果を変数へ格納する。
3)出力
計算結果を表示する。

となります。

ただしこのプログラムの場合は別の計算を行いたい場合に、
プログラムの初期化を行っている部分の変更を行って実行しないといけません。
これではプログラマ(プログラムを作成する人)でないと使えませんね。

そこで今回は入力という手順をプログラムに追加してみます。

入力を行う命令はINPUT文です。
INPUT文の後に入力されたデータを格納する変数を記述します。

【サンプル】
0001 INPUT NAME$
0002 PRINT "Your name is ";NAME$

【実行結果】
? 
TANAKA
Your name is TANAKA
OK


【問題】
商品の単価と数量を入力し金額を計算してその結果を表示するプログラムを記述しなさい。



















【プログラム例】
0001 INPUT T
0002 INPUT S
0003 K = T * S
0004 PRINT "KINGAKU=";K

【実行結果】
?
100
?
3
KINGAKU=300
OK


代入文で変数にデータを格納していたものをINPUT文に置き換えればいいわけです。

ただこのプログラムは少々不親切な感じがします。
もし最初の入力で数量を入れてその後で単価を入れても結果は問題ありませんが、
やはりこれでは間違ってりると思います。
【プログラム修正例】
0001 INPUT "TANKA";T
0002 INPUT "SUURYOU";S
0003 K = T * S
0004 PRINT "KINGAKU=";K

【実行結果】
TANKA?
100
SUURYOU?
3
KINGAKU=300
OK

【式】
式とはコンピュータで扱う数値を計算するための方法を記述したものです。
式はデータ(数値や文字列)や変数および演算を行うための演算子や関数の組み合わせで作ることができます。

【演算子】
演算子はデータを計算するために使われますがここでは大きく3グループに分けて説明します。

・算術演算子
・比較演算子
・ビット演算子

今回はこの3つのうち普段使い慣れている算術演算子について説明します。

【算術演算子】
算術演算子は我々が一般的に使う基本的な演算を表しています。

+ 加算
- 減算
* 乗算
/ 除算
% 剰余

※ちなみに剰余は割ったあまりをを意味します


では算術演算子を使い計算結果を表示するプログラムを作成します。

【サンプル】

0001 T = 100
0002 S = 5
0003 K = T * S
0004 PRINT "KINGAKU=";K

【実行結果】

KINGAKU=500
OK


【プログラム解説】
このプログラムはある商品を販売したときの金額を計算し表示するものです。
まず変数について説明します。

変数Tは単価を表します。
この商品が1個あたりいくらかを表します。
このサンプルでは1個当たり100円ということになります。

変数Sは数量を表します。
販売された個数がいくらかを表します。
今回この商品は5個販売されたことになります。

変数Kは金額を表します。
要するに1個当たり100円の商品が5個販売されその金額を計算し表示しています。

計算方法は

金額 = 単価 * 数量

ですね。

この場合単価に数量を掛けています。
代入文の右辺が式です。