高中算法初步.docx
- 文档编号:8713467
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:27
- 大小:109.29KB
高中算法初步.docx
《高中算法初步.docx》由会员分享,可在线阅读,更多相关《高中算法初步.docx(27页珍藏版)》请在冰豆网上搜索。
高中算法初步
FinalrevisionbystandardizationteamonDecember10,2020.
高中算法初步
109004算法初步
【考纲要求】
1.了解算法的含义,了解算法的思想.
2.理解算法框图的三种基本结构:
顺序结构、选择结构、循环结构.
【把脉考情】
从近两年的高考试题来看,循环结构与条件结构是考查的热点,题型以选择、填空题为主,属容易题.
本节内容常考的类型有:
功能判断型、结果输出型、判断条件型,同时注意算法思想的应用,预测2012年仍为考查的热点.
【要点梳理】
一、算法的概念
1.算法的定义:
是指按照一定规则解决某一类问题的明确和有限的步骤.
2.算法的特征:
(1)概括性:
写出的算法必须能解决某一类问题,并且能够重复使用.
(2)逻辑性:
算法从初始步骤开始,分为若干明确的步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,而且每一步都是正确无误的,从而组成了一个有着很强逻辑性的步骤序列.
(3)有穷性:
算法有一个清晰的起始步,终止步是表示问题得到解答或指出问题没有解答,所有序列必须在有限个步骤之内完成,不能无停止地执行下去.
(4)不唯一性:
求解某一个问题的算法不一定只有唯一的一个,可以有不同的算法,当然这些算法有简繁之分、优劣之别.
(5)普遍性:
很多具体的问题,都可以设计合理的算法去解决.
二、程序框图
1.程序框图基本概念:
(一)程序构图的概念:
程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形。
一个程序框图包括以下几部分:
表示相应操作的程序框;带箭头的流程线;程序框外必要文字说明。
(二)构成程序框的图形符号及其作用
程序框
名称
功能
终端框(起止框)
表示一个算法的起始和结束,是任何流程图不可少的。
输入、输出框
表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置。
处理框(执行框)
赋值、计算,算法中处理数据需要的算式、公式等分别写在不同的用以处理数据的处理框内。
判断框
判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”。
流程线
连接程序框,
Ο
连接点
连接程序框图的两部分
学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下:
(1)使用标准的图形符号。
(2)框图一般按从上到下、从左到右的方向画。
(3)除判断框外,大多数流程图符号只有一个进入点和一个退出点。
判断框具有超过一个退出点的唯一符号。
(4)判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。
(5)在图形符号内描述的语言要非常简练清楚。
(三)算法的三种基本逻辑结构:
顺序结构、条件结构、循环结构。
(1)顺序结构:
顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
顺序结构在程序框图中的体现就是用流程线将程序框自上而
下地连接起来,按顺序执行算法步骤。
如在示意图中,A框和B
框是依次执行的,只有在执行完A框指定的操作后,才能接着执
行B框所指定的操作。
(2)条件结构:
条件结构是指在算法中通过对条件的判断根据条件是否成立而选择不同流向的算法结构。
条件P是否成立而选择执行A框或B框。
无论P条件是否成立,只能执行A框或B框之一,不可能同时执行A框和B框,也不可能A框、B框都不执行。
一个判断结构可以有多个判断框。
条件结构的典型问题就是分段函数的求值问题及有关分类的其他问题.
在程序框图设计中,程序的流向要多次根据判断做出选择时,一般要用到条件结构的“嵌套”.所谓条件结构的“嵌套”,就是在条件结构的一支(或两支)内的步骤中又要用到条件结构.这类问题一般比较复杂,设计时要注意每一个处理框执行时对应的条件.
(3)循环结构:
在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,显然,循环结构中一定包含条件结构。
循环结构又称重复结构,循环结构可细分为两类:
①一类是当型循环结构,如下左图所示,它的功能是当给定的条件P成立时,执行A框,A框执行完毕后,再判断条件P是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次条件P不成立为止,此时不再执行A框,离开循环结构。
②另一类是直到型循环结构,如下右图所示,它的功能是先执行,然后判断给定的条件P是否成立,如果P仍然不成立,则继续执行A框,直到某一次给定的条件P成立为止,此时不再执行A框,离开循环结构。
当型循环结构直到型循环结构
注意:
1循环结构要在某个条件下终止循环,这就需要条件结构来判断。
因此,循环结构中一定包含条件结构,但不允许“死循环”。
2在循环结构中都有一个计数变量和累加变量。
计数变量用于记录循环次数,累加变量用于输出结果。
计数变量和累加变量一般是同步执行的,累加一次,计数一次。
顺序结构
条件结构
循环结构
定义
由若干个依次执行的步骤组成的,这是任何一个算法都离不开的基本结构
算法的流程根据条件是否成立有不同的流向,条件结构就是处理这种过程的结构
从某处开始,按照一定的条件反复执行某些步骤的情况,反复执行的步骤称为
循环体
程序框图
直到型当型
[究疑点]
三种基本逻辑结构的共同点是什么
提示:
三种逻辑结构的共同点即只有一个入口和一个出口,每一个基本逻辑结构的每一部分都有机会被执行到,而且结构内不存在死循环.
三、程序语言
1.输入语句
(1)输入语句的一般格式:
.
(2)输入语句与程序框图中的输入框对应,作用是实现算法的输入信息功能;
(3)“提示内容”提示用户输入什么样的信息,变量是指程序在运行时其值是可以变化的量;(4)输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式;
(5)提示内容与变量之间用分号“;”隔开,若输入多个变量,变量与变量之间用逗号“,”隔开。
2.输出语句
(1)输出语句的一般格式:
.
(2)输出语句的作用是实现算法的输出结果功能;
(3)“提示内容”提示用户输入什么样的信息,表达式是指程序要输出的数据;
(4)输出语句可以输出常量、变量或表达式的值以及字符。
3.赋值语句
(1)赋值语句的一般格式:
(2)赋值语句的作用是将表达式所代表的值赋给变量;
(3)赋值语句中的“=”称作赋值号,与数学中的等号的意义是不同的。
赋值号的左右两边不能对换,它将赋值号右边的表达式的值赋给赋值号左边的变量;
(4)赋值语句左边只能是变量名字,而不是表达式,右边表达式可以是一个数据、常量或算式;
(5)对于一个变量可以多次赋值。
注意:
①赋值号左边只能是变量名字,而不能是表达式。
如:
2=X是错误的。
②赋值号左右不能对换。
如“A=B”“B=A”的含义运行结果是不同的。
③不能利用赋值语句进行代数式的演算。
(如化简、因式分解、解方程等)④赋值号“=”与数学中的等号意义不同。
4.条件语句
(1)条件语句的一般格式有两种:
①IF—THEN—ELSE语句;②IF—THEN语句。
(2)IF—THEN—ELSE语句
IF—THEN—ELSE语句的一般格式为图1,对应的程序框图为图2。
图1图2
分析:
在IF—THEN—ELSE语句中,“条件”表示判断的条件,“语句1”表示满足条件时执行的操作内容;“语句2”表示不满足条件时执行的操作内容;ENDIF表示条件语句的结束。
计算机在执行时,首先对IF后的条件进行判断,如果条件符合,则执行THEN后面的语句1;若条件不符合,则执行ELSE后面的语句2。
(3)IF—THEN语句
IF—THEN语句的一般格式为图3,对应的程序框图为图4。
补充:
条件语句嵌套的形式
在有些复杂的算法中,有时需要按条件执行的某一语句继续按照另一个要求进行判断,这时可以再利用一个条件语句进行判断,这就形成了条件语句的嵌套.
(1)一般形式:
(2)在编写条件语句的嵌套中的“条件”时,要注意“If”与“EndIf”的配对,有时可以利用文字的缩进来表示嵌套的层次,以帮助对程序的阅读和理解.
(3)对于条件语句的嵌套,一定要分清内层条件语句和外层条件语句,内层的条件结构是外层的条件结构的一个分支.
(4)当条件结构的嵌套中的“条件”是并列的,则为条件语句的叠加.
5.循环语句
循环结构是由循环语句来实现的。
对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构。
即WHILE语句和UNTIL语句。
(1)WHILE语句
①WHILE语句的一般格式是对应的程序框图是
②当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。
这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。
因此,当型循环有时也称为“前测试型”循环。
(2)UNTIL语句
①UNTIL语句的一般格式是对应的程序框图是
②直到型循环又称为“后测试型”循环,从UNTIL型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOPUNTIL语句后执行其他语句,是先执行循环体后进行条件判断的循环语句。
分析:
当型循环与直到型循环的区别与联系:
(1)联系:
两种语句都可以实现计算机反复执行循环体的目的,只是表达形式不同;一般来讲,While语句与Until语句可以相互转化.
(2)区别:
①计算机执行的顺序不同:
While先条件,Until先循环.
②条件的内容不同:
While满足就循环,Until满足就停止.
③对循环体的执行次数不同:
在While语句中,循环体可以一次不执行就退出循环结构;而在任何Until语句中,循环体至少要执行一次.
应用循环语句编写程序应注意的几个问题:
(1)循环语句中的变量,一般需要进行一定的初始化操作.
(2)循环语句在循环的过程中需要有“结束”的语句,程序中最忌“死循环”,所谓“死循环”就是指该循环条件永远成立,没有跳出循环体的机会.
(3)在循环中要改变循环体条件的成立因素.程序每执行一次循环体,循环条件中涉及的变量就会发生改变,正在步步逼近满足跳出循环体的条件
循环结构中几个常用变量:
(1)计数变量:
用来记录某个事件发生的次数,如i=i+1;
(2)累加变量:
用来计算数据之和,如s=s+i;
(3)累乘变量:
用来计算数据之积,如p=p×i.
处理循环结构的框图问题,关键是理解认清终止循环结构的条件及循环次数.
补充:
常用的程序符号与数学符号对照表:
注:
“/”表示取商运算,“Mod”表示求余运算.
四、算法案例
1.辗转相除法与更相减损术
(1)辗转相除法。
辗转相除法(欧几里得算法):
对于给定的两个数,用较大的数除以较小的数,若余数不为零,则将余数和较小的数构成一对新数,继续上面的除法,直到余数为零,此时的除数就是所求两数的最大公约数.
(2)更相减损术
更相减损术(等值算法):
对于给定的两个数,先判断它们是否都是偶数,若是,用2约简;若不是,执行后面步骤.再以其中较大的数减去较小的数,然后将差和较小的数构成一对新数,再用较大的数减去较小的数,反复执行以上步骤,直到被减数与较小的数相等为止,此时相等的这个数与约简数的乘积即为所求的最大公约数.
辗转相除法与更相减损术的区别:
名称
辗转相除法
更相减损术
区别
①以除法为主
②两个整数差值较大时,运算次数较少
③相除余数为零时得结果
①以减法为主
②两个整数差值较大时,运算次数较多
③相减,两数相等得结果
联系
①都是求最大公约数的方法
②二者的实质都是递归的过程
③二者都要用循环结构来实现
程序
求正整数a,b(a>b)的最大公约数
2.秦九韶算法与排序
(1)秦九韶算法概念:
把一个多项式f(x)=anxn+an-1xn-1+…+a1x+a0改写成如下形式:
f(x)=anxn+an-1xn-1+…+a1x+a0=(((anx+an-1)x+an-2)x+…+a1)x+a0.
求多项式的值时,首先计算最内层括号内一次多项式的值,即v1=anx+an-1,然后由内向外逐层计算一次多项式的值,即v2=v1x+an-2,v3=v2x+an-3,…,vn=vn-1x+a0.这样,求n次多项式f(x)的值就转化为求n个一次多项式的值,这就是秦九韶算法.
秦九韶算法的特点在于把求一个n次多项式的值转化为求n个一次多项式的值,即把求f(x)=anxn+an-1xn-1+…+a1x+a0的值转化为求递推公式:
(k=1,2,…,n).
这样可以最多计算n次乘法和n次加法即可得多项式的值,和直接代入多项式相比减少了乘法的运算次数(通常求多项式f(x)=anxn+an-1xn-1+…+a1x+a0的值时,计算anxn,需n次乘法;计算an-1xn-1,需n-1次乘法……共需n+(n-1)+…+1=
次乘法,还需n次加法,总共进行
+n次运算),提高了运算效率.
(2)两种排序方法:
①直接插入排序
基本思想:
插入排序的思想就是读一个,排一个。
将第1个数放入数组的第1个元素中,以后读入的数与已存入数组的数进行比较,确定它在从大到小的排列中应处的位置.将该位置以及以后的元素向后推移一个位置,将读入的新数填入空出的位置中.(由于算法简单,可以举例说明)
②冒泡排序
基本思想:
依次比较相邻的两个数,把大的放前面,小的放后面.即首先比较第1个数和第2个数,大数放前,小数放后.然后比较第2个数和第3个数......直到比较最后两个数.第一趟结束,最小的一定沉到最后.重复上过程,仍从第1个数开始,到最后第2个数......由于在排序过程中总是大数往前,小数往后,相当气泡上升,所以叫冒泡排序.
五、进位制
1.概念:
为了计数或运算方便而约定的记数系统,“满足k进一”就是k进制,k是基数(其中k是大于1的整数).k进制的数可以表示为一串数字连写在一起的形式为:
anan-1…a1a0(k)(0 2.不同进制之间的转化 (1)k进制转化为十进制数: 先把k进制数写成不同数位上的数字与基数的幂的乘积之和的形式,再按十进制数的运算法则计算出结果即可. (2)十进制数转化为k进制数: 用k进制数的基数k去除十进制数,再用k去除所得的商,反复进行,直至商为0,然后将各步所得的余数倒序写出,即为相应的k进制.这种方法叫“除k取余法”. (3)两个非十进制数之间的转化: 若是将k1进制数转化为k2进制数,则先将将k1进制数转化为十进制数,再将所得十进制数化为k2进制数. 【考点突破】 〖考点1〗对算法概念的理解 1.下面关于算法的说法正确的是()D A.算法就是某个问题的解决方法 B.一个算法不产生确定的结果 C.算法的步骤可以无限地执行下去不停止 D.对于一个给定的问题,其算法不一定唯一 〖考点2〗对程序框的认识 1.以下是给出的对程序框图的几种说法: ①任何一个程序框图都必须有起、止框; ②输入框只能放在开始框后,输出框只能放在结束框前; ③判断框是唯一具有超过一个退出点的符号; ④对于一个程序来说,判断框内的条件表达方法不是唯一的. ⑤程序框图是描述算法的语言; ⑥由于算法设计时要求返回执行的结果,故必须有输出框,对于变量的赋值可以通过处理框完成,故算法设计时不一定要用输入框; 其中正确说法的个数是(D) A.3B.4C.5D.6 2.有下列说法: ①任何一个算法都包含顺序结构;②条件结构中一定包含循环结构;③循环结构一定包含条件结构;④当型循环结构是先执行一次循环体再判断条件;⑤直到型循环结构是直到条件成立时停止循环.其中正确的个数是( )C A.1B.2C.3D.4 解: ①③⑤正确;②④不正确.故选C. 3.下列关于条件结构的描述,不正确的是()C A.条件结构的出口有两个,但在执行时,只有一个出口是有效的 B.条件结构的判断条件可以不只一个 C.双选择条件结构有两个出口,单选择条件只有一个出口 D.条件结构的“嵌套”,就是在条件结构的一支(或两支)内的步骤中又要用到条件结构. 〖考点3〗对算法语言的理解 1. (1)下列赋值语句正确的是( )B A.S=S+i2B.A=-AC.x=2x+1D.P= 解: 在程序语句中乘方用^表示,∴A不正确;乘号不能省略,∴C不正确;D中应用SQR(x)表示,∴D不正确;B中是将变量A的相反数赋给变量A. (2)下列赋值语句正确的是()D =B+y=0=B=-2=T*T 评: 赋值语句在程序运行的过程中给变量赋值,具有计算功能,使用赋值语句时要注意以下几点: ①“=”的右侧必须为表达式或常量,左侧必须为变量,如A=3正确,而3=A则错误.②一个赋值语句只能给一个变量赋值,如A=B=5就是错误的,可写成A=5,B=5. 2.判断以下给出的输入、输出语句是否正确为什么 (1)输入语句Input a;b;c (2)输入语句Input x=3 (3)输出语句Print A=4 (4)输出语句Print 20,3*2 解: (1)不正确,变量之间应用“,”隔开. (2)不正确,Input语句中只能是变量,而不能是表达式. (3)不正确,Print 语句中不能再用赋值号. (4)正确,Print 语句可以输出常量、表达式值. 评: (1)输入、输出语句中,“提示内容”与变量(或表达式)之间必须用“;”分开; (2)输入、输出语句中,“提示内容”连同它后面的“;”可省略;(3)输出语句中可以只输出“提示内容”,而不要后面的表达式,输入语句则不能. 〖考点4〗读图 1.给出如图程序框图,其功能是(C) A.求a-b的值 B.求b-a的值C.求|a-b|的值D.以上都不对 2.下面程序运行后,输出的值是( ) A.42C.44D.45 【解析】 由于442<2000,452>2000,根据算法语句需输出44. 【答案】 C 3.程序 若输入a=3,执行上述程序后输出的结果是 ( ) A.9B.3C.10D.6 【解析】 该程序反映的算法是求分段函数 y= 的函数值. 故a=3时,y=2×3=6. 【答案】 D 4.某程序框图如图所示,该程序运行后输出的倒数第二个数是 ( ) 【解析】 依次运行程序得: 第一次,n=2,a=2; 第二次,n=3,a= ; 第三次,n=4,a= ; 再运行第四次即结束,故倒数第二次输出的数是 . 【答案】 C 5.读程序 当输出的值y的范围大于1时,则输入的x值的取值范围是 ( ) A.(-∞,-1)B.(1,+∞) C.(-∞,-1)∪(1,+∞)D.(-∞,0)∪(0,+∞) 【解析】 由程序可得y= , ∵y>1,∴①当x≤0时, x-1>1,即2-x>2, ∴-x>1,∴x<-1.②当x>0时, >1,x>1, 故输入的x值的范围为(-∞,-1)∪(1,+∞). 【答案】 C 6.有编号为1,2,…,700的产品,现需从中抽取所有编号能被7整除的产品作为样品进行检验.下面是四位同学设计的程序框图,其中正确的是(B) 解析: 选项A、C中的程序框图会输出0,故排除A、C;选项D中的程序框图不能输出700,故排除D.答案: B 7.如下图所示的程序框图输出的结果为( ) A.b=0B.b=1C.b=4D.b=5 【答案】D 【解析】根据程序执行的过程a=1,b=1+3=4,b=4+1=5.故选D. 8.输入-5,按下图中所示程序框图运行后,输出的结果是( ) A.-5B.0C.-1D.1 【答案】D 【解析】此算法的功能是求分段函数f(x)= 的函数值,f(-5)=1.故选D. 9.如图所示的程序框图输出的结果是( ) 【答案】C 【解析】第一次执行循环体,A= = ,i=2;第二次执行循环体,A= = ,i=3,第三次执行循环体,A= = ,i=4,第四次执行循环体,A= = ,i=5,结束循环.故选C. 10.在如图所示的算法流程图中,若f(x)=2x,g(x)=x2,则h (2)的值为( ) A.9B.8C.6D.4 【答案】D 【解析】h(x)=max{f(x),g(x)},∴h (2)=4.故选D. 11.如图1所示的程序框图所进行的求和运算是( ) + + +…+ B.1+ + +…+ C.1+ + +…+ + + +…+ 【答案】A 【解析】初始值i=2,每循环一次加2,s从 一直累加到 .故选A. 12.为确保信息安全,信息需加密传输,发送方由明文→密文(加密),接收方由密文→明文(解密),已知加密规则如图2所示,例如,明文1,2,3,4对应密文5,7,18,16.当接收方收到密文14,9,23,28时,则解密得到的明文为( ) 图1 图2 A.4,6,1,7B.7,6,1,4 C.6,4,1,7D.1,6,4,7 【答案】C 【解析】程序框图给出的加密规则是: m=a+2b,n=2b+c,p=2c+3d,q=4d.因此接收到密文14,9,23,28时,有a+2b=14,2b+c=9,2c+3d=23,4d=28,∴a=6,b=4,c=1,d=7.∴解密得到的明文为6,4,1,7.故选C. 13.某流程图如图所示,现输入如下四个函数,则可以输出的函数是(C) A.f(x)=x2 B.f(x)= C.f(x)= D.f(x)= 解析: 根据流程图可知输出的函数为奇函数,并且存在零点.经验证: 选项A,f(x)=x2为偶函数;选项B,f(x)= 不存在零点;选项C,f(x)的定义域为全体实数,f(-x)= =-f(x),因此为奇函数,并且由f(x)= =0可得x=0,存在零点;选项D,f(x)= 不具有奇偶性.答案: C 14.执行如下程序,结果是。 【解析】 循环10次,S=1+3+5+……+19=100. 【答案】 100 15.下面程序表达的是求函数________的值. 【解析】 根据所给的程序语句可知,这是条件语句输入x后随着x取不同的值输出的y的结果也不相同,故所求的是一个分段函数y= 的值. 【答案】 y= 16.如图4是一个算法的程序框图,当输入的值x为5时,则其输出的结果是______.2 图4 解: 第一次执行循环体,x=2;第二次执行循环体,x=-1,结束循环,y=-1=2. 17.如果执行右面的框图,输入N=5,则输出数等于(D) 18.如图所示的程序,如果n=6,则输出的结果为( ) A.6B.720C.120D.1 【答案】B 【解析
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高中 算法 初步