BASIC教程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功