メモ帳(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