第三章顺藤摸瓜----顺序结构程序设计
第一节有备而来---程序设计准备
一、学习目标
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 运行结果:15 o 0 程序2letr=15 letl=2*3.14*r lets=3.14*r*r printr,l,s end 运行结果:15 94.2 706.5 程序2和程序l语句条数和内容相同,但顺序不同,结果不同,程序2正确。 三、应用实例 1.写出下列程序的运行结果 letx=1 lety=2 letx=x+y lety=x+y print“x”,“y” printx,y end 解:可列变量值的变化表来确定结果。 x y l 2 3(1+2) 5(3+2) 由上分析,可得运行结果: x y共 3 5 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=32 y=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+5 b.e+5 c.5e d.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.23 b.3.236 c.3.24 d.324 (5)程序运行的结果是( )。 letm=3 letn=0 let s=m*n letn=2 print s共 end a.0 b.3 c.6 d.2 (6)程序运行的结果是( )。 leta=5 print“a=”;a+1,a end a.a=6 6 b.a=6 5 c.a=a+l a d.a=6 a 4.写出下列程序的运行的结果 (1)letx=5 lety=3 lets=(x+y)/2 print “s=”;s lets=x+y/2 print“s=”;s end (2)letx=999 let x=abs(x—1000) print “sqr(x)=”;sqr(x) end (3)leta=1 letb=7 let a=a+b letb=a+b print a,b end (4)input a,b,x let a=a+x let b=x—b let s=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)输出数值计算的结果(p92) (2)输出字符串(p93) (3)输出系统信息(p94) 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的值不变 b=a a的值不变 (4)关于赋值类型 以左边变量的类型为准 (5)两个变量交换值 a=b c=a 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<数据表 例:reada,b,c, data75,60,90 v=(a+b+c)/3 end 2、说明: (1)<数据表>中的数据个数不能少于<变量表>中的变量个数。 (2)data语句可放在程序的任何位置,可使用多个data语句来存放数据,这时将按data语句的先后顺序,把数据放数据区。 (3)关于“数据指针”当指针移到数据区之外时,屏幕给出错误信息: outofdata (例p109) (4)data语句中的数据只能是常量 五、恢复数据指针语句 restore 将数据指针移至首位或指定的data语句标号。六、结束语句和暂停语句 1、end语句 结束程序运行。一个程序可有多个end语句,但运行程序时,只有一个起作用,即执行其中一个end语句都会使程序结束。 2、stop语句 使程序暂停,选择run-continue继续运行。 七、程序调试 1、分步执行 f9—单步执行,step f6—窗口转换,windows f5—运行或继续运行。 2、设置断点 f9—设置断点 f5—运行或继续运行 教学后记: