END
点评:交换a,b的值可通过下面三个语句来实现: t=a a=b b=t
通过引进一个中间变量t实现变量a和b的值的交换,因此只需用赋值语句即可实现算法.在一些较为复杂的问题算法中经常需要对两个变量的值进行交换,因此应熟练掌握这种方法.
知能训练
1.判断下列给出的输入语句、输出语句和赋值语句是否正确?为什么? (1)输入语句INPUT a;b;c (2)输出语句A=4 (3)赋值语句3=B
(4)赋值语句A=B=-2 解:(1)错,变量之间应用“,”号隔开. (2)错,PRINT语句不能用赋值号“=”. (3)错,赋值语句中“=”号左右不能互换. (4)错,一个赋值语句只能给一个变量赋值.
点评:输入语句、输出语句和赋值语句基本上对应于算法中的顺序结构.输入语句、输出语句和赋值语句都不包括“控制转移”,由它们组成的程序段必然是顺序结构. 2.请写出下面运算输出的结果. (1)a=5 b=3
c=(a+b)/2 d=c*c
PRINT“d=”;d (2)a=1 b=2 c=a+b b=a+c-b
PRINT “a=,b=,c=”;a,b,c (3)a=10 b=20 c=30 a=b b=c c=a
PRINT “a=,b=,c=” ;a,b,c 解:(1)16;语句c=(a+b)/2是将a,b和的一半赋值给变量c,语句d=c*c是将c的平方赋值给d,最后输出d的值.
(2)1,2,3;语句c=a+b是将a,b的和赋值给c,语句b=a+c-b是将a+c-b的值赋值给了b.
(3)20,30,20;经过语句a=b后a,b,c的值是20,20,30.经过语句b=c后a,b,c的值是20,30,30.经过语句c=a后a,b,c的值是20,30,20.
6
点评:语句的识别问题是一个逆向性思维,一般我们认为我们的学习是从算法步骤(自然语言)至程序框图,再到算法语言(程序).如果将程序摆在我们的面前时,我们要先识别每个语句,再整体把握并概括出程序的功能. 拓展提升
已知某生某三科的成绩为80、75、95分,求三科的总分及平均分.
分析:将三科成绩赋给三个变量A,B,C,然后对三个变量进行操作、运算,求其总分、平均分.变量的起名规则:由字母、数字、下划线组成,但第一个字符必须是字母(大、小写皆可),起名时尽量做到见名知义,如本例中我们可用变量ZF表示总分,PJF表示平均分.
解:程序框图如下图:
程序: A=80 B=75 C=95
ZF=A+B+C PJF=ZF/3
PRINT ZF,PJF END 课堂小结
(1)输入语句、输出语句和赋值语句的基本用法. (2)用输入语句、输出语句和赋值语句编写算法语句. 作业习题1.2A组2.
设计感想
本节的引入阐明了程序框图与算法语句的关系,本节利用框图与语句的对应关系降低了本节的学习难度.由于本节是算法语句的开始,所以本节选用了大量难度较低的算法语句供学生练习,让学生充分体会程序框图与算法语句的关系,为今后的学习打好基础并树立信心.
7
1.2.2 条件语句 整体设计
教学分析
通过上一节的学习,学生学会了输入语句、输出语句和赋值语句的基本用法,本节介绍条件语句的用法. 程序中的条件语句与程序框图中的条件结构存在一一对应关系,这种对应关系对于学生理解条件语句的结构,进一步理解算法中的条件结构都是很有帮助的.我们可以给出条件语句的一般格式,让学生自己画出相应的程序框图,也可以给出程序框图,让学生写出算法语句. 三维目标
1.理解学习基本算法语句的意义. 2.学会条件语句的基本用法.
3.理解算法步骤、程序框图和算法语句的关系,学会算法语句的写法. 重点难点
教学重点:条件语句的基本用法. 教学难点:算法语句的写法. 课时安排 1课时
教学过程
导入新课
思路1(情境导入)
一位老农平整了一块良田,种瓜好呢,还是种豆好呢,他面临着一个选择.如果他选择种瓜,他会得瓜,如果他选择种豆,他会得豆.人的一生面临许多选择,我们要做出正确的选择.前面我们学习了条件结构,今天我们学习条件语句. 思路2(直接导入)
前面我们学习了程序框图的画法,为了让计算机能够理解算法步骤、程序框图,上一节我们学习了输入语句、输出语句、赋值语句,今天我们开始学习条件语句. 推进新课 新知探究 提出问题
(1)回忆程序框图中的两种条件结构. (2)指出条件语句的格式及功能.
(3)指出两种条件语句的相同点与不同点.
(4)揭示程序中的条件语句与程序框图中的条件结构存在一一对应关系. 讨论结果:
(1)一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.条件结构就是处理这种过程的结构. 用程序框图表示条件结构如下图:
8
(2)条件语句
1°“IF—THEN—ELSE”语句 格式:
IF 条件 THEN 语句体1 ELSE 语句体2 END IF
功能:在“IF—THEN—ELSE”语句中,“条件”表示判断的条件,“语句体1”表示满足条件时执行的操作内容;“语句体2”表示不满足条件时执行的操作内容;END IF表示条件语句的结束.计算机在执行“IF—THEN—ELSE”语句时,首先对IF后的条件进行判断,如果符合条件,则执行THEN后面的“语句1”;若不符合条件,则执行ELSE后面的“语句2”. 2°“IF—THEN”语句 格式:
IF 条件 THEN 语句体 END IF
功能:“条件”表示判断的条件;“语句”表示满足条件时执行的操作内容,条件不满足时,直接结束判断过程;END IF表示条件语句的结束.计算机在执行“IF—THEN”语句时,首先对IF后的条件进行判断,如果符合条件就执行THEN后边的语句,若不符合条件则直接结束该条件语句,转而执行其他后面的语句.
(3)相同点:首先对IF后的条件进行判断,如果符合条件就执行THEN后边的语句. 不同点:对于“IF—THEN—ELSE”语句,若不符合条件,则执行ELSE后面的“语句体2”. 对于“IF—THEN”语句,若不符合条件则直接结束该条件语句,转而执行其他后面的语句. (4)程序中的条件语句与程序框图中的条件结构存在一一对应关系如下图:
应用示例
9
思路1
例1 编写一个程序,求实数x的绝对值.
算法分析:首先,我们来设计求实数x的绝对值的算法,因为实数x的绝对值为 |x|=??x(x?0),
??x(x?0),所以算法步骤可以写成: 第一步,输入一个实数x.
第二步,判断x的符号.若x≥0,则输出x;否则,输出-x. 显然,“第二步”可以用条件结构来实现. 程序框图如下图:
程序: INPUT x
IF x>=0 THEN PRINT x ELSE
PRINT -x END IF END
点评:通过本题我们看到算法步骤可以转化为程序框图,程序框图可以转化为算法语句.本题揭示了它们之间的内在联系,只要理解了程序框图与算法语句的对应关系,把程序框图转化为算法语句就很容易了. 变式训练
阅读下面的程序,你能得出什么结论? INPUT x
IF x<0 THEN x=-x END IF PRINT x END
解:由程序得出,该程序是输出x的绝对值.
例2 把前面求解一元二次方程ax2+bx+c=0的程序框图转化为程序.
解:由程序框图可以发现,其中包含着两个条件结构,而且内层的条件结构是外层的条件结构的一个分支,所以,可以用“IF—THEN—ELSE—END IF”来完成转化. 程序:
INPUT “a,b,c=”;a,b,c
10