2.1文曲星的屏幕特点
每行显示汉字或全角字符: 10 个
每行显示英文或半角字符: 20 个
液晶点阵: 160*80
2.2 GVBASIC中的符号定义
2.2 GVBASIC中的符号定义与其它BASIC版本完全一样.
1.数值表达式
% 整型变量
$ 字符串
+ 加法运算符
- 减法运算符
* 乘法运算符
/ 除法运算符
^ 乘方运算符
2.关系运算符
= 等于
> 大于
< 小于
>= 大于或等于
<= 小于或等于
<> 不等于
3.逻辑运算符
AND 逻辑与
OR 逻辑或
NOT 逻辑非
4.特殊符号
; 控制PRINT语句以紧凑格式输出
, 控制PRINT语句以换行格式输出
: 分隔一行中并联语句
? INPUT语句提示符
] GVBASIC命令提示符(表示GVBASIC处于编辑状态并等待用户输入命令)
2.3 GVBASIC语言中定义了哪几种数据类型.
解答: GVBASIC定义了两种数据类型
(1)常规整型数: 范围从-32768到+32767, 通常正号可以省略,类型声明符为%,
例如: A% 就表示变量为整型
(2)实型变量: 范围从-10E+30,10E+30
2.4 GVBASIC其它规定
变量名最长: 16
最大行号: 9999
2.5 变量,数组定义
LET 将值赋给变量
SWAP 交换两下变量的值
DIM 定义数组
READ 将DATA语句中的下一个数据项赋给指定的变量
DATA 指定要读入数组的一组数据
RESTORE 指定为读入数据所用的下一个DATA语句
范例:随机产生10个二位整数,放入数组a,从中选出一个最大的和最小的数打印出来.(数组的应用)
]10 CLS
]20 DIM A(10)
]30 m=100
]40 n=-100
]50 FOR I=1 TO 10
]60 A(I)=INT(RND*90)+10
]70 PRINT A(I);
]80 NEXT I
]90 FOR I=1 TO 10
]100 IF A(I)>N THEN N=A(I)
]110 IF A(I)<M THEN m=A(I)
]120 NEXT I
]130 PRINT "最大数 N=";n,"最小数 M=";m
]140 END
2.6 流程控制
GVBASIC提供了较常用的几种流程控制语句
GOTO
IF...THEN/GOTO...ELSE
ON...GOTO n1,n2,n3...
范例:1.编制程序将24小时计时法转成12小时计时法
]10 REM 转换计时法
]20 INPUT HOUR24,MINTUE
]30 IF HOUR24<0 OR HOUR24>23 THEN 60
]40 IF HOUR24<=12 THEN HOUR12=HOUR24: PRINT "现在时间是:";HOUR12;":";MINTUE;"am"
]50 IF HOUR24>12 THEN HOUR12=INT(HOUR24/2): PRINT
HOUR12;MINTUE;"pm"
]60 END
2.7循环结构语句
WHILE...WEND 当给定的条件为真时,执行循环语句中的循环体
FOR...NEXT 根据指定的次数执行循环体
范例1:
打印九九乘法表.
10 REM 乘法表
20 FOR A=1 TO 9
30 FOR B=A TO 9
40 PRINT A;"*";b;"=";A*B,
50 NEXT B
60 NEXT A
70 END
2.8 过程及函数
DEF FN 定义用户自定义函数
GOSUB...RETURN 分运支到当前程序模块中的了例程
ON...GOSUB
2.9 数学运算函数和语句
ABS() 返回数的绝对值
ATN() 返回用弧度表示的反正切值
COS() 返回弧度的余弦
EXP() 返回e的指定次幂
INT() 返回不大于给定数的最大整数
LOG() 返回一个数值的自然对数
RND() 产生0-1之间的随机数
SGN() 返回数的符号值
SIN() 返回弧度的正弦
SQR() 返回数的平方根
TAN() 返回弧度的正切
2.10 字符串
一,字符串常量
字符是指单个字母,数字或其他特殊符号及文曲星中的图形,字符串是系统允许使用的若干个字符构成的序列,也称为字符串常量.一个字符串一般是双引号括起来的一串字符.
二 字符串大小的比
在计算机内部(文曲星内部),所有字符都是以ASCII码表示的,比较两下字符的大小,就是比较它们的ASCII码值的大小
三 字符串比较的规律
1.同规格的字母比较,按字母的顺序排,后面的大。
2.大小写字母的比较,小写字母大于大写字母.
3.数字字符比较,按数值的大小排,数值大的大.
4.字母与数字比较,数字(0-9)的代码均小于字母(A-Z)的代码
5.空格比数字,标点,字母等常见符号都小.
四 字符串处理的函数及语句
ASC() 返回字符或字符串第一个字符的ASCII码
CHR$() 返回指定的ASCII码对应的字符
LEFT$() 返回从字符串左边开始的指定数目的字符
LEN() 返回字符串的长度
MID$() 返回从字符串指定位置开始的指定数目字符
RIGHT$() 返回从字符串右端开始的指定数目的字符
STR$() 返回把数值型数据转换为字符型后的字符串
VAL() 把一个数字字符串转换为相应的数值
范例:
输入一串字符,将它的内容按下列的密码规则转换为明码输出
密码: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
明码: F L Q C O S N Z E Y V R X H T B W A J D M I G U P K
其余字符都不变换
例如: 输入: V BVZI VO KILJ UXDN
输出: I LIKE IT VERY MUCH
程序如下
]10 CLS
]20 X$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
]30 Y$="FLQCOSNZEYVRXHTBWAJDMIGUPK"
]40 INPUT Z$
]50 FOR I=1 TO LEN(Z$)
'将该密码从左到右逐个处理
]60 A$=MID$(Z$,I,1)
'取出第I个字符放入A$中
]70 FOR J=1 TO 26
' 寻找密码字符在X$中的位置
]80 IF A$=MID$(X$,J,1) THEN 100
]90 NEXT J
]100 IF A$=MID$(X$,J,1) THEN PRINT MID$(Y$,J,1); ELSE PRINT A$;
'若找到,转明输出,则否显示原字符
]110 NEXT I
]120 END
]RUN
如果输入: V BVZI VO KILJ UXDN
输出结果: I LIKE IT VERY MUCH
2.11简单输入/输出
CLS 清除屏幕
INKEY$ 从键盘读取一个字符
INPUT 从键盘读取输入
LOCATE 把光标定位到指定的行,列
PRINT 从屏幕当前光标位置显示数值,字符串或数据
SPC() 在PRINT语句中跳过指定个数的空格
WRITE 把数据输出到屏幕或文件
范例: 产生一个动态的字符
]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!*/
2.12 图形
CIRCLE 在屏幕指定位置画圆
DRAW 在屏幕指定位置画点
LINE 画直线或矩形
BOX 画矩形
ELLIPSE 画椭圆
2.13 声音
BEEP 使扬声器发出一个短促的声音
PLAY 演奏指定的音乐
2.14 文件
EOF() 当文件指针位于文件结尾时返回-1(真)
INPUT # 从顺序文件中读取数据
OPEN 打开文件
WRITE 把数据写入顺序文件
CLOSE 关闭数据文件
LSET 向缓冲区分配的变量赋值,并做左对齐调整
LOF 返回随机文件长度
GET 从指定文件读取指定记录放入缓冲区
PUT 向指定文件的指定记录写入缓冲区内容
FIELD 指定缓冲区大小分配缓冲区变量
COPY 复制文件
范例:
建立一个数据文件,并用WRITE#语句将5个人的姓名和年龄输出给该文件,然后程序将该文件关闭,再次将它打开用于输入,并把这5个记录读回到程序中,并显示到屏幕上.
]10 CLS
]20 OPEN "TEST.TXT" FOR OUTPUT AS #1
]30 PRINT "输入5个姓名,年龄"
]40 FOR I=1 TO 5
]50 INPUT NAME$,AGE%
]60 WRITE #1,NAME$,AGE%
]70 NEXT I
]80 CLOSE #1
]90 OPEN "TEST.TXT" FOR INPUT AS #1
]100 PRINT "你输入的姓名,年龄如下:"
]110 FOR I=1 TO 5
]120 INPUT #1,NAME$,AGE%
]130 PRINT NAME$,AGE%;
]140 NEXT I
]150 CLOSE #1
]160 END