C言語-インタプリタminiBASIC
前へ 目次へ 次へ 

 簡単なBASICプログラム程度が処理できるインタプリタ型の言語処理プログラム(mbas : Mini BASic)をC言語で開発する。

 例 mbasのプログラムリスト(拡張子は、mbとする)と実行例

reidai01.mb
INPUT "Teihen=",t
INPUT "Takasa=",h
s = t * h / 2
PRINT "Menseki=";s
END
実行結果
D:\>mbas reidai.mb
Teihen=10
Takasa=10
Menseki=50

 プログラムmbasは、指定されたプログラムファイルを読み込み、ファイル内の命令に従って処理をする。このプログラムmbasを作成する。

[処理手順]

  1. mbasのプログラムファイル名をコマンドラインから取得する。
  2. mbasのプログラムファイルからプログラムリストを読み込む。
    ファイルオープン → ファイル読み込み → ファイルクローズ
  3. 先頭の行からプログラムを処理をする。END命令か最終行まで繰り返す。
mbas (mini BASIC)言語仕様(案)
数値定数     10進数
文字定数 ""で囲む
変数 実数型(double)のみ
変数名 A - Z の26個のみ
演算子 +, -, *, / (四則演算)
命令 END : 終了
INPUT : キーボード入力
PRINT : 画面表示
FOR - NEXT : 繰り返し
IF - ELSEIF - ELSE - ENDIF : 条件判断
REM : コメント

 

 1. mbasのプログラムファイル名をコマンドラインから取得する

void main(int argc, char *argv[])

 関数mainを上のように定義することで、変数argcにコマンドラインのパラメータ(引数)の個数、配列argvに各パラメータが格納される。
 実行結果のように“% mbas reidai.mb”と実行すると、変数argcは2となる。また、パラメータreidai.mbは配列argv[1]に格納される。

argc = 2 argv[0] = mbas
argv[1] = reidai.mb


[test01.c]
1:
2:
3:
4:
5:
6:
7:
8:
9:
#include <stdio.h>

@                                
{
    int     i;

    for(i = 0; i < argc; ++i)
        printf("argv[%d] = %s\n", i, argv[i]);
}
[解答欄] (すべて半角文字で、空白文字もチェックされます。)
@
     

 for文で、0からargc-1まで繰り返しパラメータを表示するようにしているので、複数のパラメータを指定しても表示することができる。


前へ 目次へ 次へ 
Copyright © 2001 Hiroshi Masuda 

 

 

inserted by FC2 system