顺序结构程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SWAP语句
引例:a=3,b=4,请将a,b两个变量的值交换。
a=3:b=4
LET c=a LET a=b LET b=c PRINT a,b
a=3:b=4
SWAP a,b PRINT a,b END
END
PRINT语句
语法:PRINT [输出列表项]
用PRINT语句能输出常量、变量和表达式;
QBASIC的算术表达式
用QBASIC的运算符将常量、变量、函数和数组元素等连 接起来的式子成为QBASIC的表达式。 如:2+3*4^5-3*SIN(x)/2
QBASIC中的运算次序:
()
正负号 函数 ^ *,/
\
MOD
+,-
2.5 ^ -2.5=0.1011929
QBASIC中的运算次序举例
•方法1:不使用子
程序,用PRINT语 句显示图案; •方法2:调用子程 序。 •例:sam3-2.bas
QBASIC程序的结构
一个QBASIC程序可以由一个 主程序组成,也可由主程序和 若干子程序构成; 每一个主程序或子程序为一个 单独的程序模块,分别进行设 计。在运行时QBASIC会把这 些模块组织起来,成为一个整 体; 程序执行时,从主程序的第一 行开始,遇到CALL语句,调用 CALL语句指定的子程序,顺序 执行该子程序中的语句,执行 完后在接着执行主程序的后继 语句,直到遇到END。
INPUT a INPUT b INPUT c LET d=b*b-4*a*c LET x1=(-b+SQR(d))/(2*a) LET x2=(-b-SQR(d))/(2*a) PRINT “x1=”;x1,”x2=“;x2 END
END
QBASIC程序的结构(引例2)
打印如下图案:
**************************************** * * * * * * * * * * * WELCOM TO QBASIC * * * * * * * * * * * ****************************************
PRINT v
END
变量
程序运行期间可以改变的量就是变量。
变量的命名规则:
1. 以字母开头,后面跟字母、数字和小数点,不能有空 格,如A,A2,CD1,Mr.John合法,而-Y, LI Ming不 合法; 2. 变量名的长度不限,但只有前40个字符有效; 3. 变量名不区分大小写,如果一个程序中前后输入同一 变量名且大小写不一致,则以后一次输入为准,如先 输入sum,后输入Sum,则前面的sum变为Sum; 4. 变量的命名要见“其名知其意”,如SUM、AVER。
PRINT 3,-5,”this”
3 - 5 T H I S
第一区
第二区
第三区
第四、五区
PRINT语句的格式控制输出(II)
2.紧凑格式输出:用分号分隔,输出一项后接着输出下一项; 例: PRINT 3;5;-5,8,”this”;”is”
3 5 - 5 8 T H I S i S
第一区
第二区
第三区
有关变量的定义的几点说明
定义变量类型可以使用以上三种中的任意一种,但不能同时 使用,例 DIM d# AS DOUBLE; 单精度数变量名是否含类型定义符“!”是等价的,即c!=c; 类型说明符和DIM语句优先于DEFtype语句;
DEFLNG k-m (指定凡以k,l,m开头的变量均为长整型) DIM k1 AS INTEGER
课堂练习
将下列代数式用转换为QBASIC表达式
cd ab
2
(c+d)/(a+b)
b b 4ac 2a
(-b+SQR(b^2-4*a*c))/(2*a)
不同类型数据的混合运算
问题的提出:PRINT 425*120 (OverFlow,溢出) 规则: 1. 同类型数据运算所 得数据类型不变; 2. 不同类型数据运算 时先将“低级别” 数据转变为“高级 别”,然后进行同 类型数据运算。
第四、五区
•紧凑格式输出字符串时,两个字符串之间无空格; •紧凑格式输出数值时,一个数值输出后空一个字符位输出下一个数值或字符
3. 用TAB()函数定位输出: PRINT TAB(15);”This” 4. PRINT语句不接任何输出项,则实现换行。 5. LPRINT将结果输出到打印机,其他与PRINT相同
符号常量
用一个符号代表一个常量,如 CONST g=9.81 例:求圆的周长、面积和圆球体积,r=3.5
LET l = 2 * 3.14159 * 3.5 LET s = 3.14159 * 3.5 * 3.5 LET v=4/3 *3.14159*3.5*3.5*3.5 PRINT l PRINT s CONST Pi=3.14159 CONST r=3.5 LET l = 2 * pi * r LET s = pi *r *r LET v=4/3 *pi*r*r*r PRINT l PRINT s PRINT v END
除单精度型外,如果变量名中含有类型定义符,则类型定义 符就成为变量名不可分割的一部分;
LET n%=16 PRINT n (输出0,因为n和n%不是同一个变量,同理a%,a&,a!,a#不是 同一变量)
QBASIC中的标准函数
QBASIC中有12个最常用的标准函数,这些函数可在程 序中直接引用,请参阅P61,表3.2 标准函数表 例如: x=3.6
y=2.8
PRINT SQR(x+y)
QBASIC的运算符
算术运算符(+、-,*,/,\,^,MOD) 运算符 关系运算符(<,>,=,>=,<=,<>) 逻辑运算符(AND,OR,NOT) 说明: • “\”的作用是整除,如果除数或被除数中有实数,则先将实 数四舍五入取整后再相除,如13.8 \ 2.4与14 \ 2结果相同,都 为7,对于结果不是整数的,取整数部分,13\ 3=4; • “MOD”取余运算,求整数相除的余数,如果除数或被除数 中有实数,则先将实数四舍五入取整后再相除,如13.8 MOD 2.4=0, 13 MOD 3=1;
PRINT语句的格式控制输出(I)
1.屏幕的分区;
1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8
第一区
第二区
第三区
第四、五区
2.标准格式输出:用逗号分隔,每区输出一个列表项; 例:
QBASIC程序: LET v0 = 40000 / 3600 LET a = 2 / 60 LET t = 10 * 60 LET v = v0 + a * t LET s = v0 * t + 1 / 2 * a * t ^ 2 PRINT v * 3600 / 1000 PRINT s / 1000
LET pi=3.14159 LET r=2 LET s=pi*r*r PRINT s(输出变量) END LET pi=3.14159 LET r=2 PRINT pi*r*r(输出表达式) END
用PRINT语句能输出字符串。
a=3 : b=4 : c=5 s=(a+b+c)/2 Area=AQR(s*(s-a)*(s-b)*(s-c)) PRINT “The area of the triangle is” PRINT s
小数形式表示且不超过7位的数,或者用“E” or “e”表示指数部分, 也可在数的末尾加“!”是单精度实数,如128.596,-23E-28, 1284.23!; 小数形式表示且超过7位的数,或者用“D” or “d”表示指数部分,也 可在数的末尾加“#”是双精度实数,如128.59566,-23D-28, 1284.23#。
PRINT “在主程序中"
CALL MySub1 程 PRINT “返回主程序中" 序 END
主
SUB MySub1
END SUB
子
PRINT “在子程序中" 程 序
QBASIC程序中的运算量
数值型数据 数据类型 非数值型数据 常量 变量
运算对象:又称运算量、操作数, 就是参加运算的数据
数组和数组元素 函数(标准函数和 自定义函数)
a=3 a=3 : b=4 : a=b n=n+1
2. 赋值号左侧只能是变量,而不能是常数或表达式,右 侧可以是表达式,“=”具有计算功能。
3=a b+6=a a=3*5-4
(×) (×) (√)
LET语句(II)
3. 一个赋值语句一次只能给一个变量赋值;
LET LET LET LET
基本要求
掌握QBASIC程序中的运算量、运算符和 表达式的使用; 掌握赋值语句、交换语句和输出语句的 使用.
INPUT语句(I)
问题的提出:给定a,b,c,求方程ax2+bx+c=0的根 (假定判定式b2-4ac≥0)
LET a=4 LET b=5 LET c=-2 LET d=b*b-4*a*c LET x1=(-b+SQR(d))/(2*a) LET x2=(-b-SQR(d))/(2*a) PRINT “x1=”;x1,”x2=“;x2 END
QBASIC程序中的常量
常量 字符型常量
整数
数值型常量
类型
占内存 字节数 2 4 4 8
表示数的范围 -32768~32767 -21亿~21亿 -1038~1038 -10308~10308
整型 数值型常量 的类型
长整数
单精度实数 单精度实数 双精度实数 双精度实数
采用何种类型的常量或变量要视计算精度的需要!
()
正负号 函数 ^ *,/
\
MOD
+,-
6*2 \ 4*3 =?
第一步:6*2=12 第二步:4*3=12 第三步:12\12=1
(3+5) * 5 MOD 2 + 2*3 * SQR(4) ^2 =?
第1步:(3+5)=8 第2步:SQR(4)=2 第3步:2^2=4 第4步:8*5=40 第5步:2*3=6 第6步:6*4=24 第7步:40 MOD 2=0 第8步:0+24=24
变量的类型和定义方法
类型 整数 类型名称
1.
定义方法举例
2.
3. 1.
INTEGER
长整数
LONG
2. 3. 1.
单精度实数 SINGLE
2. 3. 1.
双精度实数 DOUBLE
2. 3.
a% DIM a AS INTEGER DEFINT a b& DIM b AS LONG DEFLNG b c! DIM c AS SINGLE DEFSNG c d# DIM d AS DOUBLE DEFDBL d
(级别) 高
(类型) 双精度型
单精度型
低 整型
赋值和输入输出语句
LET(赋值语句) SWAP(交换语句) PRINT/LPRINT(输出语句) INPUT(键盘输入语句) READ/DATA(读数和置数语句) RESTORE(恢复数据区语句)
wk.baidu.com LET语句(I)
赋值语句的一般格式: LET 变量=表达式 1. “=”不是数学中的“等号”,而应理解为一个“赋 值号”
三种类型常数的表示和区分方法
凡不超过5位数字且不带小数点、范围在-32768~32767之间的常数都 作为整数对待,也可在整数后加一个整数符号%,如3200,1200%是 合法的整数;
超过-32768~32767范围而在-231~231的不带小数点的常数,作为长整 数,也可在数的末尾加“&”表示,例如1976543 ,1976543&, 18765&(内存中占4个字节);
第三章 顺序结构程序设计
1. 2. 3. 4.
QBASIC程序的结构 QBASIC程序中的运算量、运算符和表达式
赋值语句和交换语句
数据的输入输出概念与输出语句
QBASIC程序的结构(引例1)
一列火车在某一 地点时的速度 是v0为40km/h, 以加速度 a=2m/min2加 速行驶,求 10min后的速 度v和距开始点 的距离s。
a,b,c=3.5 (×) a=b=c=3.5 (×) a=3,b=4,c=5 (×) a=3.5 : LET b=3.5 : LET c=3.5
(√)
4. 如果赋值号左侧的数值与右侧的变量在类型上不一致 时,则赋值号会自动将右侧的数据类型转换为左侧 的类型,然后赋值;
LET a%=3.5 (先将3.5四舍五入为4,再赋值) LET s=(a#+b#)*h#/2 (不能保证计算精度) LET s#=(a#+b#)*h#/2 (左侧也变为双精度)