2019-2020年高二数学《条件语句和循环语句》教学设计教案.pdf
2019-2020 年高二数学条件语句和循环语句教学设计教案 教学目标: 知识与技能 (1)正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系。 (2)会应用条件语句和循环语句编写程序。 过程与方法 经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展 学生逻辑思维能力 情感态度与价值观 了解条件语句在程序中起判断转折作用,在解决实际问题中起决定作用。深刻体 会到循环语句在解决大量重复问题中起重要作用。减少大量繁琐的计算。通过本小节 内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。 重点与难点 重点:条件语句和循环语句的步骤、结构及功能。 难点:会编写程序中的条件语句和循环语句。 学法与教学用具 计算机、图形计算器 教学设想 【创设情境】 试求自然数1+2+3+ +99+100 的和。 显然大家都能准确地口算出它的答案:5050。而能不能将这项计算工作交给计算 机来完成呢?而要编程,以我们前面所学的输入、输出语句和赋值语句还不能满足“我 们日益增长的物质需要”,因此,还需要进一步学习基本算法语句中的另外两种:条 件语句和循环语句(板出课题) 【探究新知】 (一)条件语句 算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语 句。它的一般格式是: (IF-THEN-ELSE格式) 当计算机执行上述语句时,首先对IF 后的条件进行判断,如果条件符合,就执 IF 条件THEN 语句 1 ELSE 语句 2 END IF 满足条件? 语句 1 语句 2 是 否 行 THEN后的语句1,否则执行ELSE后的语句2。其对应的程序框图为:(如上右图) 在某些情况下,也可以只使用IF-THEN 语句: (即 IF-THEN 格式) 计算机执行这种形式的条件语句时,也是首先对IF 后的条件进行判断,如果条 件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执 行其他语句。其对应的程序框图为:(如上右图) 条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否 需要转换到何处去。需要计算机按条件进行分析、比较、 判断,并按判断后的不同情 况进行不同的处理。 【例题精析】 例 1 分析下面的程序, 当输入x的值为3时, 程序的输出结果为_. INPUT x IF xb THEN a=b END IF IF ac THEN a=c END IF PRINT a IF 条件THEN 语句 END IF 满足条件? 语句 是 否 END 答案 :26 例 3. 判断一元二次函数 )0(0 2 acbxax是否有根 . 分析 :acb4 2 , 当0时, 方程有实根 ; 当0时,方程无实根 . 解:该算法用自然语言表述为 Step1:输入三个系数cba,. Step2:计算acb4 2 . Step3:判断0是否成立 . 若是 , 则输出“方程有实根”; 否则输出“方程无实根”, 结束算法 . 程序框图为 : 程序为 : INPUT “a,b,c= ”;a,b,c d=b2-4*a*c IF d=0 THEN PRINT “Have real root” ELSE PRINT “No real root” END IF END 例 4编写程序,输入一元二次方程 2 0axbxc的系数, 输出它的实数 根。 分析:先把解决问题的思路用程 序框图表示出来,然后再 根据程序框图给出的算法 步骤,逐步把算法用对应 的程序语句表达出来。 算法分析:我们知道,若判别式 2 40bac, 原方程有两个不 INPUT“Please input a,b,c =”;a,b, c d=b*b- 4*a*c p=-b/(2 * a) q=SQR(ABS(d) /(2 *a) IF d=0 THEN x1=p+q x2=p- q IF x1=x2 THEN PRINT “ One real root:” ;x1 ELSE PRINT “ Two real roots:x1” ;x1,“ and x2”;x2 END IF ELSE PRINT “ No real root! ” END IF END 输出: 方程有实根 开始 输入 a,b,c 结束 2 4bac 0? 输出:方程无实根 相等的实数根 1 2 b x a 、 2 2 b x a ;若0,原方程有两个相等的实数根 12 2 b xx a ;若 0,原方程没有实数根。也就是说,在求解方程之前,需要 首先判断判别式的符号。因此,这个过程可以用算法中的条件结构来实现。 又因为方程的两个根有相同的部分,为了避免重复计算,可以在计算 1 x和 2 x之前, 先计算 2 b p a , 2 q a 。程序框图: (参照课本 12 P) 程序: ( 如右图所示 ) 注: SQR ()和ABS ()是两个函数,分别用来求某个数的平方根和绝对值。即 ( )xxSQR, (0) ( ) - (0). x x x x x ABS 例 5 设计算法 , 求0bax的解 , 并画出流程图. 解:算法: 第一步:判断0a是否成立 . 若成立 , 输出结果“解为 b a ”. 第二步:判断0, 0 ba是否成立 . 若成立 , 输出结果“解集为R” . 第三步:判断0, 0 ba是否成立 . 若成立 , 输出结果“方程无解”, 结束算法 . 程序框图 : 略 程序为 : INPUT “a,b= ”;a,b d=b2-4*a*c IF a=0 THEN IF b=0 THEN PRINT “All real” ELSE PRINT “No root ” END IF ELSE PRINT “x=”;-b/a END IF END 例 6设计算法 , 找出输入的三个不等实数cba,的最大值 , 并画出流程图 . 解:算法: 第一步:输入cba,的值 . 第二步:判断ba是否成立 , 若成立 , 则执行第三步; 否则执行第四步. 第三步:判断ca是否成立 . 若成立 , 则输出a, 并结束 ; 否则输出c, 并结束 . 第四步:判断cb是否成立 , 若成立 , 则输出b, 并结束 ; 否则输出c并结束 . 程序框图 : 略 程序为 : INPUT a,b,c IF aa THEN t=a a=b b=t END IF IF ca THEN t=a a=c c=t END IF IF cb THEN t=b b=c c=t END IF PRINT a ,b,c END 开始 输入a,b,c Yes No ?ba ta ab 例 8. 铁路部门托运行李的收费方法如下: y 是收费额(单位:元) ,x 是行李重量(单位:kg), 当 0 x20 时,按 0.35 元/kg 收费,当x20kg 时, 20kg 的部分按0.35 元/kg, 超出 20kg 的部分,则按 0.65 元 /kg 收费,请根据上述收费方法编写程序。 分析:首先由题意得: 0.35 ,020, 0.35 20 0.65(20),20. xx xx y 该函数是个分段 函数。 需要对行李重量作出判断,因此, 这个过程可以用算法中的条件结构 来实现。 程序: INPUT “请输入旅客行李的重量(kg)x=” ;x IF x0 AND x=0 THEN PRINT x ELSE PRINT x END IF END 程序 1: INPUT x IF = =0 THEN y = x + 2 ELSE y = x2 END IF PRINT “ y =” ; y END 开始 输入 x 2 yx 0x? 输出 y 1y Yes No 1y 0x? 0y Yes No 外层选择结构 内层选择结构 用 QuickBASIC 语言可写为 INPUT “x = ” ; x IF x0 THEN y = 1 ELSE IF x=0 THEN y = 0 ELSE y = -1 END IF END IF PRINT “ y= ” ; y END 该程序中有两个IF 语句,大IF 语句中嵌套了一个小IF 语句。 例 12乘坐火车时,可以托运货物, 从甲地到乙地,规定每张火车客票托运费计算方法是:行 李质量不超过kg50时按25.0元kg/; 超过kg50而不超过kg100时, 其超过部分 按35.0元kg/; 超过kg100时, 其超过部分按45.0元kg/. 编写程序 , 输入行李的 质量 , 计算出托运的费用. 解:算法分析:数学模型实际上为:y关于x的分段函数 . 关系式 为: 100)100(45.05035.05025.0 10050)50(35.05025.0 50025.0 xx xx xx y, 算法步骤: 第一步输入行李质量x. 第二步当50x时 , 计算xy25.0, 否则 , 执行下一步 . 第三步当100x时, 计算535.0xy, 否则 , 计算1545.0xy. 第四步输出托运费y. 程序框图为 : 略 程序为 : INPUT x IF xc AND a+cb AND b+ca THEN PRINT “以下列三个数: ” ;a,b,c, “可以构成三角形。 ” ELSE PRINT “以下列三个数: ” ;a, b,c, “不可以构成三角形! ” END IF END 2. 读程序,说出该程序的功能。 INPUT “Please input an inter:”;x IF 9100 PRINT sum END 直到型循环结构 程序框图程序语言 循环条件 i=1 S=0 WHILEi100 PRINTS END 循环结构 开始 结束 Yes No 1i 0S 1ii SSi 100?i 输出 S 循环体 循环条件 例 3下面是一个计算 123100的算法。请填写程序框图并写出相应的程序。 解: 例 4根据 1.1.2中的图 1.1-2, 将程序框图转化为程序语句。 分析:仔细观察,该程序框图中既有条件结构,又有循环结构。 程序: INPUT“n=”;n flag=1 IF n2 THEN d=2 WHILE d400? a=a*p a=300,p=1.05,n=1997 n=n+1 输出 n 结束 否 是 a=300 p=1.05 n=1997 DO a=a* p n=n+1 LOOP UNTIL a400 PRINT n END 2试设计一个生活中某个简单问题或是常见数学问题,并利用所学基本算法语 句等知识编程。 (要求所设计问题利用条件语句或循环语句)