条件语句和循环语句教案1

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

条件语句和循环语句教案1

‎ ‎ ‎ 1.2.2-1.2.3条件语句和循环语句 教学目标:‎ 知识与技能 ‎(1)正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系。‎ ‎(2)会应用条件语句和循环语句编写程序。‎ 过程与方法 经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力 情感态度与价值观 了解条件语句在程序中起判断转折作用,在解决实际问题中起决定作用。深刻体会到循环语句在解决大量重复问题中起重要作用。减少大量繁琐的计算。通过本小节内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。‎ 重点与难点 重点:条件语句和循环语句的步骤、结构及功能。‎ 难点:会编写程序中的条件语句和循环语句。‎ 学法与教学用具 计算机、图形计算器 教学设想 ‎【创设情境】‎ 试求自然数1+2+3+……+99+100的和。‎ 显然大家都能准确地口算出它的答案:5050。而能不能将这项计算工作交给计算机来完成呢?而要编程,以我们前面所学的输入、输出语句和赋值语句还不能满足“我们日益增长的物质需要”,因此,还需要进一步学习基本算法语句中的另外两种:条件语句和循环语句(板出课题)‎ ‎【探究新知】‎ ‎(一)条件语句 算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句。它的一般格式是:(IF-THEN-ELSE格式)‎ 满足条件?‎ 语句1‎ 语句2‎ 是 否 IF 条件 THEN 语句1‎ ELSE 语句2‎ END IF 17‎ ‎ ‎ 当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2。其对应的程序框图为:(如上右图)‎ 在某些情况下,也可以只使用IF-THEN语句:(即IF-THEN格式)‎ IF 条件 THEN 语句 END IF 满足条件?‎ 语句 是 否 计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序框图为:(如上右图)‎ 条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。‎ ‎【例题精析】‎ 例1. 分析下面的程序,当输入的值为时,程序的输出结果为________.‎ ‎ INPUT x ‎ IF x<-1 THEN ‎ y=x^2‎ ‎ ELSE ‎ IF x<=1 THEN ‎ y=0‎ ‎ ELSE ‎ y=(-2)^x ‎ END IF ‎ END IF ‎ PRINT y ‎ END 答案:‎ 例2 .给出下列程序,如果输入,那么输出的是________.‎ ‎ INPUT a,b,c ‎ IF a>b THEN ‎ a=b ‎ END IF IF a>c THEN ‎ a=c ‎ END IF ‎ PRINT a 17‎ ‎ ‎ ‎ END 答案:‎ 例3. 判断一元二次函数是否有根.‎ 分析:,当时,方程有实根;‎ 当时,方程无实根.‎ 解:该算法用自然语言表述为 Step1:输入三个系数.‎ Step2:计算.‎ Step3:判断是否成立.若是,则输出“方程有实根”;‎ 否则输出“方程无实根输出:方程有实根 开始 输入a,b,c 结束 输出:方程无实根 ”,结束算法.‎ 程序框图为: ‎ 程序为:‎ ‎ INPUT “a,b,c=”;a,b,c ‎ d=b^2-4*a*c ‎ IF d>=0 THEN ‎ PRINT “Have real root”‎ ‎ ELSE ‎ PRINT “No real root”‎ ‎ END IF ‎ END 例4.编写程序,输入一元二次方程的系数,输出它的实数根。‎ 分析:先把解决问题的思路用程序框图表示出来,然后再根据程序框图给出的算法步骤,逐步把算法用对应的程序语句表达出来。‎ 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 算法分析:我们知道,若判别式 17‎ ‎ ‎ ‎,原方程有两个不相等的实数根、;若,原方程有两个相等的实数根; 若,原方程没有实数根。也就是说,在求解方程之前,需要首先判断判别式的符号。因此,这个过程可以用算法中的条件结构来实现。‎ 又因为方程的两个根有相同的部分,为了避免重复计算,可以在计算和之前,先计算,。程序框图:(参照课本)‎ 程序:(如右图所示)‎ 注:SQR()和ABS()是两个函数,分别用来求某个数的平方根和绝对值。即 ,‎ 例5. 设计算法,求的解,并画出流程图.‎ 解:算法:‎ 第一步:判断是否成立.若成立,输出结果“解为”.‎ 第二步:判断是否成立.若成立,输出结果“解集为”.‎ 第三步:判断是否成立.若成立,输出结果“方程无解”,结束算法.‎ 程序框图:略 程序为:‎ INPUT “a,b=”;a,b ‎ d=b^2-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.设计算法,找出输入的三个不等实数的最大值,并画出流程图.‎ 解:算法:‎ 17‎ ‎ ‎ 第一步:输入的值.‎ 第二步:判断是否成立,若成立,则执行第三步;否则执行第四步.‎ 第三步:判断是否成立.若成立,则输出,并结束;否则输出,并结束.‎ 第四步:判断是否成立,若成立,则输出,并结束;否则输出并结束.‎ 程序框图:略 程序为:‎ INPUT a,b,c ‎ IF aa 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 END IF ‎ PRINT a,b,c END 程序框图: 程序:(如右框图 开始 输入a,b,c ‎ 输出a,b,c 结束 17‎ ‎ ‎ 例8.铁路部门托运行李的收费方法如下:‎ y是收费额(单位:元),x是行李重量(单位:kg),当0<x≤20时,按0.35元/kg收费,当x>20kg时,20kg的部分按0.35元/kg,超出20kg的部分,则按0.65元/kg收费,请根据上述收费方法编写程序。‎ 分析:首先由题意得:该函数是个分段函数。需要对行李重量作出判断,因此,这个过程可以用算法中的条件结构来实现。‎ 17‎ ‎ ‎ 程序: INPUT “请输入旅客行李的重量(kg)x=”;x IF x>0 AND x<=20 THEN y=0.35*x ELSE y=0.35*20+0.65*(x-20)‎ END IF PRINT “该旅客行李托运费为:”;y END 基本条件语句 例9. 编写一个程序,求实数的绝对值.‎ 解:程序1:‎ INPUT x 开始 输入x 输出y 结束 IF x>=0 THEN ‎ PRINT x ELSE ‎ PRINT –x END IF END 程序1:‎ INPUT x IF <0 THEN ‎ x=-x END IF PRINT x END 例10. 给计算机编写一个程序,输入一个自变量的值,输出分段函数的函数值.‎ 解: 程序框图 QuickBASIC程序语句 17‎ ‎ ‎ 开始 输入x 输出y 结束 INPUT “x=”;‎ IF x>=0 THEN ‎ ‎ ‎ ‎ y = x + 2‎ ELSE ‎ y = x^2‎ END IF ‎ ‎ PRINT “y =” ; y END ‎ QuickBASIC语言中的符号。‎ 数学运算 等于 不等于 大于 小于 大于等于 小于等于 程序符号 ‎=‎ ‎<>‎ ‎>‎ ‎<‎ ‎>=‎ ‎<=‎ 条件结构的嵌套 例11.函数, 开始 输入x 输出y 外层选择结构 内层选择结构 编写一个程序,输入x的值,输出y的值 解:用程序框图表示为 17‎ ‎ ‎ 用QuickBASIC 语言可写为 ‎ INPUT “x =” ; x ‎ IF x>0 THEN 内层IF语句 外层IF语句 ‎ y = 1 ‎ ‎ ELSE ‎ IF x=0 THEN ‎ y = 0‎ ‎ ELSE ‎ ‎ y = -1‎ ‎ END IF ‎ END IF ‎ ‎ ‎ PRINT “ y=”; y ‎ END 该程序中有两个IF语句,大IF语句中嵌套了一个小IF语句。‎ 例12.乘坐火车时,可以托运货物,从甲地到乙地,规定每张火车客票托运费计算方法是:行李质量不超过时按元;超过而不超过时,其超过部分按元;超过时,其超过部分按元.编写程序,输入行李的质量,计算出托运的费用.‎ 解:算法分析:数学模型实际上为:关于的分段函数.关系式 为:,‎ 算法步骤:‎ 第一步 输入行李质量.‎ 第二步 当时,计算,否则,执行下一步.‎ 第三步 当时,计算,否则,计算.‎ 第四步 输出托运费.‎ 程序框图为:略 程序为:‎ INPUT x IF x<=50 THEN ‎ y=0.25*x ELSE ‎ IF x<=100 THEN ‎ y=0.35*x-5‎ 17‎ ‎ ‎ ‎ ELSE ‎ y=0.45*x-15‎ ‎ END IF END IF PRINT “y=”;y END ‎【课堂精练】‎ ‎1.(题略)分析:如果有两个或是两个以上的并列条件时,用“AND”把它们连接起来。‎ 参考答案: INPUT “请输入三个正数a,b,c=”; a,b,c ‎ IF a+b>c AND a+c>b AND b+c>a 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 ‎ ‎ 当型循环 ‎ 程序框图 程序语言 ‎ 17‎ ‎ ‎ 循环条件 i=1‎ S=0‎ WHILE i<=100‎ S=S+i i=i+1‎ WEND PRINT S END 循环结构 开始 结束 ‎ ‎ ‎ ‎ 输出S 循环体 直到型循环结构 ‎ ‎ 程序框图 程序语言 ‎ 17‎ ‎ ‎ i=1‎ S=0‎ DO S=S+i i=i+1‎ LOOP UNTIL i>100‎ PRINT S END 循环结构 开始 结束 ‎ ‎ ‎ ‎ 输出S 循环体 循环条件 例2.下面是一个计算的算法。请填写程序框图和相应的程序。‎ 解:程序框图 程序语句 ‎ ‎ i=___‎ S=0‎ WHILE i<=_____‎ S=S+i i=i+__‎ WEND PRINT S END 开始 结束 ‎ ‎ ‎ ‎ 输出S 17‎ ‎ ‎ 例3.下面是一个计算的算法。请填写程序框图并写出相应的程序。‎ ‎ 解:‎开始 结束 ‎ ‎ ‎ ‎ 输出S 例4.根据1.1.2中的图1.1-2,将程序框图转化为程序语句。‎ 分析:仔细观察,该程序框图中既有条件结构,又有循环结构。‎ INPUT “n=”;n flag=1‎ IF n>2 THEN d=2‎ WHILE d<=n-1 AND flag=1‎ IF n MOD d=0 THEN flag=0‎ ELSE d=d+1‎ END IF WEND ELSE IF flag=1 THEN PRINT n;“是质数。”‎ ELSE PRINT n;“不是质数。”‎ END IF ‎ END IF END 程序:‎ 17‎ ‎ ‎ ‎〖思考〗:上述判定质数的算法是否还能有所改进?(让学生课后思考。)‎ 例5.某纺织厂1997年的生产总值为300万元,如果年生产增产率为5﹪,计算最早在哪一年生产总值超过400万元。‎ 分析:从1997年底开始,经过x年后生产总值为300×(1+5﹪)x,可将1997年生产总值赋给变量a,然后对其进行累乘,用n作为计数变量进行循环,直到a的值超过400万元为止。‎ 解:‎ 程序框图为: 程序:‎ 开始 a>400?‎ 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 a>400‎ PRINT n END ‎【课堂精练】‎ 1. 编写程序,输入正整数n,计算它的阶乘。‎ 2. 编写程序,计算下面n个数的和:。‎ 3. 某牛奶厂2002年初有资金1000万元,由于引进了先进的设备,资金年平均增长率可达到50%。请你设计一个程序,计算这家牛奶厂2008年底的资金总额。‎ ‎【课堂小结】‎ 本节课主要学习了条件语句和循环语句的结构、特点、作用以及用法,并懂得利用解决一些简单问题。条件语句使程序执行产生的分支,根据不同的条件执行不同的路线,使复杂问题简单化。有些复杂问题可用两层甚至多层循环解决。注意内外层的衔接,可以从循环体内转到循环体外,但不允许从循环体外转入循环体内。‎ 条件语句一般用在需要对条件进行判断的算法设计中,如判断一个数的正负,确定两个数的大小等问题,还有求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌套。‎ 循环语句主要用来实现算法中的循环结构,在处理一些需要反复执行的运算任务。如累加求和,累乘求积等问题中常用到。‎ ‎【评价设计】‎ ‎1. P23 习题1.2 A组 3、4‎ P24 习题1.2 B组 2.‎ 17‎ ‎ ‎ ‎2.试设计一个生活中某个简单问题或是常见数学问题,并利用所学基本算法语句等知识编程。(要求所设计问题利用条件语句或循环语句)‎ 17‎
查看更多