收藏 分享(赏)

QBasic教程(全).doc

上传人:weiwoduzun 文档编号:3580926 上传时间:2018-11-13 格式:DOC 页数:63 大小:276.50KB
下载 相关 举报
QBasic教程(全).doc_第1页
第1页 / 共63页
QBasic教程(全).doc_第2页
第2页 / 共63页
QBasic教程(全).doc_第3页
第3页 / 共63页
QBasic教程(全).doc_第4页
第4页 / 共63页
QBasic教程(全).doc_第5页
第5页 / 共63页
点击查看更多>>
资源描述

1、BASICQbasic 教程BASIC(Beginners All-purpose Symbolic Instruction Code 的缩写,意为初学者通用符号指令代码)语言是在 1964 年由美国的两位教授Thomas 和 John G.Kemeny 在 Fortran 语言的基础上设计的语言系统,这个简单、易学的程序设计语言当时只有 17 条语句,12 个函数和 3 个命令,现在一般称其为基本 BASIC。BASIC 语言自诞生起,几十年间,经过世界和地的微机生产厂家的不断扩充和完善,先后出现了许多版本,IBM-PC 及其兼容机上用的BASIC 和 GWBASIC.这些不同版本的 BAS

2、IC 语言并不兼容,在很大程度上依赖于具体的硬件,这些 BASIC 语言都是非结构化的,一般称其为第一代 BASIC。70 年代初,提出了结构化程序设计思想,BASIC 语言的两位创始人 Thomas 和 John G.Kemeny 于 1985 年推出了 BASIC 语言的新版本 TrueBASIC,意思是说这才是真正的 BASIC,以区别于各微机生产厂家自行开发的“街头 BASIC”,它既保留了 BASIC 语言原有的简单,易学的特点,又使其成为结构化的程序设计语言,开创了BASIC 语言的新纪元,属于第二代 BASIC。目前,比较流行的第二代 BASIC 还有 Microsoft 公司于

3、 1986 年推出的 Quick BASIC(快速 BASIC)和 Borland 公司于 1987 年推出的TurboBASIC(增强 BASIC),尤其是 Quick BASIC 提供了集编辑、调试、编译、运行于一体的集成环境,具有下拉菜单、多窗口及在线帮助功能,并和以前 IBM-PC 机上的各种 BASIC 版本保持兼容。进入 90 年代,Microsoft 公司研制的 Windows 视窗软件问世之后,微软公司又开发了一个在 Windows 下运行的、面向对象的 Visual BASIC(可视 BASIC,即图形界面式的 BASIC) ,称为第三代BASIC,Visual BASIC

4、与 Quick BASIC 完全兼容,有 Quick BASIC 编写的程序不经修改就可在 Visual BASIC 下运行。属于第三代 BASIC 语言的还有 GFA-BASIC 和 CA-Realizer。今天的 BASIC 语言与最初的 BASIC 语言相比,无论是在功能上,还是在使用方法上,已经发生了巨大的变化,再也不是当初所谓的“初学者通用符号指令代码”了,但 BASIC 无论怎样变化,始终保持其简单、易学的特点,拥有最广泛的用户。1991 年 6 年,伴随着 MS-DOS 5.0 的推出,微软公司也同时推出了QBASIC,并作为 MS-DOS 5.0 的一个组成部分免费提供给用户。

5、现在的 MS-DOS 5.0 及其以上版本都含有 QBASIC。QBASIC 与 Quick BASIC 完全兼容,是 Quick BASIC 的简化版本,除不能编译及减少了初学者暂时用不着的一些调试方法外,具有 Quick BASIC 的大部分功能。QBASIC 采用解释方式,是一种会话式的语言,编写的程序可以立即运行并得到结果。 由于 QBASIC、Quick BASIC 都是 Microsoft 公司开发的,BASIC 语言保持着高度的兼容性和良好的继承性,在学习QBASIC 的基础上,可以很容易地掌握和使用 Quick BASIC。另外,QBASIC 只有两个文件 QBASIC.EXE

6、 和 QBASIC.HLP,用一张 360K 字节的软盘就可以存放下,无论是使用,还是维护、管理都很方便,所以,QBASIC 是最适合初学者学习和掌握的程序设计语言。Qbasic 教程 第一章 BASIC 语言概述一、程序设计语言的选择程序是用来实现算法的。1、应用范围.数值计算(科学计算)FORTRAN 、True BASIC、QBasic.商业和管理COBOL、数据库系统(dBASE、FoxBASE、Foxpro).人工智能 Lisp、ProLog .系统设计 C 语言、C+、 .多媒体(图、声、文技术) Visual BASIC .计算机网络 分布处理数据库系统:SYBASE、ORACL

