




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1.1算法的概念1.1.1算法的概念1高中数学人教版必修三课件2高中数学人教版必修三课件3算法的概念算法通常指可以用来解决的某一类问题的步骤或程序,这些步骤或程序必须是明确的和有效的,而且能够在有限步之内完成的。一般来说,“用算法解决问题”可以利用计算机帮助完成。算法的概念算法通常指可以用来解决的某一类问题一般来说,“用4
一位商人有9枚银元,其中有1枚略轻的是假银元。你能用天平(不用砝码)将假银元找出来吗?
一位商人有9枚银元,其中有1枚略轻的是假银元。你能用天平(5用二分法求方程的近似正根,精确度0.05。用二分法求方程的6例用二分法设计一个求方程的近似正根的算法,精确度0.05。解例用二分法设计一个求方程解7练习任意给定一个正实数a,试设计一个算法求以a为直径的圆的面积。第一步:输入a的值.第二步:________________________.第三步:________________________.第四步:输出圆的面积的值.解练习第一步:输入a的值.第二步:______________8例任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数作出判断。第一步:判断n是否等于2。若n=2,则n是质数;若n>2,则执行第二步;第二步:依次从2到(n-1)检验是不是n的因数,即是否能整除n的数。若有这样的数,则n不是质数;否则,n是质数。解:例任意给定一个大于1的整数n,试设计第一步:判断n是否等于29练习任意给定3个正实数,试设计一个算法,判断分别以这三个数为三边边长的三角形是否存在。第一步:输入三个正实数a,b,c.解练习第一步:输入三个正实数a,b,c.解10算法的特征是什么?小结:明确性有效性有限性算法的概念:算法通常指可以用来解决的某一类问题的步骤或程序,这些步骤或程序必须是明确的和有效的,而且能够在有限步之内完成的。算法的特征是什么?小结:明确性有效性有限性算法的概念:算法通11作业:1、写出你在家里烧开水过程的一个算法。2、已知平面直角坐标系的两点A(-1,0),
B(3,2),写出求直线AB的方程的一个算法。作业:1、写出你在家里烧开水过程的一个算法。2、已知平面直角12§1.1.2程序框图算法初步§1.1.2程序框图算法初步13复习1、算法的概念2、算法的特点3、常见的几个例子4、判断一个正整数是否是质数的算法复习1、算法的概念2、算法的特点3、常见的几个例子4、判断一14算法的概念算法是指解决给定问题的有穷操作步骤的描述,简单的说,算法就是解决问题的步骤和方法。算法的概念算法是指解决给定问题的有穷操作步骤的描述,简单的说15算法的基本特点1、有穷性一个算法应包括有限的操作步骤,能在执行有穷的操作步骤之后结束。2、确定性算法的计算规则及相应的计算步骤必须是唯一确定的,既不能含糊其词,也不能有二义性。3、可行性算法中的每一个步骤都是可以在有限的时间内完成的基本操作,并能得到确定的结果。算法的基本特点1、有穷性一个算法应包括有限的操作步骤,能在执16判断一个正整数是否是质数的算法自然语言描述图形描述第一步:判断n是否等于2?若n=2,则n是质数,否则,执行第二步;第二步:依次从2~(n-1)检验是不是n的因数,即能整除n的数,若有这样的数,则n不是质数;若没有,则n是质数。开始输入nn=2?d=2flag=0d=d+1d整除n?d<=n-1且flag=1?flag=1?n是质数n不是质数结束是否否是否是否是判断一个正整数是否是质数的算法自然语言描述图形描述第一步:判17判断一个正整数是否是质数的算法图形描述开始输入nn=2?d=2flag=0d=d+1d整除n?d<=n-1且flag=1?flag=1?n是质数n不是质数结束是否否是否是否思考:1、flag的作用是什么?2、d=d+1是什么意思?3、整个图形中有哪些基本的图形,各自的意义和作用是什么?是判断一个正整数是否是质数的算法图形描述开始输入nn=2?d=18程序框图又称流程图,是一种用规定的图形,指向线及文字说明来准确、直观地表示算法的图形。程序框名称功能终端框(起止框)表示一个算法的起始和结束输入、输出框表示算法的输入和输出的信息处理框(执行框)赋值、计算判断框判断一个条件是否成立,用“是”、“否”或“Y”、“N”标明程序框图又称流程图,是一种用规定的图形,指向线及文字说明来准19例1设计一算法:输入圆的半径,输出圆的面积,并画出流程图算法分析:第一步:输入圆的半径第二步:利用公式“圆的面积=圆周率×(半径的平方)”计算圆的面积;第三步:输出圆的面积。开始结束输入半径R计算S=Pi*R*R输出面积S定义Pi=3.14思考:整个程序框图有什么特点?例1设计一算法:输入圆的半径,输出圆的面积,并画出流程图20例2已知一个三角形的三边长确分别为2,3,4,利用海伧-秦九韶公式设计一个算法,求出它的p=(2+3+4)/2s=SQR(p*(p-2)*(p-3)*(p-4))输出s结束开始面积,画出算法的程序框图.
例2已知一个三角形的三边长确分别为2,3,4,利用海伧-秦21例3设计房租收费的算法,其要求是:住房面积80平方米以内,每平方米收费3元,住房面积超过80平方米时,超过部分,每平方米收费5元.输入住房面积数,输出应付的房租.算法分析:第一步:输入住房面积S第二步:根据面积选择计费方式:如果S小于或等于80,则租金为M=s×3,否则为M=240+(S-80)×5第三步:输出房租M的值。开始结束输入面积S输出租金MS<=80M=3*SM=240+5*(S-8)否是思考:整个程序框图有什么特点?例3设计房租收费的算法,其要求是:住房面积80平方米以内,22例4
任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图..
开始输入a,b,ca+b>c,a+c>b,b+c>a是否同时成立?存在这样的三角形不存在这样的三角形结束否是例4任意给定3个正实数,设计一个算法,判断分别以这3个数为23例5
设计一个计算1+2+...+100的值的算法,并画出程序框图.开始i=1sum=0i=i+1sum=sum+1i≤100?输出sum结束否是例5设计一个计算1+2+...+100的值的算法,并画出程24练习巩固1看下面的程序框图,分析算法的作用(1)开始结束输入xy=3*x*x+4*x+5输出y(2)开始结束输入a,ba<b?输出a,b输出b,a否是练习巩固1看下面的程序框图,分析算法的作用(1)开始结束输25练习2城区一中学生数学模块学分认定由模块成绩决定,模块成绩由模块考试成绩和平时成绩构成,各占50%,若模块成绩大于或等于60分,获得2学分,否则不能获得学分(为0分),设计一算法,通过考试成绩和平时成绩计算学分,并画出程序框图开始结束输入a,bS>=60?credit=2credit=0否是S=(a+b)*0.5输出credit练习2城区一中学生数学模块学分认定由模块成绩决定,模块成绩由26课堂作业P11开始输入aa≥0输出|a|=a输出|a|=-a结束NY练习1课堂作业P11开始输入aa≥0输出|a|=a输出|a|27开始X1=1X2=2m=(x1+x2)/2x2=mx1=mm*m-3<>0|x1-x2|<0.005(x1*x1-3)*(m*m-3)>0输出所求的近似值m结束m=(x1+x2)/2NyyN练习2开始X1=1X2=2m=(x1+x2)/2x2=mx1=mm28高中数学人教版必修三课件29开始输入nflag=1d=2flag=0d=d+1n>2d整除n?d<=n-1且flag=1?flag=1?n是质数n不是质数结束是否否是否是否是开始输入nflag=1d=2flag=0d=d+1n>2d整30顺序结构输入nflag=1顺序结构输入nflag=131条件结构flag=1?n是质数n不是质数结束是否条件结构flag=1?n是质数n不是质数结束是否32循环结构flag=0d=d+1d整除n?d<=n-1且flag=1?否是否是循环结构flag=0d=d+1d整除n?d<=n-1且fla33小结:1、程序框图的概念2、程序框图图例的名称和意义(作用)3、如何用程序框图表示顺序结构、选择结构与循环结构的算法小结:1、程序框图的概念2、程序框图图例的名称和意义(作用)34§1.1.2程序框图算法初步§1.1.2程序框图算法初步35知识回忆1、程序框图的概念2、程序框图的图示和意义3、顺序结构和条件结构的特点知识回忆1、程序框图的概念2、程序框图的图示和意义3、顺序结36程序框图又称流程图,是一种用规定的图形,指向线及文字说明来准确、直观地表示算法的图形。程序框名称功能终端框(起止框)表示一个算法的起始和结束输入、输出框表示算法的输入和输出的信息处理框(执行框)赋值、计算判断框判断一个条件是否成立,用“是”、“否”或“Y”、“N”标明程序框图又称流程图,是一种用规定的图形,指向线及文字说明来准37例1设计一算法,求和:1+2+3+…+100第一步:确定首数a,尾数b,项数n;第二步:利用公式“总和=(首数+尾数)×项数/2”求和;第三步:输出求和结果。算法1:开始结束输入a,b,nSum=(a+b)*n/2输出Sum例1设计一算法,求和:1+2+3+…+100第一步:确定首38例1设计一算法,求和:1+2+3+…+100算法2:第一步:从1开始将自然数1、2、3、…、100逐个相加;第二步:输出累加结果。思考:1、上边的式子有怎样的规律呢?Sum=0Sum=Sum+1Sum=Sum+2Sum=Sum+3…Sum=Sum+1002、怎么用程序框图表示呢?i=i+1Sum=Sum+i4、如何使程序结束?3、i有什么作用?Sum呢?Sum=Sum+i例1设计一算法,求和:1+2+3+…+100算法2:第一39程序框图
如图开始i=1sum=0i=i+1sum=sum+1i≤100?输出sum结束否是程序框图
如图开始i=1sum=0i=i+1sum=40例2用二分法求解方程求关于x的方程x2-2=0的根,精确到0.005算法描述第一步令f(x)=x2-2,以为f(1)<0,f(2)>0,所以设x1=1,x2=2第二步令m=(x1+x2)/2,判断f(m)是否为0,若是,则m为所求,否则,则继续判断f(x1)·f(m)大于0还是小于0。第三步若f(x1)·f(m)>0则令x1=m,否则x2=m。第四步判断|x1-x2|<0.005是否成立?若是则x1、x2之间人任意值均为满足条件的近似值;否则返回第二步。例2用二分法求解方程求关于x的方程x2-2=0的根,精确41开始x1=1:x2=2f(x)=x2-2x1=mx2=mm=(x1+x2)/2x1=mx2=mf(m)=0?f(x1)f(m)>0|x1-x2|<0.005结束输出所求的近似根mm=(x1+x2)/2是否否是否是流程图表示分析在整个程序框图中,哪些部分是顺序结构、条件结构、循环结构开始x1=1:x2=2f(x)=x2-2x1=mm=(x1+42
1、对任意正整数n,的值,并画出程序框图.开始输入一个正整数n输入S的值结束S=0i=1S=S+1/ii=i+1i≤nYN设计一个算法求练习巩固
1、对任意正整数n,432、设计一算法,求积:1×2×3×…×100,画出流程图结束输出Sumi=0,Sum=1开始i=i+1Sum=Sum*ii>=100?否是思考:该流程图与前面的例3中求和的流程图有何不同?2、设计一算法,求积:1×2×3×…×100,画出流程图结束44小结1、循环结构的特点2、循环结构的框图表示3、循环结构有注意的问题避免死循环的出现,设置好进入(结束)循环体的条件。当型和直到型重复同一个处理过程小结1、循环结构的特点2、循环结构的框图表示3、循环结构有注45§1.1.2程序框图算法初步习题课§1.1.2程序框图算法初步习题课461城区一中学生数学模块学分认定由模块成绩决定,模块成绩由模块考试成绩和平时成绩构成,各占50%,若模块成绩大于或等于60分,获得2学分,否则不能获得学分(为0分),设计一算法,通过考试成绩和平时成绩计算学分,并画出程序框图开始结束输入a,bS>=60?credit=2credit=0否是S=(a+b)*0.5输出credit1城区一中学生数学模块学分认定由模块成绩决定,模块成绩由模块47
2、对任意正整数n,的值,并画出程序框图.开始输入一个正整数n输入S的值结束S=0i=1S=S+1/ii=i+1i≤nYN设计一个算法求步骤A步骤B
思考:将步骤A和步骤B交换位置,结果会怎样?能达到预期结果吗?为什么?要达到预期结果,还需要做怎样的修改?
2、对任意正整数n,48例3设计一算法,求和:1+2+3+…+100结束i=i+1Sum=Sum+ii<100?输出Sum否是i=0,Sum=0开始结束输出Sumi=0,Sum=0开始i=i+1Sum=Sum+ii>=100?否是能否说说这个流程图的异同点?例3设计一算法,求和:1+2+3+…+100结束i=49i=i+1Sum=Sum+i解决方法就是加上一个判断,判断是否已经加到了100,如果加到了则退出,否则继续加。直到型结构当型结构i=i+1Sum=Sum+i是否i=i+1Sum=Sum+i否是i<100?i>=100?请填上判断的条件。i=i+1Sum=Sum+i解决方法就是加上一个50开始输入aa≥0输出|a|=a输出|a|=-a结束NYP11练习1开始输入aa≥0输出|a|=a输出|a|=-a结束NY51开始X1=1X2=2m=(x1+x2)/2x2=mx1=mm*m-3<>0|x1-x2|<0.005(x1*x1-3)*(m*m-3)>0输出所求的近似值m结束m=(x1+x2)/2NyyN练习2开始X1=1X2=2m=(x1+x2)/2x2=mx1=mm52▲下面是关于城市居民生活用水收费的问题
为了加强居民的节水意识,某市制定了以下生活用水收费标准:每户每月用水未超过7m3时,每立方米收费1.0元,并加收0.2元的城市污水处理费,超过7m3的部分,每立方米收费1.5元,并加收0.4元的城市污水处理费.开始输入xx≤7y=1.2xy=1.9x-4.9输入y结束yNP.11习题A组第1题
程序框图▲下面是关于城市居民生活用水收费的问题为了加强居民53开始S=0I=I+1I=1S=S+I*II≤100输出S
结束NYP.11习题1.1A组第2题开始S=0I=I+1I=1S=S+I*II≤100输出S结54输入x开始x>3y=1.2x+1.4y=5输入y结束NYP.11习题A组第3题
程序框图
输入x开始x>3y=1.2x+1.4y=5输入y结束NYP.55开始输入50米跑成绩:xx<6.8输出提示“若要继续请按键”Y“,否则请按其他键输入到变量mm=“y”orm=“Y”结束输出xNYYNP.11习题1.1B组第1题
程序框图开始输入50米跑成绩:xx<6.8输出提示“若要继续请按输56开始输出提出:“输入第一个方程的系数”“x的系数是”:a1“y的系数是”:b1“常数项是”:c1输出“x=”;x“y=”;y方程有无数多组解a1*b2-a2*b1≠0x=(c2*b1
-c1*b2)/(a1*b2
-a2*b1)y=(c2*b1
-c1*b2)/(a1*b2
-a2*b1)结束输出提出:“输入第二个方程的系数”“x的系数是”:a2“y的系数是”:b2“常数项是”:c2NYc1=c2方程无解P.11习题1.1B组第2题开始输出提出:“输入“x的系数是”:a1输出“x=”;x方程57作业:课外整理所有讲过的例题及习题建构程序框图的系统性作业:58§1.2.2算法基本语句算法初步§1.2.2算法基本语句算法初步59复习巩固1、输入语句、输出语句和赋值语句对应于算法中的哪种结构?这三种语句的一般格式是什么?2、什么是条件结构?用程序框图表示这种结构顺序结构输入语句输出语句赋值语句INPUT
“提示文字”;变量PRINT
“提示内容”;表达式变量=表达式满足条件?语句1语句2是否复习巩固1、输入语句、输出语句和赋值语句对应于算法中的哪种结60新课讲解阅读P16,思考以下问题1、条件结构用怎样的程序语句来描述?这种语句的一般格式是怎样的?2、把下列语句的意义翻译成程序框图(1)IFx>0THENy=1ELSEy=0ENDIF(2)IFx<0THENx=ABS(x)
ENDIF
PRINT“x的绝对值为:”;xIF
条件THEN
语句1ELSE
语句2ENDIFIF
条件THEN
语句ENDIF或新课讲解阅读P16,思考以下问题1、条件结构用怎样的程序语句61例5编写程序,输入一元二次方程算法描述:S1:输入a,b,cS2:计算判别式△S3:如果△<0有两不同实根,△=0有两个相同实根,△<0否则没实数根。根据情况输出结果。开始输入a,b,cΔ=b2-4acp=-b/2aq=SQR(ABS(Δ))/(2a)x1=p+qx2=p-qΔ≥0?x1=x2?原方程有两个不等的实数根x1,x2原方程有两个相等的实数根x1,x2原方程无实数根结束是否是否的系数,输出它的实数根。例5编写程序,输入一元二次方程算法描述:S1:输入a,b62QBASIC程序:INPUT“请输入一元二次方程的系数a,b,c=:”;a,b,cd=b*b-4*a*cp=-b/(2*a)q=SQR(ABS(d))/(2*a)IFd>=0THENx1=p+qx2=p-qIFx1=x2THENPRINT“只有一个实根:”;x1=x1ELSEPRINT“有两个实根:”;“x1=”;x1,”x2=”;x2ENDIFELSEPRINT“没有实根”ENDIFENDQBASIC程序:INPUT“请输入一元二次方程的系数a,63例6编写程序,使得任意输入3个整数按大到小的顺序输出。算法分析:算法思想:3个数两两比较,确定大小。按a、b、c输入,要按a、b、c输出,关键要找到最大值,将它赋值给a,中值赋给b,最小值赋给c。第一步输入3个整数a、b、c第二步将a与b比较,并把小者赋给b,大的赋给a;第三步将a与c比较,并把小者赋给c,大的赋给a第四步将b与c比较,并把小者赋给c,大的赋给b第五步按顺序输出a,b,c例6编写程序,使得任意输入3个整数按大到小的顺序输出。算法64INPUT“a,b,c=”;a,b,cIFb>aTHENt=aa=bb=tENDIFIFc>aTHENt=aa=cc=tENDIFIFc>bTHENt=bb=cc=tENDIFPRINTa,b,cEND相应的QBASIC程序:开始t=a,a=b,b=tt=a,a=c,c=tt=b,b=c,c=t输入a,b,c输入a,b,cb>a?c>a?c>b?结束是是否否是否对应的流程图INPUT“a,b,c=”;a,b,c相应的QBASIC程65练习巩固开始输入a,b,ca+b>c,a+c>b,b+c>a是否同时成立?存在这样的三角形不存在这样的三角形结束否是(1)
该程序框图所表示的算法是作用是什么?并根据程序框图写出相应的程序。练习巩固开始输入a,b,ca+b>c,a+c>b,存在这662、某快递公司规定甲、乙两地之间物品的托运费用根据下面的方法计算:物品重量在50千克以内,托运费为每千克0.53元,超过的话,超过部分每千克0.85元,试画出计算费用f的程序框图,并写出相应的QBASIC程序。程序框图:开始结束输入重量G输出运费MG<=50M=0.53*GM=50*0.53+0.85*(G-50)否是对应的QBASIC程序INPUT“输入重量G=”;GIFG<=50THENM=0.53*GELSEM=50*0.53+0.85*(G-50)ENDIFPRINT“运费为:”;MEND2、某快递公司规定甲、乙两地之间物品的托运费用根据下面的方法67小结1、条件结构的程序表示2、注意书写的规范性IF
条件THEN
语句1ELSE
语句2ENDIFIF
条件THEN
语句ENDIF满足条件?语句满足条件?语句1语句2是否小结1、条件结构的程序表示2、注意书写的规范性IF条件T68作业布置课本P20练习第3、4题课外活动
试查找数学课本一些分段函数的事例,看看能否能用条件语句写出解决问题的程序作业布置课本P20课外活动试查找数学课本一些分段函数69
几种基本语句条件语句
70
重点:难点:理解并会用IF----ELSE结构。IF----ELSE----IF结构。重点:难点:理解并会用IF----ELSE----IF结构。71教学过程
新课导入
新课讲解
小结
作业教学过程新课导入72小黑的家小白的家一、新课导入教学过程小黑的家小白的家一、新课导入教学过程73二、新课讲解一、简单的IF语句二、IF----ELSE语句三、if-else-if语句二、新课讲解一、简单的IF语句二、IF----EL74
格式简单的IF语句
流程图
例题格式简单的IF语句流程图75
其语义是:
如果表达式的值为真,则执行其后的语句,否则不执行该语句,继续执行主程序。
注意:1、这里的表达式通常是逻辑表达式或关系表达式,例如:if(a>b&&a>c)printf(“%d”,a)或是if(a==b)printf(“a等于b”)2、但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如:if(a=5)语句;if(b)语句;3、语句若有多条语句,则用{}括起来,且语句后必须有“;”,而}后没有“;”
例如:if(a>b){a++;b++;}printf(“%d,%d”,a,b);简单的IF语句格式IF(表达式)语句简单的IF语句格式IF(表达式)语句76
假
真
表达式语句小白找小黑玩吗走小路真
假
77
max=a;
if(max<b)max=b;
printf("max=%d",max);
本例程序中,输入两个数a,b,把a先赋予变量max,再用if语句判别max和b的大小,如max小于b,则把b赋予max。因此max中总是大数,最后输出max的值。例1:求两个数中的较大数max=a;
if(max<b)max=b;
prin78if(成绩)>60printf(“及格”);If(小白找小黑玩)printf(“走小路”);If(今天是工作日)printf(“上班”);再如:从键盘上输入两个数,求出它们俩商的相反数。这类的例子很多if(成绩)>60printf(“及格”);这类的例79
格式IF----ELSE语句
流程图
例题格式IF----ELSE语句流程图80
if(表达式)语句1;else语句2;
其语义是:如果表达式的值为真,则执行语句1,否则执行语句2。
例如:if(x>0)printf(“x大于0”);
elseprintf(“x小于等于0);
或是if(小黑在家)printf(“找小黑玩”);
elseprintf(“找小花玩”);IF----ELSE语句格式if(表达式)语句1;IF----ELSE语句格81如果小白找小黑玩,小黑在家吗?若在,找小黑玩,不在,就找小花玩。能用C语言来实现吗?可以,用if----else语句就能完成。
真
假小黑在家吗找小黑玩找小花玩如果小白找小黑玩,小黑在家吗?若在,找82
假
真
表达式语句1语句2
假
83
If(a>b)printf("max=%d\n",a);
elseprintf("max=%d\n",b);
输入两个整数,输出其中的大数。改用if-else语句判别a,b的大小,若a大,则输出a,否则输出b。例2:求两个数中较大的一个。
例2:求两个数中较大的一个。84
格式if-else-if语句
流程图
例题格式if-else-if语句流程图85
if(表达式1)
语句1;
elseif(表达式2)语句2;
elseif(表达式3)语句3;…elseif(表达式m)语句m;else语句n;其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。if-else-if语句格式if(表达式1)if-else-if语句格式86真假假假真真真假流程图表达式1表达式2表达式3表达式m语句1语句2语句3语句m语句n真假87对优、良、及格和不及格,我们分别用5、4、3、2四个等级来表示,划分如下:分数等级100-90589-75474-60359-02例3、编写一程序,根据学生的考分来划分成绩的优、良、及格和不及格。对优、良、及格和不及格,我们分别用5、4、3、2四个等88main(){intsorce,snum;chargrade;scanf(“%d,%d”,&snum,&score);if(score>89)grade=’5’;elseif(score>74)grade=’4’;elseif(score>59)grade=’3’;elsegrade=’2’;printf(“%d:%c\n”,snum,grade);}main(){intsorce,snum;chargrade;scanf(“%d,%d”,&snum,&score);if(score>89)grade=’5’;elseif(score>74)grade=’4’;elseif(score>59)grade=’3’;elsegrade=’2’;printf(“%d:%c\n”,snum,grade);}main()main()89例4.P1语句5P2P3P4P5语句1语句2语句4语句3YYYYYNNNN商场促销,购物500元以上,8折购物300元以上,85折购物100元以上,9折购物50元以上,95折购物50元以下,不打折设:消费量为money
折扣为cost
实际花费price例4.P1语句5P2P3P4P5语句1语句2语句4语句3Y90例:根据消费量,计算优惠率。if(money>500)cost=0.2;elseif(money>300)cost=0.15;elseif(money>100)cost=0.1;elseif(money>50)cost=0.05;elsecost=0;price=money-(money*cost);例:根据消费量,计算优惠率。91
(1)
在三种形式的if语句中,在if关键字之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如:if(a=5)语句;if(b)语句;都是允许的。
。三、小结只要表达式的值为非0,即为“真”。如在if(a=5)…;中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。
(1)
在三种形式的if语句中,在if关键字之后均为92
又如,有程序段:
if(a=b)printf("%d",a);elseprintf("a=0");本语句的语义是,把b值赋予a,如为非0则输出该值,否则输出“a=0”字符串。这种用法在程序中是经常出现的又如,有程序段:93
(2)在if语句中,条件判断表达式必须用括号括起来,
在语句之后必须加分号。If(b)printf(“b不是0”);(2)在if语句中,94
(3)在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。
例如:
if(a>b){
a++;
b++;
}
else{a=0;
b=10;}
95
四、作业四、作业96§1.2.3算法基本语句算法初步§1.2.3算法基本语句算法初步97温故而知新1、顺序结构常用的程序语言和格式2、条件结构常用的程序语言和格式输入语句INPUT“提示文字”;变量列表输出语句PRINT“提示文字”;变量列表赋值语句变量=表达式(1)IF
条件成立THEN
语句1ELSE
语句2ENDIF(2)IF
条件成立THEN
语句ENDIF温故而知新1、顺序结构常用的程序语言和格式2、条件结构常用的98例5编写程序,输入一元二次方程算法描述:S1:输入a,b,cS2:计算判别式△S3:如果△<0有两不同实根,△=0有两个相同实根,△<0否则没实数根。根据情况输出结果。开始输入a,b,cΔ=b2-4acp=-b/2aq=SQR(ABS(Δ))/(2a)x1=p+qx2=p-qΔ≥0?x1=x2?原方程有两个不等的实数根x1,x2原方程有两个相等的实数根x1,x2原方程无实数根结束是否是否的系数,输出它的实数根。例5编写程序,输入一元二次方程算法描述:S1:输入a,b99QBASIC程序:INPUT“请输入一元二次方程的系数a,b,c=:”;a,b,cd=b*b-4*a*cp=-b/(2*a)q=SQR(ABS(d))/(2*a)IFd>=0THENx1=p+qx2=p-qIFx1=x2THENPRINT“只有一个实根:”;x1=x1ELSEPRINT“有两个实根:”;“x1=”;x1,”x2=”;x2ENDIFELSEPRINT“没有实根”ENDIFENDQBASIC程序:INPUT“请输入一元二次方程的系数a,100例6编写程序,使得任意输入3个整数按大到小的顺序输出。算法分析:算法思想:3个数两两比较,确定大小。按a、b、c输入,要按a、b、c输出,关键要找到最大值,将它赋值给a,中值赋给b,最小值赋给c。第一步输入3个整数a、b、c第二步将a与b比较,并把小者赋给b,大的赋给a;第三步将a与c比较,并把小者赋给c,大的赋给a第四步将b与c比较,并把小者赋给c,大的赋给b第五步按顺序输出a,b,c例6编写程序,使得任意输入3个整数按大到小的顺序输出。算法101INPUT“a,b,c=”;a,b,cIFb>aTHENt=aa=bb=tENDIFIFc>aTHENt=aa=cc=tENDIFIFc>bTHENt=bb=cc=tENDIFPRINTa,b,cEND相应的QBASIC程序:开始t=a,a=b,b=tt=a,a=c,c=tt=b,b=c,c=t输入a,b,c输入a,b,cb>a?c>a?c>b?结束是是否否是否对应的流程图INPUT“a,b,c=”;a,b,c相应的QBASIC程102练习巩固开始输入a,b,ca+b>c,a+c>b,b+c>a是否同时成立?存在这样的三角形不存在这样的三角形结束否是(1)
该程序框图所表示的算法是作用是什么?并根据程序框图写出相应的程序。练习巩固开始输入a,b,ca+b>c,a+c>b,存在这1031.2.3循环语句三中天地1.2.3循环语句三中天地104循环结构的定义:
在一些算法中,从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构。反复执行的处理步骤称为循环体。两种循环结构有什么差别?AP成立不成立While(当型)循环
成立AP不成立Until(直到型)循环循环结构的定义:在一些算法中,从某处开始,105
成立AP不成立AP成立不成立While(当型)循环Until(直到型)循环两种循环结构有什么差别?先执行循环体,然后再检查条件是否成立,如果不成立就重复执行循环体,直到条件成立退出循环。先判断指定的条件是否为真,若条件为真,执行循环条件,条件为假时退出循环。先执行后判断先判断后执行成立AP不成立AP成立不成立While(当型)循环Un106循环结构AP成立不成立While(当型)循环算法中的循环结构是由循环语句来实现的。
成立AP不成立Until(直到型)循环循环结构AP成立不成立While(当型)循环算法中的循环结构107两种循环语句:WHILE
条件循环体WEND(1)WHILE语句的一般格式:
当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句.也叫“前测试型”循环循环体满足条件?是否While(当型)循环两种循环语句:WHILE条件(1)WHILE语句的一般格式108练习、根据1.1.2例3中的程序框图,编写计算机程序来计算1+2+…+100的值i<=100?i=1开始输出sum结束否是sum=0i=i+1sum=sum+ii=1sum=0WHILEi<=100
sum=sum+ii=i+1WENDPRINTsumEND程序:练习、根据1.1.2例3中的程序框图,编写i<=100?i=109Until(直到型)循环DO
循环体LOOPUNTIL条件(2)UNTIL语句的一般格式:也叫“后测试型”循环循环体满足条件?是否思考1:参照直到型循环结构,说说计算机是按怎样的顺序执行UNTIL语句的?
思考2:用UNTIL语句编写计算机程序,来计算
1+2+…+100的值.Until(直到型)循环DO(2)UNTIL语句的一般格式:110思考2:用UNTIL语句编写计算机程序,来计算
1+2+…+100的值.i=1sum=0DO
sum=sum+ii=i+1LOOPUNTILi>100PRINTsumENDi=1开始结束sum=0输出sumi=i+1sum=sum+ii>100?否是程序框图:程序:思考2:用UNTIL语句编写计算机程序,来计算i=1i=1开111思考3:图1.1-2,用按照算法执行的顺序,把程序框图中的内容转化为相应的程序语句。开始输入nflag=1n>2?d=2是d整除n?flag=0d<=n-1且flag=1?flag=1?n是质数结束是d=d+1否否n不是质数否是否是思考3:图1.1-2,用按照算法执行的顺序,把程序开始输入n112(1)n=5开始Flag=1n>2d=2输入nd<=n-1且flag=1?N不是质数n是质数d整除n?Flag=0Flag=1?结束d=d+1是是是否否是否否(1)(2)(2)n=48否(1)n=5开始Flag=1n>2d=2输入nd<=n-1113INPUT“n=”;nflag=1IFn>2THENd=2WHILEd<=n-1ANDflag=1IFnMODd=0THENflag=0ELSEd=d+1ENDIFWENDENDIFIFflag=1THENPRINTn;"是质数."ELSEPRINTn;"不是质数."ENDIFEND思考题:判断质数的算法是否还有所改进?INPUT“n=”;n思考题:判断质数的114练习P231.根据你画出的用二分法求方程x2-2=0的近似根的程序框图,写出相应的程序语句。2.编写程序,计算函数f(x)=x2-3x+5当x=1,2,3,…,20时的函数值。3.编写一个程序,输入正整数n,计算它的阶乘n!(n!=n*(n-1)*…*3*2*1)练习P231.根据你画出的用二分法求方程x2-2=0的2115练习P231.根据你画出的用二分法求方程x2-2=0的近似根的程序框图,写出相应的程序语句。开始x1=1,x2=2c=0.005输出xf(x1)f(x)<0?否是x1=xx2=x|x1-x2|<c?是否结束f(x)=0?否是练习P231.根据你画出的用二分开始x1=1,x2=2c116练习P23开始x1=1,x2=2c=0.005输出xf(x1)f(x)<0?否是x1=xx2=x|x1-x2|<c?是否结束f(x)=0?否是x1=1x2=2c=0.005DOX=(X1+X2)/2f(x1)=x1^2-2f(x)=x^2-2IFf(x)=0THENPRINT"方程根为:";xELSEIFf(x1)*f(x)<0THENx2=xELSEx1=xENDIFENDIFLOOPUNTILABS(x1-x2)<=cPRINT"方程的近似根为:";xEND练习P23开始x1=1,x2=2c=0.005输出xf(117练习P232.编写程序,计算函数f(x)=x2-3x+5当x=1,2,3,…,20时的函数值。x=1WHILEx<=20y=x^2-3*x+5PRINT"x=";xPRINT"y=";yx=x+1WENDEND练习P232.编写程序,计算函数f(x)=x2-3x+5118练习P233.编写一个程序,输入正整数n,计算它的阶乘n!(n!=n*(n-1)*…*3*2*1)t=1i=1INPUT"请输入n的值:";nDOt=t*ii=i+1LOOPUNTILi>nPRINT"这个数的阶乘为:";tEND练习P233.编写一个程序,输入正整数n,计算它的t=1119练习巩固1、设计一个算法框图:逐个输出12,22,32,……,n2,并写出相应的QBASIC程序。INPUTni=0WHILEi<ni=i+1t=i^2PRINTtWENDENDINPUTni=0DOi=i+1t=i^2PRINTtLOOPUNTILi>=nEND结束i=0开始i=i+1:t=i^2i>=n?否是PRINTtINPUTn练习巩固1、设计一个算法框图:逐个输出12,22,32,……1202、设计一个算法框图:求满足1+2+3+…+n>10000的最小正整数n,并写出相应的QBASIC程序。结束输出ii=0,Sum=1开始i=i+1Sum=Sum*iSum>10000?否是i=0sum=0DOi=i+1sum=sum+iLOOPUNTILsum>10000PRINTiEND2、设计一个算法框图:求满足1+2+3+…+n>121小结WHILE
条件循环体WENDDO
循环体LOOPUNTIL条件两种循环语句:循环体满足条件?是否(1)
While(当型)循环(2)Until(直到型)循环循环体满足条件?是否小结WHILE条件DO两种循环语句:循环体满足条件?是122再见再见123算法案例(第一课时)算法案例(第一课时)1241、求两个正整数的最大公约数(1)求25和35的最大公约数(2)求49和63的最大公约数2、求8251和6105的最大公约数25(1)5535749(2)77639所以,25和35的最大公约数为5所以,49和63的最大公约数为71、求两个正整数的最大公约数(1)求25和35的最大公约数2125辗转相除法(欧几里得算法)观察用辗转相除法求8251和6105的最大公约数的过程第一步用两数中较大的数除以较小的数,求得商和余数
8251=6105×1+2146结论:8251和6105的公约数就是6105和2146的公约数,求8251和6105的最大公约数,只要求出6105和2146的公约数就可以了。第二步对6105和2146重复第一步的做法
6105=2146×2+1813
同理6105和2146的最大公约数也是2146和1813的最大公约数。为什么呢?思考:从上述的过程你体会到了什么?辗转相除法(欧几里得算法)观察用辗转相除法求8251和610126完整的过程8251=6105×1+21466105=2146×2+18132146=1813×1+3331813=333×5+148333=148×2+37148=37×4+0例2用辗转相除法求225和135的最大公约数225=135×1+90135=90×1+4590=45×2显然37是148和37的最大公约数,也就是8251和6105的最大公约数显然45是90和45的最大公约数,也就是225和135的最大公约数思考1:从上面的两个例子可以看出计算的规律是什么?S1:用大数除以小数S2:除数变成被除数,余数变成除数S3:重复S1,直到余数为0完整的过程8251=6105×1+21466105=214127
辗转相除法是一个反复执行直到余数等于0停止的步骤,这实际上是一个循环结构。8251=6105×1+21466105=2146×2+18132146=1813×1+3331813=333×5+148333=148×2+37148=37×4+0m=n×q+r用程序框图表示出右边的过程r=mMODnm=nn=rr=0?是否思考2:辗转相除法中的关键步骤是哪种逻辑结构?辗转相除法是一个反复执行直到余数等于0停止的步骤,这128《九章算术》——更相减损术算理:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。第一步:任意给顶两个正整数;判断他们是否都是偶数。若是,则用2约简;若不是则执行第二步。第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个等数就是所求的最大公约数。《九章算术》——更相减损术算理:可半者半之,不可半者,副置129例3用更相减损术求98与63的最大公约数解:由于63不是偶数,把98和63以大数减小数,并辗转相减98-63=35
63-35=28
35-28=7
28-7=2121-7=1414-7=7所以,98和63的最大公约数等于7练习:课本P36练习第1题例3用更相减损术求98与63的最大公约数解:由于63不是130高中数学人教版必修三课件131算法案例(第二课时)算法案例(第二课时)132计算多项式f(x)=x5+x4+x3+x2+x+1当x=5的值算法1:因为f(x)=x5+x4+x3+x2+x+1所以f(5)=55+54+53+52+5+1=3125+625+125+25+5+1=3906算法2:f(5)=55+54+53+52+5+1=5×(54+53+52+5+1)+1=5×(5×(53+52+5+1)+1)+1=5×(5×(5×(52+5+1)+1)+1)+1=5×(5×(5×(5×(5+1)+1)+1)+1)+1分析:两种算法中各用了几次乘法运算?和几次加法运算?计算多项式f(x)=x5+x4+x3+x2+x+1当x=133《数书九章》——秦九韶算法设是一个n次的多项式对该多项式按下面的方式进行改写:思考:当知道了x的值后该如何求多项式的值?这是怎样的一种改写方式?最后的结果是什么?《数书九章》——秦九韶算法设是一个n次的多项式对该多项式按下134要求多项式的值,应该先算最内层的一次多项式的值,即然后,由内到外逐层计算一次多项式的值,即最后的一项是什么?这种将求一个n次多项式f(x)的值转化成求n个一次多项式的值的方法,称为秦九韶算法。思考:在求多项式的值上,这是怎样的一个转化?要求多项式的值,应该先算最内层的一次多项式的值,即然后,由内135例2已知一个五次多项式为用秦九韶算法求这个多项式当x=5的值。解:将多项式变形:按由里到外的顺序,依此计算一次多项式当x=5时的值:所以,当x=5时,多项式的值等于17255.2你从中看到了怎样的规律?怎么用程序框图来描述呢?例2已知一个五次多项式为用秦九韶算法求这个多项式当x=136开始输入f(x)的系数:a0、a1、a2、a3、a4、a5输入x0n=0v=a5v=v·x0+a5-nn=n+1n<5?输出v结束否是注意:要想使用检验功能,请使用前,先要减低宏的安全限制开始输入f(x)的系数:输入x0n=0v=a5v=v·x137排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,6方法1:S1:比较第2个数与第1个数的大小,并排序得3,8S2:将第3个数与S1中的数比较,插入适当的位置,得到2,3,8S3:将第4个数与S2中的数比较,并插入适当的位置,如此继续下去,直到把最后一个数插入到上一步已排好的数列的合适位置为止,得到:2,3,5,82,3,5,8,92,3,5,6,8,9S4:S5:排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,138排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,6方法1:过程演示832596开始排第1次排第2次排第3次排第4次832596382596238596235896235896排第5次235689直接排序法排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,139排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,6方法2:S1:用第1个数与第2个数比较,若前者小则两数不变,否则,交换这两个数的位置。S2:按这样的原则,比较第2个数和第3个数,前者小则两数不变,否则,交换这两个数的位置……直到比完最后两个数。(称为“一趟”)S3:如果前一趟的比较中交换的次数为0,说明排序已完成,否则回到S2。根据题意,一趟后的结果是什么?为什么说前一趟的比较中交换为0次时,排序完成?3,2,5,8,6,9排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,140排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,6请将每一趟的结果写出来第1趟832596382596328596325896325896325869该趟中交换的次数为________次4排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,141排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,6请将每一趟的结果写出来第2趟325869235869235869235869235689235689该趟中交换的次数为________次2排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,142排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,6请将每一趟的结果写出来第3趟235689235689235689235689235689235689该趟中交换的次数为________次,0所以排序的结果为:2,3,5,6,8,9排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,143练习:1、根据前面的介绍阅读课本P32的例3,并完成图1.3-6的填空练习:1、根据前面的介绍阅读课本P32的例3,并完成图1.3144课后作业课本P38的习题1.3第2、3题课后作业课本P38的习题1.3第2、3题145算法案例(第三课时)算法案例(第三课时)146一、进位制1、什么是进位制?2、最常见的进位制是什么?除此之外还有哪些常见的进位制?请举例说明.进位制是人们为了计数和运算方便而约定的记数系统。一、进位制1、什么是进位制?2、最常见的进位制是什么?除此之1471、我们了解十进制吗?所谓的十进制,它是如何构成的?十进制由两个部分构成例如:3721其它进位制的数又是如何的呢?第一、它有0、1、2、3、4、5、6、7、8、9十个数字;第二、它有“权位”,即从右往左为个位、十位、百位、千位等等。(用10个数字来记数,称基数为10)表示有:1个1,2个十,7个百即7个10的平方,
3个千即3个10的立方1、我们了解十进制吗?所谓的十进制,它是如何构成的?十进制由1482、二进制二进制是用0、1两个数字来描述的。如11001等(1)二进制的表示方法区分的写法:11001(2)或者(11001)28进制呢?如7342(8)k进制呢?anan-1an-2…a2a1(k)?2、二进制二进制是用0、1两个数字来描述的。如11001等149二、二进制与十进制的转换1、二进制数转化为十进制数例1将二进制数110011(2)化成十进制数解:根据进位制的定义可知所以,110011(2)=51。二、二进制与十进制的转换1、二进制数转化为十进制数例1将150练习将下面的二进制数化为十进制数?(1)11(2)111(3)1111(4)11111练习将下面的二进制数化为十进制数?(1)11(2)111(31512、十进制转换为二进制(除2取余法:用2连续去除89或所得的商,然后取余数)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 染整行业绿色制造与环保法规执行考核试卷
- 玻璃纤维增强塑料在建筑外墙材料的应用考核试卷
- 人事行政培训人力资源战略考核试卷
- 木质装饰材料选购技巧考核试卷
- 皮革制品保养市场前景分析考核试卷
- 医院建筑安全与设施维护知识考核试卷
- 柑橘种植园生态环境保护考核试卷
- 生态保护与生态智慧城市建设考核试卷
- 财务报销票据粘贴规范
- 《上下前后左右》位置课件
- 2025年4月自考13887经济学原理中级押题及答案
- 2025广东广州市花都区恒悦房地产开发有限公司招聘项目用工人员16人笔试参考题库附带答案详解
- 琴行规章制度
- 小学校长在月度教师会议总结发言:教学、管理、成长全回顾
- 国企人力笔试题库及答案
- 公司事故隐患内部报告奖励制度
- 如何通过合理膳食安排促进婴幼儿成长发育
- JJF(纺织) 061-2024 圆盘取样器校准规范
- 智能健康养老服务人才培养创新与实践探索
- 2025年宣传策划类面试题及答案
- 人教版(2024)七年级下册生物期中复习必背知识点提纲
评论
0/150
提交评论