6.1 ユーザーからの入力を受け取る |
input
関数(*1)が用意されているので、
それを使えばOKです。
input
関数は以下のように使います。
$num1 = input("1つめの数字を入力して下さい。","0");↓ |
input
関数の最初の引数
(赤字)は
ダイアログの中に表示する文字列、
2番目の引数(青字)は
ユーザーが入力を行うエディットボックスにあらかじめ入れておく文字列
です。
普通、前者にはユーザーの入力を促す説明を、
後者には(もし適切なものがあれば)初期値(デフォルト値)を入れます。
この関数が実行された時に出るダイアログボックスは下図になります。$num1
, $num2
に代入されます。
さて、この2つの文が実行された後には
2つの変数にそれぞれ数字が入っているわけですが、
これらの和や積などを計算する作業は次節で行います。(*1) | 引数と処理の結果(返り値)に何の関連性もないという意味で、 この場合の関数は数学の意味での関数とは異なります。 「関数」という呼び方は、 元々 function という英語から来ていますが、 この場合はむしろ「機能」というもう一つの訳の方が適当ですね。 |
6.2 数値型変数 |
val
関数を使います。
val
関数は引数として
1つの(符号と数字からなる)文字列を取り、
結果はその文字列の表す数値に置き換えられます。
例えばval("10")
→ 10
val("-2")
→ -2
val
関数に
数字以外の文字を含む文字列を渡した場合の結果を調べてみましょう。val(" -01.5")
→ -1
val("a-01")
→ 0
val
関数が文字列から数値を取り出す時には、
文字列の先頭から始めて数値と解釈できる部分までを取り出します。
ちなみに、小数点(ピリオド)は数字を表す文字とは解釈されませんから、
結果的に最初の例のように必ず整数の部分だけが取り出されます
(次節の割り算のルールも参照)。
また、数値と解釈できる部分が見つからなければ
結果は0に置き換えられます
(2番目の例)。1番目の数 | : | val($num1) |
2番目の数 | : | val($num2) |
"#"
をつけます。
この変数は文字列型変数と同じく
(数値を)代入したり、コマンドや関数の(数値型の)引数として
使うことができます。
例えばval
関数の変換の結果を変数に代入するには
#num1 = val($num1);↓ |
6.3 数値の計算に使う演算子 |
#wa = #num1 + #num2; // #wa に和を代入↓ |
3/2 = 1.5
→ 1
-8/3 = -2.666…
→ -2
val
関数の逆のことを行う)
必要があります。
これには str
関数を使います。str(10)
→ "10"
,str(-2)
→ "-2"
val
関数の例と同じです。
まとめると以下の図のようになります。
|
message $num1 + " + " + $num2 + " = " + str(#wa) + "\n" + ↓ |
// まずユーザーから数字を2つ入力してもらう↓ |
6.4 マクロ中で割り算をする時の注意 |
式 | 算数の答 | マクロの答 |
5/3*7/2 | 5.833… | 3 |
5/2*7/3 | 5.833… | 4 |
5*7/(2*3) | 5.833… | 5 |
演習問題 |
Masaki Sugiura
」
「Sugiura, Masaki
」
「M. Sugiura
」
「M.S.
」
の4つのパターンを全てダイアログに表示するマクロを書け。val
関数に渡した結果を調べよ。"001a"
"-.03"
"1"
(注:全角文字)1 + 2 - 3 * 4 / 5 % 6
1 / 2 * 3 - 4 % 5 + 6
(1 * (2 - 3) % 4 + 5) / 6