7、EWWW 文件:HTML(Hyper Text Markup Language)、Java 2、语言所提供的功能强弱3、语言提供的数据结构 数据类型4、语言的使用环境 DOS、WINDOWS、UNIX、NOVELL 5、程序设计环境集成环境(菜单功能)、图形界面、软件开发工具 6、使用者的背景 熟练程度、使用环境二、BASIC 语言的发展 .BASIC 语言于 1964 年问世 作者:John.G.Kemeny 和 Thomos E.Kurtz .Beginners All-purpose Symbolic instruction Code“1、初期的 BASIC(第一代) .1417 个语句

8、,Minimal BASIC .自己操作(输入、运行、修改、输出2、微机 BASIC(第二代).Microsoft 总裁 Bill.Gates 编写只有 4k 字节的解释程序 .TRS-80 BASIC .Apple BASIC .MSBASIC(BASICA) .GWBASIC 3、结构化 BASIC(第三代) .限制 GOTO 语句,程序模块化 .True BASIC 真正的 BASIC .Quick BASIC .Turbo BASIC .QBasic(DOS5.0 以上)4、面向对象的 BASIC .windows 环境下的 Visual BASIC,图形界面,支持多媒体. 三、QBa

9、sic 的特点QBasic 是结构化的程序设计语言,与第二代 BASIC 相比有如下特点: 1、扩充了变量和常量的类型 .变量名长度:40 个字符 .增加了长整型、定长字符型变量 .可定义数值常量、字符串常量 2、提供了新的选择结构 .条件语句 IF THEN ELSE END IF .多分支语句 SELECT 3、改进了循环结构 增加以下两个循环语句: .WHILE 循环 WHILE WEND .DO 循环 DO WHILE LOOP 4、子程序和函数作为单独的模块5、不需要行号6、具有良好的编辑环境7、提供联机“Help”8、提供“分步执行”“跟踪”等调试9、采用先进的解释执行方式10、与

10、 Visual BASIC 完全兼容 四、QBasic 使用环境1、启动 .在 DOS 状态下运行 QBASIC,如: F:QBASIC.在 WIN98 下双击 QBASIC 图标;.软盘启动 把 QBASIC 系统文件(QBASIC.EXE、QBASIC.HLP) 复制到 A 盘,再执行:A:QBASIC2、工作窗口 .程序窗口(上) .命令窗口(下) .两窗口之间的切换 F63、基本操作 光标、行列位置、鼠标指针、菜单、窗口的缩放 五、运行程序1、从键盘输入程序2、运行程序 .选择菜单 RUN 中的“Start“命令 .直接按 F5 键或 Shift+F5 .在命令窗口中输入 run 命令

11、3、修改和编辑源程序 删除、插入、复制、粘贴4、程序存盘和从磁盘读入程序5、退出 QBasicQbasic 教程 第二章 QBasic 程序设计初步一、概述程序设计要掌握如下几点:1、语法规则 计算机是忠实的执行者2、根据算法写出程序 掌握算法,会画流程图3、数据结构数据的组织形式4、结构化程序设计方法 掌握三种基本结构的运用5、程序运行的环境了解计算机系统的硬件和软件配置 程序设计=算法+数据结构+程序设计方法+语言工具和计算机环境 二、源程序结构1、一个程序由若干个语句行组成,每一行称为一个语句行,一行中可以包含多个语句(语句间用“:”号相隔)。2、语句行可以没有行号,程序按语句排列的顺序

12、依次执行,但也允许有行号,行号仅作为行标号(源程序转移的目标)而不代表执行顺序。 3、语句结构 (关键字)4、程序以 END 语句结束可以有多个 END 语句,一般放在程序的最后。5、行标号 .行的标志 .只能在一行的开头 .可独占一行(即为空语句) 6、主程序与子程序 一个程序只包含一个主程序,但可包含若干个子程序或函数。 三、常量常数不变的数 常量不能改变的数据1、数值常量(常数)1)整型常量(整数) 由若干个数字组成的序列 2)实型常量(实数).定点数(日常记数法) 小数位固定.浮点数(科学记数法) 用 E 代表以 10 为底的幂数,即把常量用指数形式来表示 例如:12.34E2 表示

