QBASIC语言的数据类型
QBASIC语言的数据是QBASIC程序的处理基础和运算对象。能够熟练掌握QBASIC语言的数据类型、形态和运算特点,是正确使用 QBASIC语言行程序设计的基础。
1、QBASIC语言的数据类型
QBASIC程序所处理的数据基本类型有数值型数据和字符型数据。QBASIC语言的数据类型分类如右图所示。
2、QBASIC语言的数据形态
QBASIC语言的数据形态,也有常数、常量、变量、函数、表达式五种;但是,不同类型的 QBASIC数据,有各自不同的表现形态。常数是其他各种形态的取值基础。
3、QBASIC语言的数据运算
QBASIC语言中的运算量有常量、变量、数组和数组元素、标准函数和自定义函数等。对数值型数据可以进行加、减、乘、除等数值运算,得到的结果也是数值型的。
除数值运算外,还有非数值运算,例如建立职工档案、查找职工姓名等,这时 QBASIC程序处理的就是非数值型数据。最常见的非数值型数据就是字符型数据。
常量和变量常量常量是指在程序执行过程中,其值永远不能改变的数据。例如 5.4、10.3、2等都是常量。在 QBASIC语言中有两种类型的常量:数值常量和字符串常量。
1、数值常量
数值常量又包括整型常量和实型常量两类。
(1)整型常量
整型常量只包括阿拉伯数字(0~9),不能在数字之间出现分位符号。如-54、+32等都是合法的QBASIC整型常量;而12,000,45,698,-56,000等都是不合法的QBASIC整型常量。
整型常量又分为常规整型(简称“整型”)常数和长整型常数两种。
“整型”常数是指取值范围在-32768~32767之间的整数或该范围内带有后缀“%”的数。存储时“整型”常量占2个字符。例如:333、453%等。
注意:在 QBASIC语言中,带有后缀“%”的“整型”常量与数学中常用的百分数的表示方法是不同的。比如百分之三十,在QBASIC语言中只能表示成0.3 或 30/100。
长整型常量是指取值范围为-2147483648~2147483647 之间的整数或该范围内带有后缀“&”的数。存储时长整型常量占4个字符。例如:4400、14525&等。
有后缀“&”的数。存储时长整型常量占4个字符。例如:4 400、14 525&等。
(2)实型常量
QBASIC语言中的实数有单精度实型和双精度实型两种,它们分别又分为两种:日常计算法和科学计算法。
① 单精度实型和双精度实型常量。单精度实型常量指不超过7位有效数字的小数或该范围内带有后缀“!”的数或以科学计算法(“E”或“e”为底的)表示的浮点数,存储时占 4个字节。例如:3.45、333.34、645.23!、33e2 等。
双精度实型常量指达到15位有效数字的小数或该范围内带有后缀“#”的数或以科学计算法(“D”或“d”为底的)表示的浮点数,存储时占 8 个字节。例如:134 345 143.34、343 525 000#、343.d23等。
② 单精度实型和双精度实型常量用指数形式表示的规则。在QBASIC语言中,一个指数形式表示的常量由数字部分和幂数部分(指数部分)组成。
QBASIC语言规定,指数部分(幂数部分)应由三个部分组成。
① 字母“E”或“e”或“D”或“d”。
② 指数的符号“+”或“-”(“+”可以省略)。
③ 不超过3位的整数。
如,123456E-2,8764.23785D+306 是合法的,而4.6E3.5,-7654321D -6.3是不合法的。
(3)类型区分方法
在程序中出现常数时,QBASIC语言区分方法如下:
① 凡范围在-32768(即-215)~32767(即215-1)之间且不带小数点的或该范围内后缀为“%”的常数均作为“整型”常数。
② 凡范围在-2147483648(即-231)~2147483647(即231-1)的范围之间不带小数的或该范围内后缀为“&”的常数,作为“长整型”常数对待。
③ 单精度浮点型常数。
●不超过7位且带小数点的常数。
●末尾加“!”的不超过7位数字的十进制小数。
●用“E”或“e”表示指数部分的浮点实数。
④ 双精度浮点型常数。
●多于7位且包含小数点的常数。
●末尾加“#”的常数。
●用“D”或“d”表示指数部分的浮点实数。
2、字符串常量
由一对双引号括起来的零个或多个合法字符(通常为ASCII字符)称为字符串常量。例如〞CHINA〞,〞QBASIC〞,〞DOS 6.0〞等都是合法的字符串常量。注意,〞〞为空串,而〞 〞为含一个空格字符的字符串常量,两者是不同的。字符串常量在书写时,两端的双引号不可省略,而在输出时两端的双引号并不输出。例如,PRINT〞QBASIC〞的结果为QBASIC。
3、符号常量
符号常量就是用一个符号代替一个常量。在QBASIC语言中,常用CONST语句来定义符号常量。使用符号常量有三个优点:
① 程序的可读性好。符号常量用的符号应该“见名知义”,使人阅读程序时容易了解该常量是什么含义。
② 便于程序的修改。如果程序多处用到某一常量,若不用符号常量,修改时容易漏改,而用符号常量便可以做到“一改全改”。
③ 便于程序的书写。如果程序多处用到某一位数较多的常量时,书写麻烦还容易出错,而使用符号常量只在定义时书写一次就行了。
变量在QBASIC程序的执行过程中,其值可以改变的量称为变量。
1、变量名
QBASIC 语言规定:变量名以字母打头,由字母、数学、小数点和下划线组成的,长度为1~40 个字符的字符串。变量名可以不区分大小写(即大小写字母等效)。
QBASIC 语言的保留字(如语句定义符和函数名等)不能作为变量名。必要时,变量的类型符可以写在变量名的后面。在给变量命名时,应尽量做到“见名知义”。建议变量名最好不使用小数点,长度尽量不超过8个字符为宜。
每一个变量都在内存中占据一定的存储单元。变量名实际上就是变量的地址符号,而变量的值就是以该变量名为符号地址的存储单元的内容。
2、变量的类型
每一个变量都是用来存储数据的,依数据的类型不同,变量也相应地分为不同的类型。就基本类型而言有,整型变量、长整型变量、单精度型变量、双精度型变量、变长字符串型变量和定长字符串型变量。说明或定义变量类型的方法有两种:
(1)变量名加类型符
用 %, &, !, #, $ 分别作为整型、长整型、单精度型、双精度型和字符串型变量的类型字义符,如sum%,Fact&, price!,dou#,str$分别是整型、长整型、单精度型、双精度型和字符串型变量。其中,规定单精度型变量的类型符可省略不写,如X,A,B等都是单精度型变量,这种情况用得最多。另外,定长字符串型变量不能用加类型符的方法定义,只能用DIM语句定义。
(2)DIM语句定义类型
除了可以在变量名的末尾加类型定义符外,QBASIC 语言还提供另一种方法来指定变量的类型。它规定的类型名有:INTEGER(整型)、LONG(长整型)、SINGLE(单精度型)、DOUBLU(双精度型)、STRING(字符串型)等。用DIM语句来指定变量的类型。
(3)说明
① 单精度型变量名可以有类型定义符“!”,也可以没有。如X!和X两者等价。
② 一个变量名末尾加上类型定义符后,该类型定义符就成为变量名的一部分,要整体引用。如 sum%是整型变量,如果不写%而只写 sum,则与sum%不是同一个变量,sum是实型变量。
③ 一个单(双)精度常数在表示形式上有定点数形式与浮点指数形式之分;但单精度型变量没有定点形式与浮点形式之分。在内存中一律以规范化的指数形式存储。
④ 在写程序时,应事先大致估计所用的数值变量的数值范围,然后定义恰当的类型。
⑤ 字符串变量有两种类型,可变长的和固定长度的。
标准函数QBASIC 语言提供的标准函数包括数值函数、字符串函数和系统函数等。下表中列出了一些最常用的数值函数(或数学函数)。
|| ||
说明:
① 函数的自变量X是个形式参数,调用函数时要用实际参数代替形式参数。实际参数可以是一个常量、变量或表达式。
② 调用一个函数不能单独作为一个语句,只是作为一个表达式或表达式的一部分。一个数学函数的值是一个数值,它可以参加运算。1
运算符和表达式QBASIC 语言的运算符分算术运算符、关系运算符和逻辑运算符,相对应的有算术表达式、关系表达式和逻辑表达式。
算术运算符和算术表达式1、算术运算符
QBASIC语言的算术运算符有下面几种
|| ||
在混合运算时,按优先级从高到低顺序如下:
^(乘方) → -(取相反数)→*(乘),/(除)→ \(整除)→ MOD(求余) →+(加),-(减)
对\,MOD,^三个运算符的说明:
① A^0 = 1,其中 0^0=1是对数学的补充定义。
② 0^B = 0(B>0)。
③ B为正整数时,A ^B =(A * A * … * A)(B个);B为负整数时,要求A≠0,A^B =1/(A * A * … * A)(|B|个)。
④ B为非零实数时,除了②以外,要求A>0:A^B = EXP(B * LOG(A))。对于\和MOD要求余数的符号和被除数的符号相同。
2.算术表达式
表达式的基本概念是用运算符(可以使用括号)连接运算量形成的式子。用算术运算符(可以使用括号)连接数值运算量(包括常量、变量、函数等)形成的式子称为算术表达式,其值是一个数值。在进行表达式运算时要注意各运算符的优先级顺序。
关系运算符和关系表达式1、关系运算符
QBASIC语言提供的关系运算符(又称关系比较符)有如下六种:(大于),=(大于等于),=(等于), (不等于)。关系运算符的优先级是相同的,即无先后次序可言。
2、关系表达式
关系表达式是指由一个关系运算符连接两个算术表达式(或两个字符串表达式)形成的式子。例如A+B>C; I=0都是合法的关系表达式。
所谓字符串表达式是指用字符串连接运算符“+”连接字符串量(包括字符串的常量、变量、函数和数组元素等)形成的式子。如,“SUB”,“ABC”+“CDE”,“A”+“student”。
关系表达式的值是一个逻辑值,即“真”或“假”。例如,35,9=8的值均为“假”。
在QBASIC语言中,没有专门设置逻辑型常量和逻辑型变量,而是用数值来代表逻辑值。
规定以“0”代表“假”,以“-1”代表“真”。
逻辑运算符和逻辑表达式1、逻辑运算符
QBASIC语言提供了3个逻辑运算符,按优先级从高到低如下:NOT(逻辑非)→AND(逻辑与)→OR(逻辑或)。NOT为一元逻辑运算符,AND和OR都是二元逻辑运算符。
2、逻辑表达式
一个逻辑表达式是用逻辑运算符连接关系表达式(或其他逻辑量)形成的式子。关系表达式是逻辑表达式的特例。
不同类型运算符的优先次序通常同类型的数据进行运算,结果的类型不变。但关系运算不同,两个数值量或两个字符串经过关系运算后,结果是一个逻辑值。
一个逻辑表达式内可能包括算术运算符、关系运算符和逻辑运算符,这三类运算符的优先级从高到低为:算术运算符→关系运算符→逻辑运算符 。2