「パソコン利用技術」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日です。

第2部 コマンド解説編

第2部では、n88basic のリファレンスマニュアルに記載されていることをもとに、要約して掲載します。全文を必要な方は、リファレンスマニュアルをお読み下さい。

1.コマンド

  1. auto
    機能:行番号を自動的に発生します
    書式:auto [<行番号>][,<増分>]
    文例:auto 100,5
  2. delete
    機能:プログラムの部分削除を行います
    書式:delete <始点行番号>[-<終点行番号>]
    文例:delete 1050
  3. edit
    機能:指定された行を画面上に表示し、以降[ROLL UP]キー、[ROLL DOWN]キーなどによるプログラム編集を可能にします
    書式:edit <行番号>
    文例:edit 30
       edit .
  4. list
    機能:メモリ上にあるプログラムの全部、または一部を表示します
    書式:list <始点行番号>[-<終点行番号>]
    文例:list .
       list 100-200
  5. load
    機能:プログラムをメモリにロードします
    書式:load <ファイルディスクリプタ>[,r]
    文例:load "b:demo",r
       load "com:n82nn"
  6. renum
    機能:プログラムの行番号を新しくつけ直します
    書式:renum [<新行番号>][,<旧行番号>][,<増分>]
    文例:renum 1000,10
  7. run
    機能:メモリにあるプログラムの実行を開始します。また、ディスクからプログラムをメモリにロードし、そのプログラムを実行します
    書式:run [<行番号>]
       run <ファイルディスクリプタ>[,r]
    文例:run
       run
  8. save
    機能:メモリにあるBASICプログラムをファイルにセーブ(保存)します
    書式:save <ファイルディスクリプタ>[,a]
    文例:save "b:myprog",a
  9. tron/troff
    機能:プログラムの実行状態を追跡します
    書式:tron
       troff
    文例:tron
       troff
  10. files/lfiles
    機能:ディスクに入っているファイルの名前、サイズ、作成日付などの一覧を出力します
    書式:files [<ファイルディスクリプタ>]
       lfiles [<ファイルディスクリプタ>]
    文例:files
       lfiles "b:"
       files "document.txt"
       lfiles "a:\source\*.bas"
  11. kill
    機能:ディスク上のファイルを削除します
    書式:kill <ファイルディスクリプタ>
    文例:kill "b:\data1"
       kill "\basicc\data1"

2.グラフィック画面制御

  1. circle
    機能:円、楕円を描きます
    書式:circle (Wx, Wy) , <半径> [,<パレット番号1>][,<開始角度>][,<終了角度>][,<比率>][,f [,<パレット番号2>]]
    文例:circle (80,80),40,4,0,6.28
       circle step (40,-20),30,,,,, f,tile$
  2. cls
    機能:現在アクティブな画面をクリアーします
    書式:cls [<機能>]
    文例:cls 2
  3. color
    書式:color [<ファンクションコード>][,<バックグラウンドカラー>][,<ボーダーカラー>][,<フォアグラウンドカラー>][,<パレットモード>]
    文例:color 7, 0, 0, 7
  4. line
    機能:指定した2点間に直線を描きます(パラメータ指定により四角形も描きます)
    書式:line [(Wx1,Wy1)]-(Wx2,Wy2)[,<パレット番号1>][,<b/bf>][,<ラインスタイル>]
    文例:line (100,100)-(135,100),7,,&hf99f
       line -step(30,30),7,bf,7
  5. paint
    機能:指定された境界色で囲まれた領域を、指定された色でぬります
    書式:paint (Wx,Wy)[,<領域色>][,<境界色>]
    文例:paint (-50,120),3,4
       paint step (10,10),6
  6. pset
    機能:画面上の任意の座標にドットを表示します
    書式:pset (Wx,Wy)[,<パレット番号>]
    文例:pset (100,100),4
  7. screen
    機能:グラフィック画面に対して種々のモードを設定します
    書式:screen [<画面モード>][,<画面スイッチ>][,<アクティブページ>][,<ディスプレイページ>]
    文例:screen 1,0,0,7
  8. view
    機能:ディスプレイ画面上での表示領域(ビューポート)を指定します
    書式:view (Sx1,Sy1)-(Sx2,Sy2)[,<領域色>][,<境界色>]
    文例:view (100,30)-(200,75),,7
  9. window
    機能:ビューポートに表示するワールド座標系内の領域を指定します
    書式:window (Wx1,Wy1)-(Wx2,Wy2)
    文例:window (-300,-50)-(100,70)

