QBASIC程序设计.docx
- 文档编号:30752937
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:21
- 大小:174.39KB
QBASIC程序设计.docx
《QBASIC程序设计.docx》由会员分享,可在线阅读,更多相关《QBASIC程序设计.docx(21页珍藏版)》请在冰豆网上搜索。
QBASIC程序设计
QBASIC程序设计
BASIC是英文Beginner’sAll-purposeSybol——初学者通用符号指令代码。
BASIC语言是一种常用的高级程序设计语言之一。
目前比较流行的BASIC语言版本有TrueBASIC、TurboBASIC、QBASIC、GWBASIC。
本讲义仅介绍QBASIC。
BASIC语言基本知识与要求
1、QBASIC语言的基本知识:
QBASIC语言的基本特点;
常量、变量、字符串、算术表达式的概念;
数的表式方法及范围;
语句的基本格式;
顺序、选择、循环结构的程序设计;
程序设计的基本步骤。
2、QBASIC语句:
LETINPUTPRINTENDIFFORDOWHILEREM
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的对话框:
直接单击“确定”按钮,便进入QBASIC的集成环境,其界面如下图2-2:
再按“Esc”键即可取消屏幕中央的对话框,进入图1-3所示的主屏幕。
屏幕被分成了四部分:
顶端的“菜单栏”,中部的“编辑窗口”,下部的“立即窗口”及底部的提示行。
菜单栏列出了QBASIC提供的所有功能。
用鼠标单击菜单的标题,或按一下“Alt”+标题的首字母都可以打开功能菜单,比如Alt+F可以打开File菜单。
各功能菜单的功能是:
File
文件菜单,主要包括新建文件、打开文件、保存文件等操作。
Edit
编辑菜单,主要包括编辑修改程序的剪切、复制、粘贴等操作。
View
查看菜单,主要包括查看输出屏幕、子程序窗口等操作。
Search
查看菜单,主要包括在程序中查找、替换等操作。
Run
运行菜单,主要包括运行程序的操作。
Debug
测试菜单,主要包括调试程序的操作;
Option
选项菜单,主要包括对QBASIC集成环境进行初始设置等操作;
Help
帮助菜单,提供各种操作的帮助信息。
编辑窗口是输入、修改程序的地方。
立即窗口是可以用来直接执行QBASIC的命令,输入一行按回车后,这个命令就立即执行了,比如是显示命令PRINT2*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个。
如下列是一些正确的数值变量名:
AXclassgradeaveragesumS1s2
如下是一些错误的变量名:
9A不是以字母开头;A>>号不能组成变量名
PRINTPRINT是关键字
字符串变量的命名规则与数值变量的命名规则相同,但字符串变量名的末尾必须有一个“$”,如X$、A1$、ADD$
二、标准函数
函数名
函数格式
功能
ABS
y=ABS(n)
得到n的绝对值,例ABS(-1)的返回值是1
INT
y=INT(n)
得到一个不大于n的最大整数,例INT(1.9)是1
RND
y=RND(n)
得到0到1之间的随机数,n=0则得到前一个RND值
SGN
y=SGN(n)
输出n的符号,1代表正,-1代表负,0代表0
SIN
y=SIN(x)
求正弦值(X是弧度值)
SQR
y=SQR(n)
给出n的算术平方根
第三节算术、关系、逻辑运算符和表达式
将数据类型相同的常量、变量和函数用规定的运算符连接起来,就构成了QBASIC表达式,表达式本身有一个值。
一、算术运算符和算术表达式
1、算术运算符
加 + 4+5 =9 减 — 8-3 =5
乘 * 2*3 =6 除 / 5/2 =2.5
整除 \ 5\2 =2 求余 MOD 5MOD2 =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逻辑或
逻辑运算符运算的优先次序排列为:
NOTANDOR
用逻辑运算符连接具有逻辑值的表达式,构成逻辑表达式。
逻辑表达式的值也是逻辑值,真用“1”表示,假用"0”表示。
例:
已知三条线段的长度分别为a、b、c,写出它们能否构成三角形的逻辑表达式。
(a+b>c)and(a+c>b)and(b+c>a)
四、字符串运算符
字符串运算符只有一个“+”表示连接运算符
如:
“ABCD”+“123”——>“ABCD123”
第四节BASIC程序和构成
让我们先从一个简单和例子说起。
假定某甲有人民币15元,某乙有人民币20.5元,求甲、乙二人共有人民币多少?
把这个问题写成BASIC程序,是如下的内容。
LETA=15
LETB=20.5
LETC=A+B
PRINTC
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行语句不能写成:
30C35A+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语句时,由键盘上提供的常量应常列中的变量类型匹配。
例、
INPUTA,B
PRINTA,B
END
运行程序:
(下面是在输出屏幕,“1,2”是自己输入的内容,“12”是电脑自动输出的内容)
?
1,2
12
二、数据输出语名
打印语句PRINT语句
格式PRINT[输出项表列]
功能(1)用PRINT语句能输出数值常量、变量或表达式的值。
(2)用PRINT语句可以输出字符串。
输出格式(标准格式、紧凑格式、指定格式输出)
(1)按标准格式输出
BASIC将输出行分为5个输出区,前4个区均占14列,最后1个区占24列。
当PRINT语句中各输出项之间用“,”逗号分隔,则各输出项自左至向依次输出在各输出区中,从各区的最左面位置开始输出。
例PRINT1,2,3,4,5
运行结果:
12345
(2)按紧凑格式输出
在PRINT语句中各输出项之间不是用逗号分隔而是用“;”分号分隔,则在输出时以“紧凑格式”组织输出,即在输出完一个输出项之后紧接着输出下一个输出项,而不是跳到下一个标准输出区输出。
例PRINT1;2;3;4;5
运行结果:
12345
(3)输出行的控制
如果PRINT语句的末尾无逗号或分号,则输出完本PRINT语句所指定的输出项后,自动换行;如果有逗号或分号,表示执行完本PRINT语句后,输出行不换行,下一个PRINT语句的输出项仍在本行后面输出。
如果末尾是逗号,下一输出项从下一个输出区输出;如果是分号,则以紧凑格式接着输出。
如果PRINT语句中无任何输出项,表示将输出一个“空行”。
例PRINT1,2,
PRINT3,4
PRINT1;2;
PRINT3;4
END
运行结果:
1234
1234
三、清屏、暂停、结束、注释语句。
(1)清屏(CLS)语句
格式CLS
功能用作清除显示器的输出屏幕。
光标回到输出屏幕的起始位置。
(2)结束语句
格式END
功能终止程序的运行。
(3)注释语句
格式REM注释内容
功能为程序或程序中某些语句作注释。
注意:
REM语句是非执行语句,对程序的执行结果不起任何影响,只是在用LIST列源程序清单时将REM语句原样列出,除此以外无其他作用。
因而,REM语句可放在程序中的任何位置。
练习:
写出下列程序运行后的打印结果。
1.10LETA=3.5:
LETB=-4.62.P=1:
S=0
20PRINT"A=";A,"B=";BFORI=1TO3
30X=A:
A=B:
B=XP=P*I
40PTINT"A=";A,"B=";BS=S+P
50ENDPRINT"I=";I,"P=";P,"S=";S
NEXTI
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、
INPUTX
IFX>0THEN
PRINTX
ENDIF
END
运行结果:
1)?
5
5
2)?
-5
例2比较三个数的大小,找出最大值(用三种方法给变量赋值)。
CLS
INPUTA,B,C
IFA>BTHENMAX=AELSEMAX=B(行IF语句)
IFC>MAXTHENMAX=C
PRINT“MAX=”;MAX
END
运行结果:
?
2,3,1
例3、一个商店为了促销,实行满100打9折的活动,请为他编写一个简单的程序,实现输入购买金额X,屏幕显示打折后的应付金额。
INPUT“请输入购买金额”;X
IFX>=100THEN
S=X*0.9
ELSE
S=X
ENDIF
PRINT“实际付款”;S;“元”
END
例4、输入一个数,判断它是否是3的倍数。
是就显示“YES”,否则显示“NO”。
INPUTX
IFX/3=INT(X/3)THEN
PRINT“YES”
ELSE
PRINT“NO”
ENDIF
END
运行结果:
1)
?
4
NO
2)
?
12
YES
第四章循环结构程序设计
一、FOR循环结构
(一)FOR语句格式:
FOR循环变量=初值TO终值STEP步长值
循环体
NEXT循环变量
几点说明:
(1)FOR语句与NEXT语句必须成对出现,缺一不可,且循环变量名必须保持一致。
(2)循环变量是在FOR循环中控制循环次数的变量,它只能是数值型变量。
(2)步长值是指循环体每执行一次后,循环变量的增量,步长值可正可负。
(3)当步长值为1时,STEP及步长值可以省略。
(5)初值、终值、步长值可以是常数、变量或算术表达式。
(6)终止条件:
当步长>0时,循环变量>终值;当步长<0时,循环变量<终值;当步长=0时,永不终止。
(7)循环次数公式:
循环次数=INT((终值-初值)/步长)+1
(二)FOR循环的执行过程(如图4-1)
计算机执行FOR语句时,首先把初值赋给循环变量,并记下终值和步长值,然后将循环变量的值与终值进行比较,如果循环变量的值未越过终值,则执行FOR语句后面的语句,否则退出循环,执行NEXT语句后面的语句。
当执行NEXT语句时,有两个操作:
(1)给循环变量增加一个步长值;
(2)将增值后的循环变量的值进行比较,如果循环变量的值未越过终值,则继续执行循环体,否则终止循环,转去执行NEXT语句后面的语句。
例1、比较分析下列2个程序的运行结果。
1)PRINT“*”;
PRINT“*”;
PRINT“*”;
PRINT“*”;
PRINT“*”;
END
运行结果:
*****
2)FORI=1TO5STEP1
PRINT“*”;
NEXTI
END
运行结果:
*****
从上面两个程序可以看出,第2)个程序的PRINT语句反复执行了5次,因为每次PRINT语句只输出一个“*”。
例2、求100以内偶数的和。
S=0
FORI=2TO100STEP2
S=S+I(说明:
此语句是累加语句)
NEXTI
PRINT“S=”;S
END
例3、求100以内有多少个3的倍数
T=0
FORJ=3TO100STEP3
T=T+1
NEXTJ
PRINTT
END
例4、求1*2*3*……*10的结果。
T=1
FORI=1TO10
T=T*I(说明:
此语句是累乘语句)
NEXTI
PRINT“1*2*3*……*10=”;T
END
二、DOWHILE语句
DOWHILE语句格式:
DOWHILE<条件>
循环体
LOOP
功能:
当指定条件为真时继续循环,否则结束循环。
说明:
DOWHILE循环是当条件成立时开始执行循环体,到LOOP时返回又进行条件比较,若成立又执行循环体,否则退出循环,执行LOOP后的语句。
故在设计循环体是一定要包含有使条件不成立可能的语句,否则将会形成死循环。
例1、求100以内偶数的和。
S=0
I=0
DOWHILEI<=100
S=S+I
I=I+2
LOOP
PRINTS
END
例2、如果一个企业的产值每年以8%速度增长,问多少年后产值翻两番:
基值设为100。
P=100
R=.08
N=0
DOWHILEP<=400
P=P*(1+R)
N=N+1
LOOP
PRINTN;"years"
END
例3、统计一个班某科考试的平均分。
分析:
设输入分数为X,班总分为S,人数为R。
问题可化为以输入的X>=0为循环条件循环输入考试分数并累加(S=S+X)、统计人数(R=R+1),否则终止循环然后求出平均分(S/R)。
程序如下:
S=0
R=0
INPUTX
DOWHILEX>=0
S=S+X
R=R+1
INPUTX
LOOP
E=S/R
PRINTE
END
练习题:
1、按下列题目要求编写程序,并上机运行(两种方式:
FOR和DOWHILE)。
(1)S=1+3+5+……+99
(2)T=1*2*3*……*20
(3)要使下面等式成立,○中应填入哪个相同的数字:
3○×8256=○3×6528
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QBASIC 程序设计