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

  • 格式:doc
  • 大小:36.50 KB
  • 文档页数:14

第 1 页 1.3.3 条件语句

整体设计

教材分析

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

三维目标

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

重点难点 第 2 页 教学重点:条件语句步骤、构造及功能.

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

课时安排

1课时

教学过程

导入新课

设计思路一:〔情境导入〕

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

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

〔留时间给学生作答,教师巡视〕

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

设计思路二:〔事例导入〕

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

如何设计算法,根据输入人数计算应收取卫生费 第 3 页 推进新课

新知探究

算法中条件构造是由条件语句来表达,是处理条件分支逻辑构造算法语句.它一般格式是:〔If Then Else格式〕

图1

图2

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

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

图3

图4

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

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

记忆技巧:此构造与英语意思是相符,所以就是借助英语意思来进展记忆.

应用例如

思路1 第 4 页 例1 填空:

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

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时,方程没有实数根,这个过程可以用算法中条件构造来表示.

流程图:

程序: 第 5 页 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.〞

End If

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

分析:

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

算法:

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

S2 将a与b比拟,并把小者赋给b,大者赋给a; 第 6 页 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

a←b

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 第 7 页 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第 8 页 人以下住户,每户收取5元;超过3人住户,每超出1人加收1.2元.如何设计算法,根据输入人数计算应收取卫生费?

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

我们令c〔单位:元〕表示应收取费用,t表示这户人家人口数,那么有

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

S1 输入人数t;

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

否那么c←5+1.2〔t-3〕;

S3 输出c.

流程图如下图.

例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〞分支.为了醒目与便于阅读,这第 9 页 些分支一般缩进书写.

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

例2

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

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

S1 测量儿童身高h;

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

流程图如右所示.

伪代码如下

Read h

If h≤1.1 Then

Print 免费乘车

Else If h≤1.4 Then

Print 半票乘车

Else

Print 全票乘车

End If

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

例3 函数f〔x〕=

编写一个程序,对每输入一个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 f(x)

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

例4 函数

试写出计算y值算法.

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

例4

解:伪代码如下: 第 11 页 Read x

If x>0 Then

y←1

Else If x=0 Then

y←0

Else

y←-1

End If

End If

Print y

点评:本例中分段函数称为“符号函数〞,即通过函数值〔输出值〕是1还是-1来判断输入值是正数还是负数.

知能训练

课本本节练习.

解答:

1.Read a,b

If a>b Then

Print a

Else

Print b

End If

2.算法: