前言
第一节 GVBASIC的来源
自从文曲CC800和PC1000问世以来,北京金远见就开发了一系列拥有BASIC开放式编程平台的机型。从此以后,GVBASIC编程便成了广大星迷的一大爱好。GVBASIC与传统的BASIC的语法差不多,有一些地方不一样。在文曲星上编程也是非常方便的,学生可以用它编一些常用的软件来解决学习中遇到的各种复杂的科学计算。技术人员可以用它编成专门的程序用于设计,计算各种图片或处理各种数据。当然还可以编出很多游戏,利用文曲星内置的图片,结合自己用画图语句画出的图形就可以做出难度最高的RPG游戏(如《动物园历险记》,《伏魔英雄传》等)和趣味性强的智能游戏(如《贪吃蛇》,《八块扑克》等)。本人也追随着BASIC的尾声后来居上,成为了BASIC编程中的一个发烧友(烧得比较厉害的那种),当BASIC编程成了广大星迷的另一爱好时,同时很多星迷都加入了BASIC编程的行列。但由于目前市面上已经没有与GVBASIC内容相似的书籍卖了,因此很多星迷都只能望文兴叹了。为了实现广大星迷想成为BASIC高手的愿望,本人根据个人的经验,参考了相关书籍和文曲星网站,特编写了这本BASIC教程。本教程完全符合文曲星上的BASIC语法,希望能对大家有所帮助。
第二节 GVBASIC的语法
那么什么是BASIC语言呢?BASIC语言是一种国际通用的电子计算机高级语言。是一种非常适合初学者使
用且实用的计算机高级语言,它不仅拥有科学计算的能力,还拥有数据处理,事务管理,绘图,音乐,游戏等功能。
BASIC是Beginner's All-purpose Instruction Code(初学者通用符号指令代码)的缩写。它用很多种版本,如G-BASIC(GAME BASIC),F-BASIC(FAMILY BASIC),GVBASIC(GOLD VIEW BASIC)等。能在文曲星上运行的BASIC是GVBASIC。本教程的内容均讲的是GVBASIC。
那么什么是BASIC程序呢?下面我们来看一段程序:
10 LET A=11
20 LET B=12
30 LET C=8
40 LET D=9
50 LET P=A+B+C+D
60 LET Q=P/4
70 PRINT Q
80 END
这就是一个简单的BASIC程序。它的功能是求出A,B,C,D四个数的和P与平均数Q,并把平均数Q显示在屏幕上。像这种用BASIC语言编成的程序就叫BASIC程序或BASIC源程序。文曲星的GVBASIC源程序有以下规定:
①一个完整的程序分若干个行。每行前都以数字开头,这个数字称为行的标号,简称行号。行号必须是无符号的整数,计算机会按行号的大小顺序执行各语句。行号的范围为0~9999。写程序时标号可以不按大小顺序写,程序送入内存时BASIC解释系统会自动排序。行号不一定要连续,一般每两行间隔为10,以便在修改时还可以插入1~9个语句行。一般一行只写一个语句,也可以并列写几个语句
,用冒号(:)把各语句分开。每个语分别让计算机执行一个特定功能。也可以说程序是由若干个语句集合而成的。
②一个语句行必须有三部份,即行号,语句定义符和语句体。语句定义符规定计算机执行某一种特定的功能。如上例中的LET,表示赋值(注:在GVBASIC中有且只有LET可以省略,其它的都必须写,否则计算机会认为是非法的)。语句体跟在语句定义符后面需要执行的具体内容。如上例的第50行:
50 LET P=A+B+C+D
表示将A,B,C,D的和赋给变量P。
③每个语句行有长度限定的,在文曲星的GVBASIC中,一般为92个字节。
④程序一般以END结束,当然也可以不写END。不过若程序是在程序中间结束就必须加END,否程序会接着运行后面的程序。
⑤程序送入内存后不会马上运行,直到用户在GVBASIC环境下发出RUN(运行)命令后才会运行。不过现在的很多机型已经内置了BASIC助手,只要将程序保存,按[输入]键就可以直接运行了。在后面的内容中如果没有特别说明是在GVBASIC环境下的话,一般是指在GVBASIC助手中运行。
第一章 最简单的程序
第一节 打印语句
在BASIC程序中,PRINT(打印语句)表示输出数据到屏幕的意思。它具有以下功能:
1.打印变量或表达式的值,就是说,PRINT既可以打印,又可以计算。如:某一变量已被赋过值,则可以用PRINT将这个变量的值打印出来。
10 LET X=3
20 PRINT X
30 END
运行
3
又如:
10 A=1:B=2:C=3
20 PRINT A,B,C,A+B+C
运行
basic语言属于高级语言1
2
3
6
如果表达式中包括变量,那这些变量必须要被赋过值,否则计算机会把它作0处理。
2.打印字符串。如果字符串用两个引号(")引起来,放到PRINT的后面,运行后则会原样照印。如:
10 PRINT "ABCD"
20 END
运行
ABCD
又如:
10 PRINT "我是中国人!"
20 END
运行
我是中国人!
再看一个:
10 PRINT "36+4"
20 END
运行
36+4
这里要注意:如果一个表达式用引号引起来后,PRINT就会把它当作字符串处理而不被计算。
可以看出,引号中的不管是中文,英文,数字,符号或空格,都会原样照印。值得提出的是:由于引号本身是作为字符串起止界限用的,所以它本身不能作为一个字符使用。
这里指出一些对菜鸟来说比较易混淆的问题:如
10 PRINT X,Y
20 END
运行
0
0
这个程序的运行结果是打印X,Y的值,而不是打印"X","Y"这两个字母。
又如:
10 PRINT X=3*5
20 END
运行
0
原本是希望计算机输出X=15来,但计算机却没能如愿。如果要使计算机输出X=15这样一个结果,那程序就要像下面这样编:
10 PRINT "X=";3*5
20 END
运行
X=15
注意:这里用的是分号(;),以紧凑格式输出而光标
不用提行。而用逗号(,)则会提行,所以不能在屏幕最下行输入结果。因此要在最下行输出结果就要在表达式最后加一个分号。如
10 PRINT 10,20,30,40,50
20 END
运行
20
30
40
50
]
最下行是光标("]"代表光标)而最上行的10被顶上一行而消失了。又如
10 PRINT 10,20,30,40,50;
20 END
运行
10
20
30
40
50]
这样,光标就紧跟在"50"的后面了。但要在最后一行最后一列输出数据却不行,这要到本教程的第九章才会讲到。
在此,请用户要仔细揣摩一下引号("),逗号(,)和分号(;)的用法。
有时,我们需要在指定的位置打印字符。可以用到置光标语句LOCATE,它的格式为:
10 LOCATE X,Y
其中的X为行,Y为列。比如:
10 LOCATE 3,9
20 PRINT "中国"
30 END
运行
中国
这个程序把“中国”两个字打印在屏幕的正中。
X,Y的取值范围分别为:
1≤X≤5
1≤Y≤20
第二节 数的表示
在BASIC中,数的表示有以下四种规则) ①数字都采用十进制,每个数中间不能有空格,也不能用分隔号(')分开。
②文曲星的BASIC解释系统中一般只能容纳9位有效数字。
③在数学中,我们可以用科学计数法表示一些非常大的数(如中国的人口是1300000000人)和非常小的数(如蜗牛的速度是0.0000079千米/秒)。但与我们在数学中用的方法有点不同,它用字母"E"表示幂的底数10,"E"的前面表示乘号"×"前面的数,"E"的后面表示幂的指数。如
1300000000=1.3E+9
0.0000079=7.9E-6
"E"的前面的数叫做尾数,"E"的后面的数叫做阶码。阶码大于0时,"+"号可以省略。
④在文曲星中,数的表达范围有一定的限制,一般是:整型变量的下限为-32768,上限为32767;实型变量的下限为-1E+38,上限为1E+38。
第三节 运算规则
1.变量,在前后的课程中我们已经讲到了变量,如程序:
10 A=10:B=A+12
20 C=B/A
30 PRINT C
40 END
中的A,B,C都是变量,变量是用来存放数据的。变量按类型可以分为数值变量和字符串变量,按功能又可分为普通变量和下标变量。普通数值变量的变量名必须以大写英文字母开头,后面可以跟大写英文字
母,数字或小写英文字母。但不能有特殊的符号,也不能以小写英文字母或数字开头。如ABC,A35,Aa是合法的变量名。而如c5,6Y,J@就是非法的变量名,在文曲星BASIC中,变量名的长度不能大于个16字节。
2.运算符。BASIC中的运算符与数学中的运算符有一定的区别。见下表:
A.数值运算符:
+ 加
- 减
* 乘
/ 除
^ 乘方
B.关系运算符:
= 等于
< 小于
> 大于
<= 小于或等于
>= 大于或等于
<> 不等于
C.逻辑运算符:
OR 逻辑或
AND 逻辑与
NOT 逻辑非
3.运算规则。与数学运算一样,BASIC的运算规则也是先乘除,后加减,乘方优先于乘除,函数优先于乘方,括号优先于函数,在BASIC中,括号没有大、中、小之分,全部都用小括号"()",小括号可以内外成对套用,运算时先算最里层的,再算次外层的,最后算最外层的。
下面我们总结一下运行优先顺序:
里层括号→外层括号→函数→乘方→乘除→加减
4.表达式,在数学中,我们把运算符号和括号将常数、变量、函数等连接起来组成一个有意义的式子叫做代数表达式,简称代数式。如:
2 2sinA
5x -3x-———
3
(注:由于电脑上打字不能打出指数,所以只能用这种方式了,它表示的是:5乘以X的平方减3乘以X减3分之A的正弦。下面的代数式同理。)
同样,在BASIC中把符合BASIC规定的、用运算符和括号将常数、变量、函数等连接起来的式子就叫做BASIC算术表达式,简称表达式。如上面的代数式可写成下面的表达式:
5*X^2-3*X-2*SIN(A)/3
应该注意,在BASIC的算数表达式中,每一个符号都占一个字节,所有的符号都必须一个一个并排地写在同一条线上,不能在右上角写指数,也不能在右下角写下标。
下面是一些代数式与BASIC表达式的对照
代数式
2πR
表达式
2*P*R(P=3.14159)
代数式
U
—
R
表达式
U/R
代数式
1 2
V t+—at
0 2
表达式
V0*T+A*T^2/2
代数式
________
√s(s-a)(s-b)(s-c)
表达式
SQR(S*(S-A)*(S-B)*(S-C))
第四节 修改程序
学完前面的内容,我们已经可以用BASIC语言编一些最简单的程序了。那么,在编好程序后可能会出现一些错误或不能达到我们期望的目的时就要对程序作一些修改,那么要怎么才能修改程序呢?
在GVBASIC环境下,我们可以用LIST命令来调用并显示出我们想修改的程序,如:
10 A=1
20 B=2
30 C=3
40 D=5
50 PRINT A;+;B;+;C;+;D;
60 END
运行
1
?SYNTAX ERROR IN 50
我们的目的是想让计算机给出如下答案
1+2+3+5
但计算却报错。这时我们可以用
LIST 50
将第50行调出,以便修改。
如果是在BASIC助手中,可以直接F4修改。如果程序较大,可以把第一行的行号改成你要前往的行号小1,并把程序内容清除掉,按输入键就能到达你要修改的行号。如你要到第500行:
源程序为
10 LET A=5
20 LET B=A*6
……
你可以将程序的第10行改成:
499]
20 LET B=A*6
……
(]为光标)
此时按输入就能到达第500行。不过要注意,第499行一定不能有内容,否则这样会把第499句清除掉。
第二章 数据的提供
第一节 赋值语句
用赋语句LET给变量赋值是比较简单的一种,应用相当广
。如
10 LET A=1
20 LET B=7
30 LET C=12
40 LET X1=(-B+SQR(B*B-4*A*C))/(A*2)
50 LET X2=(-B-SQR(B*B-4*A*C))/(A*2)
60 PRINT "X1=";X1,"X2=";X2
70 END
运行
X1=-3
X2=-4
从上面的例子中可以看出,程序中所有的变量A、B、C、X1、X2都必须赋予确定的值,而且第40、50行中的变量A、B、C都必须被赋过值,否则执行40和50行时系统会把它们作为0处理。
LET可以反复的对一个变量赋值,而这个变量的值以最后一次被赋的值为准,也可以把一个变量的值赋给别一个变量,如:
10 LET A=10
20 LET A=20
30 LET B=A
40 LET C=B
50 PRINT A,B,C
60 END
运行
20
20
20
LET也可把一个表达式的值赋给一个变量,在赋值前,LET语句会先算出表达式的值,再把这个值赋给变量。如上面解方程的程序的第40和50行。
LET语句中的等号"="表示赋值,不表示相等,所以,等号左边不能与等号右边对调位置,如
X=A+B
不能写成A+B=X。
在BASIC中常常会看到
LET A=A+1
这样的一个式子,这在打数中不错的,因为A不可能与A+1相等。但在BASIC中这句程序表示的是:先将等号右边的表达式A+1值计算出来,再把计算出来的值赋给等号左边的变量A。
在同一个LET语句中不能同时给两个或两个以上的变量赋值,也为能用连等的方式给变量赋值,如
10 LET A=2,B=A,C=5
20 LET A=B=2
中的第10行和20行都是错的。应该写成
10 LET A=2:LET B=A:LET C=3
20 LET A=2:LET B=2
在BASIC中,赋值语句符LET可以省略不写,如:
10 LET A=20
可以写成:
10 A=20
第二节 键盘输入语句
在很多时候,如果我们用LET给一个变量赋值是很不方便的,如:我们编一个解方程的程序,如果用LET给变量赋值的话,那每解一个方程我们都要重新修改程序里的变量的值,也就是说要用LET重新给变量赋值。在这里我们就要用到另一种赋值语句了,它就是键盘输入语句INPUT,利用键盘输入语句,程序会在要输入数据时提醒你利用键盘输入你要的数据,很方便。如,我们看一下下面的这人公式:
1 1 1 1 1
—=—+—+—+—
R R1 R2 R3 R4
这是一个计算并联电路电阻的公式,那么在程序中要怎样才能用INPUT给这个公式里的每一个变量赋值呢?下面我们来看:
10 INPUT R1
20 INPUT R2
30 INPUT R3
40 INPUT R4
50 R=1/R1+1/R2+1/R3+1/R4
60 PRINT R
70 END
运行
?2←
?4←
?5←
?8←
1.075
(注:在程序运行中,输入键"←"号是不会显示在屏幕上的,这里只是为了方便大家认识,下面的程序中就不再使用这个符号了,只要大家能知道用INPUT给变量赋值要按输入键就行了。)
这样就很方便的为变量赋值了。当然,我们可以用一个INPUT语句同时给多个变量赋值,每个变量的中间我们用一个逗号分
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论