3.一般命令

  1. data
    機能:readで読み込まれる数値定数、文字定数を定義します
    書式:data <定数>[,<定数> ...]
    文例:data 1,cba,1465
  2. def fn
    機能:利用者定義関数を指定します
    書式:def fn<名前>[(<パラメータリスト>)]= <関数の定義式>
    文例:def fna(x,y)=x*2+y*3
  3. defint/defsng/defdbl/defstr
    機能:変数の型宣言を行います
    書式:defint <文字の範囲>[,<文字の範囲> ...]
       defsng <文字の範囲>[,<文字の範囲> ...]
       defdbl <文字の範囲>[,<文字の範囲> ...]
       defstr <文字の範囲>[,<文字の範囲> ...]
    文例:defint a,k-l
       defsng b
       defdbl x-z
       defstr l-n,q
  4. dim
    機能:配列変数の要素の大きさを指定し、メモリ領域に割り当てます
    書式:dim <変数名>(<添字の最大値>[,<添字の最大値> ...])[,<変数名>(<添字の最大値>[,<添字の最大値> ...])
    文例:dim a(12,2),b$(3)
  5. end
    機能:プログラムの終了を宣言します
    書式:end
    文例:end
  6. for .. to .. step 〜 next
    機能:
    書式:for <変数名>=<初期値> to <終値> [step <増分>]
       〜
       next
    文例:for j=0 to 100 step 2
       for k=10 0 step -1
       〜
       next k,j
  7. gosub
    機能:サブルーチンを呼び出します
    書式:gosub <行番号>
    文例:gosub *sub1
       gosub 550
  8. goto
    機能:指定された行へジャンプし、そこからプログラムを実行します。
    書式:goto <行番号>
    文例:goto 500    goto *exit
  9. if .. then 〜 else
    機能:論理式の条件判断を行います
    書式:if <論理式> then <文/行番号> [else <文/行番号>]
    文例:if a$="y" then *start else *exit
       if ss then 200
  10. on .. gosub / on .. goto
    機能:指定されたいずれかの行に分岐します
    書式:on <式> gosub <行番号>[,<行番号> ...]    on <式> goto <行番号>[,<行番号> ...]
    文例:on a gosub 100, 200, 300, 400
       on a goto *entry1, *entry2, *entry3, *entry4
  11. option base
    機能:配列の添字の最小値を指定します
    書式:option base 0/1
    文例:option base 1
  12. randomize
    機能:新しい乱数系列を設定します
    書式:randomize [<式>]
    文例:randomize 230
  13. read
    機能:dataで用意した数値や文字のデータを読み込み、変数に代入します
    書式:read <変数>[,<数値> ...]
    文例:read zip,addr$
  14. rem
    機能:プログラムに注釈文を入れます
    書式:rem [<注釈文>]
    文例:rem *** Main-Program ***
  15. return
    機能:サブルーチンまたは割り込み処理ルーチンを終了し、元のプログラムの実行を再開します
    書式:return [<行番号>]
    文例:return
       return 200
  16. stop
    機能:プログラムの実行を一時中断し、コマンドモードにもどります
    書式:stop
    文例:stop
  17. swap
    機能:2つの変数の値を入れ換えます
    書式:swap <変数>,<変数>
    文例:swap a$,b$
  18. while 〜 wend
    機能:while からwend までの区間中にある一連の文を、指定条件が満足されている間、繰り返し実行します
    書式:while<論理式>
       〜
       wend
    文例:while j<=5
       〜
       wend

4.テキスト画面制御

  1. cls
    機能:現在アクティブな画面をクリアーします
    書式:cls [<機能>]
    文例:cls 3
  2. color
    機能:ディスプレー画面の各部の色およびグラフィック画面のパレットモードを指定します
    書式:color [<ファンクションコード>][,<バックグラウンドカラー>][,<ボーダーカラー>][,<フォアグラウンドカラー>][,<パレットモード>]
    文例:color 7, 0, 0, 7
  3. console
    機能:テキスト画面モードの設定を行います
    書式:console [<スクロール開始行>][,<スクロール行数>][,<ファンクション表示スイッチ>][,<カラー/白黒スイッチ>][,<キャラクターモード>]
    文例:console 0,24,0,1
       console ,,1,0
  4. locate
    機能:テキスト画面のカーソルを指定位置へ移動します
    書式:locate [<x>][,<y>][<カーソルスイッチ>]
    文例:locate 10,10
       locate ,,0
  5. print
    機能:画面にデータを出力します
    書式:print [<式>][,/;<式> ...][,/;]
    文例:print "column=";x,"line=";y
  6. print using
    機能:文字列、数値などのデータを編集し、画面に出力します
    書式:print using <書式制御文字列>; <式>[,<式> ...][,/;]
    文例:print using "####,."; a,b,c

5.算術関数

  1. abs
    機能:絶対値を得ます
    書式:abs(<数式>)
    文例:b=abs(-2)
       print abs(-1.00000001)
  2. atn
    機能:逆正接(アークタンジェント)を得ます
    書式:atn(<数式>)
    文例:angle=atn(y/x)
       print atn(-3.14159/2)
  3. cos
    機能:余弦(コサイン)を得ます
    書式:cos(<数式>)
    文例:x=radius*cos(angle)
       print cos(3.14159/4)
  4. exp
    機能:e(自然対数の底)に対する指数関数の値を得ます
    書式:exp (<数式>)
    文例:e=exp(1)
       print exp(a/2)
  5. fix
    機能:数値の整数部を得ます
    書式:fix (<数式>)
    文例:x=fix(b/3)
  6. int
    機能:小数点以下を切り捨てた整数値を得ます
    書式:int (<数式>)
    文例:print int(1.123)
       a=int( rnd*255)
  7. log
    機能:自然対数を得ます
    書式:log (<数式>)
    文例:print log(35/9)
       la= log( x*y)
  8. rnd
    機能:乱数を得ます
    書式:rnd [(<数式>)]
    文例:r=rnd
       r=rnd(-3)
  9. sin
    機能:正弦(サイン)を得ます
    書式:sin(<数式>)
    文例:x=radius*sin(angle)
       print sin(-3.14159/2)
  10. sqr
    機能:平方根を得ます
    書式:sqr(<数式>)
    文例:distance=sqr(x*x+y*y)
  11. tan
    機能:正接(タンジェント)を得ます
    書式:tan(<数式>)
    文例:y=x*tan(angle)

6.1バイト系文字列操作

  1. mid$
    機能:文字列の中から任意の長さの文字列を抜き出します
    書式:mid$(<文字列>,<式1>[,<式2>])
    文例:b$=mid$(a$,2,3)
       country$=mid$("JPNUSAFRAGBRCAN",N*3+1,3)
  2. asc
    機能:文字のキャラクターコードを得ます
    書式:asc(<文字列>)
    文例:a=asc("NEW")
       print asc(a$)
  3. chr$
    機能:指定したキャラクターコードを持つ文字を得ます
    書式:chr$=(<数式>)
    文例:a$=chr$(65)
       print chr$(&h4e)
  4. hex$
    機能:10進数を16進数に変換し、その文字列を得ます
    書式:hex$(<数式>)
    文例:a$=hex$(x)
       print hex$(255)
  5. instr
    機能:文字列の中から指定文字列を探して、その文字の位置を得ます
    書式:instr(<位置>,<文字列1>,<文字列2>)
    文例:j=instr(a$,"J")
       print instr("ONETWOTHREE","TWO")
  6. left$
    機能:文字列の左側から任意の長さの文字列を抜き出します
    書式:left$(<文字列>,<式>)
    文例:b$=left$(a$,4)
       print left$("standing",5)
  7. len
    機能:文字列の合計バイト数を得ます
    書式:len(<文字列>)
    文例:print len(a$)
       l=len("TEST")
  8. right$
    機能:文字列の右側から任意の長さの文字列を抜き出します
    書式:right$(<文字列>,<式>)
    文例:print right$("ABCDabcd"), n*4)
  9. str$
    機能:数値を文字列に変換します
    書式:str$(<数式>)
    文例:listing$=str$(num)+name$
  10. val
    機能:文字列表記の数値を実際の数値に変換します
    書式:val(<文字列>))
    文例:a=val("&h20")

