「パソコン利用技術」Basicコース

Basicコマンドの説明とプログラム



目次

第1部 導入編

  1. BASICの起動と終了
  2. プログラムを打ってみよう
  3. 計算をしてみよう
  4. ファイルを使ってみよう
  5. グラフを書いてみよう
  6. Yes/Noの判断を利用してみよう
  7. 他のところへ行って下さい
  8. くり返しをおこなう

第2部 コマンド解説編

  1. コマンド
  2. グラフィック画面制御
  3. 一般命令
  4. テキスト画面制御
  5. 算術関数
  6. 1バイト系文字列操作
  7. ファイル制御
  8. I/Oポート入出力制御
  9. エラー制御
  10. その他の制御

第3部 演習編

演習問題を作っています。

第4部 演習解答編

練習問題の解答を作っています。公開は11月12日です。

第1部 導入編

 

1.BASICの起動と終了

  1. 起 動 :
    DOSの状態( A> )から、コマンド n88basic とタイプする。
  2. 終 了 :
    BASICの状態から、コマンド system とタイプする。
  3. 自動実行:
    BASIC の起動時に BASIC のプログラム(prog-key)を実行する。
    n88basic /t:run "prog-key"

2.プログラムを打ってみよう

まず、次に示すプログラムをタイプして最後に「リターンキー」を押してください。文字の大文字、小文字を気にする必要はありません。
打ち終わったら、listとタイプしてみましょう。
  1. プログラムリスト
    1000 CLS
    1010 PRINT "TEST1"
    1020 PRINT
    1030 PRINT "Hit Any key & Return "
    1040 INPUT A$
    1050 PRINT A$
    1060 END
  2. listとタイプしてみましょう。
    上のリストと同じように出ましたか?
  3. プログラムの実行
    runとタイプしてリターンキーを押す。
    プログラムを実行すると、次のような表示が表れます。
    表示
    −−−−−−−−−−−−−−−−−−−
    TEST1

    Hit Any key & Return
    ?
    −−−−−−−−−−−−−−−−−−−
  4. 解説
    簡単な解説をします。今はこんなことかと思って下さい。後から読み返すと解ってくると思います。
    ここで用いた、CLSPRINTINPUTなどをコマンド(命令の名前)といいます。
    1000 1010 1020 行番号と言います。実行する順番を示しています。
    CLS スクリーンをクリアーする
    PRINT "TEST1" TEST1を書き改行する
    PRINT 何も表示せずに改行する
    INPUT A$ 文字(数字を含む)を入力する
    PRINT A$ スクリーンに文字を書き改行する
    END プログラムを終了する

3.計算をしてみよう

  1. 簡単な計算
    命令 式      解  説
    print 1+2      書け  1+2の結果を
    print 4-1    書け  4−1の結果を
    print 3*2    書け  3×2の結果を
    print 8/2    書け  8÷2の結果を
  2. 変数を使った計算
    a=2         変数 a 2 とする
    b=3 変数 b 3 とする
    c=5 変数 c 5 とする
    print a*c+b 書け  a×c+b の結果を
    print (a+b)*c 書け  (a+b)×c の結果を
    print a*c*c+b*c   書け  a×c×c+b×c の結果を
  3. 関数を使った計算
    円周率をpiとし、三角関数( sin(x) , cos(x) )を求める。
    角度の計算は、Radian(ラジアン)で行なわれます。
    int(x)は、変数の整数部を求める。
    pi=3.14159 変数 pi 3.14159 とする
    print sin(30) 書け  sin(30)の結果を
    print sin(30/180*pi)書け  sin(30÷180×pi)の結果を
    print cos(30/180*pi)書け  cos(30÷180×pi)の結果を
    print int(pi) 書け  piの整数部を
    print int(pi*10) 書け  pi×10の整数部を
  4. 積分式(Σx)
    1から4のたし算  解  説
    print 1+2+3+4    書け  1+2+3+4の結果を
    x=0  : print x x  を 0とする & 書け  x を
    x=x+1 : print x x+1 xとする & 書け  x を
    x=x+2 : print x x+2 xとする & 書け  x を
    x=x+3 : print x x+3 xとする & 書け  x を
    x=x+4 : print x x+4 xとする & 書け  x を