13、1234 .单精度实数(普通型实数)7 位有效数字 .双精度实数16 位有效数字(用 D 代替 E) 3)数的范围 类型 标记符 字节 有效位数 整数 % 2 长整数 X 显示: X= . 2、作用 (1)输出数值计算的结果(P92) (2)输出字符串(P93) (3)输出系统信息(P94) 3、输出格式 (1)标准格式输出项以逗号分隔 五区每区 14 列 (2)紧凑格式输出项以分号相隔 (3)TAB(X)第 X 列定位输出,但在同一行中、TAB(X)中的 X 应从左到右逐渐增大。还可利用SPACE(X)插入空格 (4)PRINT , 不换行(光标到下一区) PRINT ; 不换行(光标在输出

14、项后) PRINT 换行 PRINT 空行4、打印输出 LPRINT 其使用方法与 PRINT 相同二、赋值语句1、一般格式 LET= LET a=100 LET a$=“BOOK“2、作用 计算右边的表达式,将其值赋给左边变量;主要作用:运算。 “=”的作用于是赋值,与等于的差别 如:X=Y 与 Y=X 不同(例 P100) 3、对变量的赋值操作(1)变量的初值为 0 未赋值的变量 (2)一个变量只有一个值 变量的当前值由最后一次赋值决定 n=n+1 (3)变量值的传递 a=b b 的值不变 b=a a 的值不变 (4)关于赋值类型 以左边变量的类型为准 (5)两个变量交换值a=b c=a

15、a=b c 为中间结果为?/font b=c 三、键盘输入语句 1、一般格式: INPUT“提示信息”; 说明:(1)执行该语句从键盘输入数据的数目应与语句 中的变量个数相同 (2)从键盘输入的数据只能是常量 (3)输入时数据间用逗号分隔 例:求学生三门课的平均成绩 INPUT “a,b,c=“;a,b,c V=(a+b+c)/3 PRINT “average=“; v END 四、读入语句 1、格式: READ DATA 例:READ a,b,c, DATA 75,60,90 V=(a+b+c)/3 END 2、说明: (1)中的数据个数不能少于 中的变量个数。 (2)DATA 语句可放在程

16、序的任何位置,可使用 多个 DATA 语句来存放数据,这时将按 DATA 语句的先后顺序,把数据放数据区。 (3)关于“数据指针”当指针移到数据区之外 时,屏幕给出错误信息:Out of DATA (例 P109) (4)DATA 语句中的数据只能是常量 五、恢复数据指针语句 RESTORE 将数据指针移至首位或指定的 DATA 语句标号。 六、结束语句和暂停语句 1、END 语句 结束程序运行。一个程序可有多个 END 语句,但运行程序时,只有一个起作用,即执行其中一个 END 语句都会使程序结束。 2、STOP 语句 使程序暂停,选择 RUN-CONTINUE 继续运行。 七、程序调试 1

17、、分步执行 F9单步执行,STEP F6窗口转换,WINDOWS F5运行或继续运行。 2、设置断点 F9设置断点 F5运行或继续运行Qbasic 教程 第四章 选择结构程序设计一、概述分支结构: 二、关系式和逻辑表达式 1、关系运算符 、 =、 =、 、关系式 关系式是由一个关系运算符把两个表达式连起来的式子。结果(值)为逻辑值: 真 True 假 False QBASIC 用数值表示: 真: -1(非零值) 假: 0 if x0 then print x 和 if x then print x 相同 3、逻辑运算符及逻辑表达式(1)、not (非、逆、取反) 74 值为真 not (74)

18、 值为假 (2)、and (与、交) 所连接的两个关系式为真时条件成立。x0 and x 10 or X4 print x x=-1 a=5=3 =a=(5=3) a=0 三、行 IF 语句 、一般格式 if then else 2、嵌套关系 (1)ifthen ifthenelseelse 内层 外层 (2)ifthen ifthenelse if thenelse 四、块 if 语句 、一般格式 if then else end if 、应用举例例 6.5: 输入 3 个整数、按从大到小的顺序输出。 算法: (1)先将 a 与 b 比较,把小者放 b 中,大者放 a。 (2)再将 a 与

19、c 比较,把小者放 c 中,大者放 a 中,此时 a 已是三者最大的。 (3)最后将 b 与 c 比较,大者放 b 中,小者放 c 中,此时 a、b、c 已按从大到小的顺序排例好。 程序: inpnt “a,b,c,=“;a,b,c if ba then t=a a=b 交换 a、b(swap a,b) b=t end if if ca then t=a a=c 交换 a、c(swap a,c) c=t end if if cb then t=b b=c 交换 b、c (swap b,c)c=t end ifprint a, b,c end 、块 if 的嵌套 if then if then

20、else end if else end if 4、 块 IF 中的 ELSEIF 格式 if then else if then else end if end if 写成: if then elseif then else end if P125 改写为: Input “m=“;mIf mcase case case case else end select 每一个 CASE 句中指定一个值条件,当 CASE 变量的值符合条件时,执行该子句下面的语名组,在执行完该语句组后,跳过其它 CASE 子句,从 END SELECT 转出。 c=int(s/250) 2、在 CASE 子句中使用 T

21、O CASE TO 3、在 CASE 子句中使用 IS CASE IS 4、在 CASE 子句中使用多个条件 允许在一个 CASE 子句中指定多个条件,各条件 之间用逗号分开。 条件=单值、值范围、单条件 5、SELECT CASE 语句的一般格式 select case case ,,case ,, case ,,case else end select 六、多分支转移语句 格式: , 七、多分支选择结构小结 1、IF-THEN-ELSE(用 IF 的嵌套) 分支(条件)较少时使用。 2、SELECT CASE 分支(条件)较多时使用。 3、ON GOTO 非结构化程序设计,不宜使用。 Qb

22、asic 教程 第五章 循环结构程序设计一、概述 循环结构: (1)、WHILE 循环 (2)、FOR 循环 (3)、DO 循环 循环体反复执行的一组语句 例:求 s=1+2+3+.+100 编写如下程序: s=0 for i=1 to 100 s=s+i 反复执行 100 次 next i print “1+2+3+.+100=“;s end 二、 WHILE 循环结构 WHILE WEND 注: 是终止循环的逻辑表达式,应随循环的执行而变化,最终退出循环。 如: s=0 i=1 WHILE im, r=n, 重复(1)。 程序及框图 : INPUT “m,n=“;m,nr=m MOD n

