OriosのActiveBasic講座(1-3):プロシージャ

3.算術関数

【目標】算術関数の使い方をマスターして複雑な計算ができるようになりましょう。

今回からいよいよ本格的プログラミングの準備に入ります。 前回関数について勉強しましたが、実はActiveBasicにはあらかじめ宣言されている関数があります。 今回はその関数のうち、計算に関係ある関数の使い方を学習します。 早速次のソースを実行してください。

'lesson1-3-3
#console
Dim a As Long
Dim b As Long
Input "数字を2つ入力してください。", a, b
If b = 0 Then
Print "0で割ろうとしました。"
Else
Print "商: "; a / b
Print "絶対値: "; Abs(a / b)
Print "切り捨て(1): "; Int(a / b)
Print "切り捨て(2): "; Fix(a / b)
Select Case Sgn(a / b)
Case 1
Print a; "÷"; b; "は正の数です。"
Case 0
Print a; "÷"; b; "は0です。"
Case -1
Print a; "÷"; b; "は負の数です。"
End Select
If a / b > 0 Then
Print "平方根: ±"; Sqr(a / b)
End If
End If
Sleep(3000)
End

C:\ActiveBasicCourse\lesson1-3-3...
数字を2つ入力してください。365,12
商: 30.4166666666666
絶対値: 30.4166666666666
切り捨て(1): 30
切り捨て(2): 30
365 ÷ 12 は正の数です。
平方根: ± 5.51513070259143
数字を2つ入力してください。365,-12
商: -30.4166666666666
絶対値: 30.4166666666666
切り捨て(1): -31
切り捨て(2): -30
365 ÷ -12 は負の数です。
(実行例:上は商が正数,下は商が負数の例)

今回は単に数字の羅列が表示されるだけの面白くないプログラムですが、普段のプログラミングでよく使う関数ばかりです。 出てくる関数の数が多くても頑張って覚えてみましょう。 では今回の説明です。

-*-*-*-*-説明-*-*-*-*-

【前解説】
定義済み関数
前回関数の宣言について学習しましたが、実はActiveBasicにはあらかじめ宣言されている関数があります。 ActiveBasicのあるフォルダの中の"Include→basic→function.sbp"を見てみてください。 いろんな関数がFunctionで宣言されていますね。 今回はこの中で、数値計算に比較的よく使うものの説明をします。

戻り値
前回戻り値の受け取り方として"変数 = プロシージャ名 (引数 )"を学習しました。 ところでこの式を見れば推測ができると思いますが、実は"プロシージャ名 (引数 )"自身が戻り値を表しています。 例えば"a(2)"の戻り値が「5」なら"a(2)"自体が「5」を表す変数のごとく扱われるということになります。 (ただし変数と違うのは"a(2)=a(2)+1"のように値を変えることができない点です。) なので"Print a(2)"などと書けば、Print命令語は表示するもの の値を表示するわけですから、「5」というように表示されるというわけです。

【使い方】
Abs(number )

【意味】
number の絶対値を求めます。

【解説】
絶対値
Abs(number )のnumberの部分にその絶対値を求めたい数値・変数などを書けば、この関数の戻り値はその数値や変数などの絶対値になります。 ちなみに絶対値とは「その数と0との距離」を表すもので、簡単に言えば、その数が負だったときはマイナス符号を取った値、正だったときはそのままの値のことです。
[例] Abs(-5) = 5, Abs(3) = 3 (注:これは単なる等式です。代入式ではありません。)



【使い方】
Int(number )

【意味】
number の小数部を切り捨てた値を求めます。

【解説】
切り捨て(Int関数)
この関数はnumberの部分にその小数部を切り捨てたい値を求めたい数値・変数などを書けば、戻り値がその数値や変数などの小数部を切り捨てたい値になります。 但しnumberが負の値の場合も切り捨て(それを超えない最大の整数にする)になります。
[例] Int(5.1) = 5, Int(-5.1) = -6 (注:これは単なる等式です。代入式ではありません。)



【使い方】
Fix(number )

【意味】
number の小数部を切り捨てた値を求めます。(但し負の場合は切り上げ)

【解説】
切り捨て(Fix関数)
この関数はInt関数と同じくnumberの部分にその小数部を切り捨てたい値を求めたい数値・変数などを書けば、戻り値がその数値や変数などの小数部を切り捨てたい値になります。 但しnumberが負の値の場合はInt関数とは違い、切り上げ(それを超える最小の整数にする)になります。
[例] Fix(5.1) = 5, Fix(-5.1) = -5 (注:これは単なる等式です。代入式ではありません。)

※負の数を扱うため切り捨てか切り上げかを気にするとき以外はFix関数を使うようにしてください。 理由は詳しく言いませんが、Fix関数の方がInt関数よりも計算速度が断然速いためです。



【使い方】
Sgn(number )

【意味】
number の符号を求めます。(-1:負,0:0,1:正)

【解説】
符号を求める(Sgn関数)
この関数はnumberの部分の数値・変数などの符号に応じて戻り値が次のようになる関数です。
number の値戻り値
正(0を超える)1
00
負(0未満)-1

[例] Sgn(3) = 1, Sgn(0) = 0, Sgn(-5) = -1 (注:これは単なる等式です。代入式ではありません。)



【使い方】
Sqr(number )

【意味】
number  の値を求めます。

【解説】
ルートの値を求める(Sqr関数)
この関数はnumberの部分の数値・変数の平方根うち、正の方の値が戻り値になる関数です。 注意する点はこの関数に負の値を渡さないことです。 基本的にActiveBasicでは虚数は扱えません。 なので負数の平方根を求めようとしても計算できずに「0」が戻ってきます。
[例] Sqr(16) = 4 (注:これは単なる等式です。代入式ではありません。)

※平方根とは2乗するとその数になる値のことで、例えば「16」なら「4」と「-4」のように普通2つの絶対値の同じ数になります。 そしてSqr関数が求めるのはこのうち正の方の値、言い換えれば平方根の絶対値です。 また"Sqr(number )"は"number ^0.5"と書き換え可能です(指数の性質より)。



今回の内容はどうでしたか? たくさんの関数が一度に出てきて混乱したかもしれませんが、ここに出てくる関数はプログラミングで頻繁に使うものばかりです(作るプログラムの分野にもよりますが……)。 なので、今回出てきた関数を頑張って自分のものにしていってください。 もちろん質問は掲示板で随時受付中です。 では最後の仕上げ、「やってみよう」です。

-*-*-*-*- -*-*-*-*-

ユーザーに3桁の数字を入力してもらい、各桁の合計を求めて表示するプログラムを作ってみましょう。 ただしユーザーが負の3桁の数字を入力した場合は、それの絶対値を使い各桁の合計を求め、それ以外の場合は「エラー」と表示するようにしてください。




ご質問・ご意見・ご感想・苦情等はメールまたはメイン掲示板のActiveBasic板などでお気軽にどうぞ。

前に戻る - 次に進む

ホーム > OriosのActiveBasic講座(トップページ) >