4.ファイルを使ってみよう

  1. ファイルの一覧(リスト)
    filesとタイプすると、ファイルの一覧が表れます。
    files "a:*.bas"とすると、Aドライブの拡張子がbasのファイルが表れます。
  2. ファイルへの書き込み(出力)
    ここで、ファイル( a:\out1.prn )への書き込みを行います。
    files       ファイルの一覧を見る
    close #1 閉じろ  1番
    open "a:\out1.prn"
      for output as #1
    開け ファイル a:\out1.prn
    書込みは 1番から
    print #1, 1 書け 1番に  1を
    print #1, 9999 書け 1番に  9999を
    print #1, "test" 書け 1番に  testを
    close #1 閉じろ  1番
  3. ファイルの中身を見る
    ここで、先に書き込んだファイル( a:\out1.prn )の中身を見てみます。
    files       ファイルの一覧を見る
    close #2 閉じろ  2番
    open "a:\out1.prn"
       for input as #2
    開け ファイル a:\out1.prn
    読み込みは 2番から
    input #2, a 入力せよ 2番から  変数 a
    print a 書け   a を
    input #2, b 入力せよ 2番から  変数 b
    print b 書け   b を
    input #2, ip$ 入力せよ 2番から  文字 ip$
    print ip$ 書け   ip$ を
    close #2 閉じろ  2番
  4. ファイルを閉じる
    開いた( open した)ファイルは必ず閉じて下さい。
    close #1       閉じろ  1番
    close #1, #2 閉じろ  1番2番
    close 閉じろ  ファイル全部を

5.グラフを書いてみよう

スクリーン を方眼紙として イメージすると簡単に描けると思います。
目盛りは、横が640目盛り(0〜639)、縦が400目盛り(0〜399)です。
  1. グラフのスケールを決める
    スクリーンのモードの設定
     ・screen 3とすると横640縦400のモードになります。
    描く場所を決めます。
     ・スクリーンの座標は、左上が(0,0)、右下が(639,399)です。
     ・描く場所を決めるのに、viewコマンドを使います。
     □書式は view(左上の座標)−(右下の座標)です。
     ・全スクリーンを使うには   view (0,0)-(639,399)
     ・部分的に使うには      view (100,50)-(600,300)
    描く座標(スケール)を決めます。
     ・view コマンドで指定した枠の座標(スケール)を決めるのに、windowコマンドを使います。
     □書式は window (左上の座標)−(右下の座標)です。
     ・X座標、Y座標ともに 0〜100とすると、
      window (0,0)-(100,100)
     ・X座標、Y座標ともに−1〜  1とすると、
      window (-1,-1)-(1,1)
  2. 直線を引く
    スケールを決める
    screen 3
    view (100,50)-(600,300)
    window (-1,-1)-(1,1)
    線(ライン)を引くにはlineコマンドを使います。
     □書式は、 line (開始座標)−(終点座標)
    横線を描く
     ・X軸( y=0)は、
    line (-1,0)-(1,0)
    縦線を描く
     ・Y軸( x=0)は、
    line (0,-1)-(0,1)
    斜め線を描く
    ine (-0.5,0.5)-(0,0)
  3. 四角形を描く
     ・四角形(ボックス)を描く時は、line コマンドの最後に、b パラメータを付ける。
    line (-1,-1)-(1,1),,b
    line (-0.5,-0.5)-(0.5,0.5),,b
     
    課題:四角形を4本の線で描いてみよう!
     
  4. 円を描く
    円を描くには、circleコマンドを使用します
    □書式は、 circle (x,y),半径
    circle ( 0,0),1
    circle ( 0.5,0.5)0.5
  5. 点を打つ
    点を打つ(プロット)には、psetコマンドを使用します
    □書式は、 pset (x,y)
    pset ( -0.2, 0.4)
    pset ( 0.4, 0.2)
  6. 文字を入れる
    おおまかな位置に文字を入れます。
    文字のます目は、横80字、縦25列です。
    位置を指定するには、locateコマンドを使います。
    □書式は、 locate x,y
    locate 10, 15 : print -1
    locate 70, 15 : print 1

