QBASIC程序设计
BASIC是英文Beginner’s All-purpose Sybol——初学者通用符号指令代码。BASIC语言是一种常用的高级程序设计语言之一。目前比较流行的BASIC语言版本有True BASIC、Turbo BASIC、 QBASIC、GWBASIC。本讲义仅介绍QBASIC。
BASIC语言基本知识与要求
1、QBASIC语言的基本知识:
QBASIC语言的基本特点;
常量、变量、字符串、算术表达式的概念;
数的表式方法及范围;
语句的基本格式;
顺序、选择、循环结构的程序设计;
程序设计的基本步骤。
2、QBASIC语句:
LET INPUT PRINT END IF FOR DO WHILE REM 3、算术运算符、关系运算符与逻辑运算符:
+、—、*、/、\、MOD、^
=、>、=、
AND、OR、NOT
4、流程图的基本符号;流程图的作用。
5、循环语句
循环变量、循环体、循环初值、循环终值、步长的概念;循环语句的基本格式。
6、常用函数
数值函数
INT(X)、ABS(X)、SQR(X)、RND(X)、
SGN(X)、SIN(X)、COS(X)、TAN(X)
字符串函数(了解)
ASC、LEN 、TAB(X)、VAL、LOG(X)、STR$、CHR$、 LEFT$、RIGHT$、 MID$
7、数组及其应用(了解)
下标变量、一维、二维数组的概念;数组说明语句
第一章 BASIC语言基础
第一节 QBASIC的环境
1、 QBASIC的进入
用QBASIC语言编写程序,首先要进入QBASIC集成环境。QBASIC主要由QBASIC.EXE和QBASIC.HLP两个文件组成,按照教师的要求进入指定的位置,运行QBASIC.EXE后,屏幕上会出现一个如图1-1的对话框:
图1-1
直接单击“确定”按钮,便进入
QBASIC的集成环境,其界面如下图2-2
:
再按“Esc
”键即可取消屏幕中央的对话框,进入图1-3所示的主屏幕。
图1-2 图1-3
屏幕被分成了四部分:顶端的“菜单栏”,中部的“编辑窗口”,下部的“立即窗口”及底部的提示行。
菜单栏列出了QBASIC提供的所有功能。用鼠标单击菜单的标题,或按一下“Alt”+标题的首字母都可以打开功能菜单,比如Alt+F可以打开File菜单。各功能菜单的功能是:
编辑窗口是输入、修改程序的地方。
立即窗口是可以用来直接执行QBASIC的命令,输入一行按回车后,这个命令就立即执行了,比如是显示命令PRINT 2*5,按回车后在输出屏幕上就立即显示结果10。
同一时刻只能在一个窗口中输入程序或命令,光标在哪个窗口,输入的内容就在哪个窗口。可以按“F6”在编辑窗口和立即窗口之间进行切换。
2、 程序的输入、编辑和运行程序
输入:启动QBASIC后,在编辑窗口有一个闪烁的“_”号光标,输入字符或数字后,光标会自动向后移动,输入完一行后按回车,光标回到下一行首,你可以继续输入下一行内容了。
在编辑窗口中,一次只能输入并运行一个程序。因此,在输入下一个程序前要先点“File”下的“Save”保存现有程序,再点“File”下的“New”新建一个程序。
编辑:在输入程序的过程中,如果发生输入错误可以随时修改,常用的键盘编辑命令进行修改,与文字处理软件中的方法类似。(程序中大小写不会影响程序的执行,并且,程序会把各语句的关键词自动变为大写,这样在录入时最好用小写字母,可以检查是否把关键词录入错误)
小技巧:在录入时,可以用“?”来代替PRINT。 运行:把程序输入、修改完毕后,点“Run”菜单中的“Start”命令或按Shift+F5键,程序即可运行。
第二节 常量、变量与标准函数
一、常量、变量的类型及其表示方法
1、数据类型
BASIC语言中可以使用许多种类的数据, 从数据的内在本质可分为数值型和字符型两大类;从数据的存储形式可分为常量和变量。在程序执行过程中,具体本身始终不变的量,称为常量。
数值型常量就是我们日常生活中经常使用的常数,分为整数型和实数型两类。数据型数据有“日常记数法”和“科学记数法”两种形式表示。
38、89536、-321.44、-0.00376属于“日常记数法”
1.25e+4、3.2e—10、-7.67e+19属于“科学记数法”
字符串常量是非数值数据。字符串常量必须用双引号括起来, 以区别于数值常量。字符串常量可以由任何字符所组成,只是双引号本身除外。
在程序运行中可以改变的量,称为变量。
变量可分为数值型变量和字符型变量。在程序执行时,数值型变量总有一个数值,而字符串变量只有一个字符串常量。数值型变量在未赋值前,其值为零。字符型变量在程序在程序开始则为“空”,也称为字符串长度为零。
2、变量的命名规则
在数值变量名中允许出现的字符是英文字母(大写、小写均可)、 数字和下划线,但变量不区分大小写;第一个字符必须是字母;不允许使用某些关键字(语句定义符中的单词或命令词)和函数名作为变量名;有效字符长度为40个。
如下列是一些正确的数值变量名:A X class grade average sum S1 s2
如下是一些错误的变量名: 9A 不是以字母开头; A> >号不能组成变量名 PRINT PRINT是关键字
字符串变量的命名规则与数值变量的命名规则相同, 但字符串变量名的末尾必须有一个“$”,如X$、A1$、ADD$
第三节 算术、关系、逻辑运算符和表达式
将数据类型相同的常量、变量和函数用规定的运算符连接起来,就构成了QBASIC表达式,表达式本身有一个值。
一、算术运算符和算术表达式
1、算术运算符
加 + 4+5 =9 减 — 8-3 =5 乘 * 2*3 =6 除 / 5/2 =2.5 整除 \ 5\2 =2 求余 MOD 5 MOD 2 =1 乘方 ^ 2^3 =8
算术表达式是用BASIC语言规定的算术运算符和圆括号,将常量、 变量、标准函数连接起来的代数式,它的所有字符必须写在同一行内,它的运算结果为数值常量,在运行中只有除而没有分式的概念。
算术表达式运算的先后次序为:
括号—正负号—函数—乘方—乘、除、整除—余数—加、减 例如:
9*SQR((5*x)+2)^6/2-15
↓ ↓ ↓ ↓ ↓ ↓ ↓
⑤ ③ ① ② ④ ⑥ ⑦
算术表达式的书写方法:根据运算次序,正确使用圆括号,且将所有字符写在同行一行上。例:
a+b ─── ——>(a+b)/(x-y) x-y
二、关系运算符和关系表达式
六种关系运算符:
两个数据类型相同(或相容)的表达式用一个关系运算符连接起来,就构成了关系表达式。关系表达式具有逻辑值,或为真,或为假。真用数字“-1”表示,假用数字“0”表示。
三、逻辑运算符与逻辑表达式
NOT 逻辑非 AND 逻辑与 OR 逻辑或
逻辑运算符运算的优先次序排列为: NOT AND OR
用逻辑运算符连接具有逻辑值的表达式,构成逻辑表达式。逻辑表达式的值也是逻辑值,真用“1”表示,假用
例:已知三条线段的长度分别为a、b、c,写出它们能否构成三角形的逻辑表达式。 (a+b>c) and (a+c>b) and (b+c>a)
四、字符串运算符
字符串运算符只有一个 “+”表示连接运算符
如:“ABCD”+“123”——>“ABCD123”
第四节 BASIC程序和构成
让我们先从一个简单和例子说起。
假定某甲有人民币15元,某乙有人民币20.5元,求甲、 乙二人共有人民币多少?把这个问题写成BASIC程序,是如下的内容。
LET A=15
LET B=20.5
LET C=A+B
PRINT C
END
电脑在执行这个程序时,先让A取值15,再让B取值20.5。 然后让C取得A与B之和,即35.5(以上都是LET的作用); 再把C的值打印出来(PRINT的作用);最后停止程序的运行(END的作用)。BASIC程序的构成规则是:
1、一个BASIC程序由若干个程序行组成的。上例程序就是由五个程序行组成的。 2、一个程序行又是由行号和语名两部分组成(QBASIC中可以不用行号)。
①行号如上例中的10,20,30,40,50。它必须是一个正的十进制整数,其作用是用来规定计算机在执行程序时的先后顺序。通常计算机总是先以最小的行号执行起,依序执行下去,直到最大的行号。行号不连续,有间隔,是为了以后修改或完善程序时用。 ②语句:上面程序中,每个行号右边的部分,都分别地称为一个语句。语句又可以分为语句定义符和语句体两部分。
A、语句定义符:如上例中的LET、PRINT 、 END都是语句体表明所需执行何种功能的。语句定义符是语言本身规定的,解释程序能够识别它们,通常称为保留字,用户不得修改或自造。
B、语句体:如上例中的A=15,B=20.5, C=A+B等都是,语句体表明所需执行的具体内容。有些语句不带语句体,如“END”等。
3、一般来讲,一个程序行只可以写一个语句,但在较多的BASIC版本中,也可以写多个语句,这时必须在两个语句之间加一个语句分隔符“:”(冒号)。
4、一个语句必须在一个程序行内写完,不允许将一个语句拆开写在两个程序行中,如例中的30行语句不能写成:30C 35A+B
5、一个程序,一般应以语句END结束。
第一章练习题
1、数X四舍五入保留2位小数的表达式为( )
2、写出判断X是否为偶数的表达式( )
3、条件1<X≤2或10≤X<15在BASIC中应写成条件表达式( )
第二章 BASIC语句
一、提供数据语句
1、赋值语句(LET)
格式 【LET】 变量=表达式
使用注意要点:
(1)赋值语句中的“=”号,称为赋值号, 作用是将它右面的值赋给它左面的变量;如果右边也是变量,赋值后右边的变量(与左边不同的变量)的值不会消失。
(2)赋值号两侧的内容不能随意互换;
(3)赋值号左边只能是变量,可以是数值变量, 也可以是字符串变量,同样其右边的表达式可以是数值表达式或字符串表达式, 但变量类型与表达式的类型应当一致。
(4)可以多次向同一个变量赋值, 但一个变量在一个瞬时只有一个确定值,在向一个变量赋值时,该变量原有的值即被新赋予的值取代。
(5)LET 语句具有计算功能。
(6)LET在语句中可以省略。
例、
B=2
A=B (赋值后,A、B的值都为2了) A=A+4 (赋值后,A的值变为6,原来的2就消失了) END
2、键盘输入语句(INPUT)
格式 INPUT 【提示信息;】 输入变量表列
使用注意要点:
(1)使用INPUT语句以键盘输入数据时,数据只能是常量,而不允许是变量或表达式;因INPUT没有计算功能。
(2)INPUT 语句常用于参加运算的数据事先不确定, 需要随时修改的情况;
(3)在INPUT 语句的格式中“输入变量表列”,每个变量间必须用“,”号分隔,执行INPUT语句时,由键盘上提供的常量应常列中的变量类型匹配。
例、
INPUT A,B
PRINT A,B
END
运行程序:(下面是在输出屏幕,“1,2”是自己输入的内容,“1 2”是电脑自动输出的内容)
?1,2
1
二、数据输出语名
2
打印语句PRINT语句
格式 PRINT [输出项表列]
功能 (1)用PRINT语句能输出数值常量、变量或表达式的值。
(2)用PRINT语句可以输出字符串。
输出格式(标准格式、紧凑格式、指定格式输出)
(1)按标准格式输出
BASIC将输出行分为5个输出区,前4个区均占14列,最后1个区占24列。当PRINT 语句中各输出项之间用“,”逗号分隔,则各输出项自左至向依次输出在各输出区中,从各区的最左面位置开始输出。
例 PRINT 1,2,3,4,5
运行结果:
1 2 3 4 5
(2)按紧凑格式输出
在PRINT语句中各输出项之间不是用逗号分隔而是用“;”分号分隔,则在输出时以“紧凑格式”组织输出,即在输出完一个输出项之后紧接着输出下一个输出项,而不是跳到下一个标准输出区输出。
例 PRINT 1;2;3;4;5
运行结果:
1 2 3 4 5
(3)输出行的控制
如果PRINT语句的末尾无逗号或分号,则输出完本PRINT 语句所指定的输出项后,自动换行;如果有逗号或分号,表示执行完本PRINT语句后,输出行不换行,下一个PRINT 语句的输出项仍在本行后面输出。如果末尾是逗号,下一输出项从下一个输出区输出;如果是分号,则以紧凑格式接着输出。
如果PRINT语句中无任何输出项,表示将输出一个“空行”。
例 PRINT 1,2,
PRINT 3,4
PRINT 1;2;
PRINT 3;4
END
运行结果:
1 2 3 4
1 2 3 4
三、清屏、暂停、结束、注释语句。
(1)清屏(CLS)语句
格式 CLS
功能 用作清除显示器的输出屏幕。光标回到输出屏幕的起始位置。
(2)结束语句
格式 END
功能 终止程序的运行。
(3)注释语句
格式 REM 注释内容
功能 为程序或程序中某些语句作注释。
注意:REM语句是非执行语句,对程序的执行结果不起任何影响,只是在用LIST列源程序清单时将REM语句原样列出,除此以外无其他作用。因而,REM语句可放在程序中的任何位置。
练习:写出下列程序运行后的打印结果。
1.10 LET A=3.5: LET B=-4.6 2.P=1:S=0
20 PRINT
30 X=A: A=B: B=X P=P*I
40 PTINT
50 END PRINT
NEXT I
END
第三章 分支结构程序设计
一、分支语句
(1)行IF语句
格式: IF 条件 THEN 语句组1 [ELSE 语句组2]
说明:“[ ]”代表里面的内容可以省略。
(2)块IF语句
格式:IF 条件 THEN
语句组1
[ELSE
语句组2]
END
功能:如果条件成立(为真),执行THEN后面的语句组1,否则(即条件不成立,为假)
有语句组2就执行语句组2,没有语句组2就执行IF语句后面的其它语句。
使用注意要点:
(1)IF后的条件系关系表达式或逻辑表达式, 其结果只有两种:“真”或“假”。THEN后的语句组1,ELSE后的语句组2可以是一个行号,可以是一个语句,也可以是多个语句(行IF中须用冒号分隔)。
(2)下面是无语句组2的执行流程图是图3-1,有语句组2的执行流程图是图3-2
例1、
INPUT X
IF X>0 THEN
PRINT X
END IF
END
运行结果:
1)?5
5 图3-1 图3-2
2)?-5
例2 比较三个数的大小,找出最大值(用三种方法给变量赋值)。
CLS
INPUT A,B,C
IF A>B THEN MAX=A ELSE MAX=B (行IF语句)
IF C>MAX THEN MAX=C
PRINT “MAX=”;MAX
END
运行结果:
?2,3,1
例3、一个商店为了促销,实行满100打9
折的活动,请为他编写一个简单的程序,实现输
入购买金额X,屏幕显示打折后的应付金额。
INPUT “请输入购买金额”;X IF X>=100 THEN
S=X*0.9
ELSE S=X END IF PRINT “实际付款”;S;“元” END
例4、输入一个数,判断它是否是3的倍数。是就显示“YES”,否则显示“NO”。
INPUT X
IF X/3=INT(X/3) THEN
PRINT “YES”
ELSE
PRINT “NO”
END IF
END
运行结果:
1)
?4
NO
2)
?12
YES
第四章 循环结构程序设计
一、 FOR循环结构
FOR 循环变量=初值 TO 终值 STEP 步长值
循环体
NEXT 循环变量
几点说明:
(1) FOR 语句与NEXT语句必须成对出现,缺一不可,且循环变量名必须保持一致。
(2)循环变量是在FOR循环中控制循环次数的变量,它只能是数值型变量。
(2) 步长值是指循环体每执行一次后,循环变量的增量,步长值可正可负。
(3) 当步长值为1时,STEP及步长值可以省略。
- 11 - (一)FOR语句格式:
(5)初值、终值、步长值可以是常数、变量或算术表达式。
(6)终止条件:当步长>0时,循环变量>终值;当步长
(7)循环次数公式:循环次数=INT((终值-初值)/步长)+1
(二)FOR循环的执行过程(如图4-1)
计算机执行FOR语句时,首先把初值赋给循环变量,并记下终值和步长值,然后将循环变量的值与终值进行比较,如果循环变量的值未越过终值,则执行FOR语句后面的语句,否则退出循环,执行NEXT 语句后面的语句。当执行NEXT语句时,有两个操作:
(1)给循环变量增加一个步长值;
(2)将增值后的循环变量的值进行比较,如果循环变量的值未越过终值,则继续执行循环体,否则终止循环,转去执行NEXT语句后面的语句。
例1、 比较分析下列2个程序的运行结果。
1)PRINT “*”;
PRINT “*”;
PRINT “*”;
PRINT “*”;
PRINT “*”;
END
运行结果:
*****
2)FOR I =1 TO 5 STEP 1
PRINT “*”;
NEXT I
END
运行结果:
*****
语句只输出一个“*”。
例2、求100以内偶数的和。
S=0
FOR I=2 TO 100 STEP 2
S=S+I (说明:此语句是累加语句)
NEXT I
PRINT “S=”;S
END
例3、求100以内有多少个3的倍数
T=0
FOR J=3 TO 100 STEP 3
T=T+1
NEXT J
PRINT T
END
- 12 - 图4-1
从上面两个程序可以看出,第2)个程序的PRINT语句反复执行了5次,因为每次PRINT
例4、求1*2*3*„„*10的结果。
T=1 FOR I=1 TO 10 T=T*I (说明:此语句是累乘语句) NEXT I PRINT “1*2*3*„„*10=”;T END
DO WHILE语句格式:
DO WHILE
循环体
LOOP
功能:当指定条件为真时继续循环,否则结束循环。
说明:DO WHILE循环是当条件成立时开始执行循环体,到LOOP时返回又进行条件比较,若成立又执行循环体,否则退出循环,执行LOOP后的语句。故在设计循环体是一定要包含有使条件不成立可能的语句,否则将会形成死循环。
例1、求100以内偶数的和。
S=0
I=0
DO WHILE I
S=S+I
I=I+2
LOOP
PRINT S
END
例2、如果一个企业的产值每年以8%速度增长,问多少年后产值翻两番:基值设为100。 P=100
R=.08
N=0
DO WHILE P
P=P*(1+R)
N=N+1
LOOP
PRINT N;
END
例3、统计一个班某科考试的平均分。
分析:设输入分数为X,班总分为S,人数为R。问题可化为以输入的X>=0为循环条件循环输入考试分数并累加(S=S+X)、统计人数(R=R+1),否则终止循环然后求出平均分(S/R)。 程序如下:
S=0
R=0
INPUT X
DO WHILE X>=0
- 13 - 二、DO WHILE语句
S=S+X
R=R+1
INPUT X
LOOP
E=S/R
PRINT E
END
练习题:
1、按下列题目要求编写程序,并上机运行(两种方式:FOR 和 DO WHILE)。
(1)S=1+3+5+„„ +99
(2)T=1*2*3*„„*20
(3) 要使下面等式成立,○中应填入哪个相同的数字:
- 14 - 3○×8256=○3×6528
QBASIC程序设计
BASIC是英文Beginner’s All-purpose Sybol——初学者通用符号指令代码。BASIC语言是一种常用的高级程序设计语言之一。目前比较流行的BASIC语言版本有True BASIC、Turbo BASIC、 QBASIC、GWBASIC。本讲义仅介绍QBASIC。
BASIC语言基本知识与要求
1、QBASIC语言的基本知识:
QBASIC语言的基本特点;
常量、变量、字符串、算术表达式的概念;
数的表式方法及范围;
语句的基本格式;
顺序、选择、循环结构的程序设计;
程序设计的基本步骤。
2、QBASIC语句:
LET INPUT PRINT END IF FOR DO WHILE REM 3、算术运算符、关系运算符与逻辑运算符:
+、—、*、/、\、MOD、^
=、>、=、
AND、OR、NOT
4、流程图的基本符号;流程图的作用。
5、循环语句
循环变量、循环体、循环初值、循环终值、步长的概念;循环语句的基本格式。
6、常用函数
数值函数
INT(X)、ABS(X)、SQR(X)、RND(X)、
SGN(X)、SIN(X)、COS(X)、TAN(X)
字符串函数(了解)
ASC、LEN 、TAB(X)、VAL、LOG(X)、STR$、CHR$、 LEFT$、RIGHT$、 MID$
7、数组及其应用(了解)
下标变量、一维、二维数组的概念;数组说明语句
第一章 BASIC语言基础
第一节 QBASIC的环境
1、 QBASIC的进入
用QBASIC语言编写程序,首先要进入QBASIC集成环境。QBASIC主要由QBASIC.EXE和QBASIC.HLP两个文件组成,按照教师的要求进入指定的位置,运行QBASIC.EXE后,屏幕上会出现一个如图1-1的对话框:
图1-1
直接单击“确定”按钮,便进入
QBASIC的集成环境,其界面如下图2-2
:
再按“Esc
”键即可取消屏幕中央的对话框,进入图1-3所示的主屏幕。
图1-2 图1-3
屏幕被分成了四部分:顶端的“菜单栏”,中部的“编辑窗口”,下部的“立即窗口”及底部的提示行。
菜单栏列出了QBASIC提供的所有功能。用鼠标单击菜单的标题,或按一下“Alt”+标题的首字母都可以打开功能菜单,比如Alt+F可以打开File菜单。各功能菜单的功能是:
编辑窗口是输入、修改程序的地方。
立即窗口是可以用来直接执行QBASIC的命令,输入一行按回车后,这个命令就立即执行了,比如是显示命令PRINT 2*5,按回车后在输出屏幕上就立即显示结果10。
同一时刻只能在一个窗口中输入程序或命令,光标在哪个窗口,输入的内容就在哪个窗口。可以按“F6”在编辑窗口和立即窗口之间进行切换。
2、 程序的输入、编辑和运行程序
输入:启动QBASIC后,在编辑窗口有一个闪烁的“_”号光标,输入字符或数字后,光标会自动向后移动,输入完一行后按回车,光标回到下一行首,你可以继续输入下一行内容了。
在编辑窗口中,一次只能输入并运行一个程序。因此,在输入下一个程序前要先点“File”下的“Save”保存现有程序,再点“File”下的“New”新建一个程序。
编辑:在输入程序的过程中,如果发生输入错误可以随时修改,常用的键盘编辑命令进行修改,与文字处理软件中的方法类似。(程序中大小写不会影响程序的执行,并且,程序会把各语句的关键词自动变为大写,这样在录入时最好用小写字母,可以检查是否把关键词录入错误)
小技巧:在录入时,可以用“?”来代替PRINT。 运行:把程序输入、修改完毕后,点“Run”菜单中的“Start”命令或按Shift+F5键,程序即可运行。
第二节 常量、变量与标准函数
一、常量、变量的类型及其表示方法
1、数据类型
BASIC语言中可以使用许多种类的数据, 从数据的内在本质可分为数值型和字符型两大类;从数据的存储形式可分为常量和变量。在程序执行过程中,具体本身始终不变的量,称为常量。
数值型常量就是我们日常生活中经常使用的常数,分为整数型和实数型两类。数据型数据有“日常记数法”和“科学记数法”两种形式表示。
38、89536、-321.44、-0.00376属于“日常记数法”
1.25e+4、3.2e—10、-7.67e+19属于“科学记数法”
字符串常量是非数值数据。字符串常量必须用双引号括起来, 以区别于数值常量。字符串常量可以由任何字符所组成,只是双引号本身除外。
在程序运行中可以改变的量,称为变量。
变量可分为数值型变量和字符型变量。在程序执行时,数值型变量总有一个数值,而字符串变量只有一个字符串常量。数值型变量在未赋值前,其值为零。字符型变量在程序在程序开始则为“空”,也称为字符串长度为零。
2、变量的命名规则
在数值变量名中允许出现的字符是英文字母(大写、小写均可)、 数字和下划线,但变量不区分大小写;第一个字符必须是字母;不允许使用某些关键字(语句定义符中的单词或命令词)和函数名作为变量名;有效字符长度为40个。
如下列是一些正确的数值变量名:A X class grade average sum S1 s2
如下是一些错误的变量名: 9A 不是以字母开头; A> >号不能组成变量名 PRINT PRINT是关键字
字符串变量的命名规则与数值变量的命名规则相同, 但字符串变量名的末尾必须有一个“$”,如X$、A1$、ADD$
第三节 算术、关系、逻辑运算符和表达式
将数据类型相同的常量、变量和函数用规定的运算符连接起来,就构成了QBASIC表达式,表达式本身有一个值。
一、算术运算符和算术表达式
1、算术运算符
加 + 4+5 =9 减 — 8-3 =5 乘 * 2*3 =6 除 / 5/2 =2.5 整除 \ 5\2 =2 求余 MOD 5 MOD 2 =1 乘方 ^ 2^3 =8
算术表达式是用BASIC语言规定的算术运算符和圆括号,将常量、 变量、标准函数连接起来的代数式,它的所有字符必须写在同一行内,它的运算结果为数值常量,在运行中只有除而没有分式的概念。
算术表达式运算的先后次序为:
括号—正负号—函数—乘方—乘、除、整除—余数—加、减 例如:
9*SQR((5*x)+2)^6/2-15
↓ ↓ ↓ ↓ ↓ ↓ ↓
⑤ ③ ① ② ④ ⑥ ⑦
算术表达式的书写方法:根据运算次序,正确使用圆括号,且将所有字符写在同行一行上。例:
a+b ─── ——>(a+b)/(x-y) x-y
二、关系运算符和关系表达式
六种关系运算符:
两个数据类型相同(或相容)的表达式用一个关系运算符连接起来,就构成了关系表达式。关系表达式具有逻辑值,或为真,或为假。真用数字“-1”表示,假用数字“0”表示。
三、逻辑运算符与逻辑表达式
NOT 逻辑非 AND 逻辑与 OR 逻辑或
逻辑运算符运算的优先次序排列为: NOT AND OR
用逻辑运算符连接具有逻辑值的表达式,构成逻辑表达式。逻辑表达式的值也是逻辑值,真用“1”表示,假用
例:已知三条线段的长度分别为a、b、c,写出它们能否构成三角形的逻辑表达式。 (a+b>c) and (a+c>b) and (b+c>a)
四、字符串运算符
字符串运算符只有一个 “+”表示连接运算符
如:“ABCD”+“123”——>“ABCD123”
第四节 BASIC程序和构成
让我们先从一个简单和例子说起。
假定某甲有人民币15元,某乙有人民币20.5元,求甲、 乙二人共有人民币多少?把这个问题写成BASIC程序,是如下的内容。
LET A=15
LET B=20.5
LET C=A+B
PRINT C
END
电脑在执行这个程序时,先让A取值15,再让B取值20.5。 然后让C取得A与B之和,即35.5(以上都是LET的作用); 再把C的值打印出来(PRINT的作用);最后停止程序的运行(END的作用)。BASIC程序的构成规则是:
1、一个BASIC程序由若干个程序行组成的。上例程序就是由五个程序行组成的。 2、一个程序行又是由行号和语名两部分组成(QBASIC中可以不用行号)。
①行号如上例中的10,20,30,40,50。它必须是一个正的十进制整数,其作用是用来规定计算机在执行程序时的先后顺序。通常计算机总是先以最小的行号执行起,依序执行下去,直到最大的行号。行号不连续,有间隔,是为了以后修改或完善程序时用。 ②语句:上面程序中,每个行号右边的部分,都分别地称为一个语句。语句又可以分为语句定义符和语句体两部分。
A、语句定义符:如上例中的LET、PRINT 、 END都是语句体表明所需执行何种功能的。语句定义符是语言本身规定的,解释程序能够识别它们,通常称为保留字,用户不得修改或自造。
B、语句体:如上例中的A=15,B=20.5, C=A+B等都是,语句体表明所需执行的具体内容。有些语句不带语句体,如“END”等。
3、一般来讲,一个程序行只可以写一个语句,但在较多的BASIC版本中,也可以写多个语句,这时必须在两个语句之间加一个语句分隔符“:”(冒号)。
4、一个语句必须在一个程序行内写完,不允许将一个语句拆开写在两个程序行中,如例中的30行语句不能写成:30C 35A+B
5、一个程序,一般应以语句END结束。
第一章练习题
1、数X四舍五入保留2位小数的表达式为( )
2、写出判断X是否为偶数的表达式( )
3、条件1<X≤2或10≤X<15在BASIC中应写成条件表达式( )
第二章 BASIC语句
一、提供数据语句
1、赋值语句(LET)
格式 【LET】 变量=表达式
使用注意要点:
(1)赋值语句中的“=”号,称为赋值号, 作用是将它右面的值赋给它左面的变量;如果右边也是变量,赋值后右边的变量(与左边不同的变量)的值不会消失。
(2)赋值号两侧的内容不能随意互换;
(3)赋值号左边只能是变量,可以是数值变量, 也可以是字符串变量,同样其右边的表达式可以是数值表达式或字符串表达式, 但变量类型与表达式的类型应当一致。
(4)可以多次向同一个变量赋值, 但一个变量在一个瞬时只有一个确定值,在向一个变量赋值时,该变量原有的值即被新赋予的值取代。
(5)LET 语句具有计算功能。
(6)LET在语句中可以省略。
例、
B=2
A=B (赋值后,A、B的值都为2了) A=A+4 (赋值后,A的值变为6,原来的2就消失了) END
2、键盘输入语句(INPUT)
格式 INPUT 【提示信息;】 输入变量表列
使用注意要点:
(1)使用INPUT语句以键盘输入数据时,数据只能是常量,而不允许是变量或表达式;因INPUT没有计算功能。
(2)INPUT 语句常用于参加运算的数据事先不确定, 需要随时修改的情况;
(3)在INPUT 语句的格式中“输入变量表列”,每个变量间必须用“,”号分隔,执行INPUT语句时,由键盘上提供的常量应常列中的变量类型匹配。
例、
INPUT A,B
PRINT A,B
END
运行程序:(下面是在输出屏幕,“1,2”是自己输入的内容,“1 2”是电脑自动输出的内容)
?1,2
1
二、数据输出语名
2
打印语句PRINT语句
格式 PRINT [输出项表列]
功能 (1)用PRINT语句能输出数值常量、变量或表达式的值。
(2)用PRINT语句可以输出字符串。
输出格式(标准格式、紧凑格式、指定格式输出)
(1)按标准格式输出
BASIC将输出行分为5个输出区,前4个区均占14列,最后1个区占24列。当PRINT 语句中各输出项之间用“,”逗号分隔,则各输出项自左至向依次输出在各输出区中,从各区的最左面位置开始输出。
例 PRINT 1,2,3,4,5
运行结果:
1 2 3 4 5
(2)按紧凑格式输出
在PRINT语句中各输出项之间不是用逗号分隔而是用“;”分号分隔,则在输出时以“紧凑格式”组织输出,即在输出完一个输出项之后紧接着输出下一个输出项,而不是跳到下一个标准输出区输出。
例 PRINT 1;2;3;4;5
运行结果:
1 2 3 4 5
(3)输出行的控制
如果PRINT语句的末尾无逗号或分号,则输出完本PRINT 语句所指定的输出项后,自动换行;如果有逗号或分号,表示执行完本PRINT语句后,输出行不换行,下一个PRINT 语句的输出项仍在本行后面输出。如果末尾是逗号,下一输出项从下一个输出区输出;如果是分号,则以紧凑格式接着输出。
如果PRINT语句中无任何输出项,表示将输出一个“空行”。
例 PRINT 1,2,
PRINT 3,4
PRINT 1;2;
PRINT 3;4
END
运行结果:
1 2 3 4
1 2 3 4
三、清屏、暂停、结束、注释语句。
(1)清屏(CLS)语句
格式 CLS
功能 用作清除显示器的输出屏幕。光标回到输出屏幕的起始位置。
(2)结束语句
格式 END
功能 终止程序的运行。
(3)注释语句
格式 REM 注释内容
功能 为程序或程序中某些语句作注释。
注意:REM语句是非执行语句,对程序的执行结果不起任何影响,只是在用LIST列源程序清单时将REM语句原样列出,除此以外无其他作用。因而,REM语句可放在程序中的任何位置。
练习:写出下列程序运行后的打印结果。
1.10 LET A=3.5: LET B=-4.6 2.P=1:S=0
20 PRINT
30 X=A: A=B: B=X P=P*I
40 PTINT
50 END PRINT
NEXT I
END
第三章 分支结构程序设计
一、分支语句
(1)行IF语句
格式: IF 条件 THEN 语句组1 [ELSE 语句组2]
说明:“[ ]”代表里面的内容可以省略。
(2)块IF语句
格式:IF 条件 THEN
语句组1
[ELSE
语句组2]
END
功能:如果条件成立(为真),执行THEN后面的语句组1,否则(即条件不成立,为假)
有语句组2就执行语句组2,没有语句组2就执行IF语句后面的其它语句。
使用注意要点:
(1)IF后的条件系关系表达式或逻辑表达式, 其结果只有两种:“真”或“假”。THEN后的语句组1,ELSE后的语句组2可以是一个行号,可以是一个语句,也可以是多个语句(行IF中须用冒号分隔)。
(2)下面是无语句组2的执行流程图是图3-1,有语句组2的执行流程图是图3-2
例1、
INPUT X
IF X>0 THEN
PRINT X
END IF
END
运行结果:
1)?5
5 图3-1 图3-2
2)?-5
例2 比较三个数的大小,找出最大值(用三种方法给变量赋值)。
CLS
INPUT A,B,C
IF A>B THEN MAX=A ELSE MAX=B (行IF语句)
IF C>MAX THEN MAX=C
PRINT “MAX=”;MAX
END
运行结果:
?2,3,1
例3、一个商店为了促销,实行满100打9
折的活动,请为他编写一个简单的程序,实现输
入购买金额X,屏幕显示打折后的应付金额。
INPUT “请输入购买金额”;X IF X>=100 THEN
S=X*0.9
ELSE S=X END IF PRINT “实际付款”;S;“元” END
例4、输入一个数,判断它是否是3的倍数。是就显示“YES”,否则显示“NO”。
INPUT X
IF X/3=INT(X/3) THEN
PRINT “YES”
ELSE
PRINT “NO”
END IF
END
运行结果:
1)
?4
NO
2)
?12
YES
第四章 循环结构程序设计
一、 FOR循环结构
FOR 循环变量=初值 TO 终值 STEP 步长值
循环体
NEXT 循环变量
几点说明:
(1) FOR 语句与NEXT语句必须成对出现,缺一不可,且循环变量名必须保持一致。
(2)循环变量是在FOR循环中控制循环次数的变量,它只能是数值型变量。
(2) 步长值是指循环体每执行一次后,循环变量的增量,步长值可正可负。
(3) 当步长值为1时,STEP及步长值可以省略。
- 11 - (一)FOR语句格式:
(5)初值、终值、步长值可以是常数、变量或算术表达式。
(6)终止条件:当步长>0时,循环变量>终值;当步长
(7)循环次数公式:循环次数=INT((终值-初值)/步长)+1
(二)FOR循环的执行过程(如图4-1)
计算机执行FOR语句时,首先把初值赋给循环变量,并记下终值和步长值,然后将循环变量的值与终值进行比较,如果循环变量的值未越过终值,则执行FOR语句后面的语句,否则退出循环,执行NEXT 语句后面的语句。当执行NEXT语句时,有两个操作:
(1)给循环变量增加一个步长值;
(2)将增值后的循环变量的值进行比较,如果循环变量的值未越过终值,则继续执行循环体,否则终止循环,转去执行NEXT语句后面的语句。
例1、 比较分析下列2个程序的运行结果。
1)PRINT “*”;
PRINT “*”;
PRINT “*”;
PRINT “*”;
PRINT “*”;
END
运行结果:
*****
2)FOR I =1 TO 5 STEP 1
PRINT “*”;
NEXT I
END
运行结果:
*****
语句只输出一个“*”。
例2、求100以内偶数的和。
S=0
FOR I=2 TO 100 STEP 2
S=S+I (说明:此语句是累加语句)
NEXT I
PRINT “S=”;S
END
例3、求100以内有多少个3的倍数
T=0
FOR J=3 TO 100 STEP 3
T=T+1
NEXT J
PRINT T
END
- 12 - 图4-1
从上面两个程序可以看出,第2)个程序的PRINT语句反复执行了5次,因为每次PRINT
例4、求1*2*3*„„*10的结果。
T=1 FOR I=1 TO 10 T=T*I (说明:此语句是累乘语句) NEXT I PRINT “1*2*3*„„*10=”;T END
DO WHILE语句格式:
DO WHILE
循环体
LOOP
功能:当指定条件为真时继续循环,否则结束循环。
说明:DO WHILE循环是当条件成立时开始执行循环体,到LOOP时返回又进行条件比较,若成立又执行循环体,否则退出循环,执行LOOP后的语句。故在设计循环体是一定要包含有使条件不成立可能的语句,否则将会形成死循环。
例1、求100以内偶数的和。
S=0
I=0
DO WHILE I
S=S+I
I=I+2
LOOP
PRINT S
END
例2、如果一个企业的产值每年以8%速度增长,问多少年后产值翻两番:基值设为100。 P=100
R=.08
N=0
DO WHILE P
P=P*(1+R)
N=N+1
LOOP
PRINT N;
END
例3、统计一个班某科考试的平均分。
分析:设输入分数为X,班总分为S,人数为R。问题可化为以输入的X>=0为循环条件循环输入考试分数并累加(S=S+X)、统计人数(R=R+1),否则终止循环然后求出平均分(S/R)。 程序如下:
S=0
R=0
INPUT X
DO WHILE X>=0
- 13 - 二、DO WHILE语句
S=S+X
R=R+1
INPUT X
LOOP
E=S/R
PRINT E
END
练习题:
1、按下列题目要求编写程序,并上机运行(两种方式:FOR 和 DO WHILE)。
(1)S=1+3+5+„„ +99
(2)T=1*2*3*„„*20
(3) 要使下面等式成立,○中应填入哪个相同的数字:
- 14 - 3○×8256=○3×6528