水激石则鸣,励激志则宏!知识改变命运,勤奋成就未来!共25页第1页1/20/2021高一数学必修3公式总结以及例题§1算法初步秦九韶算法:通过一次式的反复计算逐步得出高次多项式的值,对于一个n次多项式,只要作n次乘法和n次加法即可。表达式如下:1221111......axaxxaxaxaaxaxannnnnnn例题:秦九韶算法计算多项式,187654323456xxxxxx,0.4x时当?运算需要做几次加法和乘法答案:6,61876543x:xxxxx即理解算法的含义:一般而言,对于一类问题的机械的、统一的求解方法称为算法,其意义具有广泛的含义,如:广播操图解是广播操的算法,歌谱是一首歌的算法,空调说明书是空调使用的算法…(algorithm)1.描述算法有三种方式:自然语言,流程图,程序设计语言(本书指伪代码).2.算法的特征:①有限性:算法执行的步骤总是有限的,不能无休止的进行下去②确定性:算法的每一步操作内容和顺序必须含义确切,而且必须有输出,输出可以是一个或多个。没有输出的算法是无意义的。③可行性:算法的每一步都必须是可执行的,即每一步都可以通过手工或者机器在一定时间内可以完成,在时间上有一个合理的限度3.算法含有两大要素:①操作:算术运算,逻辑运算,函数运算,关系运算等②控制结构:顺序结构,选择结构,循环结构流程图:(flowchart):是用一些规定的图形、连线及简单的文字说明表示算法及程序结构的一种图形程序,它直观、清晰、易懂,便于检查及修改。注意:1.画流程图的时候一定要清晰,用铅笔和直尺画,要养成有开始和结束的好习惯2.拿不准的时候可以先根据结构特点画出大致的流程,反过来再检查,比如:遇到判断框时,往往临界的范围或者条件不好确定,就先给出一个临界条件,画好大致流程,然后检查这个条件是否正确,再考虑是否取等号的问题,这时候也就可以有几种书写方法了。3.在输出结果时,如果有多个输出,一定要用流程线把所有的输出总结到一起,一起终结到结束框。算法结构:顺序结构,选择结构,循环结构ABYNABpNYApYNNpA水激石则鸣,励激志则宏!知识改变命运,勤奋成就未来!共25页第2页1/20/2021直到型循环当型循环Ⅰ.顺序结构(sequencestructure):是一种最简单最基本的结构它不存在条件判断、控制转移和重复执行的操作,一个顺序结构的各部分是按照语句出现的先后顺序执行的。Ⅱ.选择结构(selectionstructure):或者称为分支结构。其中的判断框,书写时主要是注意临界条件的确定。它有一个入口,两个出口,执行时只能执行一个语句,不能同时执行,其中的A,B两语句可以有一个为空,既不执行任何操作,只是表明在某条件成立时,执行某语句,至于不成立时,不执行该语句,也不执行其它语句。Ⅲ.循环结构(cyclestructure):它用来解决现实生活中的重复操作问题,分直到型(until)和当型(while)两种结构(见上图)。当事先不知道是否至少执行一次循环体时(即不知道循环次数时)用当型循环。基本算法语句:本书中指的是伪代码(pseudocode),且是使用BASIC语言编写的,是介于自然语言和机器语言之间的文字和符号,是表达算法的简单而实用的好方法。伪代码没有统一的格式,只要书写清楚,易于理解即可,但也要注意符号要相对统一,避免引起混淆。如:赋值语句中可以用yx,也可以用yx;表示两变量相乘时可以用“*”,也可以用“”Ⅰ.赋值语句(assignmentstatement):用表示,如:yx,表示将y的值赋给x,其中x是一个变量,y是一个与x同类型的变量或者表达式.一般格式:“表达式变量”,有时在伪代码的书写时也可以用“yx”,但此时的“=”不是数学运算中的等号,而应理解为一个赋值号。注:1.赋值号左边只能是变量,不能是常数或者表达式,右边可以是常数或者表达式。“=”具有计算功能。如:3=a,b+6=a,都是错误的,而a=3*5–1,a=2a+3都是正确的。2.一个赋值语句一次只能给一个变量赋值。如:a=b=c=2,a,b,c=2都是错误的,而a=3是正确的.例题:将x和y的值交换pyyxxp,同样的如果交换三个变量x,y,z的值:pzzyyxxpⅡ.输入语句(inputstatement):Reada,b表示输入的数一次送给a,b输出语句(outstatement):Printx,y表示一次输出运算结果x,y注:1.支持多个输入和输出,但是中间要用逗号隔开!2.Read语句输入的只能是变量而不是表达式3.Print语句不能起赋值语句,意旨不能在Print语句中用“=”4.Print语句可以输出常量和表达式的值.5.有多个语句在一行书写时用“;”隔开.例题:当x等于5时,Print“x=”;x在屏幕上输出的结果是x=5Ⅲ.条件语句(conditionalstatement):1.行If语句:IfAThenB注:没有EndIf水激石则鸣,励激志则宏!知识改变命运,勤奋成就未来!共25页第3页1/20/20212.块If语句:注:①不要忘记结束语句EndIf,当有If语句嵌套使用时,有几个If,就必须要有几个EndIf②.ElseIf是对上一个条件的否定,即已经不属于上面的条件,另外ElseIf后面也要有EndIf③注意每个条件的临界性,即某个值是属于上一个条件里,还是属于下一个条件。④为了使得书写清晰易懂,应缩进书写。格式如下:例题:用条件语句写出求三个数种最大数的一个算法.或者注:1.同样的你可以写出求三个数中最小的数。2.也可以类似的求出四个数中最小、大的数Ⅳ.循环语句(cyclestatement):当事先知道循环次数时用For循环,即使是N次也是已知次数的循环当循环次数不确定时用While循环Do循环有两种表达形式,与循环结构的两种循环相对应.说明:1.While循环是前测试型的,即满足什么条件才进入循环,其实质是当型循环,一般在解决有关问题时,可以写成While循环,较为简单,因为它的条件相对好判断.2.凡是能IfAThenBElseCEndIfIfAThenBElseIfCThenDEndIfReada,b,cIfa≥bThenIfa≥cThenPrintaElsePrintcEndIfElseIfb≥cThenPrintbElsePrintcEndIfEndIfReada,b,cIfa≥banda≥cThenPrintaElseIfb≥cThenPrintbElsePrintcEndIfForIFrom初值to终值Step步长…EndForFor循环WhileA…EndWhileWhile循环DoWhilep…Loop当型Do循环Do…LoopUntilp直到型Do循环水激石则鸣,励激志则宏!知识改变命运,勤奋成就未来!共25页第4页1/20/2021用While循环书写的循环都能用For循环书写3.While循环和Do循环可以相互转化4.Do循环的两种形式也可以相互转化,转化时条件要相应变化5.注意临界条件的判定.例题:.99...531的一个算法设计计算(见课本21P)SintPrEndISS2Step99To3FromI1ForForSSintPrhileEndISS2II97Ihile11WWISSintPrhileEnd2IIISS99Ihile11WWISSintPr)99I(001I2IIISSo11或者UntilLoopDISSintPr99IISS2IIo11UntilLoopDISSintPr2IIISS)100I(99IWhileo11LoopDIS或者SintPrISS2II)99I(97IWhileo11LoopDIS或者颜老师友情提醒:1.一定要看清题意,看题目让你干什么,有的只要写出算法,有的只要求写出伪代码,而有的题目则是既写出算法画出流程还要写出伪代码。2.在具体做题时,可能好多的同学感觉先画流程图较为简单,但也有的算法伪代码比较好写,你也可以在草稿纸上按照你自己的思路先做出来,然后根据题目要求作答。一般是先写算法,后画流程图,最后写伪代码。3.书写程序时一定要规范化,使用统一的符号,最好与教材一致,由于是新教材的原因,再加上各种版本,可能同学会看到各种参考书上的书写格式不一样,而且有时还会碰到我们没有见过的语言,希望大家能以课本为依据,不要被铺天盖地的资料所淹没!Ex:1.NnnN1...31211,,使得一定存在自然数对于任意给定的2..1001...4131211的一个算法用循环语句写出求水激石则鸣,励激志则宏!知识改变命运,勤奋成就未来!共25页第5页1/20/20213..,,1001...31211写出伪代码并画出流程图的一个算法设计一个计算答案:1nPrintWhlien1SS1nnNSWhile0n0SNReEndad2.SPrintFor1-aaIaSS100to1FromI10EndForaS3.S1III1SS100I1I0S:3321否则输出转则如果算法SSSS流程图:伪代码:SPrintorFEndI1SS100to1FromI0ForS或者SPrintWhileEnd1III1SS100I10WhileIS典型例题:开始0S1I100I输出S1IIISS1NY1.下面的伪代码输出的结果是:I2Fornfrom2To10Step2I2I+1IfI20ThenII-20EndIfEndforPrintI2.下面的伪代码的目的是10Readm,n20Ifm/n=Int(m/n)ThenGoto7030cm-Int(m/n)*n40mn50nc60Goto2070Printn3.与下列为代码对应的数学表达式是Readne0S1ForIfrom1TonS=S*Iee+1/SEndforPrinte4.下面的程序输出的是ReadnI1WhileI≤nIfn/I=Int(n/I)ThenSII=I+1EndifPrintSEndwhile5.I0FornFrom1to100IfInt(n/7)=n/7thenII+1EndIfEndForPrintI上面一段为代码的目的是:6.a1b2c3abbccaPrinta,b,ca=b=c=水激石则鸣,励激志则宏!知识改变命运,勤奋成就未来!共25页第6页1/20/20217.市话话费计算方式为:自接通起。3分钟内(含3分钟)0.2元,超过3分钟的部分每分钟0.1元(不足1分钟按1分钟计),输入一个证书作为通话时长,用条件语句描述通话话费。8.某电视机厂2002年全年生产电视机60万台,计划从2003年开始每年的产量比上一年增长15%,设计一个算法,计算从哪一年开始,该厂的电视机产量超过300万台,只写出伪代码.9.(斐波那契数列)假定一对大兔子没一个月可以生一对小兔子,而小兔子出生后两个月就有生育能力,问从一对小兔子开始,一年后能繁殖多少兔子?这就是著名的斐波那契数列问题,其规律是从第三个月开始,每个月的兔子数量都是前两个月的兔子数量的和。用循环语句描述这一算法。10.一个三位数的十位和个位上的数字交换,得到一个新的三位数,新旧两个三位时都能被4整除,设计一个算法求满足条件的三位数的个数,并写出伪代码.11.若y,x是两个互质的数,则一定存在整数v,u,使得设计设35y,33x,1vyxu.,v,并用伪代码表示条件的一个算法求出一组满足u答案:1.152.求m,n的最大公约数3.!1...!31!211ne4.n的所有约数5.计算1——100能被7整除的数的个数6.a=2b=3c=27