23、WHILE r 0 m=n n=rr= m MOD n WENDPRINT “最大公约数为:“,n END 例 3 (P153 例 7.7):给一个整数 n(2),判别它是否素数(质数)。 算法:判别 n 是否素数,只要将 n 被 1(n-1)各数轮流作除数除,若都不被整除,则为素数。 若 n 不是素数,则 n=n1*n2,而 n1 和 n2 中必然有一个大于或等于 n 的开方根,另一个小于或等于 n 的开方根。即若 n 是非素数,则必然有一个因子小于或等于 n 开方根。 程序及框图: INPUT “n=“; nk=INT(SQR(n)i=2 flag=0 WHILE i= TO STEP 循

24、环体WEXT 如: for i=1 to 10 step 2print i,next i 2、说明 (1)FOR 与 NEXT 必须配对; (2)FOR 必须在 NEXT 的前面; (3)FOR 中的循环变量与 NEXT 的变量一致; (4)步长为 1 时“ STEP 1”可省略; (5)循环终止的条件是循环变量赋值超过终值,而不是等于终值。 (6)循环次数的计算 次数=(终值一初值)/步长+1 (7)循环变量尽量用整型变量; (8)循环变量初值和终值、步长值均可以是正值、负值或零,也可是整数或小数; 终止条件:当步长0 时,循环变量终值 当步长 = 100 then exit fornext

25、 i print s end 4、应用举例 判别 n 是否素数。 input “n=“;nk = int(SQR(n)f = 0 for i% = 2 to kif n mod i% = 0 thenf = 1exit forendifnext i%if f = 0 thenprint n ; “是素数“else print n ; “不是素数“endif end 斐波那契数列 f(n)=1 (n2) f1=1 f2=1f3=f2+f1=2f4=f3+f2=3f5=f4+f3=5 程序如下: f1=1 f2=1 print f1,f2,for i% = 3 to 20f3 = f1+f2pri

26、nt f3,f1=f2 f2=f3 next i% print end 猴子吃桃:每次吃掉一半多一个,直到第 10 天只剩一个,第一天共摘了多少个桃子? x10 =1 程序如下: x =1 for n%=10 to 2 step -1 x=(x+1)*2 next n% print “ 桃子的数量为:“;x end 思考:for n%=10 to 1 step -1 或 for n%=1 to 9 三、DO 循环语句 1、 简单 DO 循环 DOloop 终止循环可用: exit do 计算三门课程的平均成绩 do input“a,b,c, =“;a,b,c if a=0 and b=0 an

27、d c=o then exit dos=(a+b+c)/3print “平均成绩:;sloop end 2、带 while 子句的 DO 循环语句 格式一:do while loop 格式二:do loop while 作用:当指定条件为真是继续循环,否则结束循环。 格式一为前测试与 while.wend 相同。格式二为后测试,至少应执行循环体一次。 例:求 1+1/2+1/3+.1/n 直到前后两项之差小于是 1e-3 为止。s=0 n=1 t=1/ndo t1=ts=s+t1n=n+1t=1/nloop while t1-t=1e(-3) print send 思考:(1)用 do whi

28、le.loop 改写程序; (2)两种格式 do 循环的区别? 3、带 until 子句的 do 循环语句 格式一:do until loop 格式二:do . loop until 作用:当条件为真时终止循环 求 20002050 年之间的所有闰年。 闰年的条件是: (1)能被 4 整除,但不能被 100 整除的年份都是闰年; (2)能被 100 整除,又能被 400 整除的年份是闰年; 程序如下: y=2000 do while y2050 if y mod 4=0 and y mod 1000) or (y mod 100=0 and y mod 400=0) then l=1 else

29、 l=0 (2) if y mod 4=0 then if (y mod 100)=1.5e+0.9 p=p*(1+r) n=n+1 loop print n;“年“,“人口“;p end 问题(1)比较下面两例: f=1 f=1 n=6 n=6 do until n5 do f=f*n f=f*n n=n+1 n=n+1 loop loop until n5 print f print f end end (2)凡是用 do until 循环可以解决的问题,全部可用 do while 解决,只需把“”取成“” p=1.23e+0.9 r=0.015 n=0 do while p()= 例 1

30、. 已知圆的半径 r,求圆的面积:S=r 2 DEF fns(r)=3.14159*r*r PRINT fns(3) END 例 2DEF fns$=”this is a string” PRINT fns$ 例 3. 求以下公式: DEF fnc(a,b)=SQR(a*a+b*b) Print fnc(3,4) (2).说明 函数名由两部分组成 fn s 自定义函数标志(fn),用户定义名(一个字母 s); 参数可有多个,但调用时的参数(实参)与定义时的 参数(形参)要一致。 2、多行自定义(DEF)函数 用多行语句来定义一个函数。 (1)、一般格式 DEF fn() fn= END DEF

31、例 4、定义函数 f(n)=1+2+.+n DEF fns(n) S=0 FOR i=1 to n S=S+i Next i fns=S END DEF For n=1 to 100 Print fns(n) NEXT n END (2)、说明 (i)形式参数定义函数的自变量 实际参数调用函数时的参数。 (ii)函数先定义后使用,即习惯把 DEF 语句 放在程序的开头。二、块内子程序 1、gosub-return 语句 子程序定义: : return子程序调用: GOSUB 例 5:求 4!+5!+6! S=0 n=4: gosub f:s=s+p n=5: gosub f:s=s+p n=6

32、: gosub f:s=s+p print “4!+5!+6!=”;s end f: p=1 for i=1 to n p=p*i next i return 2、on gosub-return 语句 (1).一般格式 子程序定义: : return子程序调用: ON gosub , 例:“小学生算术练习”轮流出一个二位数和一个一位数的加法、减法和乘法的题目,共出十题,每题 10 分。 RANDOMIZE for i=1 to 10 a=int(90*RND)+10 b=int(9*RND)+1 p=i mod 3 + 1 ON p GOSOB a1,a2,a3 Next i Print “n

33、=“;n*10 END a1: print a;“+“;b;“=“; input c if c=a+b then n=n+1 return a2: print a;“-“;b;“=“;input c If c=a-b then n=n+1 Return a3: print a;“*“;b;“=“ Input c If c=a*b then n=n+1 Return. (2)、说明: 的值不是整数时,按四舍五入处理,值为 0 或大于 n 则不起作用,值为负时系统给出错误信息“不正确的函数调用”。 3、ON KEY(n) GOSUB-RETURN 语句 (1)、调用格式 ON KEY(n) GOS

34、UB 其中 n 是数值表达式,代表一个“陷阱键”。n 的值与 设定键的对应关系如下: n 值键名110 功能键 F1F1011方向键12方向键13方向键14方向键例: 求和式:S=1 2+22+.+n2 n=100000 ON KEY(2) GOSUB pri KEY(2) ON S=0 For i=1 to 100000 S=S+i*i NEXT i pring “s=”;s end pri:print “now swm is”;s,”I=”;i return (2).说明 设置陷阱:ON key(n) GOSUB 打开陷阱:KEY (n) on 关闭陷阱:KEY (n) off 三、独立模块的子程序 1、建立子程序 格式:SUB ()END SUB 2、子程序的调用 (1).格式 DECLARE SUB () Call () 或 例:SUB stars(n) for i=1 to n PRINT “*”; Next i Print END SUB _ DECLARE SUB Stars(n) Call Stars(30) Call Stars(18) End (2). 说明 i)DECLARE 为外部子程序说明语句,主程序调用多少个子程序,就有多少个 DECLARE 语句; ii)Call 语句的“Call”可以省写,参数的括弧也 可不写;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报