第九章算法初步【知识特点】1.本章容是新标新增加的必修容,算法是数学及其应用的重要组成部分,也是计算机科学的重要基础,它与前面的知识有密切联系,并且与实际问题的联系也非常密切。
2.算法的三种基本结构蕴含了比较深刻的思想,成了历年高考的重点,在复习中要熟练掌握算法的逻辑结构和算法语句的格式,正确阅读、理解程序框图和算法语句。
【重点关注】1.算法和程序框图算法和程序框图的核心是程序框图是三种基本逻辑结构,它与其他知识,如函数、方程、不等式、数列等有密切的联系,应用非常广泛。
2.基本算法语句基本算法语句是将程序框图转化为程序语句以实现算法的重要手段,是算法的主体容,高考试题对算法语句的考查一般是填空题,主要形式有两种,一是对一个算法程序中缺少的关键语句进行补充;二是写出一个算法执行后的结果,难度不会太大。
【地位和作用】算法是数学及其应用的重要组成部分,是计算科学的重要基础.随着现代信息技术的飞速发展,算法在科学技术、社会发展中发挥着越来越大的作用,并日益融入社会生活的许多方面,算法思想也正在成为普通公民的常识,成为现代人应具备的一种基本数学素养.从新课改最近几年各省份的高考信息统计可以看出,命题会呈现出以下特点:1.考查题型以选择、填空题为主,分值约点3%左右,基本属于容易题;2.重点考查程序框图的应用和基本算法语句,如条件结构、循环结构,以及它们相对应的基本算法语句,注重程序框图和基本算法语句的应用及判别;3.预计本章在今后的高考中仍将在程序框图和算法语句处命题,更加注重考查学生的识图能力、分析问题和解决问题的能力。
9.1基本算法语句与程序框图【高考目标导航】一、算法与程序框图(一)考纲点击1.了解算法的含义,了解算法的思想;2.理解程序框图的三种基本逻辑结构:顺序、条件、循环。
(二)热点提示1.本节是高考的热点容,主要考查算法的含义和程序框图的理解和应用;2.本部分在高考题中以选择、填空为主,属于中档题。
二、基本算法语句(一)考纲点击理解几种基本算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句的含义。
(二)热点提示1.基本算法语句是算法的主体容,高考中重在考查对算法语句的理解和应用,其形式有:一是对一个算法程序中缺少的关键语句进行补充,二是写出一个算法执行后的结果;2.高考试题对算法语句的考查三种题型均能出现,但是重在选择题、填空题。
【考纲知识梳理】一、算法与程序框图1.算法(1)古代定义:指的是用阿拉伯数字进行算术运算的过程。
(2)现代定义:算法通常是指按照一定规则解决某一类问题的明确和有限的步骤。
(3)应用:算法通常可以编成计算机程序,让计算机执行并解决问题。
2.程序框图(1)定义:程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形。
(2)说明:在程序框图中,一个或几个程序框的组合表示算法中的一个步骤;带有方向箭头的流程线将程序框连接起来,表示算法步骤的执行顺序。
3.三种基本逻辑结构程序框图注:三种基本逻辑结构的共同点是:即只有一个入口和一个出口,每一个基本逻辑结构的每一部分都有机会被执行到,而且结构不存在死循环。
二、基本算法语句1.输入语句、输出语句、赋值语句的格式与功能语句一般格式功能输入语句INPUT“提示容”;变量输入信息输出语句PRINT“提示容”;表达式输出常量、变量的值和系统信息赋值语句变量=表达式将表达式的值赋给变量2.条件语句(1)算法中的条件结构与条件语句相对应;(2)条件语句的格式及框图①IF—THEN格式②IF—THEN—ELSE格式3.循环语句(1)算法中的循环结构与循环语句相对应。
(2)循环语句的格式及框图。
①UNTIL语句②WHILE语句注:计算机是按怎样的顺序执行循环语句的?(使用循环语句的关键是辨认出算法在执行过程中的循环特征,若先考虑判断,再进行循环,则使用当型(WHILE型)循环;若先进行循环,再判断,则使用直到型(UNTIL型)循环,直到型循环语句至少执行一次循环体,而当型循环语句则可能一次也执行循环体,二者本质上是相同的,可以相互转化。
)【要点名师透析】一、算法与程序框图※相关※1.算法的特征(1)概括性:写出的算法必须能解决某一类问题,并且能够重复使用;(2)逻辑性:算法从它的初始步骤开始,分为若干明确的步骤,前一步是后一步的前提,只有执行完前一步才能进行后一步,而且每一步都是正确无误的,从而组成了一个有着很强逻辑性的序列;(3)有穷性:算法有一个清晰的起始步,终止步时表示问题得到解答或指出问题没有解答,所有序列必须在有限个步骤完成,不能无停止地执行下去;(4)不唯一性:求解某一问题的算法不一定只有唯一的一个,可以有不同的算法,当然这些算法有简繁之分、优劣之别;(5)普遍性:很多具体的问题,都可以通过设计合理的算法去解决。
例如手算法、心算或用算盘、计算器去计算都要经过有限的、事先设计好的步骤加以解决。
同样,工作计划、生产流程等都可以认为是算法。
注:算法要求“按部就班地做”,每做一步都有唯一的结果。
2.给出一个问题,设计算法时应注意:(1)认真分析问题,联系解决此问题的一般数学方法;(2)综合考虑此类问题中可能涉及的各种情况;(3)将解决问题的过程划分为若干个步骤;(4)用简练的语言将各个步骤表示出来。
※例题解析※〖例〗写出找出1至1 0007的倍数的一个算法.解答:算法1:S1 令A=0;S2 将A不断增加1,每加一次,就将A除以7,若余数为0,则找到了一个7的倍数,将其输出;S3 反复执行第二步,直到A=1 000结束.算法2:S1 令k=1;S2 输出k·7的值;S3 将k的值增加1,若k·7的值小于1 000,则返回S2,否则结束.算法3:S1 令x=7;S2 输出x的值;S3 将x的值增加7,若没有超过1 000,则返回S2,否则结束.(二)算法的顺序结构和条件结构 ※相关※1.顺序结构是最简单的算法结构,语句与语句之间、框与框之间是按从上到下顺序进行的。
程序框图中一定包含顺序结构。
2.解决分段函数的求值问题时,一般采用条件结构设计算法。
利用条件结构解决算法问题时,要引入判断框,要根据题目的要求引入一个或多个判断框。
而判断框的条件不同,对应的下一图框中的容和操作要相应地进行变化,故要逐个分析判断框的条件。
3.画程序框图的规则 (1)使用标准的框图符号;(2)框图一般按从上到下、从左到右的方向画;(3)除判断框外,大多数程序框图中的程序框只有一个进入点和一个退出点,判断框是具有超过一个退出点的唯一符号;(4)在图形符号描述的语言要非常简练清楚。
注:(1)终端框(起止框)是任何程序框图不可少的,表明程序开始和结束。
(2)输入框和输出框可用在算法中任何需要输入、输出的位置。
※例题解析※〖例〗已知函数223(0)2(0)x x y x x ->⎧=⎨+≤⎩,写出求该函数的函数值的算法并画出程序框图。
思路解析:分析算法→写出算法→选择合适的逻辑结构→画出程序框图。
解答:算法如下: 第一步:输入x ;第二步:如果(0)x >,那么使23y x =-, 否则22y x =+; 第三步:输出y 。
程序框图如下:(三)算法的循环结构 〖例〗设计算法求111112233499100++++⨯⨯⨯⨯的值,并画出程序框图。
思路解析:(1)这是一个累加求和问题,共99项相加;(2)设计一个计数变量,一个累加变量,用循环结构实现这一算法。
解答:算法如下: 第一步:令S=0,1;i =第二步:若99i ≤成立,则执行第三步; 否则,输出S ,结束算法; 第三步:1;(1)S S i i =++第四步:1i i =+,返回第二步。
程序框图:方法一:当型循环程序框图:方法二:直到型循环程序框图:注:利用循环结构表示算法,一定要先确定是利用当型循环结构,还是直到型循环结构;第二要选择准确的表示累计的变量;第三要注意在哪一步开始循环。
(四)算法的实际应用〖例〗意大利数学家菲波拉契,在1202年出版的一书里提出了这样的一个问题:一对兔子饲养到第二个月进入成年,第三个月生一对小兔,以后每个月生一对小兔,所生小兔能全部存活并且也是第二个月成年,第三个月生一对小兔,以后每月生一对小兔.问这样下去到年底应有多少对兔子? 试画出解决此问题的程序框图,并编写相应的程序.解答: 根据题意可知,第一个月有1对小兔,第二个月有1对成年兔子,第三个月有两对兔子,从第三个月开始,每个月的兔子对数是前面两个月兔子对数的和,设第N 个月有F 对兔子,第1N -个月有S 对兔子,第2N -个月有Q 对兔子,则有F S Q =+,一个月后,即第1N +个月时,式中变量S 的新值应变第N 个月兔子的对数(F 的旧值),变量Q 的新值应变为第1N -个月兔子的对数(S 的旧值),这样,用S Q +求出变量F 的新值就是1N +个月兔子的数,依此类推,可以得到一个数序列,数序列的第12项就是年底应有兔子对数,我们可以先确定前两个月的兔子对数均为1,以此为基准,构造一个循环程序,让表示“第×个月的I 从3逐次增加1,一直变化到12,最后一次循环得到的F 就是所求结果. 流程图和程序如下:注:(1)实际生活中很多问题都可以利用框图的方法处理,而解决实际问题的方法本身就是对算法的一个体现。
解决此类问题时,首先要认真分析,联系解决此类问题的数学方法,综合考虑此类问题中可能涉及的问题,明确选择合适的算法逻辑结构来画出程序框图。
(2)在算法中,遇到不同形式的选择问题,需要考虑利用条件结构,对式子呈现一定规律且计算项较多时,需要考虑利用循环结构,要注意第一次循环和最后一次循环的结果,以免多算或漏算。
二、基本算法语句(一)输入、输出、赋值语句的应用 ※相关※1.输入、输出、赋值语句是任何一个算法中必不可少的语句。
一个语句可以输出多个表达式。
在赋值语句中,变量的值始终等于最近一次赋给它的值,先前的值将被替换。
2.一个赋值语句只给一个变量赋值,但一个语句行可以写出多个赋值语句。
3.不能利用赋值语句进行代数式的演算(如化简、因式分解、解方程等)。
注:输入语句没有计算功能,而输出语句、赋值语句有计算功能。
4.在BASIC语言中,常见运算符号的书写方式5.BASIC语言中的运算规则先乘除,后加减;乘幂优先于乘除;函数优先于乘幂;同级运算从左向右按顺序进行;括号最优先。
※例题解析※〖例〗某企业为职工计算工资时按时间计,每月的总工资=每月劳动时间×每小时工资,从总工资中扣除15%作为医疗保险金,再以总工资的5‰作为奖金,要求输入劳动时间和每小时工资数,输出每位职工应发工资。
设计算法并画出程序框图,写出程序。