6.Yes/Noの判断を利用してみよう

  1. (1)Yes/Noの表現方法
    コンピュータは、Yes/Noを表現するのに真( -1 )偽( 0 )を使います。
  2. 関係演算
    関係演算子は2つの数値を比較するときに用る。結果は、真(-1)、偽(0)で得られ、条件判定文などプログラムの流れを変えるのに用いる。
    関係演算子  演算内容    
    等しい X=Y
    <> 等しくない X<>Y
    小さい X<Y
    大きい X>Y
    <=,=< 小さいか等しい X<=Y,X=<Y
    >=,=> 大きいか等しい X>=Y,X=>Y
  3. if ... then 〜 構文を使ってみる
    この構文は、論理式の結果により、プログラムの実行を制御します。
    □書式は、 if <論理式> then コマンドまたは行番号
    論理式が真(-1)ならば、then コマンドを実行します。
    論理式が偽( 0)ならば、何もしないで次の行へ行く
    if x=>0 then print "Positive" xが0より大きければ
    if ip$="end" then print "END" ip$が「end」ならば
    if ip$<>"" then print ip$ ip$が空でなければ

7.他のところへ行って下さい

  1. goto構文を使ってみる
    指定した行へジャンプし、そこからプログラムを実行する
    □書式は、 goto <行番号>
    goto 200       200行へ行け
  2. if ... then 〜 構文を使ってみる
    if ... then 構文を用いてプログラムの流れを変える。
    100 if x=>0 then 200 xが0より大きければ 200行へ行け
    300 if ip$="end" then 900 ip$が「end」ならば 900行へ行け
    400 if ip$<>"" then 200 ip$が空でなければ  200行へ行け
  3. gosub構文を使ってみる
    goto構文は、指定した行へ移動してプログラムを続けます。
    gosub構文は、移動した先のプログラム(サブルーチン)を実行した後、元の行の次に戻りプログラムを実行します。
    サブルーチンとは、他から独立したプログラムで、returnで終わっているものをいいます。
    プログラム     解説
    100 x=1 xを1とする
    110 print x 書け xを
    120 gosub 200 サブルーチン 200へ行け
    130 print x 書け xを
    140 gosub 200 サブルーチン 200へ行け
    150 print x 書け xを
    160 end 終了
    200 x=x+10 xに10を加えろ
    210 return 戻れ

8.くり返しをおこなう

1から5までの足し算をプログラムしてみましょう
  1. ダイレクトモード 1
    ダイレクトモードとは、BASICが起動された直後の動作モードをいいます。
    print 1+2+3+4+5
  2. ダイレクトモード 2
    ダイレクトモード 1をばらばらにしてみました。
    x=0 初期設定 x=0
    x=x+1
    x=x+2
    x=x+3
    x=x+4
    x=x+5
    print x
  3. プログラムモード 1
    ダイレクトモード 2をプログラムしてみました。
    100 x=0 初期設定 x=0
    110 x=x+1
    120 x=x+2
    130 x=x+3
    140 x=x+4
    150 x=x+5
    160 print x 書け xを
    170 end 終了
  4. プログラムモード 2
    if ... then 構文を使ってプログラムしてみました。
    100 x=0 初期設定 x=0
    110 y=0 初期設定 y=0
    120 y=y+1 yに1を加える。yは、1,2,3,4,5と変化する
    130 x=x+y xにyを加える
    140 if y=<5 then 120yが5より小さいか等しいときは、行120へ行け
    150 print y 書け yを  yは6になっています
    160 print x 書け xを
    170 end 終了
  5. プログラムモード 3
    for ... next 構文を使ってみよう
    forからnextまでの区間中にある一連の命令を、くり返し実行します。>
    □書式は、 for <変数名>=<初期値> next <終値>
    nextをとおるたびに変数に 1 が足されます。
    変数が<終値>を越えると、for ... next は実行されず、nextの次へ実行が移ります。
    100 x=0 初期設定 x=0
    110 for y=1 to 5 変数 yの初期値1、終値5
    120 x=x+y xに y を加える
    130 next y yに 1 を加える。 yと終値との判断をする。
    150 print y 書け yを  yは6になっています
    160 print x 書け xを
    170 end 終了