一.序言
1.1 本手册的说明
随着文曲星新品CC800的上市,其主要特色GVBASIC自主编程功能受到了广大的文曲星用户及程序设计爱好者的热烈欢迎,为此我们编写了这个说明文档,以供广大用户参考.由于时间有限,所加入范例程序不是太多,我们会在今后陆续添加到本手册中.请您随时关注文曲星网站.
1.2 BASIC的历史
BASIC Beginner's All-purpose Symbolic Instruction Code 的缩写,意为初学者通用符号指令代码)语言是在1964年由美国的两位教授Thomas 和John G.Kemeny在Fortran语言的基础上设计的语言系统,这个简单、易学的程序设计语言当时只有17条语句,12个函数和3个命令,现在一般称其为基本BASIC。
BASIC语言自诞生起,几十年间,经过世界各地的微机生产厂家的不断扩充和完善,先后出现了许多版本,其中有几个版本使用最为广泛,如:APPLE-Ⅱ机上用的APPLE SOFT BASIC,LASER-310上用的MSBASIC以及IBM-PC及其兼容机上用的BASICA和GWBASIC等.另外还是MicroSoft公司的MSBASIC和QBASIC等.
从诞生之初,BASIC语言就以其简单,易学对硬件要求低等特点受到了广大程序设计人员,特别是电脑初学者的青睐,历经数十年,显示了其顽强的生命力。如令BASIC语言在许多国家都作为一种计算机程序的教学语言和入门语言。流行当今的VisualBasic语言也借荐了许多BASIC语言的特点而倍受注目.
1.3.什么是文曲星GVBASIC
文曲星GVBASIC是在APPLE SOFT BASIC和GWBASIC基础上,继承了BASIC语言简单,易学功能强大的特点,根据文曲星自身的硬件特点而开发的程序语言,它的出现极大的拓展了文曲星的使用范围及功能,使客户能够根据自身的需求,编制出他们所需要的而现有文曲星上又没有的软件,真正做到了想你所想,做你所想。并且由于文曲星GVBASIC和其它BASIC语言的共通性,因此通过使用它可以为更好地了解及使用其它的BASIC语言和其它程序语言打下了一个良好的基础.
1.4 文曲星GVBASIC与其它BASIC语言的异同
1.4.1.文曲星GVBASIC与其它BASIC语言名称及用法均相同的命令及语句
| 命令及函数名 | 用途 | 用法 | |
| 与数组定义相关的 | |||
| DATA | 与数组有关的 | 相同 | |
| READ | 与数组有关的 | 相同 | |
| RESTORE | 与数组有关的 | 相同 | |
| DIM | 与数组有关的 | 相同 | |
| 流程控制 | |||
| IF...THEN...ELSE | 选择结构语句 | 相同 | |
| IF..THEN... | 选择结构语句 | 相同 | |
| WHILE..WEND | 循环控制 | 相同 | |
| FOR...TO..STEP...NEXT | 循环控制 | 相同 | |
| DEF FN | 定义函数 | 相同 | |
| GOSUB...RETURN | 分支到当前程序模块中的子程序 | 相同 | |
| 字符串处理 | |||
| ABS() | 返回数的绝对值 | 相同 | |
| ATN() | 返回用弧度表示的正切值 | 相同 | |
| COS() | 返回弧度的余弦 | 相同 | |
| EXP() | 返回e的指定次幂 | 相同 | |
| INT() | 返回不大于给定数的最大整数 | 相同 | |
| LOG() | 返回一个数值的自然对数 | 相同 | |
| RND() | 产生0-1之间的随机数 | 相同 | |
| SGN() | 返回数的符号值 | 相同 | |
| SIN() | 返回弧度的下弦 | 相同 | |
| SQR() | 返回数的平方根 | 相同 | |
| TAN() | 返回弧度的正切 | 相同 | |
| ASC() | 返回字符串每一个字符的ASCII码 | 相同 | |
| CHR$() | 返回指定的ASCII码对应的字符 | 相同 | |
| HEX$() | 返回十进制数的十六进制的字符串 | 相同 | |
| LEFT$() | 返回从字符串左边开始的的指定数目的字符 | 相同 | |
| LEN() | 返回字符的长度 | 相同 | |
| MID$() | 返回从字符串指定位置开始的指定数目字符 | 相同 | |
| RIGHT$() | 返回从字符串右端开始的指定数目的字符 | 相同 | |
| STR$() | 返回把数值数据转换为字符后的字符串 | 相同 | |
| INVERSE | 反显字符 | 相同 | |
| VAL() | 把一个数字字符转换为相应的数值 | 相同 | |
| 输入/输出相关命令 | |||
| CLS | 清除屏幕 | 相同 | |
| INKEY$ | 从键盘读入一个字符 | 相同 | |
| INPUT | 从键盘读取输入 | 相同 | |
| LOCATE | 把文件光标定位到指定的行,列 | 相同 | |
| SPC() | 在PRINT语句中跳过指定个数的空格 | 相同 | |
| WRITE | 把数据输出到屏幕或文件 | 相同 | |
| 图形 | |||
| CIRCLE | 画圆 | 相同 | |
| LINE | 画线 | 相同 | |
| BOX | 画矩形 | 相同 | |
| DRAW | 画点 | 不同 | |
| 声音 | |||
| PLAY | 演奏指定的音乐 | 相同 | |
| BEEP | 使扬声器发出一个短促的声音 | 相同 | |
| 文件 | |||
| OPEN | 打开文件 | ||
| INPUT# | 从顺序文件读取一个字符串 | 相同 | |
| GET | 从随机和二进制文件读取数据 | 相同 | |
| PUT | 把数据写入随机或二进制文件 | 相同 | |
| LOF | 返回随机文件长度 | 相同 | |
| CLOSE | 关闭文件 | 相同 | |
| EOF() | 当文件指针位于文件结尾时返回-1 | 相同 | |
| 其它 | |||
| TRACE | 单步跟踪程序执行 | 相同 | |
| LET | 将变量赋值 | ||
| SWAP | 交换两下变量的值 | 相同 | |
| SYSTEM | 退出BASIC系统 | 相同 | |
1.4.2 在其它版本BASIC语言上存在而在文曲星GVBASIC中没有的语句
| 命令及语法 | 用途 | 原因 | 可否用其它命令代替 |
| 流程控制 | |||
| SELECT CASE...END SELECT | 多条件多分支选择语句 | 未开发 | 可以有IF...THEN...或者ON .GOTO语句代替 |
| DO...LOOP | 直到条件为真时结束循环 | 未开发 | 可以有WHILE...WEND代替 |
| CALL | 调用机器语言 | 考虑系统安全 | ------------ |
| CHAIN | 把控制转移到另一个程序 | 未开发 | 可以用ON..GOSUB代替 |
| FUNCTION | 定义语言函数 | 未开发 | 可用DEF FN |
| CDBL | 把数作为双精度值返回 | 较少使用 | |
| 数组相关 | |||
| LBOUND | 返回数组一个维的最小合法下标 | 可不用 | -- |
| UBOUND | 返回数组一个维的最大合法下标 | 可不用 | -- |
| OPTION BASE | 设置0或者1作为默认最小合法下标 | 可不用 | -- |
| 字符串 | |||
| LCASE$() | 返回以小写字母组成的字符串 | 未开发 | 可自主编程代替 |
| LTRIM$() | 返回删除字符串左端空格后的字串 | 较少使用 | 可自主编程代替 |
| UCASE$() | 返回以大写字母组成的字符串 | 未开发 | 可自主编程代替 |
| SPACE$() | 返回由指定数目空格字符组成的字串 | 较少使用 | 可自主编程代替 |
| 输入/输出 | |||
| CSRLIN() | 返回当前光标所在行 | 未开发 | 可用不同名函数POS()代替 |
| PRINT USING | 按指定格式显示数值 | 不需要 | -- |
| TAB() | 指它格式输出 | 不需要 | -- |
| WIDTH | 定义屏幕或其它设备的行列数或宽度 | 不需要 | -- |
| 图形 | |||
| COLOR | 设定前景和背景色 | 单色不需要 | -- |
| SCREEN | 设定当前屏幕模式 | 未开发 | -- |
| WINDOW | 设定逻辑坐标系统 | 未开发 | -- |
| GET() | 把图像从屏幕复制到内存中的数组 | 未开发 | -- |
| PUT() | 把图像从内存数组复制到决屏幕 | 未开发 | -- |
| 声音 | |||
| SOUND | 使扬声器产生指定频率的音调 | 不需要 | -- |
| 文件操作 | |||
| LOC() | 返回文件的当前位置 | 较少使用 | -- |
| SEEK() | 移到文件中的指定位置 | 未开发 | -- |
| LOCK() | 为文件或文件中一条记录加锁 | 不需要 | -- |
1.4.3GVBASIC和其它版本BASIC同名函数或语句使用的差异.
1.PRINT语句 用途:向屏幕光标位置显示数值,字符串数据
由于文曲星屏幕的局限, PRINT 语句在使用中和PC机的BASIC有所不同.
PRINT 语句中的的逗号在PC机上表示按分区方式显示, 而在GVBASIC中则表示换行输出.
例如:
PRINT 1,2,3
在PC上输出为: 1 2 3
在文曲星上输出为: 1
2
3
而分号在其它BASIC和GVBASIC中作用相同,即按紧凑格式输出
例如:
PRINT 1;2;3
在PC机上输出为: 123
在文曲星上输出为: 123
2.DRAW语句 用途:画连续直线.
在GVBASIC中DRAW语句相对简化,单独使用该语句时只能画出一个点.
而在其它BASIC中DRAW语句相对复杂一些,可以画出各个方向上的的连续的直线.
例如:
在其它版本BASIC中: DRAW "BM100,100;F60;L120;E60" 表示画一个三角形.
而在GVBASIC中上述语句是错误的. 当然在GVBASIC中也可画出三角形, 但要用DRAW语句配合FOR循环语句才可以或者用LINE语句也可,应用起来相对复杂一些