文字列を数値に変換します。
- 構文
- Double = VAL( 文字列, [エラー値] )
- 引数
- 文字列
- 数値に変える文字列
- エラー値
- 数値に変換できない場合に返す値
- 戻り値
- 数値
数値変換できない場合はエラー値を、デフォルトでは ERR_VALUE (-999999)を返す
プログラム実行例
指数表記の値を数値表記にする
\[1.25\rm{E}+6=1.25 \times 10^{6}\]PRINT VAL("1.25E+6")
- 結果
1250000
ハイアンドロー
DIM cards[-1]
DIM mark[3] = "♠", "♥", "♣", "♦"
FOR item IN mark
FOR n = 1 TO 13
arrayPush(cards, item + n)
NEXT
NEXT
FisherYates(cards)
FOR n = 0 TO UBound(cards) - 1
DIM res = SLCTBOX(SLCT_BTN OR SLCT_NUM, 0, "次のカードは「 " + cards[n] + " 」よりHIGH、LOW?", "HIGH", "LOW")
PRINT cards[n] + "<#TAB>" + COPY(cards[n], 2)
PRINT cards[n+1] + "<#TAB>" + COPY(cards[n+1], 2)
DIM before = VAL(COPY(cards[n], 2))
DIM after = VAL(COPY(cards[n+1], 2))
IF res = 0 THEN operator = "<"
IF res = 1 THEN operator = ">"
res = IIF(before + operator + "=" + after, "正解", "不正解")
PRINT res
IF res = "不正解" THEN EXIT
PRINT "----------"
NEXT
MSGBOX("全問正解!!!")
//////////////////////////////////////////////////
// 【引数】
// array : 要素を追加する配列(参照引数)
// str : 追加する要素
// 【戻値】
// 処理後の配列の中の要素の数
//////////////////////////////////////////////////
FUNCTION arrayPush(var arr[], str)
DIM res = RESIZE(arr, UBound(arr) + 1)
arr[res] = str
RESULT = res + 1
FEND
//////////////////////////////////////////////////
// 【引数】
// var arr[] : シャッフルする配列(参照引数)
// 【戻値】
//
//////////////////////////////////////////////////
PROCEDURE FisherYates(var arr[])
FOR n = UBound(arr) TO 0 STEP -1
DIM num = RANDOM(n+1)
DIM tmp = arr[n]
arr[n] = arr[num]
arr[num] = tmp
NEXT
FEND
//////////////////////////////////////////////////
// 【引数】
// expr : 評価する式
// truepart : 評価した式がTrueのときに返す値
// falsepart : 評価した式がFalseのときに返す値
// 【戻値】
// truepart : 評価した式がTrueのとき、falsepart : 評価した式がFalseのとき
//////////////////////////////////////////////////
FUNCTION IIF(expr, truepart, falsepart)
IFB EVAL(expr) THEN
RESULT = truepart
ELSE
RESULT = falsepart
ENDIF
FEND
//////////////////////////////////////////////////
// 【引数】
// 配列 : 上限値を求める配列
// 【戻値】
// 配列の上限値
//////////////////////////////////////////////////
FUNCTION UBound(array[])
RESULT = RESIZE(array)
FEND
- 結果
♦12 12 ♠1 1 正解 ---------- ♠1 1 ♥7 7 正解 ---------- ♥7 7 ♥13 13 正解 ---------- ♥13 13 ♦9 9 正解 ---------- ♦9 9 ♥1 1 正解 ---------- ♥1 1 ♥5 5 正解 ---------- ♥5 5 ♥10 10 正解 ---------- ♥10 10 ♣4 4 正解 ---------- ♣4 4 ♠10 10 正解 ---------- ♠10 10 ♥6 6 不正解
MSGBOXの種別の数値から表示されるボタンを取得
HASHTBL type
type[BTN_YES] = "はい"
type[BTN_NO] = "いいえ"
type[BTN_OK] = "OK"
type[BTN_CANCEL] = "キャンセル"
type[BTN_ABORT] = "中止"
type[BTN_RETRY] = "再試行"
type[BTN_IGNORE] = "無視"
DIM num = INPUT("数値を入力してください。")
IF VAL(num) = ERR_VALUE THEN EXIT
PRINT num
PRINT "----------"
FOR n = 0 TO 6
IF (num AND POWER(2, n)) <> 0 THEN PRINT type[POWER(2, n)]
NEXT
MSGBOX("以下のボタンが表示されます", num)
- 結果
22 ---------- キャンセル はい 中止