7.ファイル制御

  1. close
    機能:ファイルを閉じます
    書式:close [[#]<ファイル番号>[,[#]<ファイル番号>]...]
    文例:close
       close #1,#3
  2. input #
    機能:シーケンシャルファイルからデータを読み込み、変数に代入します
    書式:input #<ファイル番号>,<変数名>[,<変数名> ...]
    文例:input #1, a,b
       input #2, name$
  3. line input #
    機能:シーケンシャルディスクファイルより、1行(255バイト以内)単位のデータを一括して文字型変数に読み込みます
    書式:input # <ファイル番号>,<文字型変数名>
    文例:input #1 , a$
  4. open
    機能:ファイルを開きます
    書式:open <ファイルディスクリプタ> [for <入出力モード>][<共用モード>] as [#] <ファイル番号>
    文例:open "b:\data1" as #1
       open "f1" for output deny all as #2
       open "com1:n81xn" as #1
  5. print #
    機能:ファイルにデータを書き出します
    書式:print # <ファイル番号>,<式>[,/;<式> ...][,/;]
    文例:print #2, a;b;c
       print #1, a$;",";b$
  6. print # using
    機能:文字列、数値などのデータを編集し、ファイルに出力します
    書式:print # <ファイル番号>,using <書式制御文字列>;<式>[,/;<式> ...][,/;]
    文例:print #2, using "@ ####"; case$, number
  7. dskf
    機能:ディスクの空き容量のサイズを得ます
    書式:dskf(<ドライブ名>)
    文例:print dskf("a:")
  8. eof
    機能:ファイルの終了コードを調べます
    書式:eof(<ファイル番号>)
    文例:if eof(1) then close 1 : end
  9. input$
    機能:指定されたファイルより指定された長さの文字列を読み込みます
    書式:input$(<文字数>[,[#]<ファイル番号>])
    文例:word$=input$(6,#2)
  10. lof
    機能:ファイルの大きさを得ます
    書式:lof(<ファイル番号>)
    文例:maxrec=lof(2)

8.I/Oポート入出力制御

  1. beep
    機能:内蔵スピーカを鳴らしたり、止めたりします
    書式:beep [<スイッチ>]
    文例:beep
  2. out
    機能:出力ポートに1バイトのデータを送出します
    書式:out <ポート番号>,<式>
    文例:out 64,32
  3. wait
    機能:入力ポートをモニタする間、プログラムの実行を停止します
    書式:wait <ポート番号>,<式1>,<式2>
    文例:wait 1, &h22, &hff
  4. inp
    機能:入力ポートから値を読み取ります
    書式:inp(<ポート番号>)
    文例:a=inp(15)

9.エラー制御

  1. error
    機能:エラー発生のシミュレート、エラーコードの利用者定義を行います
    書式:error <整数表記>
    文例:error 200
       error a%
  2. on error goto
    機能:エラーが起こったときに分岐する処理ルーチンの開始行を定義します
    書式:on error goto <行番号>
    文例:on errot goto 1000
  3. resume
    機能:エラー処理ルーチンを終了し、元のプログラムの実行を再開します
    書式:resume [0]
       resume next
       resume <行番号>
    文例:resume *start
  4. erl / err
    機能:エラーの発生した行番号および発生したエラーのエラーコードを保持しています
    書式:erl
       err
    文例:if erl=100 then cls : resume
       if err=7 then stop

10.その他の制御

  1. child
    機能:BASICからMS-DOSへ一時的に制御を移します
    書式:child [<チャイルドプロセス名およびチャイルドプロセスに引き渡す情報>][,m][,<画面クリアスイッチ1>][,<画面クリアスイッチ2][,<ファンクションキー表示スイッチ>]
    文例:child "demopro.exe",1,1
       child "dir b:",m
       child ,m
  2. clear
    機能:変数の初期化およびメモリレイアウトを決定します
    書式:clear [<機械語プログラム領域のサイズ>][,<利用者スタック領域のサイズ>][,<配列データ領域のサイズ>][,<チャイルドプロセス領域のサイズ>]
    文例:clear &h120, &h100
  3. date$
    機能:日付を得ます
    書式:date$
       date$="yy/mm/dd"
    文例:a$=date$
       date$="87/12/12"
  4. time$
    機能:時刻を得ます
    書式:time$
       time$="hh:mm:ss"
    文例:print time$
       time$="23:15:00"
  5. copy
    機能:画面情報のハードコピーを行います
    書式:copy [<機能>]
    文例:copy 2
       copy
  6. lprint
    機能:プリンターにデータを出力します
    書式:lprint [<式>][,/;<式> ...][,/;]
    文例:lprint a$, d2
       lprint chr$(&h41);chr$(&h42);chr$(&h43)
  7. lprint using
    機能:文字列、数値などのデータを編集し、プリンターに出力します
    書式:lprint using <書式制御文字列>;<式>[,/;<式> ...][,/;]
    文例:lprint using "@ ####"; a$, b
       lprint using "\\#.###";c