【课件展示】展示文字描述。
【教师】引导学生讨论语言描述的特点:
易于理解和接受。
但对于复杂的问题描述太麻烦。
【教师】请说出下面这句话的含义:
“这个人连老张也不认识”
〖学生〗学生讨论回答
【教师】由此可以看出语言描述有时有岐义,但计算机解决问题时每一步必须有清楚的定义,不能有二义性或模棱两可的解释,我们可以用另外一种方法来描述算法
2、流程图
【课件展示】算法2、3的描述流程图:
【课件展示】
流程图的概念:
流程图是用一组几何图形表示各种类型的操作,在图形上用简明扼要的文字和符号表示具体的操作,并用带有箭头的流线表示操作的先后次序。
图形符号
名称
含义
起止框
表示算法的开始或结束
输入、输出框
表示输入输出操作
处理框
表示处理或运算的功能
判断框
用来根据给定的条件是否满足决定执行两条路径中的某一路径
流线
表示程序执行的路径,箭头代表方向
连接符
表示算法流向的出口连接点或入口连接点,同一对出口与入口的连接符内必须标以相同的数字或字母
【课件展示】算法描述方法的比较:
(1)第一个算法描述方法的比较(语言描述法、流程图、程序)
【教师】引导学生讨论出算法的特点,并初步理解。
(2)第二个算法描述方法的比较(语言描述法、流程图、程序)
【教师】请同学们利用QB将这两种算法实现。
【思考题】输入三个不相同的数,求出其中的最大数。
请分别用语言、流程图、程序进行算法描述。
〖学生〗学生上机操作实践
【教师】教师辅导
【教师】总结。
第二章初识QBASIC
一、学习目标
1.了解机器语言和高级语言各自的特点。
2.了解什么是计算机程序。
3.了解程序设计的基本步骤。
二、教学重点
程序设计的基本步骤。
三、教学难点
程序设计的应用。
四、教学方法
1.演示法。
2.实践法。
五、教学手段与教学媒体
多媒体网络教室。
六、课时安排
1课时。
七、教学过程
教学内容、步骤与方法
1.机器语言和高级语言各自的主要特点
机器语言:
与计算机内部结构有关,不通用,其程序不需“翻译”可直接执行。
高级语言:
与计算机内部结构无关,通用,其程序需要“翻译”后才可执行。
2.计算机程序
用计算机语言描述的解决问题的程序。
3.程序设计的基本步骤
(1)问题分析:
对问题详细分析,弄清输入(已知)条件和要求输出的结果,明确解决问题的关键和途径。
(2)算法设计:
根据分析结果,确定解决问题的方法和步骤,并描述出来。
(3)程序实现:
根据描述的算法编写程序并上机通过。
三、应用实例
1.判断下列说法的正误
(1)机器语言是硬件而高级语言是软件。
(2)各种计算机语言编写的程序计算机都可直接执行。
解:
(1)说法错误。
分析:
计算机语言都属软件,故机器语言和高级语言都是软件。
(2)说法错误。
分析:
只有机器语言编写的程序计算机可直接执行,而各种高级语言和汇编语言编写的程序都要先“翻译”成机器语言程序后执行。
2.房租收费标准为,住房面积在40m2及其以下的0.8元/m2;超过40m2的部分为2元/m2。
写出收房租的算法
解:
设住房面积为x,房租为y,那么
据上分析,收房租的算法为:
(1)输入x
(2)判断是否x<=40?
是则)y←0.8x,否则y←0.8×40+2(x一40)
(3)输出x,y
(4)结束
四、练习实践
1.单项选择题
(1)无须了解计算机内部结构就可以使用的计算机语言是()。
A.机器语言B.汇编语言C.高级语言
(2)()是计算机硬件。
A.机器语言程序B.CPUC.操作系统
(3)BASIC语言是属于()。
A.机器语言B.高级语言C.汇编语言
2.写出解决下列问题的算法
(1)输入底半径R、高H,求圆锥体的底面积S和体积V。
(2)解一元二次方程ax2+bx+c=0(设d=b2—4ac,二实根为x1、x2;要求如果d<0,那么输出“N”,表示无实根,否则求出二实根并输出)。
教学后记:
第三章顺序结构程序设计
第一节程序设计准备
一、学习目标
1.掌握进入BASIC环境的方法和输入、编辑、运行程序的方法。
2.初步掌握BASIC中的基本概念:
常量、变量、函数、表达式。
3.初步掌握输出、赋值、输入语句的格式和功能。
4.初步掌握简单顺序结构程序的设计方法。
5.理解程序的顺序结构的概念。
二、教学重点
掌握输出、赋值、输入语句的格式和功能。
三、教学难点
掌握简单顺序结构程序的设计方法。
四、教学方法
1.演示法。
2.实践法。
五、教学手段与教学媒体
多媒体网络教室。
六、课时安排
1课时。
七、教学过程
(一)、学习指导
1.BASIC中的科学记数法类似数学中的科学记数法
例如:
-3.14156E+3——-3.14156×103
2.56E-2一2.56×10-2
其中E表示幂底数10,E后跟的整数为幂指数。
2.常见标准函数
ABS(x)求x的绝对值,即|x|
SQR(x)求x的算术平方根,即
。
SIN(x)求x的正弦值C角x的单位必须是弧度,l°≈3.14159/180)。
COS(x)求x的余弦值(规定同上)。
INT(x)求不大于x的最大整数。
注意:
x为负数时,其值不是去掉小数,例INT(一5.99)≠一5。
INT(X)用处很多:
(1)对正数x四舍五入保留N位小数的表达式:
INT(X*10^N+0.5)/1O^N
例如:
对正数x四舍五入保留两位小数的表达式:
INT(X*100+0.5)/100
(2)判断整数A能被整数B整除的条件关系式:
INT(A/B)=A/B
(3)求整数A除以B的余数的表达式:
A—INT(A/B)*B.
RND(x)产生一个O到1之间的随机小数
生成(A,B)内的随机整数的表达式:
INT(RND
(1)*(B—A)+A)
例如:
二位随机整数的表达式:
INT(RND
(1)*90+10)
3.数学式和BASIC表达式的对应表示
应根据运算顺序,正确使用圆括号,且将所有符号写在同一行上。
注意乘、除、乘方运算和绝对值、算术平方根等函数在数学上与BASIC上表示的区别。
例如:
一(-b+SQR(b*b一4*a*c))/(2*a)
4.输出语句和输入语句
(1)输出语句。
格式:
PRINT(输出内容)
功能:
当输出内容是数时,直接输出该数;
当输出内容是数值表达式时,先计算表达式的值,然后输出该数值;
当输出内容是字符串时,直接输出该字符串。
(2)赋值语句。
格式:
LET变量=表达式
功能:
把“=”右边表达式的值赋给左边的变量。
(3)键盘输入语句
格式:
INPUT变量,变量,…,变量。
功能:
程序运行到该句时,屏幕出现一个“?
”号,等待用键盘输入数据INPUT后面的变量或变量组。
5.赋值(LET)语句功能强大,用处很多,常用于构造以下
计数器例如:
LETI=I+1(一般变量初值为0,即LETI=0)
累加器例如:
LETs=s+x(一般变量初值为O,即LETI=0)
累乘器例如:
LETT=T*x(一般变量初值为l,即LETT=1)
交换器例如:
A、B存储的内容交换
LETC=A
LETA=B
LETB=C
6.两种提供数据的语句对比表
表5—2—1两种提供数据的语句对比表
语句
LET语句
INPUT语句
变量数
一个LET语句只能给一个变量赋值
一个INPUT语句可以给一个或一组变量赋值
赋值方式
在程序中赋值
在程序执行过程中,从键盘输入赋值
赋值内容
数据,变量和表达式
只有具体数据
运算功能
有运算功能
无运算功能
占机时间
运行后,立即出结果,占机时间少
运行后,等待从键盘输入数据,占机时间多
适合类型
①需要赋值变量少
②需要运算
参数灵活变化
7.程序的顺序结构
程序各语句的执行顺序是从前到后依次执行的,程序执行过程中没有分又,也没有
重复,这种结构的程序就叫顺序结构程序。
图形方式表示如下图5—2一l:
图5—2—1
图中S1、S2、…、Sn分别表示一段具体的操作内容,用一个语句或一段程序完成。
8.顺序结构的程序设计关键是把握好解决问题步骤的先后顺序,不要把依赖于上一步完成后才能进行的后一步操作前移
例如:
求半径为15的圆周长和面积。
程序1LETL=2*3.14*R
LETS=3.14*R*R
LETR=15
PRINTR,L,S
END
运行结果:
15O0
程序2LETR=15
LETL=2*3.14*R
LETS=3.14*R*R
PRINTR,L,S
END
运行结果:
1594.2706.5
程序2和程序l语句条数和内容相同,但顺序不同,结果不同,程序2正确。
(二)、应用实例
1.写出下列程序的运行结果
LETX=1
LETY=2
LETX=X+Y
LETY=X+Y
PRINT“X”,“Y”
PRINTX,Y
END
解:
可列变量值的变化表来确定结果。
XY
l2
3(1+2)5(3+2)
由上分析,可得运行结果:
XY
35
2.鸡兔同笼问题
已知鸡兔总头数为H,总脚数为F,问鸡兔各有多少只?
解:
设鸡兔各有x、Y只,则有
X+Y=H
(1)
2X+4y=F
(2)
由
(1)、
(2)可得:
X=(4H—F)/2
Y=(F一2H)/2
算法:
1.输入H,F
2.X←(4*H—F)/2
3.Y←(4—2H)/2
4.输出x,Y
5.结束
程序:
INPUTH,F
LETx=(4*H—F)/2
LETY=(F一2*H)/2
PRINT“X=”;X,“Y=”;Y
END
运行结果如下:
?
60,176
X=32Y=28
(三)、练习实践
1.填空题
(1)2.745E-3化为日常计数法的数是
(2)SQR(49)+ABS(一5)的值是
(3)INT(RND(50)+20)的值是
(4)数学式
对应的BASIC表达式是
(5)数学式x7+
对应的BASIC表达式是
2.判断题
(1)X3Y、x
(1)、sinx、7c都是正确的BASIC变量。
()
(2)语句INPUTA;B;c是正确的。
()
(3)语句LETM=3,N=5是正确的。
()
(4)语句INPUTA=5是正确的。
()
(5)语句LETx=x+l是错误的。
()
(6)LET语句是BASIC中惟一能进行计算的语句。
()
(7)下面程序运行后,显示结果是A=7,说明此时变量A的值是7。
()
LETA=4
PRINT“A=”;7
END
3.单选题
(1)BASIC中100000表示为()。
A.1E+5B.E+5C.5ED.1E一5
(2)PRINTINT(10*RND
(1)+1)结果是()。
A.[1,11]范围内的随机整数B.[1,10)范围内的随机整数
c.[0,10]范围内的随机整数D.[1,11]范围内的随机整数
(3)表达式A—B/3^C的运算顺序是()。
A.①一②+③/B.①一②^③/
C.①一②/③^D.①^②/③一
(4)PRINTINT(3.236*100+0.5)/100的结果是
A.3.23B.3.236C.3.24D.324
(5)程序运行的结果是()。
LETM=3
LETN=0
LETS=M*N
LETN=2
PRINTS
END
A.0B.3C.6D.2
(6)程序运行的结果是()。
LETA=5
PRINT“A=”;A+1,A
END
A.A=66B.A=65
C.A=A+lAD.A=6A
4.写出下列程序的运行的结果
(1)LETX=5
LETY=3
LETS=(X+Y)/2
PRINT“S=”;S
LETS=X+Y/2
PRINT“S=”;S
END
(2)LETX=999
LETX=ABS(X—1000)
PRINT“SQR(X)=”;SQR(X)
END
(3)LETA=1
LETB=7
LETA=A+B
LETB=A+B
PRINTA,B
END
(4)INPUTA,B,X
LETA=A+X
LETB=X—B
LETS=A+B+X
PRINTS
END
①输入1,2,3②输入3,2,1
5.编程解一元一次方程ax+b=c(a≠0)
(提示:
a,b,c为已知量,用INPUTa,b,c输入,x为待求量,应用已知量表示即:
x=(c-b)/a)
6.编写一个计算年息、年终节余的程序
要求输入存款数、年利率,输出存款数、年息和年终节余(保留二位小数)。
解:
设存款数为x、年利率为a,年息为y,年终节余为z.
程序如下:
INPUTx,a
LETy=x*a
LETz=x+y
LET z=INT(z*100+0.5)/100
PRINT x,y,z
END
教学后记:
第二节输入、输出语句
一、学习目标
1、掌握程序中常用的输入、输出语句。
2、掌握输入、输出设计方法。
3、能利用输入、输出语句解决简单的实际问题。
二、教学重点
掌握输入、输出设计方法。
三、教学难点
用输入、输出语句解决简单的实际问题。
四、教学方法
1.演示法。
2.实践法。
五、教学手段与教学媒体
多媒体网络教室。
六、课时安排
1课时。
七、教学过程:
程序的执行次序,从上到下,由一些非控制转移语句组成
一、输出语句
输出用户所需的信息
1、一般格式
PRINT[<表达式>] 表达式—常量、变量、函数
如:
PRINT 2,4,6
PRINT"X=";X
显示:
X=...
2、作用
(1)输出数值计算的结果
(2)输出字符串
(3)输出系统信息
3、输出格式
(1)标准格式—输出项以逗号分隔
五区—每区14列
(2)紧凑格式—输出项以分号相隔
(3)TAB(X)—第X列
定位输出,但在同一行中、TAB(X)中的X应从左到右逐渐增大。
还可利用SPACE(X)插入空格
(4)PRINT<....>, 不换行(光标到下一区)
PRINT<....>; 不换行(光标在输出项后)
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的值不变