初めてのプログラム 4日目 SmallBASICで四則演算プログラム

2010/3/23 8771hit

4日目はif文について
昨日作った挨拶プログラムを改良して引き算やかけ算等も出来るようにするよ

SmallBasicを起動したら
昨日保存した3_Tashizanを開いて、
名前を付けて保存で「4_Shisoku」で保存する。

どの計算をするかを選んでもらうために


TextWindow.WriteLine("元の値を入れてね")
x = TextWindow.ReadNumber()



TextWindow.WriteLine("足す値を入れてね")
y = TextWindow.ReadNumber()

の間に計算する記号を入力してもらう処理を追加する。

TextWindow.WriteLine("元の値を入れてね")
x = TextWindow.ReadNumber()
TextWindow.WriteLine("計算する方法を選んでね [+ - * /]")
f = TextWindow.Read()
TextWindow.WriteLine("計算する値を入れてね")
y = TextWindow.ReadNumber()

これでfにどの方法で計算するかがセットされる。

次に入力された内容によって計算方法を切り替える処理を作る。
条件によって処理を切り替えるにはif文を使う。

if文は
If 条件 Then
処理
ElseIf 条件 Then
 処理
Else
 処理
EndIf
と言う風に書く。
If 条件 Thenは
もし、条件に該当する場合だけ処理を行うと言う意味
ElseIf 条件 Thenは
今までの条件に該当せずに、新しい条件に該当する場合だけ処理を行うと言う意味
Elseは
今までの条件に該当しなかった場合に処理を行うと言う意味

例えば
If 条件1 Then
 処理A
ElseIf 条件2 Then
 処理B
ElseIf 条件3 Then
 処理C
Else
 処理D
EndIf
と言う場合、
条件1に該当する場合、処理Aが実行され、
条件1に該当せず、条件2に該当する場合、処理Bが実行される。
条件1、2該当せず、条件3に該当する場合、処理Cが実行される。
条件1、2、3全てに該当しない場合は処理Dが実行される。

ElseIfやElseは省略することも出来る。
If 条件1 Then
 処理A
Else
 処理B
EndIf
とすれば、もし条件1に該当すれば処理Aを実行し、
条件Aに該当しない場合は処理Bを行う。

If 条件1 Then
 処理A
ElseIf 条件2 Then
 処理B
EndIf
とすれば、もし条件1に該当すれば処理Aを実行し、
条件1に該当せず、条件2に該当する場合は処理Bを行い、
条件1,2に該当しない場合は何も処理を行わない。
このif文のことを条件によって処理を分岐することから条件分岐という。

今回はfに入力された値を元に計算を行い、
もし+,-,*,/以外が入力された場合はエラーを表示する処理を作る。

xとyを必ず足し算する処理をfに"+"が入ってきた場合のみ行うようにするには、

a = x + y
TextWindow.WriteLine(x + "+" + y + "=" + a)

をIf文で囲って

If f="+" Then
a = x + y
TextWindow.WriteLine(x + "+" + y + "=" + a)
EndIf

とする。

次に引き算の処理を追加する。
EndIfの前にElseIfを追加して、fが"+"ではなく"-"だった場合に引き算を行う処理を追加する。

If f="+" Then
a = x + y
TextWindow.WriteLine(x + "+" + y + "=" + a)
ElseIf f="-" Then
a = x - y
TextWindow.WriteLine(x + "-" + y + "=" + a)
EndIf

同様に、かけ算、割り算の処理も追加する

If f="+" Then
a = x + y
TextWindow.WriteLine(x + "+" + y + "=" + a)
ElseIf f="-" Then
a = x - y
TextWindow.WriteLine(x + "-" + y + "=" + a)
ElseIf f="*" Then
a = x * y
TextWindow.WriteLine(x + "*" + y + "=" + a)
ElseIf f="/" Then
a = x / y
TextWindow.WriteLine(x + "/" + y + "=" + a)
EndIf


最後にElseを使って+-*/以外が入力されるとエラーとなる処理を追加する。

If f="+" Then
a = x + y
TextWindow.WriteLine(x + "+" + y + "=" + a)
ElseIf f="-" Then
a = x - y
TextWindow.WriteLine(x + "-" + y + "=" + a)
ElseIf f="*" Then
a = x * y
TextWindow.WriteLine(x + "*" + y + "=" + a)
ElseIf f="/" Then
a = x / y
TextWindow.WriteLine(x + "/" + y + "=" + a)
Else
TextWindow.WriteLine("計算できないです")
EndIf



プログラム全体は以下の通り

TextWindow.WriteLine("元の値を入れてね")
x = TextWindow.ReadNumber()
TextWindow.WriteLine("計算する方法を選んでね [+ - * /]")
f = TextWindow.Read()
TextWindow.WriteLine("計算する値を入れてね")
y = TextWindow.ReadNumber()
If f="+" Then
a = x + y
TextWindow.WriteLine(x + "+" + y + "=" + a)
ElseIf f="-" Then
a = x - y
TextWindow.WriteLine(x + "-" + y + "=" + a)
ElseIf f="*" Then
a = x * y
TextWindow.WriteLine(x + "*" + y + "=" + a)
ElseIf f="/" Then
a = x / y
TextWindow.WriteLine(x + "/" + y + "=" + a)
Else
TextWindow.WriteLine("計算できないです")
EndIf

入力し終わったら実行ボタン
+-*/によって計算方法が変わること、
それ以外の値を入れるとエラーとなることを確認したら保存を押してプログラムを保存しよう
初めてのプログラム 5日目 SmallBASICで電卓プログラム

前:CR-Zとインサイトを見てきました 次:初めてのプログラム 5日目 SmallBASICで電卓プログラム

関連キーワード

[簡易言語][SmallBasic]

コメントを投稿する

名前URI
コメント