メモ帳(notepad.exe)で昔ながらのBASIC
Home Page | Index Page |
---|
1. スタート → プログラム → アクセサリ → メモ帳 でメモ帳を起動
2. 次のプログラムを打ち込む
msgbox("入力された3つの数字の最大値を求める。")
n1=csng(inputbox("一つ目の数字を入力して下さい。"))
n2=csng(inputbox("二つ目の数字を入力して下さい。"))
n3=csng(inputbox("三つ目の数字を入力して下さい。"))
s=n1
if s<n2 then s=n2
if s<n3 then s=n3
msgbox(n1 & " , " & n2
& " , " & n3 & "
の最大値は「 " & s & "
」です。")
3. 拡張子"txt"を"vbs"に変更して保存する。
例えば max.vbs というファイル名で保存。
4. "max.vbs"をダブルクリックすると、実行される。
これだけです。
普通にインストールされたWindowsならexcel(VBA)もフリーのBASICも必要ありません。
一度いろいろなアルゴリズムを試してみて下さい。
教科「情報」で扱うアルゴリズムであれば難なく動くと思います。
入出力だけは昔ながらのBASICは使えません。残念だけど…
でも、msgbox関数の機能が使えるというメリットもあります。
もちろん、VBSもオブジェクト言語なので、ファイル操作とかWindowsの操作をさせる必要があれば
Set 変数 = CreateObject("ProgramID")
でオブジェクトを作成するんだけど。
その必要がなければ、構文や機能を学習する必要はありません。
というか、教科「情報」では逆にじゃまになるんじゃないかな。
VBAでもできないことはないけど、エクセルが必要だもんね。
Jscript等ではアルゴリズム以外のことを記入しないと使えないですもんね。
これらは、アルゴリズムを考える生徒にはじゃまだと思うんですけど。いかがでしょうか?
VBSはファイル操作ができるので教えない方がいいというご意見もありますが…。
ご意見ご感想をお待ちしています。
注)変数の型宣言ができません。
すべてヴァリアント型で、内部処理で自動的に型を判断しています。
注)inputbox関数はすべて文字型で入力されます。
csng関数を使って単精度浮動小数点型に変更しています。
(cint関数を使うと整数型に変更できます。)
お世話になったWebページ Tuya's HomePage
プログラム例2
do
sum=0
n=inputbox("1からnまでの自然数の和を求めます。"
& vbcr & "nの値を入力してください")
for i= 1 to n
sum=sum+i
next
yn=msgbox("1 から " &
n &" までの自然数の和は「"
& sum & "」です。" _
& vbcr & "続けますか?"
,vbyesno)
loop until yn=vbno
プログラム例3(アルゴリズム間違ってるかも・・・ご容赦を)
msgbox("入力された3つの数字を降順に並べる。")
n1=csng(inputbox("一つ目の数字を入力して下さい。"))
n2=csng(inputbox("二つ目の数字を入力して下さい。"))
n3=csng(inputbox("三つ目の数字を入力して下さい。"))
if n1<n2 then
if n2<n3 then
s1=n3
s2=n2
s3=n1
else
s1=n2
if n1<n3 then
s2=n3
s3=n1
else
s2=n1
s3=n3
end if
end if
else
if n1<n3 then
s1=n3
s2=n1
s3=n2
else
s1=n1
if n2<n3 then
s2=n3
s3=n2
else
s2=n2
s3=n3
end if
end if
end if
msgbox(n1 & " , " & n2
& " , " & n3 & "
を降順に並べると" & vbcr & _
s1 & " , " & s2 & "
, " & s3 & " です。")
プログラム例4
dim S(2)
msgbox("入力された3つの数字を降順に並べる。")
n1=csng(inputbox("一つ目の数字を入力して下さい。"))
s(0)=n1
n2=csng(inputbox("二つ目の数字を入力して下さい。"))
s(1)=n2
n3=csng(inputbox("三つ目の数字を入力して下さい。"))
s(2)=n3
do
flg=True
for i=0 to 1
if s(i)<s(i+1) then
w=s(i)
s(i)=s(i+1)
s(i+1)=w
flg=Fales
end if
next
loop while flg=Fales
msgbox(n1 & " , " & n2
& " , " & n3 & "
を降順に並べると" & vbcr & _
s(0) & " , " & s(1) &
" , " & s(2) & " です。")
変数の型は?
変数は型宣言できないけれど、一度内部処理するとその型が保持されます。
つぎの、プログラムで一度どんな型になるか確認してみて下さい。
メモ帳起動して、コピー&ペーストしてご利用下さい。
a=inputbox("aの値を入力してください")
b=inputbox("bの値を入力してください")
a0=a
a1=a*1
a2=a-0
c1=a+b
c2=int(a)+int(b)
c3=cint(a)+cint(b)
c4=csng(a)+csng(b)
d=4
e=4.0
msgbox("a = " & a & "
変数型は " & vartype(a) & "
です。" & vbcr & _
"b = " & b & " 変数型は
" & vartype(b) & " です。"
& vbcr & _
"a0=a = " & a0 & "
変数型は " & vartype(a0) & "
です。" & vbcr & _
"a1=a*1 = " & a1 & "
変数型は " & vartype(a1) & "
です。" & vbcr & _
"a2=a-0 = " & a2 & "
変数型は " & vartype(a2) & "
です。" & vbcr & _
"c1=a+b = " & c1 & "
変数型は " & vartype(c1) & "
です。" & vbcr & _
"c2=int(a)+int(b) = " & c2
& " 変数型は " & vartype(c2)
& " です。" & vbcr &
_
"c3=cint(a)+cint(b) = " & c3
& " 変数型は " & vartype(c3)
& " です。" & vbcr &
_
"c4=csng(a)+csng(b) = " & c4
& " 変数型は " & vartype(c4)
& " です。" & vbcr &
_
"d=4 = " & d & " 変数型は
" & vartype(d) & " です。"
& vbcr & _
"e=4.0 = " & e & "
変数型は " & vartype(e) & "
です。" & vbcr & _
"2:整数型、4:単精度浮動小数点型、"
& vbcr & _
"5:倍精度浮動小数点型、8:文字列型")
Home Page | Index Page |
---|