《条件语句、循环语句.ppt》由会员分享,可在线阅读,更多相关《条件语句、循环语句.ppt(42页珍藏版)》请在三一办公上搜索。
1、学习目标:1、知识与技能(1)正确理解条件语句的概念;(2)会应用条件语句编写程序。2、过程与方法经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力,基本算法语句 条件语句,3、情感态度与价值观了解条件语句在程序中起判断转折作用,在解决实际问题中起决定作用。通过本小节内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。,重点与难点:重点:条件语句的步骤、结构及功能.难点:会编写程序中的条件语句.,算法中的条件结构是由条件语句来表达的,条件语句是处理条件分支逻辑结构的算法语句.,条件语句的一般格式,只含一个“分支”的条件结构,写成条件语句为,当计
2、算机执行这种形式的条件语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句体,否则执行END IF之后的语句.,含两个“分支”的条件结构,写成条件语句为,当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句体1,否则执行ELSE后的语句体2.,条件语句的作用 在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。,【例题解析】,例1:编写程序,输入一元二次方程ax2+bx+c=0的系数,输出它的实数根。,算法分析:,一元二次方程的根有三种不同情况:
3、,设判别式=b2-4ac,(1)当0时,一元二次方程有两个不等的实数根.,(2)当=0时,一元二次方程有两个相等的实数根.,(3)当0时,一元二次方程没有实数根.,是,【程序框图】,开始,输入a,b,c,=b2-4ac,0?,原方程无实根,2,2,结束,否,1,1,=0?,输出p,是,否,x1=p+q,x2=p-q,输出x1,x2,【程序】,INPUT“a,b,c=”;a,b,c d=b*b-4*a*c IF d=0 THEN p=-b/(2*a)q=SQR(d)/(2*a)IF d=0 THEN PRINT“One real root:”;pELSE x1=p+q x2=p-q PRINT“
4、Two real roots:“;x1,x2 END IFELSE PRINT“No real root!”END IFEND,例2:编写程序,使得任意输入的3个整数按从大到小的顺序输出。,算法分析:用a,b,c表示输入的3个整数;为了节约变量,把它们重新排列后,仍用a,b,c表示,并使abc.具体操作步骤如下。第一步:输入3个整数a,b,c.第二步:将a与b比较,并把小者赋给b,大者赋给a.第三步:将a与c比较.并把小者赋给c,大者赋给a,此时a已是三者中最大的。第四步:将b与c比较,并把小者赋给c,大者赋给b,此时a,b,c已按从大到小的顺序排列好。第五步:按顺序输出a,b,c.,c=b,
5、b=t,b=t,c=t,a=c,【程序框图】,开始,输入a,b,c,ba?,是,t=a,a=b,否,ca?,是,t=a,否,cb?,t=c,是,否,输出a,b,c,交换a,b的值,【程序】,INPUT“a,b,c=”;a,b,cIF ba THEN t=a a=b b=tEND IFIF ca THEN t=a a=c c=tEND IF,IF cb THEN t=b b=c c=tEND IF PRINT a,b,cEND,【课堂小结】本节课主要学习了条件语句的结构、特点、作用以及用法,并懂得利用它解决一些简单问题。条件语句使程序执行产生的分支,根据不同的条件执行不同的路线,使复杂问题简单化
6、。条件语句一般用在需要对条件进行判断的算法设计中,如判断一个数的正负,确定两个数的大小等问题,还有求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌套。,【课堂练习】,1.课本P22页T2.读程序,说明程序的运行过程.,INPUT“x=:”;xIF 9x AND x100 THEN a=x10 b=x MOD 10 x=10b+a PRINT xEND IFEND,问题如输入的数x=86,则输出的结果是什么?,68,此程序用于交换一个两位数的个位和十位数字.,2.课本P22页T1.,INPUT“a,b,c=”;a,b,cIF a+bc AND a+cb AND b+ca THE
7、N PRINT“Yes.”ELSE PRINT“No.”END IFEND,参考答案:,3.课本P22页T3.编写求一个数是偶数还是奇数的程序,从键盘输入一个整数,输出该数的奇偶性.,INPUT“a=”;aIF a MOD 2=0 THEN PRINT“Even.”ELSE PRINT“Odd.”END IFEND,参考答案:,4.课本P22页T1.闰年指年份能被4整除但不能被100整除,或者能被400整除的年份.编写一个程序,判断输入的年份是否为闰年.,INPUT“Please input a year:”;y b=y MOD 4 c=y MOD 100 d=y MOD 400IF b=0
8、AND c0 THEN PRINT“Leap year.”ELSEIF d=0 THEN PRINT“Leap year.”ELSE PRINT“Not leap year.”END IFEND IFEND,参考答案:,表示c0,5.(P25页A组T3)编写一个程序,输入两个整数a,b,判断a是否能被b整除.,INPUT“a,b=”;a,bIF a MOD b=0 THEN PRINT“b divides a.”ELSE PRINT“b does not divide a.”END IFEND,参考答案:,6.(P25页B组T2),INPUT“x=”;xIF x=1 AND x10 THEN
9、y=2x-1ELSE y=3x-11 END IFEND IFPRINT“y=”;yEND,参考答案:,学习目标:1、知识与技能(1)正确理解循环语句的概念;(2)会应用循环语句编写程序。2、过程与方法经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力,基本算法语句 循环语句,3、情感态度与价值观了解循环语句在程序中起判断转折作用,在解决实际问题中起决定作用。通过本小节内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。,重点与难点:重点:循环语句的步骤、结构及功能.难点:会编写程序中的循环语句.,算法中的循环结构是由循环语句来实现的.,循环结
10、构有两种-当型与直到型.,当型循环结构(当条件满足时反复执行循环体),直到型循环结构(反复执行循环体直到条件满足),对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构。,即WHILE语句和UNTIL语句。,(1)WHILE语句的一般格式是:,WHILE 条件 循环体WEND,其中循环体是由计算机反复执行的一组语句构成的。WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体的。,WHILE当 时候,WEND朝方向 行走,(1)WHILE语句的一般格式是,WHILE 条件 循环体WEND,当计算机遇到WHILE语句时,先判断条件
11、的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句.,(2)UNTIL语句的一般格式是:,DO 循环体LOOP UNTIL 条件,DO做什么,LOOP UNTIL绕环回线走,直到达到某种 条件为止,思考:参照其直到型循环结构对应的程序框图,说说计算机是按怎样的顺序执行UNTIL语句的?,(2)UNTIL语句的一般格式是:,DO 循环体LOOP UNTIL 条件,从UNTIL型循环结构分析,计算机执行该语句时,先
12、执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOP UNTIL语句后执行其他语句,是先执行循环体后进行条件判断的循环语句.,提问:通过对照,大家觉得WHILE型语句与UNTIL型语句之间有什么区别呢?,区别:在WHILE语句中,是当条件满足时执行循环体,而在UNTIL语句中,是当条件不满足时执行循环体。,例1.编写程序,计算自然数1+2+3+99+100的和.,分析:这是一个累加问题.我们可以用WHILE型语句,也可以用UNTIL型语句。,i=1S=0,WHLIE i=100,S=S
13、+i,i=i+1,WEND,PRINT S,END,i=1S=0,DO,S=S+ii=i+1,LOOP UNTIL,i100,PRINT S,END,变式训练(1):编写程序求:n!=12345n的值.,如何修改?,WHILE语句,i=1S=0,WHLIE i=100,S=S+i,i=i+1,WEND,PRINT S,END,INPUT“n=”;n,S=1,S=Si,in?,S=1,n,S=Si,变式训练(2):编写程序求:1357101的值.,如何修改?,UNITL语句,i=1S=0,DO,S=S+i,i=i+1,LOOP UNTIL i100,PRINT S,END,S=1,101,S=S
14、i,i=i+2,直到型,S=1,S=Si,i=i+2,i101?,例2:根据P5页图1.1-2,将程序框图转化为程序语句.,分析:仔细观察,该程序框图中既有条件结构,又有循环结构。,INPUT“n=”;ni=2DO r=n MOD i i=i+1LOOP UNTIL i=n OR r=0IF r=0 THEN PRINT“n is not a prime number.”ELSE PRINT“n is a prime number.”END IFEND,程序,习题解答,1.P24页练习T1.,程序框图,程序,a=1,b=2,e=0.005,DO,m=(a+b)/2,f=m2-2,g=a2-2,
15、IF gf0 THEN,a=m,ELSE,b=m,END IF,LOOP UNTIL ABS(a-b)e OR f=0,PRINT m,END,继续,是,是,否,程序框图,开始,f(x)=x2-2,输入误差和初值a,b,a=m,否,b=m,|a-b|或f(m)=0?,输出m,结束,返回,2.P24页练习T2.,x=1,DO,y=x2-3x+5,LOOP UNTIL x20,PRINT“x=”;x,“y=”;y,END,x=x+1,程序,2.P24页练习T2.,x=1,WHILE x=20,y=x2-3x+5,WEND,PRINT x,y,END,x=x+1,程序,3.P25页A组T4.,程序,
16、INPUT“n=”;n,i=1,S=0,WHILE i=n,S=S+(i+1)/i,i=i+1,WEND,PRINT“S=”;S,END,4.P25页B组T1.,程序,n=1,p=1000,WHILE n=7,p=p(1+0.5),n=n+1,WEND,PRINT p,END,5.P40页A组T4.,程序,INPUT“n=”;n,i=1,S=0,WHILE i=n,S=S+1/i,i=i+1,WEND,PRINT“S=”;S,END,6.P40页A组T2.,程序框图,程序,INPUT a1,b1,c1,a2,b2,c2,IF a10 THEN,u=-a2/a1,b=b2+b1u,c=c2+c1u,y=c/b,x=(c2-b2y)/a2,ELSE,y=c1/b1,x=(c2-b2y)/a2,END IF,PRINT x,y,END,继续,开始,程序框图,输入a1,b1,c1,a2,b2,c2,a10?,是,u=-a2/a1,b=b2+b1u,c=c2+c1u,y=c/b,x=(c2-b2y)/a2,否,y=c1/b1,返回,7.P25-26页B组T3.,程序,INPUT“a=”;a,INPUT“n=”;n,tn=0,sn=0,i=1,WHILE i=n,tn=tn+a,sn=sn+tn,a=a10,i=i+1,WEND,PRINT sn,END,