- 2007年8月29日 16:32
- 情報システム科
こんにちは。情報システム科担当の石原です。VBSを使ったプログラム作成講座
の8回目をお送りします。前回(誰でもプログラマーへの道 No.007参照)は、
for文を使った繰り返し処理を行うプログラムの作成を行いました。今日は「乱
数」というコンピュータが適当に選んでくれた数値を使ってプログラムを作成し
ましょう。
では次のプログラムをメモ帳で作成してみましょう
randomize
num=999
while( num <> 0)
num=int(rnd*5)
msgbox "乱数は" & num & "です" & vbcr & "0になるまで続けます",,"乱数
表示"
wend
msgbox "終了",,"乱数表示"
入力ができたら「名前を付けて保存」します。保存の名前は「ren008.vbs」と し、ファイルの種類を「すべてのファイル」に変更します。保存する場所(フォ ルダ)は自由ですが、すぐに実行確認したいなら「デスクトップ」に保存してお くのが良いでしょう。
保存したren008.vbsのファイルをダブルクリックしましょう。また、注意してほ しいのは動作結果がこの通りになるわけではないということです。コンピュータ が勝手に数字を選んでいるでので1回の表示で終わる場合もあれば、なかなか終 わらずに何回も表示しなければならないこともあります。

もし違うメッセージが表示された場合はプログラム入力ミスです。スペルミスな ど無いか確認しましょう。
このプログラムを説明していきましょう。1行目のrandomizeでは「乱数の初期 化」という処理を行っています。乱数といっても所詮はコンピュータがあらかじ め決めた適当な数値を順番に与えるだけなので、この処理をつけないとプログラ ムを動かすたびに同じ乱数が順番に得られるだけになります。しかし、この処理 を付けることによって、代入する乱数の値をシャッフルしてくれるので、本当の 意味で乱数を得ることができるようになります。また、「乱数を使う時には必ず 付けるものである」と考えておけばよいでしょう。2行目では変数numに999を代 入しています。これは3行目の繰返し処理を行えるように0以外の数値を入れて おきます。そして、3行目では変数numの値が0と等しくない間、wendまでの処理 を繰り返します。ちなみに num <> 0 の「<>」は「等しくない」という意味にな ります。4行目のrndが乱数を得る関数です。これによって0以上1未満の実数 (小数点つきの数値)を得ることができます。乱数なのでいくつになるかはコン ピュータしかわかりません。その乱数に5を乗算(かけ算)します。これによっ て0から5未満の実数が求まります。最後にその結果をint()で囲みます。intとは 数値の小数点以下を切り捨てて整数にする関数です。よってint(rnd*5)では0~4 までの整数を求めます。そして変数numに代入しています。5行目ではその乱数 を表示します。乱数が0になると繰返し処理を抜けて、7行目で「終了」と表示 し、プログラムは終わります。
それではここまでの知識を活かして、次の課題を作成してみましょう。
課題8 ファイル名:ex008.vbs
乱数を使って1~10までの整数を求め、求めた値に応じてメッセージを表示する プログラムを作成しなさい。

乱数を得ることができると、プログラマも予想できないプログラムを作成するこ とができます。占い・じゃんけんなどのプログラムを作ると面白いかもしれませ ん。次回は多分岐処理を使って占いプログラムを作成してみましょう。
では次のプログラムをメモ帳で作成してみましょう
randomize
num=999
while( num <> 0)
num=int(rnd*5)
msgbox "乱数は" & num & "です" & vbcr & "0になるまで続けます",,"乱数
表示"
wend
msgbox "終了",,"乱数表示"
入力ができたら「名前を付けて保存」します。保存の名前は「ren008.vbs」と し、ファイルの種類を「すべてのファイル」に変更します。保存する場所(フォ ルダ)は自由ですが、すぐに実行確認したいなら「デスクトップ」に保存してお くのが良いでしょう。
保存したren008.vbsのファイルをダブルクリックしましょう。また、注意してほ しいのは動作結果がこの通りになるわけではないということです。コンピュータ が勝手に数字を選んでいるでので1回の表示で終わる場合もあれば、なかなか終 わらずに何回も表示しなければならないこともあります。

もし違うメッセージが表示された場合はプログラム入力ミスです。スペルミスな ど無いか確認しましょう。
このプログラムを説明していきましょう。1行目のrandomizeでは「乱数の初期 化」という処理を行っています。乱数といっても所詮はコンピュータがあらかじ め決めた適当な数値を順番に与えるだけなので、この処理をつけないとプログラ ムを動かすたびに同じ乱数が順番に得られるだけになります。しかし、この処理 を付けることによって、代入する乱数の値をシャッフルしてくれるので、本当の 意味で乱数を得ることができるようになります。また、「乱数を使う時には必ず 付けるものである」と考えておけばよいでしょう。2行目では変数numに999を代 入しています。これは3行目の繰返し処理を行えるように0以外の数値を入れて おきます。そして、3行目では変数numの値が0と等しくない間、wendまでの処理 を繰り返します。ちなみに num <> 0 の「<>」は「等しくない」という意味にな ります。4行目のrndが乱数を得る関数です。これによって0以上1未満の実数 (小数点つきの数値)を得ることができます。乱数なのでいくつになるかはコン ピュータしかわかりません。その乱数に5を乗算(かけ算)します。これによっ て0から5未満の実数が求まります。最後にその結果をint()で囲みます。intとは 数値の小数点以下を切り捨てて整数にする関数です。よってint(rnd*5)では0~4 までの整数を求めます。そして変数numに代入しています。5行目ではその乱数 を表示します。乱数が0になると繰返し処理を抜けて、7行目で「終了」と表示 し、プログラムは終わります。
それではここまでの知識を活かして、次の課題を作成してみましょう。
課題8 ファイル名:ex008.vbs
乱数を使って1~10までの整数を求め、求めた値に応じてメッセージを表示する プログラムを作成しなさい。

乱数を得ることができると、プログラマも予想できないプログラムを作成するこ とができます。占い・じゃんけんなどのプログラムを作ると面白いかもしれませ ん。次回は多分岐処理を使って占いプログラムを作成してみましょう。




