高中数学第1章算法初步1.3基本算法语句1.3.3条件语句教案苏教版必修3

  • 格式:doc
  • 大小:664.02 KB
  • 文档页数:9

1 1.3.3 条件语句

整体设计

教材分析

通过实例正确理解条件语句的概念、表示方法、结构和用法.了解条件语句在程序中起判断转折作用,在解决实际问题中起决定作用.通过具体的实例理解,掌握条件语句的格式及功能.能初步用条件语句设计算法,表达解决具体问题的过程(即编写程序).进一步体会算法的基本思想,学习有条理地、清晰地表达解决问题的步骤,提高逻辑思维能力.通过实例,发展对解决具体问题的过程与步骤进行分析的能力.通过模仿、操作、探索、经历设计算法、设计框图、编写程序以解决具体问题的过程,发展应用算法的能力.在解决具体问题的过程中学习条件语句,感受算法的重要意义.通过具体实例,感受和体会算法思想在解决具体问题中的意义,进一步体会算法思想的重要性,体验算法的有效性,增进对数学的了解,形成良好的数学学习情感,增强学习数学的乐趣.感受并认识现代信息技术在解决数学问题中的重要作用和威力,形成自觉地将数学理论和现代信息技术结合的思想.在编写程序解决问题的过程中,逐步养成扎实严谨的科学态度.

三维目标

通过经历对现实生活情境的探究,认识到应用计算机解决数学问题的方便简捷性,达到培养学生乐于用计算机处理复杂数据的耐心和对数学的实用性理解的情感与养成严谨的数学思维以及正确处理问题的能力的价值观.

重点难点

教学重点:条件语句的步骤、结构及功能.

教学难点:会编写程序中的条件语句.

课时安排

1课时

教学过程

导入新课

设计思路一:(情境导入)

上一节课我们一起学习了对应于顺序结构的三种基本语句:输入语句、输出语句和赋值语句,并且运用了这三种基本语句编制程序,解决问题.下面请同学们运用上一节课所学内容解决以下问题;

编写程序,输入一元二次方程ax2+bx+c=0的系数,输出它的实数根.

(留时间给学生作答,教师巡视)

不知道这个方程有没有实根,不好往下做;这说明输入语句、输出语句和赋值语句并不能解决所有问题,对于上述引例中的问题,在某一个环节上必须要作出判断,只有作出了判断,才能继续进行下去.而能够解决这一问题的程序语句,就是我们这一节课将要学习的语句——条件语句.至于上述引例,将在下面的例题中得到解决.

设计思路二:(事例导入)

某小区的物业管理部门每月按以下方法收取卫生费:3人和3人以下的住户,每户收取5元;超过3人的住户,每超出1人加收1.2元.

如何设计算法,根据输入的人数计算应收取的卫生费?

推进新课

新知探究

算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句.它的2 一般格式是:(If Then Else格式)

图1

图2

当计算机执行上述语句时,首先对If后的条件进行判断,如果条件符合,就执行Then后的语句1,否则执行Else后的语句2.其对应的程序框图为图2.

在某些情况下,也可以只使用If-Then语句:(即If-Then格式)

图3

图4

计算机执行这种形式的条件语句时,也是首先对If后的条件进行判断,如果条件符合,就执行Then后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句.其对应的程序框图为图4.

条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去.需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理.

记忆技巧:此结构和英语的意思是相符的,所以就是借助英语的意思来进行记忆.

应用示例

思路1

例1 填空:

判断输入的任意数x的奇偶性. 3 Read x

m←x Mod 2

If ___________Then

Print x是奇数

Else

Print x是偶数

End If

分析:对于变化的条件要注意上下联系,给出需要的条件,注意挖掘.

解:根据条件可以知道应该填入的是判断的条件,容易知道应该填入的是m=1.

点评:这是个在过程中寻找条件的语句,要注意条件的合理性.

例2 编写程序,输入一元二次方程ax2+bx+c=0的系数,输出它的实数根.

分析:

在求解方程之前,需要首先判断判别式的符号,再根据判别式的符号判断方程根的情况:Δ>0时,方程有两个不相等的实数根;Δ=0时,方程有两个相等的实数根;Δ<0时,方程没有实数根,这个过程可以用算法中的条件结构来表示.

流程图:

程序:

Read a,b,c

d=b2-4ac

p=-b/2a

q=||d/2a

If d>=0 Then

x1=p+q

x2=p-q

If x1=x2 Then

Print x1

Else

Print x1,x2

End If

Else

Print “NO real root.” 4 End If

例3 编写程序,使得任意输入的3个整数按从大到小的顺序输出.

分析:

用a、b、c表示输入的三个整数;为了节约变量,把它们重新排列后,仍用a、b、c表示,并使a≥b≥c.

算法:

S1 输入3个整数a、b、c;

S2 将a与b比较,并把小者赋给b,大者赋给a;

S3 将a与c比较,并把小者赋给c,大者赋给a,此时a已是三者中最大的;

S4 将b与c比较,并把小者赋给c,大者赋给b,此时a、b、c已按从大到小的顺序排列好;

S5 按顺序输出a、b、c.

流程图:

程序:

Read a,b,c

If b>a Then

t←a

b←t

End If

If c>a Then

t←a

a←c

c←t

End If

If c>b Then

t←b

b←c

c←t 5 End If

Print a,b,c

例4 铁路部门托运行李的收费方法如下:

y是收费额(单位:元),x是行李重量(单位:kg),当0<x≤20时,按0.35元/kg收费,当x>20 kg时,20 kg的部分按0.35元/kg,超出20 kg的部分,则按0.65元/kg收费,请根据上述收费方法编写程序.

分析:首先由题意得:20),20(65.02035.0,200,35.0xxxxy该函数是个分段函数.需要对行李重量作出判断,因此,这个过程可以用算法中的条件结构来实现.

解:伪代码:

Read x

If 0

y=0.35*x

Else

y=0.35*20+0.65*(x-20)

End If

Print x,y

点评:这是一个实际问题的解决,从这里我们也可以看出计算机与数学结合的威力是强大的,省去了大量的人力物力.

思路2

例1 某居民区的物管部门每月按以下方法收取卫生费:3人和3人以下的住户,每户收取5元;超过3人的住户,每超出1人加收1.2元.如何设计算法,根据输入的人数计算应收取的卫生费?

分析:根据题意,可以知道有多种情形.

我们令c(单位:元)表示应收取的费用,t表示这户人家的人口数,则有

3),3(2.15,30,5tttc

解:解决这一问题的算法步骤如下:

S1 输入人数t;

S2 如果t≤3,那么c←5,

否则c←5+1.2(t-3);

S3 输出c.

流程图如图所示. 6

例1

上面的算法过程用条件语句可表示为:

Read t

If t≤3 Then

c←5

Else

c←5+1.2(t-3)

End If

Print c

点评:我们把步骤“c←5”称为“Then”分支,步骤“c←5+1.2(t-3)”称为“Else”分支.为了醒目和便于阅读,这些分支一般缩进书写.

例2 儿童乘坐火车时,若身高不超过1.1 m,则无需购票;若身高超过1.1 m但不超过1.4 m,可买半票;若超过1.4 m,应买全票.试设计一个购票的算法,写出伪代码,并画出流程图.

例2

分析:这是一个实际应用问题,根据题目的意思,可以选用条件语句.

解:上述购票的算法步骤为:

S1 测量儿童的身高h;

S2 如果h≤1.1,那么免费乘火车;否则,如果h≤1.4,那么购半票乘火车;否则,购买全票.

流程图如右所示.

伪代码如下 7 Read h

If h≤1.1 Then

Print 免费乘车

Else If h≤1.4 Then

Print 半票乘车

Else

Print 全票乘车

End If

End If

点评:由上可知,条件语句“If—Then—Else”可以嵌套,形成块条件语句.

例3 已知函数f(x)=0,42,0,12,0,1222xxxxxxx

编写一个程序,对每输入的一个x值,都得到相应的函数值.

分析:对于分段函数的问题,使用条件语句与之是对应的.

解:伪代码如下:

Read x

If x>0 Then

f(x)←2x2-1

Else If x=0 Then

f(x)←1

Else

f(x)←-2x2+4x

End If

End If

Print

点评:在写最后一个条件时,注意它的格式,不要画蛇添足.

例4 已知函数

0,1,0,0,0,1xxxy试写出计算y的值的算法.

分析:使用流程图可以帮助我们理清思路,如右图: