1 / 46

第二章 QBASIC 程序设计初步

第二章 QBASIC 程序设计初步. 本 章 重 点. 掌握编制 QBASIC 程序的基本规则 掌握常量及变量的基础概念 在算术表达式中灵活使用标准函数 掌握 PRINT, LET, INPUT. BASIC 语言的发展 初期 BASIC(1964~70 初) 小型机上使用 多用户分时系统 编译方式 微机 BASIC(1975~80 年代中期) 在 ROM 中 解释方式 结构化 BASIC(80 年代中期) 三种基本结构 模块化 True BASIC 、Quick BASIC 、QBASIC. Visual BASIC(1991,MS)

nell
Download Presentation

第二章 QBASIC 程序设计初步

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二章 QBASIC程序设计初步

  2. 本 章 重 点 • 掌握编制QBASIC程序的基本规则 • 掌握常量及变量的基础概念 • 在算术表达式中灵活使用标准函数 • 掌握PRINT, LET, INPUT

  3. BASIC语言的发展 • 初期BASIC(1964~70初) • 小型机上使用 • 多用户分时系统 • 编译方式 • 微机BASIC(1975~80年代中期) • 在ROM中 • 解释方式 • 结构化BASIC(80年代中期) • 三种基本结构 • 模块化 • True BASIC 、Quick BASIC 、QBASIC

  4. Visual BASIC(1991,MS) • for Windows • 用于开发Windows应用软件

  5. QBASIC 源程序的构成 例:求方程ax2+bx+c=0的实根。 a=5,b=3,c=4 Let a=5:let b=3 let c=4 let d=b^2-4*a*c if d<0 then goto a let x1=(-b+sqr(d))/(2*a) let x2=(-b-sqr(d))/(2*a) print x1,x2 a:end • 由若干语句行组成 • 按执行顺序排列语句 • 程序以“END”结束 • 语句前可有“行标号” • 一个语句行可由多个 语句组成(:) • 语句 语句定义符 语句体

  6. QBASIC语言的基本字符 • 英文字母 • 阿拉伯数字 • 符号 • 标点符号 • 类型说明符 • 算术运算符(+、-、×、/、\ 、) • 关系运算符(>、 < 、= 、>=、 <=、 <>) • 逻辑运算符(NOT、AND、OR)

  7. QBASIC的常量与变量 整数 实数 数值常量 • 常量:其值在程序执行中总也不变的量 整 数:不带小数点 类型 表示方法 有效范围 字节 -32768~32767间的数 -32768~32767 2 整数 或上述之间末尾带% 不在整数范围而在 -231~231-1间的数 或末尾带& 长整数 4 -231~231-1

  8. 实 数:带小数点的数 实数记数法: • 日常记数法:定点实数 • 科学记数法:浮点实数 • 用E(或e)表示底数10 • 数字部分紧挨在E的左边,指数部分写在E的右边 • 正指数可以省略正号 • 指数部分不能用括号 • 不能省略数字部分

  9. 实数表示法:单精度和双精度 类型 表示方法 有效位数 有效范围 字节 定点 单精度 <=7位的小数 <=7位带 !的数 -9999999!~9999999! 4 7 单精度 浮点数 数字部分<=7位 底用E表示的指数 -3.402823E38 ~3.402923E38 7 4 定点 双精度 7位<小数<=15位 或末尾带 # 的数 15 8 双精度 浮点数 数字部分<=15位 底用D表示的指数 15 8

  10. 字符串常量:由双引号括起来的若干个字符 “QBASIC”,“A” • 符号常量:由CONST定义的符号 如: CONST pi=3.14159 LET r=10 LET l=2*pi*r LET s=pi*r*r PRINT l,s END 比较 pi 与 r 的使用方法, 各是什么量? 1.pi与r都可以被多次 引用 2.当要改变pi与r值时, 只需修改前两条语句 3.pi不能再次赋值,因 为它是常量。r可再次 赋值,因为它是变量。

  11. 变量:在程序执行过程中其值可变化的量 • 与常量不同的是变量占用一定的存储单元 • 变量有名字,称为变量名 • 变量名以字母开头,后跟字母或数字 • 变量名长度为 1~40 个字符 • 变量名中不能有空格 • 不允许用QBASIC的保留字作变量名 • 变量名中不计大小写 • 紧接变量名后可以带有表示变量类型的符号 如:a%,a!

  12. 用DIM语句指定变量类型 DIM 变量名 AS 类型名 • 变量名后面不能带有类型定义符 • 类型名: INTEGER LONG SINGLE DOUBLE STRING 例:DIM a AS INTEGER

  13. age% 整 型: 2 字节 DIM age AS INTEGER a& 长整型: 4 字节 DIM a AS LONG rate , rate! 4 字节 单精度: DIM rate AS SINGLE sum# 双精度: 8 字节 DIM sum AS DOUBLE name$ 变长字符串: 实际字符个数 DIM name AS STRING 定长字符串: DIM code AS STRING *6 n

  14. QBASIC 的标准函数 • 全部标准函数见附录3 • 常用数学函数见133页表2.3 • 不能随意造函数 • 自变量部分必须用圆括号括起来 • 自变量可以是常量、变量或表达式 • 三角函数的自变量应为弧度 例:sin(3.14/4)+sqr(x^2)-int(3/2)+abs(y)

  15. 标准函数 功 能 SIN(X) 求X的正弦值 X单位为弧度 CON(X) 求X的余弦值 X单位为弧度 SQR(X) 求X的平方根 ABS(X) 求X的绝对值 LOG(X) 求X的自然对数 EXP(X) 求e的X次幂

  16. 标准函数 功 能 INT(X) 求不大于X的最大整数 FIX(X) 取X的整数部分 SGN(X) 符号函数 1 当x>0 SGN(X)= 0 当x=0 -1 当x<0 RND(X) 产生(0,1)区间的一个随机数

  17. 算术表达式 QBASIC 的算术表达式 关系表达式 逻辑表达式 • 算术运算符 + 、- 、* 、/ 、\ 、MOD 、^ • 整除及取余时,分别将参加运算的两个量四舍五入为整数,再取商的整数部分或余数。 如: 7 \ 2 = 3 50.4 \ 2.6 = 16 82.27 mod 4.63 = 2

  18. 算术表达式 用算术运算符将常数、数值变量及数学函数连接起来的有意义的式子。 • 不要漏写乘号 “ * ” • 要用合法的变量名 • 所有字符写在一行上 • 只能使用圆括号

  19. 表达式举例 1/3 (x+y)^(1/3) b/(3*a) Sinπx+ln x sin(3.14*x)+log(x) (c+b)/(c+d) ex -cos350 exp(x)-cos(35*3.14/180)

  20. 括号 正负号 函数 乘方 乘除 整除 取余 加减 • 运算顺序 例: -2*sin(3.14/6) - 5 mod 3*4\5 5 2 1 6 3 4 7 8 结果:-2

  21. 不同类型数据的混合运算 • 结果为占内存较多的类型 • 单精度型与长整型占字节数相同,结果为双精度 • 数值型数据与字符串型数据不能进行运算

  22. 输出语句(PRINT) • 功能:用来在显示器上输出信息 • 格式:PRINT [输出项表列] • 各项之间以“,”或“;”间隔 • 输出项可以是:数值型或字符串型的常量、变量、函数或表达式 • “输出项表列”后面没有任何符号时,则输出指针换行到下一行的起始位置

  23. PRINT 语句的作用 • 输出计算结果 例:输出-5及其绝对值、正弦值、立方值和其单精度值 • 原样输出字符串,具有说明或注释作用 例:求88,98,69,77的平均值 例:求3x+6y的值,其中x=3,y=7 • 数值型数据前面有一个符号位

  24. PRINT 语句的输出格式 • 按标准格式输出 • 5个区,14列/区 • 输出项间以“,”分隔(例) • 一个PRINT语句有5个以上输出项时,则输出完5个项之后,到下一行第一个标准位置输出

  25. 按紧凑格式输出 • 输出项间以“;”分隔 • 输出项为数值时,前面有一个符号位,后面有一个“尾随空格” • 输出项为字符串时,前后没有符号位,即无间隔地输出。 • 在PRINT语句末尾使用分隔符 • 表示执行完本PRINT语句后,输出不换行,按标准或紧凑格式接着输出下一个PRINT的输出项。 • QB4-1,QB4-2,QB4-3

  26. 用TAB函数控制输出位置 • TAB(X) • 在X位置输出其后的输出项 • X可以是数值、赋了值的变量或算术表达式。 • X不能取负值,也不能超过每行的列数 • 一个PRINT语句中有多处用到TAB函数时,X的值应由小到大 • TAB函数与它的前后项之间用分号隔开 • QB4-4 • SPACE$函数 • LPRINT语句

  27. 第二节 赋值语句(LET) • 格式 [LET] 变量名=表达式 • 赋值语句的作用 • 运算功能 PRINT语句求出的表达式的值只能即时输出,不能再次引用。 LET语句求出的表达式的值保留在变量中,在程序中可以多次引用。 PRINT语句也有运算功能。这两种运算功能有什么区别呢?

  28. LET语句使用说明 • LET中“=”的含义是赋值(赋值号) • 变量的类型应与表达式值的类型一致 LET A=3-1 LET B$=“BASIC” • 表达式中的变量没赋值时,如果是数值变量则为0,如果是字符串变量则为空串。 • 赋值号左边只能是变量,不能是表达式 LET 3=A:LET A+B=C

  29. 对同一个变量多次赋值时,其值为后一次得到的值对同一个变量多次赋值时,其值为后一次得到的值 A=9:A=10:A=2 • 不能用一个赋值语句连续赋值 A=B=C=8 • “=”两端类型不一致时,则以“=”左端的变量的类型为准。 LET A=1234.123456 单精度实型 双精度常数

  30. 结果为 4 • LET B%=3.645 • LET C&=12345 • LET D%= 12345678 • LET E#=1.12345 结果为 12345 溢出错误 结果为 1.1234 500 000 000 00

  31. 第三节 键盘输入语句(INPUT) • 格式 INPUT [提示串,|;]变量表列 • INPUT语句的作用 • 在程序运行过程中由用户从键盘输入数据。QB4-5 • INPUT语句的使用说明 • 变量表列中有多个变量时,变量之间用“,”分隔 INPUT a,b,c • 变量表列的末尾不能有符号 INPUT a,b,c, ×

  32. INPUT “r=”;r 相当于下面两条语句 • PRINT “r=”; • INPUT r • INPUT语句中提示串后面的“;”改成“,”,则不输出“?” QB4-6 • 执行INPUT语句时从键盘输入的数据个数应与变量表列中变量的个数一致 QB4-7 • 从键盘上输入的数据只能是常量

  33. 第四节 读数/置数语句(READ/DATA) • 格式 READ 变量表列 DATA 数据表列 • READ/DATA语句的作用 • 在程序中批量给变量赋值 • DATA语句是非可执行语句,编译时按顺序将DATA语句中的数据放在内存的一个数据区中。 • READ语句从数据区中读入数据赋给各变量 READ a,b,c DATA 2,3,4

  34. READ/DAT语句使用说明 • READ/DATA语句中的变量之间以及数据之间应以“,”分隔 • READ/DATA语句的末尾不能有符号 • 有READ语句则一定要有DATA语句,但两个语句的个数不一定相同 • 一个程序中DATA语句中数据的总个数应不少于READ语句中变量的总个数,否则: Out of DATA

  35. READ/DAT语句使用说明 • DATA语句可以放在程序中的任意位置,甚至可以放在END语句的后面 • READ a • DATA 1,2,3,4,5 • READ b,c • PRINT a,b,c 1 2 3 4 5 a=1 b=2 c=3

  36. READ/DAT语句使用说明 • DATA语句中的数只能是常量 DATA 3/4,sqr(3),exp(2),3+4× • DATA语句中数据的顺序、类型必须和READ语句中变量的顺序、类型一致。 READ a,b$,c,d$ DATA 2000,“November”,23,“Tuesday”

  37. 第五节 恢复数据指针语句(RESTORE) • 格式 RESTORE [标号] • RESTORE语句的作用 • 使数据区的指针从当前位置返回到数据区的开头或某DATA语句的开头 • 用于重复使用数据区中某一些数据

  38. 1 k1:data 1,2 read a,b,c,d,e restore k2 k2:data 3 read a restore read a k3:data 4,5 print a,b,c,d,e end 2 3 4 5 a=1 a=3 a=1 b=2 c=3 d=4 e=5

  39. REM、END和STOP语句 • 注释语句REM • 非可执行语句 • 注释信息可以不加引号 • 一般用于调试程序 • 结束语句END • 非可执行语句 • 程序运行时,遇到一个END语句就结束。QB2-7 • 暂停语句STOP • 程序暂停后可继续运行

  40. 第七节 顺序程序设计举例 • 鸡兔同笼问题。 已知鸡兔的总头数h,总脚数f,求鸡兔各有多少只。 设鸡x只,兔y只。 ∵ x+y=h   2x+4y=f   ∴ x=(4h-f)/2 y=h-x

  41. 用LET语句 h=5:f=16 x=(4*h-f)/2 y=h-x print x,y end qb4-8

  42. 用INPUT语句 input “heads and foots”;h,f x=(4*h-f)/2 y=h-x print “chickens=“;x,”rabbits=“;y end qb4-9

  43. 用READ/DATA语句 read h, f x=(4*h-f)/2 y=h-x print x, y data 5, 16 end qb4-10

  44. 本章小结: • 掌握QBASIC源程序的构成 • 掌握常量与变量的表示 • 掌握常用几个标准函数 • 熟练QBASIC中表达式的写法

  45. 本章习题 • 66页 6, 8-12, 14

  46. QBASIC 上机指导 • QBASIC 的组成 • MS-DOS 5.0 以上版本提供 • QBASIC.EXE 、QBASIC.HLP • 启动QBASIC • “basic/qbasic” • 程序窗口:用来编辑和运行程序 窗口的标题为源程序名 • 命令窗口:用来执行单个程序 窗口的标题为Immediate • 活动窗口:当前正在使用的窗口

More Related