指令及函数一览:
变量及数组定定义函数:
DIM 数组定义
说明: 定义数组维数并分配空间,没有经过DIM说明的数组下缺省最大值是10.
用法: DIM 数组名(N1,N2,N3...)
IF...THEN/(GOTO)...ELSE 条件判断
语法: IF...THEN n,条件成立时跳到n行处执行;条件不成立时接着下一行执行。
IF...GOTO n 等价于 IF...THEN n
IF ... THEN n ELSE ..., IF ...
IF ...GOTO n ELSE ... IF ...
范例:
]10 N=1
]20 PRINT N,SQR(N)
]30 N=N+1
]40 IF N<4 THEN GOTO 20
]50 END
]RUN
显示结果:
1
1
2
1.41421356
3
1.73205081
4
2
]
LET 给变量赋值
说明: LET 命令可以省略
语法: LET 变量=表达式
范例:
]10 LET N=2008-1999
]20 R=0.09
]30 LET AAL=100*(1+R)^N
]40 PRINT "AAL";AAL
]50 END
]RUN
AAL=217.189328
SWAP 变量互换
语法: SWAP A1,B1
范例:
]10 A=28;B=50
]20 PRINT A,B
]30 SWAP A,B
]40 PRINT A,B
]50 END
]RUN
28
50
50
28
]
GOTO 无条件跳转
说明: *程序跳转到指定行号处运行
语法:GOTO n
范例:
]10 LET A=20
]20 GOTO 40 程序跳转到行号40处在屏幕上输出HELLO字样
]30 PRINT A
]40 PRINT "HELLO"
]50 END
RUN
显示结果: HELLO
IF...THEN/(GOTO)...ELSE 条件判断
语法: IF...THEN n,条件成立时跳到n行处执行;条件不成立时接着下一行执行。
IF...GOTO n 等价于 IF...THEN n
IF ... THEN n ELSE ..., IF ...
IF ...GOTO n ELSE ... IF ...
范例:
]10 N=1
]20 PRINT N,SQR(N)
]30 N=N+1
]40 IF N<4 THEN GOTO 20
]50 END
]RUN
显示结果:
1
1
2
1.41421356
3
1.73205081
4
2
]
ON 控制转移
语法: ON...GOTO n1,n2,n3...
说明: 计算ON后的表达式的值,为1时对应n1子程序,为2时对应n2子程序..当无对应时继续执行下一条语句.
范例: 请参考本教程后面的例程< 四则运算>
循环控制语句
FOR...TO...STEP...NEXT 循环控制
语法: FOR ... TO ...
NEXT
如:
]10 FOR I=5 TO 1 STEP -1
]20 PRINT I
]30 NEXT I
]40 END
]RUN
显示结果:
5
4
3
2
1
]
WHILE/WEND 循环控制
说明:当表达式为真时执行循环,当表达式为假时继续执行WEND后的下一条语句
语法: WHILE 表达式
....
WEND
范例:
]10 REM AVERAGE
]20 S0=0
]30 GOSUB S0
]40 PRINT S0
]50 GOTO 990
]100 READ A
]110 WHILE A<>-1
]120 S0=S0+A
]130 READ A
]140 WEND
]900 DATA 34,45,50,65,23,88,-1
]990 END
]RUN
305
]
自定义函数及转子过程语句:
DEF FN 自定义函数
用法: DEF FN 函数名=表达式
范例:
]10 DEF FN A(W)=2*W+W;
]20 PRINT FN A(23)
]30 DEF FN B(X)=4+3
]40 G=FN B(23)
]50 PRINT G
]60 DEF FN A(Y)=FN B(Z)+Y
]70 PRINT FN A(G)
]80 END
]RUN
结果:
69
7
14
]
GOSUB 跳转子程序
说明:程序跳转到以指定行号开始的子程序处运行,遇到RETURN语句时,就返回到GOSUB的下一条语句接着运行.
语法: GOSUB n
范例:
]10 GOSUB 100
]20 IF X>0 THEN PRINT X ELSE PRINT "ERR"
]30 END
]100 INPUT X /*子程序开始*/
]110 RETURN /*子程序结束*/
]RUN /*运行程序*/
?45
45 /*输出结果*/
此程序执行顺序为:10->100->110->20->30
RETURN 子程序返回
说明: 请参考GOSUB语句范例
语法: RETURN
RESUME 出错子程序返回
语法: RESUME
数学运算函数:
AND 逻辑与
用法: AND
范例:
]20 IF A>0 AND A<1 THEN PRINT A
OR 逻辑或
语法: OR
范例:
]20 IF A> OR B>1 THEN PRINT A*B
NOT 逻辑非
语法: NOT
范例:
]20 IF NOT(A>2) THEN PRINT A
ABS 取绝对值
语法: ABS (exp)
范例:
]10 A=ABS(35*-4)
]20 PRINT A
]30 END
]RUN
140
]
ATN 反正切值
说明: 返回弧度的正切值
语法: ATN (表达式)
范例:
COS 余弦值
说明:返回弧度的余弦值
语法: COS (表达式)
EXP e的次方
说明: e的x次方值
语法: EXP(x)
INT 取整
说明: 取值为x的整数部分
语法: INT(x)
范例:
]10 A=234.58
]20 PRINT INT(A)
]30 END
]RUN
显示结果:
234
]
LOG 取对数
说明: 以e为底的对数
语法: LOG(x)
RND 产生随机数
说明: 产生一个(0,1)间的随机小数,如果x>0,每次产生不同的随机数;如果x<0,产生一定系列的随机数,如果x=0,输出上次产生的随机数
用法: RND(x)
SGN 取符号
语法: SGN(x)
SIN 正弦值
说明:返回弧度的正弦值
语法: SIN(exp)
SQR 平方根
语法: SQR(exp)
TAN 正切值
说明: 返回弧度的正切值
语法: TAN(exp)
ASC 求ASCII码
说明: 求取字符串s$中的第一个字符的ASCII码
语法: ASC(S$)
范例:
]10 A$="hello"
]20 PRINT ASC(A$)
CHR$ 取字符
说明: 求ASCII码为n的字符
语法: CHR$ (n)
范例:
]10 FOR I=1 TO 255 打印从1-255对应的字符
]20 PRINT CHR$(I)
]30 NEXT I
LEFT$ 取字符
说明: 取字符串s$左端的n个字符
语法: LEFT$ (s$,n)
范例:
]10 X$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
]20 A$=LEFT$(x$,5)
]30 PRINT A$
]40 END
RUN
显示结果: ABCDE
LEN 求字串长
说明: 求字符串s$的长度
语法: LEN (S$)
范例:
]10 X$="ILOVEGVBASIC"
]20 PRINT LEN(X$)
]RUN
显示结果: 12
MID$ 取字符
说明: 从字符n位置起取m个字符
语法: MID$ (S$,n,m)
范例:
]10 X$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
]20 A$=MID$(x$,13,3)
]30 PRINT A$
]40 END
RUN
显示结果: MNO
RIGHT$ 取字符
说明: 取字符串S$右端的n个字符
语法: RIGHT$(S$,n)
范例:
]10 X$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
]20 A$=RIGHT$(x$,4)
]30 PRINT A$
]40 END
RUN
显示结果: WXYZ
MKS$ 实数转换成二进制(5byte表示)
语法: MKS$(numexpr)
范例:
]40 LSET A$=MKS$(1.445)
STR$ 数字转为字串
说明: 将数字n转化为字串
语法: STR$(n)
范例:
]10 LET X=123 /* 数值 */
]20 A$=STR$(X)
]30 PRINT A$
]40 END
]RUN
显示结果: 123 /* 字符串 */
VAL 字串转为数字
说明: 将字符串S$转化为数字
语法: VAL(S$)
范例:
]10 LET X$="12345" /* 字串形 */
]20 A=VAL(X$)
]30 PRINT A
]40 END
]RUN
显示结果: 12345 /* 数值形 */
POS 取字符位置
说明: 得到光标的水平位置
语法: POS(n)
范例:
SPC 打印空格
说明: 打印n个空格,需配合PRINT语句使用
语法: SPC(n)
范例:
]PRINT 45:SPC(4);56
45 56
CVI$ 二进制串(2byte)转为整数
语法: CVI$(S$)
范例:
]40 A%=CVI$("10")
CVS$ 二进制串(5byte)转为实数
语法: CVS$(S$)
范例:
]30 LSET A$=MKS$(1.445)
]40 A=CVS$(A$)
MKI$ 整数转为二进制串(2byte表示)
语法: MKI$(intexpr)
范例:
]40 RSET A$=MKI$(10)
MKS$ 实数转为二进制串(5byte表示)
语法: MKS$(numexpr)
范例:
]40 LSET A$=MKS$(1.445)
READ 从数据区读数
语法:
READ dat1,dat2,dat3...
范例:
]10 REM AVERAGE /*该程序读取多个数,然后计算它们的平均值
]20 S0=0
]30 GOSUB 100
]40 PRINT S0
]50 GOTO 990
]100 READ A
]110 WHILE A<>-1
]120 S0=S0+A
]130 READ A
]140 WEND
]900 DATA 34,45,50,65,23,88,-1
]990 END
]RUN
显示结果: 305
DATA 置数据区数据
说明: 程序范例请参考READ
RESTORE 恢复指针
说明:恢复数据区指针到数据区头
语法: RESTORE
INPUT 从键盘输入
语法: INPUT A1,A2,A3
范例1:
]10 INPUT A
]20 PRINT A
]30 END
]RUN
?23 /*程序运行后出现 ?提示符等待用户键入*/
23
范例2:
]10 INPUT A$
]20 PRINT A$
]30 END
?I LOVE GVBASIC /*在?提示符后键入I LOVE GVBASIC*/
I LOVE GVBASIC /*屏幕输出I LOVE GVBASIC*/
PRINT 屏幕显示
语法: 1.PRINT exp 显示完表达式然后换行
2.PRINT exp1,exp2,exp3...显示完每个表达式以后换行
3.PRINT exp1;exp2;exp3...显示完每个表达式以后不换行,接着显示下一个表达式
范例:
]10 A$="THIS"
]20 B$="IS"
]30 C$="GVBASIC"
]40 PRINT A$,B$,C$ /*换行显示方式*/
]50 PRINT A$;B$;C$ /*不换行显示方式*/
]60 END
]RUN
THIS
IS
GVBASIC
THISISGVBASIC
LOCATE 置显示位置
说明: 可以用该命令通过改变n,m参数的值实现动画字幕
语法: LOCATE n,m
n: 纵坐标位置
m: 横坐标位置
范例:
]10 FOR I=1 TO 10
]20 N=I
]30 LOCATE 3,N
]40 PRINT "GO!"
]50 FOR J=1 TO 100 /*空循环起延时作用*/
]60 NEXT J
]70 CLS /*擦除运动轨迹*/
]80 NEXT I
]90 END
RUN /*显示从左到右运动GO!*/
INVERSE 反显字符
语法: INVERSE
范例:
]30 INVERSE
INKEY$ 读键值
语法: INKEY$
范例:
]10 WHILE INKEY$<>" "
]20 PRINT "A";
]30 WEND
PLAY 放音乐
说明: C D E F G A B 7个英文字符分别代表音阶: 1 2 3 4 5 6 7
语法: PLAY "CDEFGAB"
范例:
] PLAY "L8 AG L2A P2 L8 GFED L2 C L1 D P1"
BEEP 喇叭发声
语法: BEEP
说明: 让喇叭发出短促的提示声
GRAPH 图形模式
语法: GRAPH
范例:
]10 GRAPH
]20 BOX 10,10,40,40
]30 CIRCLE 50,50,30
]40 END
DRAW 画点语句
语法: DRAW X,Y,TYPE
其中TYPE确定画点方式,其它图形指令亦有此下列参数
0 clear 清除
1 print 画点
2 convert 反显
3 ora 或
4 and 与
5 eor 异或
LINE 画直线/矩形
语法: LINE X0,Y0,X1,Y1,TYPE
范例1:
]10 GRAPH
]20 LINE 10,10,50,50,1
]40 END
RUN /*该程序在屏幕上打印出一条直线*/
范例2:
]10 GRAPH
]20 LINE 10,10,50,50,1
]30 LINE 50,10,50,30,1
]40 LINE 50,30,10,30,1
]50 LINE 10,10,10,30,1
]60 END
RUN /*该程序在屏幕上画出下个漂亮的长方形*/
ELLIPSE 画椭圆
语法: ELLIPSE X0,Y0,A,B,FILL,TYPE
*FILL=1 填充
*FILL=0 不填充
*TYPE=1 画椭圆
*TYPE=0 清椭圆
范例:
]10 GRAPH
]20 ELLIPSE 80,40,60,30,1
]40 END
RUN /*屏幕上画出一个椭圆*/
CIRCLE 画圆命令
语法: CIRCLE X0,Y0,R,FILL,TYPE
X0: 圆心的横坐标
Y0: 圆心的纵坐标
R : 圆半径
FILL=1: 填充
FILL=0: 不填充
TYPE=1: 画圆
TYPE=0: 清圆
范例:
]10 GRAPH
]30 CIRCLE 80,40,30,1
]40 END
]
RUN /*该程序在屏幕正中央画出一个黑色的圆*/
BOX 画矩形
语法: BOX X0,Y0,X1,Y1,FILL,TYPE
*FILL=1 填充
*FILL=0 不填充
*TYPE=1 画矩形
*TYPE=0 清矩形
范例:
]10 GRAPH
]20 BOX 10,10,40,40
]40 END
文件操作函数:
OPEN 打开数据文件
语法: OPEN file$ [FOR mode AS #filenum% [LEN=reclen%]
file$:文件名串
mode 打开方式
INPUT 只读
OUTPUT 只写
APPEND 追加
RANDOM 随机
filenum%: 文件号
LEN: 缓冲区长度,默认为32(只在RANDOM方式下有效)
范例:
]10 OPEN "DAT" FOR OUTPUT AS #1
]20 OPEN "DAT1" FOR RANDOM AS #2 LEN=50
CLOSE 关闭数据文件
语法: CLOSE 关闭数据文件
范例:
]10 OPEN "DAT" FOR OUTPUT AS #1
]20 CLOSE #1
EOF 顺序文件是否结束,未结束返回1(特别注意: 在其它BASIC语言中应返回值0)
语法: EOF(filenum%)
范例:
]50 IF EOF(1) THEN PRINT "FILE END"
PUT 向指定文件的指定记录写入缓冲区内容
语法: PUT #filenum%,recordnum%
范例:
]40 PUT #1,1
GET 从指定文件读取指定记录放入缓冲区
语法: GET #filenum%,recordnum%
#filenum% 文件号
#recordnum% 记录号
范例:
]40 GET #1,1
INPUT 向数据文件中输入数据
INPUT #filenum%,varlist[,varlist,...]
范例:
]10 INPUT #1,A$,A1$ '向文件号为#1的文件中写入两个变量的值
RSET 向缓冲区分配的变量赋值,并做右对齐调整
语法: RSET VAR$=strexpr$
范例:
]40 RSET A$="WORLD"
COPY 复制文件
语法: COPY 文件名1 文件名2
范例:
]COPY "M" "A.DAT"
SAVE 保存当前内存中的程序
语法: SAVE 文件名
范例:
]10 LET A=20
]20 PRINT A
]30 END
]SAVE MY.BAS
]
LOAD
将源程序装入内存
语法: LOAD 文件名
范例:
]LOAD MY.BAS
]LIST
]10 LET A=10
]20 PRINT A
]30 END
LIST
显示内存当前程序
语法: LIST [ ]/[-n]/[n-]/[n1,n2]
缺省: 显示所有行.
-n: 显示n行以前的所有程序行.
n-: 显示n行以后的所有程序行.
n1,n2: 显示n1至n2行之间所有的程序行.
范例:
]10 LET A=0
]20 PRINT A
]30 END
]LIST
]10 LET A=0
]20 PRINT A
]30 END
]LIST 10,20
]10 LET A=0
]20 PRINT A
NEW
清除内存中的程序和所有变量
语法: NEW
范例:
]10 LET A=0
]20 END
]LIST
]10 LET A
]20 END
]NEW
]LIST 注:原先输入的程序被清除了
]
RUN 运行程序
语法: RUN [ ]/[n]
:从最小行号处运行程序
n:从指定的行号处运行程序
范例:
]10 LET A=20
]20 PRINT A
]30 END
]RUN
20
]
FILES 列出文件目录
语法: FILES
KILL
删除指定的文件
语法: KILL 文件名
EDIT
编辑指定的一行程序
语法: EDIT n
n:程序的行号,可对原有程序行进行修改,如果该行号不存在则代表编辑新行
范例:
]EDIT 20
*20 PRINT 89+66
]LIST
]20 PRINT 89+66
]
CONT 继续运行由STOP命令中断的程序
语法: CONT
范例:
]10 LET A=20
]20 STOP
]30 PRINT A
]40 END
RUN
BREAK IN 20
]CONT
20
]
STOP 暂停执行 *暂停程序的执行等待CONT命令
语法: STOP
POP
将堆栈中的返回地址弹栈
说明:和RETURN的功能差不多,但程序不是返回到GOSUB的下条语句,而是接着运行.
语法: POP
REM 注释
说明: REM是非执行语句,用来对程序或程序中的某些语句作注释,便于阅读程序
用法: 说明
CLEAR 清除程序变量,释放内存区
语法: CLEAR
范例:
]10 A=23
]20 PRINT A
]30 CLEAR
]40 PRINT A
]50 END
]RUN
23
0
]
DEL 删除程序行
语法:
DEL [n]/[n1,n2]/[n1-n2]
n:删掉第n行程序
n1,n2:删掉n1至n2行间的程序
n1-n2:删掉n1至n2行间的程序
范例:
]10 A=12.8
]20 B=56
]30 PRINT A,B
]40 END
]DEL 20-30
]LIST
]10 A=12.4
]20 END
]
TRACE 单步跟踪
说明:TRACE 指令执行后进入单步跟踪状态,这时要执行的每一条语句和行号都显示在屏幕上,直到执行了NOTRACE才退出单步跟踪状态.在GVBASIC助手中不能运行.
语法: TRACE
NOTRACE
退出单步跟踪状态
说明: 进入单步跟踪状态后,执行NOTRACE语句后,退出单步状态返回正常状态.只能在GVBASIC环境中运行,而不能在GVBASIC助手中运行
语法: NOTRACE
AUTO 自动置行号(GVBASIC助手中自动拥有该功能)
用法: AUTO [ ]/[n]
范例:
]AUTO
%10 A=234.58
%20 PRINT INT(A)
%30 END
]RUN