还剩25页未读,
继续阅读
2020届二轮复习 程序框图与算法 教案(全国通用)
展开
程序框图与算法
高考要求
算法
初步
要求层次
重难点
算法及其程序框图
算法的含义
A
(1)算法的含义、程序框图
① 了解算法的含义,了解算法的思想.
② 理解程序框图的三种基本逻辑结构:顺序、条件分支、循环.
(2)基本算法语句
理解几种基本算法语句――输入语句、输出语句、赋值语句、条件语句、循环语句的含义.
程序框图的三种基本逻辑结构
B
基本算法语句
A
例题精讲
板块一:算法的含义与描述
知识内容
一、算法的含义与描述
1.算法的概念:由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照一定规则解决某一类问题的明确的和有限的步骤,称为算法(algorithm).
通常可以编成计算机程序,让计算机执行并解决问题.
2.算法的特征:
⑴有穷性:算法必须在执行有限步后结束,通常还理解为实际上能够容忍的合理限度;
⑵确定性:算法的每一个步骤必须有确定的含义;
⑶可行性:组成算法的每个步骤和操作必须是相当基本的,原则上都是能精确地执行的;
⑷输入:有零个或多个输入:
⑸输出:有一个或多个输出.
3.算法的描述:
⑴用自然语言;⑵用数学语言;⑶用算法语言(程序设计语言);⑷用程序框图(流程图).
4.算法的三种基本逻辑结构:顺序结构、条件(分支)结构和循环结构.
⑴顺序结构:最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的.如下图,只有在执行完A框指定的操作后,才能接着执行B框指定的操作;
⑵条件(分支)结构:在一个算法中,用来处理需要根据条件是否成立有不同的流向的结构.
常见的条件结构的程序框图有下面两种形式:
⑶循环结构:从某处开始,按照一定的条件反复执行某些步骤的情况,就是循环结构,其中反复执行的步骤称为循环体.
常见的循环结构的框图对应为:
<教师备案>
1.在画程序框图时,从开始框沿箭头必须能到达结束框,特别是条件分支结构应沿每条支路都能到达结束框,流程线必须加箭头表示顺序.
2.对于循环结构有如下需要注意的情况:
⑴循环结构非常适合计算机处理,因为计算机的运算速度非常快,执行成千上万次的重复计算,只不过是一瞬间的事,且能保证每次的结果都正确;
⑵循环结构要有中止循环体的条件,不能无休止的运算下去,循环结构中一定包含条件结构,如就是中止循环的条件;
⑶循环结构的关键是,要理解“累加变量”和“用代替”,是一个累加变量, 是计数变量,每循环一次,和都要发生变化,这两步要重复计算若干次;
⑷一种循环结构是先判断是否成立,若是,执行循环体;若否,则中止循环,像这样,每次执行循环体前对控制循环条件进行判断,条件满足时执行循环体,不满足则停止,称为当型循环.除了当型循环外,常用的循环结构还有直到型循环.
5.程序框图的概念:用一些通用的图形符号构成的一张图来表示算法,称为程序框图(简称框图).
常用图形符号:
图形符号
名称
符号表示的意义
起、止框
框图的开始或结束
输入、输出框
数据的输入或者结果的输出
处理框
赋值、执行计算语句、结果的传送
判断框
根据给定条件判断
流程线
流程进行的方向
连结点
连结另一页或另一部分的框图
<教师备案>
1.画程序框图的规则:
⑴ 使用标准的框图的符号;
⑵ 框图一般按从上到下、从左到右的方向画;
⑶ 除判断框外,大多数框图符号只有一个进入点和一个退出点.判断框是具有超过一个退出点的惟一符号;
⑷ 一种判断框是“是”与“不是”两分支的判断,而且有且仅有两个结果;另一种是多分支判断,有几种不同的结果;
⑸ 在图形符号内描述的语言要非常简练清楚.
2.画程序框图要注意的几点:
⑴起、止框是任何流程不可少的,表示程序的开始和结束;
⑵输入、输出框可以用在算法中任何需要输入、输出的位置;
⑶算法中间要处理数据或计算,可分别写在不同的处理框内;
⑷当算法要求你对两个不同的结果进行判断时,要写在判断框内;
⑸一个算法步骤到另一个算法步骤用流程线连结;
⑹如果一个框图需要分开来画,要在断开处画上连结点,并标出连结的号码.
如:用海伦公式求任意三角形的面积的程序框图,其中断开处画上连结点,并标出连结的号码.
典例分析:
算法的含义
【题1】 看下面的四段话,其中不是解决问题的算法的是( )
A.从济南到北京旅游,先坐火车,再坐飞机抵达
B.解一元一次方程的步骤是去分母.去括号.移项.合并同类项.系数化为1
C.方程有两个实根
D.求的值,先计算,再由于,,,最终结果为
【考点】算法的含义 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
【题2】 算法的有穷性是指( )
A.算法最后包含输出 B.算法的每个操作步骤都是可执行的
C.算法的步骤必须有限 D.以上都不正确
【考点】算法的含义 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
【题3】 早上从起床到出门需要洗脸刷牙(5min).刷水壶(2min).烧水(8min).泡面(3min).吃饭(10min) .听广播(8min)几个步骤,下列选项中最好的一种算法为( )
A.s1洗脸刷牙s2刷水壶s3烧水s4泡面s5吃饭s6听广播
B.s1刷水壶s2烧水的同时洗脸刷牙s3泡面s4吃饭s5听广播
C.s1刷水壶s2烧水的同时洗脸刷牙s3泡面s4吃饭的同时听广播
D.s1吃饭的同时听广播s2泡面s3烧水的同时洗脸刷牙s4刷水壶
【考点】算法的含义 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
【题4】 已知直角三角形两直角边长为,,求斜边长的一个算法分下列三步:
①计算;②输入直角三角形两直角边长,的值;
③输出斜边长的值,其中正确的顺序是( )
A.①②③ B.②③① C.①③② D.②①③
【考点】算法分析 【难度】2星 【题型】选择
【关键词】无北京师大附中,2009,高二,期中考试
【解析】
【答案】D
算法分析(自然语言与数学语言)
【题5】 算法:
S1 输入
S2 判断是否是,若,则满足条件,若,则执行S3
S3 依次从到检验能不能整除,若不能整除,满足上述条件的是( )
A.质数 B.奇数 C.偶数 D.约数
【考点】算法分析 【难度】2星 【题型】选择
【关键词】
【解析】
【答案】A
【题6】 用二分法设计一个求方程的近似根的算法.
【考点】算法分析 【难度】3星 【题型】解答
【关键词】无
【解析】 算法分析:回顾二分法解方程的过程,并假设所求近似根与准确解的差的绝对值不超过0.005,
则不难设计出以下步骤:
第一步:令.因为,,所以设.
第二步:令,判断是否为,若则,则为所求;若否,则继续判断大于还是小于.
第三步:若,则令;否则,令.
第四步:判断是否成立?若是,则之间的任意取值均为满足条件的近似根;若否,则返回第二步.
小结:算法具有以下特性:(1)有穷性;(2)确定性;(3)顺序性;(4)不惟一性;(5)普遍性
【答案】
【题7】 分别用自然语言.数学语言写出对任意四个整数...,求出最小值的算法.
【考点】算法分析 【难度】3星 【题型】解答
【关键词】无
【解析】 自然语言:
S1:先将这四个整数的值输入;
S2:假定序列中的整数为“最小值”;
S3:将序列中的数与“最小值”比较,如果它小于此“最小值”,这时就假定“最小值”是这个整数;
S4:对序列中整数.,重复S3;
S5:在序列中一直到没有可比的数为止,这时假定的“最小值”就是这个序列中的最小值.
数学语言:
S1:输入...四个数的值;
S2:;
S3:如果,则;
S4:如果,则;
S5:如果,则;
S6:就是...中的最小值.
【答案】
【题8】 某批发商按客户订单数额的大小分别给予不同的优惠折扣.计算客户应付货款的算法步骤如下:
S1 输入订单数额(单位:件);输入单价A(单位:元);
S2 若,则折扣率;
若,则折扣率;
若,则折扣率;
若,则折扣率;
S3 计算应付货款(单位:元);
S4 输出应付货款.
已知一客户买400件时付款38000元,则应付货款为88200元时订单数额是 .
【考点】算法分析 【难度】2星 【题型】填空
【关键词】2009,宣武,一模
【解析】 由题意有.
不妨设应付货款为88200时的订单数额.
于是有.满足题意.
【答案】980
算法的三种基本逻辑结构与程序框图
【题9】 算法的三种基本结构是( )
A.顺序结构、选择结构、循环结构 B.顺序结构、流程结构、循环结构
C.顺序结构、分支结构、流程结构. D.流程结构、循环结构、分支结构
【考点】算法的含义 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】A
【题10】 下面的问题中必须用条件结构才能实现的个数是( )
(1)已知三角形三边长,求三角形的面积;
(2)求方程(为常数)的根;
(3)求三个实数中的最大者;
(4)求的值.
A.4个 B.3个 C.2个 D.1个
【考点】算法的含义 【难度】1星 【题型】选择
【关键词】无
【解析】 (2),(3)是必须得用的,(1)可以直接用海伦公式,(4)可以直接用等差数列求和公式.
【答案】C
【题11】 在右面的程序框图中,若,则输出的值是( )
A.2 B.3 C.4 D.5
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】选择
【关键词】2018,丰台,一模,第3题
【解析】 ,对应的.
【答案】C
【题12】 在右面的程序框图中,若,则输出的值是( )
A.2 B.3 C.4 D.5
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】选择
【关键词】2018,丰台,一模,第3题
【解析】 ,对应的.
【答案】C
【题13】 已知程序框图如图所示,则该程序框图的功能是( )
A.求数列的前10项和 B.求数列的前10项和
C.求数列的前11项和 D.求数列的前11项和
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】选择
【关键词】2018,石景山,一模,文科第6题
【解析】 注意和的步长分别是和.
【答案】B
【题14】 已知某程序框图如图所示,则执行该程序后输出的结果是( )
A. B. C. D.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】选择
【关键词】2018,海淀,一模,第7题
【解析】
∵,∴对应的.
【答案】A
【题15】 某地区为了了解岁老人的日平均睡眠时间(单位:h).随机选择了50位老人的进行调查.下表是这50位老人日睡眠时间的频率分布表.
序号
()
分组
(睡眠时间)
组中值
()
频数
(人数)
频率
()
1
[4,5
6
2
[5,6
10
3
[6,7
20
4
[7,8
10
5
[8,9]
4
在上述统计数据中,一部分计算见算法流程图,则输出的的值是 .
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】填空
【关键词】2018,江苏,高考,第7题
【解析】 由算法流程知.
【答案】
【题16】 右图是一个程序框图,其中判断框①处缺少一个判断条件,②为一输出框.
⑴若在①处填空“”,请求出在输出框②处输出的的值;
⑵若在①处填空“”,请求出在输出框②处输出的的值.
【考点】算法的三种基本逻辑结构与程序框图 【难度】3星 【题型】解答
【关键词】2009,海淀,高二,期中测试
【解析】 ⑴不考虑的值,循环几次看的值与的值的关系:⑵不考虑的值,循环几次看的值与的值的关系.
【答案】⑴;⑵
【题17】 半径为的圆面积计算公式为,写出计算圆面积的算法,并画出框图.
【考点】算法的三种基本逻辑结构与程序框图 【难度】1星 【题型】解答
【关键词】无
【解析】 S1:输入任意一个正实数;
S2:计算以为半径的圆的面积;
S3:输出圆的面积.
程序框图如右.
【答案】
【题18】 画出求的程序框图.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】解答
【关键词】无
【解析】 S1:设T;
S2:设;
S3:设T=T*;
S4:设;
S5:如果执行S6,否则执行S3;
S7:输出T,结束算法.
程序框图如右.
【答案】
【题19】 写出求解一般的二元一次方程组的程序框图.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】解答
【关键词】无
【解析】 可用公式法求解,对应的程序框图如右:
【答案】
【题20】 画出求解方程(为常数)的程序框图.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】解答
【关键词】无
【解析】 要求解此方程,需要分情况讨论:
时,此方程有无穷多解,或者无解;时,此方程有唯一解,
需要用一个条件结构来描述.
框图如下面所示,也可以对解的情况进行进一步讨论,写成下面右边的形式.
【答案】
【题21】 已知算法:(1)指出其功能(用算式表示),(2)将该算法用流程图来描述之.
S1 输入;
S2 若,执行S3;否则,执行S6;
S3 ;
S4 输出;
S5 结束;
S6 若,执行S7;否则执行S10;
S7 ;
S8 输出;
S9 结束;
S10 ;
S11 输出;
S12 结束.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】解答
【关键词】无
【解析】 这是一个输入的值,求值的函数的算法.其中其流程图如下.
【答案】
板块二:基本算法语句
知识内容
Basic语言(A版)
1.将算法转变成计算机能够理解和能在计算机上实现的程序,这就需要程序语言,每一种程序语言都包含一些基本的语句,程序语言的基本语句结构:输入语句、输出语句、赋值语句、条件语句、循环语句.
2.赋值语句:表明赋给某一个变量一个具体的确定值的语句.
一般格式:变量=表达式.其中, “=”叫做赋值号.
作用:先计算出赋值号右边表达式的值,然后将它赋给左边的变量,使该变量的值等于表达式的值.
3.输入语句:在每次程序运行时,用于输入相应的初始数据的语句,我们主要介绍键盘输入语句.
一般格式:INPUT “提示内容”;变量
例:INPUT “Maths=”; a,
INPUT “Chinese=”;b
c=(a+b)/2
END
表示输入数学与语文的成绩,其中c表示它们的平均数.
4.输出语句:以某种形式把求解结果输出的语句.
一般格式:PRINT “提示内容”;表达式
如上例中输出平均成绩可以用:PRINT “The average=”;(a+b)/2
5.条件语句:处理条件结构的算法语句.有以下两种基本格式:
一般格式1:IF 条件 THEN
语句体
END IF
计算机执行语句时,先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体,否则执行END IF之后的语句.
一般格式2:IF 条件 THEN
语句体1
ELSE
语句体2
END IF
计算机执行语句时,先对IF后条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体1,否则(ELSE)执行语句体2.
6.循环语句:处理算法中的循环结构的语句;
有两种基本语句:UNTIL语句和WHILE语句,前者称为直到型循环语句,后者称为当型循环语句.
UNTIL语句:DO
循环体
LOOP UNTIL 条件
WHILE语句的一般格式:WHILE 条件
循环体
WEND
Scilab程序语言(B版)
1.将算法转变成计算机能够理解和能在计算机上实现的程序,这就需要程序语言,每一种程序语言都包含一些基本语句,程序语言的基本语句结构:输入语句、输出语句、赋值语句、条件语句、循环语句.
2.赋值语句:表明赋给某一个变量一个具体的确定值的语句.
一般格式:变量名表达式;其中“”叫做赋值号.
作用:先计算出赋值号右边表达式的值,然后将它赋给左边的变量,使该变量的值等于表达式的值.
3.输入语句:在每次程序运行时,用于输入相应的初始数据的语句,我们主要介绍键盘输入语句.
Scilab中的输入语句常用的是:“input”;
一般格式:变量名=input(“提示内容”)
例:a=input(“x1”);b=input(“x2”);aver=(a+b)/2
表示输入,的值,求它们的算术平均数,
在Scilab界面内运行结果如下:
-->a=input("x1");b=input("x2");aver=(a+b)/2
x1-->
此时通过键盘输入x1的值,如,再按“Enter”键,界面出现:
x2-->
输入x2的值,如,再按“Enter”键,这时界面出现:
aver =
5.
4.输出语句:以某种形式把求解结果输出的语句.
Scilab中有:print,write,format,printf,disp等输出语句,主要介绍print语句:
一般格式:print(%io(2),表达式);其中参数%io(2)表示在屏幕上输出.
5.条件语句:处理条件分支结构的算法语句.
Scilab程序语言中常用的条件语句为if语句.
一般格式:if 表达式
语句序列1;
else
语句序列2;
end
最简格式:if 表达式
语句序列1;
end
6.循环语句:处理算法中的循环结构的语句;
Scilab有两种循环语句:for循环和while循环.
for循环的格式:for 循环变量=初值:步长:终值
循环体;
end
while语句的一般格式:while 表达式(即条件)
循环体;
end
<教师备案>
1.计算机能够直接或间接理解的程序语言有很多种,比如C语言,Basic语言,以及一些应用数学软件:Matlab,Mathsmatics,Scilab对应的计算机语言.这里的基本语句结构在这些语言中都是存在的,但是对应不同的程序语言,都会有自己的输入指令与方法.这里是以一种语言为例,让大家理解程序语句的含义,为以后深入学习程序设计打下基础.
2.赋值语句:
⑴赋值号左边只能是变量名,而不是表达式;如是错误的;
⑵赋值号左右不能对换,是将赋值号右边的表达式的值赋给左边的变量;如表示用的值替代变量原先的值,与不同;
⑶不能利用赋值语句进行代数式(或符号)的演算;如是不能实现的;并且在一个赋值语句中,只能给一个变量赋值;
⑷赋值号与数学中的等号的意义不同,执行赋值语句后,右面表达式的值会赋给左边,如果左边变量原来有一个值,会自动被冲掉,如表示将的原值加再赋给,即的值加.
3.输入语句:在某些算法中,变量的初值要根据情况经常地改变,一般我们把程序与初始数据分开,每次算题时,即使初始数据改变,也不必改变程序部分,只要程序运行时,输入相应的数据即可,这个过程在程序语言中,用“输入语句”来控制.输入语句中还有read输入语句等.
输入语句要求输入的一般都是具体的常数,也可输入单个或多个字符,格式为:
变量名=input(“提示内容”,“string”),string表示输入字符型变量.
4.循环语句:
for语句:先把初值赋给循环变量,记下终值和步长,循环变量增值到超过终值时,执行end后面的语句,不超过时,执行for后面的语句;循环变量起计数作用,控制算法中循环次数,有初值与终值,步长是指循环变量每次增加的值,步长为时,可以省略;
while语句:先判断条件是否成立,并在符合条件时,执行循环体;直到某次不符合时,跳到end后面的语句.
对应的基本框图是:
5.在程序语言中,乘、除、乘方、求平方根、绝对值,分别用下列符号表示:*、/、^、sqrt()、abs().程序语言中,一般“=”为赋值号,“==”表示等号.
、、分别写成:、、.
在程序中,如果赋值语句后面用分号隔开,则被赋值的变量不会输出,一般不随便使用逗号或句号,而是直接使用回车或空格.
在Scilab语句中,变量名一般用一个字母表示,不可以用几个字母表示.如可以用s表示变量名,但不能用sum表示变量名,但在有些程序语言中,可以用多个字母表示变量名.
典例分析:
Basic语言(A版)
【题22】 下列关于条件语句的叙述正确的是( )
A.条件语句中必须有ELSE和END IF
B.条件语句中可以没有END IF
C.条件语句中可以没有ELSE,但必须有END IF结束
D.条件语句中可以没有END IF,但必须有ELSE
【考点】Basic语言 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
【题23】 下边程序运行后的输出结果为( )
A. B. C. D.
【考点】Basic语言 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
【题24】 下边方框中为一个求20个数的平均数的程序,则在横线上应填的语句为( )
A.i>20 B.i<20C.i>=20 D.i<=20
【考点】Basic语言 【难度】1星 【题型】选择
【关键词】无
【解析】 该算法程序中,使用了UNTIL循环语句,按照该种循环特征,当某一次条件满足时,不再执行循环体,跳到LOOP UNTIL句的后面,执行其他的语句.根据问题要求,应填i>20.
【答案】A
【题25】 将下列的程序补充完整
INPUT x
IF x<=0 THEN
y=x*x—1;
ELSE y=-x*x-1;
END IF
PRINT y
END
输入,输出结果为_______;输入,输出结果为_____.
【考点】Basic语言 【难度】1星 【题型】填空
【关键词】无
【解析】 ,故;,;故输出的结果分别为;
【答案】
【题26】 分别用WHILE语句和UNTIL语句写出计算的值的算法,并写出程序框图.
【考点】Basic语言 【难度】2星 【题型】解答
【关键词】无
【解析】 WHILE语句:
i=1
s=0
WHILE i<=100
s=s+1/i
i=i+1
WEND
PRINT s
END
UNTIL语句:
i=1
s=0
DO
s=s+1/i
i=i+1
LOOP UNTIL i>100
PRINT s
END
程序框图:
【答案】
【题27】 如图所示,在边长为的正方形的边上有一点,沿着折线,由点(起点)向点(终点)运动.设点运动的路程为,的面积为,求与之间的函数关系式.并画出程序框图,写出程序.
【考点】Basic语言 【难度】3星 【题型】解答
【关键词】无
【解析】 由题意可得
程序框图如图:
程序:
INPUT “x=”;x
IF x>=0 AND x<=4 THEN
y=2*x
ELSE
IF x<=8 THEN
y=8
ELSE
y=2*(12-x)
END IF
END IF
PRINT y
END
【答案】
Scilab程序语言(B版)
【题28】 在界面内,输入如下程序:
在输入完程序,击键后,输出的值为( )
A. B. C. D.
【考点】Scilab程序语言 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
【题29】 下面程序输出的结果是 .(注:表示的绝对值)
【考点】Scilab程序语言 【难度】1星 【题型】填空
【关键词】2009,海淀,高二,期中测试
【解析】
【答案】
【题30】 在求时,下列程序中所缺少的一步是:
s=0;
for i=1:1:50
____________
end
print(%io(2),s)
如果要用while循环语句计算此式的值,请写出相应的程序.
【考点】Scilab程序语言 【难度】1星 【题型】填空
【关键词】无
【解析】 缺少的一步是:.
用while循环语句:
s=0;i=1;
while i<=50
s=s+i;i=i+1;
end
print(%io(2),s)
【答案】
【题31】 写出将任意三个整数按从小到大的顺序排列的算法,画出相关的程序框图,并写出程序.
【考点】Scilab程序语言 【难度】2星 【题型】解答
【关键词】无
【解析】 用数学语言写此排序算法:
S1:输入、、三个数的值;
S2:如果,则;
S3:如果,则;
S4:如果,则;
S5:依次输出、、的值,即为所求的从小到大的排列.
程序框图:
程序:
a=input(“a=”);b=input(“b=”);c=input(“c=”);
if b t=a,a=b,b=t
end
if c t=a,a=c,c=t;
end
if c t=b,b=c,c=t;
end
print(“%io(2)”,c,b,a)
【答案】
【题32】 分别用while语句和for语句写出计算的值的算法,并写出程序框图.
【考点】Scilab程序语言 【难度】2星 【题型】解答
【关键词】无
【解析】 程序:
while语句:
i=1;
s=0;
while i<=100
s=s+1/i;
i=i+1;
end
print(%io(2),s)
for语句:
s=0;
for i=1:1:100(或:i=1:100)
s=s+1/i;
end
print(%io(2),s)
程序框图:
【答案】
板块三:算法案例
知识内容
1.更相减损术——求两个整数的最大公约数的算法
如何找到一种算法,对任意两个正整数都能快速地求出它们的最大公约数呢?
更相减损术的步骤:
以两个数中较大的数减去较小的数,以差数和较小的数构成一对新的数,对这一对数再用大数减小数,以同样的操作一直做下去,直到产生一对相等的数,此数就是这两个数的最大公约数.
等值算法:用“更相减损术”设计出来的算法求最大公约数的算法称为“等值算法”,用等值算法可以求任意两个正整数的最大公约数.
<教师备案>
《九章算法》是中国古代的数学专著,其中的“更相减损术”可以用来求两个数的最大公约数.以具体的例子来说明更相减损术求最大公约数的原理:
以求和的最大公约数为例:
,
每次操作后得到的两个数与前两个数的最大公约数相同,而且逐渐减少,故总能得到相等的两个数,即为所求的最大公约数.
2.辗转相除法
又称欧几里得算法,是由欧几里得在公元前300年左右首先提出来的求两个数的最大公约数的算法。
辗转相除法的步骤:
对于给定的两个数,以其中较大的数除以较小的数得到一个余数,将较小的数与余数看成一对新的数,重复上面的步骤,直到余数为零为止,此时上一步中较小的数即为所求的最大公约数。
以求和的最大公约数为例:
,故即为所求。
3.秦九韶算法——求多项式的值的算法
对于任意一个元的多项式,如何更快地计算它在某点所取到的值?
秦九韶算法:
已知一个多项式函数,计算多项式在某点处的函数值的一种算法,是我国古代数学家秦九韶提出的,
具体如下.
对任意一个元多项式,
改写成如下形式:
,
求多项式的值时,先计算最内层括号内的一次多项式的值,即,
然后由内向外逐层计算一次多项式的值,即,,,.
这样,求一个次多项式的值,就转化为求个一次多项式的值.
令,则递推公式为,其中.
到目前为止,此算法仍然是世界上多项式求值的最先进的算法.
秦九韶算法与其它算法在计算量上面的比较:,
⑴直接求和法:先计算各个单项式的值,再把它们相加,
乘法次数为,加法次数;
⑵逐项求和法:先计算的各项幂的值,再分别相乘,计算幂值需要乘法次,将幂值与多项式系数相乘需要乘法次,故共需要乘法次,加法次.
此方法对直接求和法有所改进,但仍然比秦九韶算法计算量大很多.
⑶秦九韶算法:计算量仅为乘法次,加法次.
典例分析:
辗转相除法与更相减损术
【题33】 用辗转相除法计算和的最大公约数时,需要做的除法次数是 ( )
A.1 B.2 C.3 D.4
【考点】辗转相除法与更相减损术 【难度】1星 【题型】选择
【关键词】无
【解析】 ,,故只需要两步计算.
【答案】
【题34】 分别用辗转相除法与更相减损术求与的最大公约数,并且由此比较这两种算法.
【考点】辗转相除法与更相减损术 【难度】2星 【题型】解答
【关键词】无
【解析】 更相减损术:
故它们的最大公约数为.
辗转相除法:
;;故它们的最大公约数为.
联系:都是求最大公约数的方法;
区别:①计算上辗转相除法以除法为主,更相减损术以减法为主;
②计算次数上,辗转相除法计算次数相对较少,特别是当两个数差别较大时区别明显;
③从结果输出的时候看,辗转相除法当“余数为”时输出“除数”,更相减损术当“差和减数相等”时输出“差”.
【答案】
【题35】 求两个数的最大公约数还有一种方法叫辗转相除法,即对于任意两个正整数,用两个数中的较大的数除以较小的数,再将所得的商与较小的数组成一组新的数,用同样的方法处理,一直到所得到的两个数呈倍数关系,这时所得的较小的数即为所求的最大公约数.
如:求与的最大公约数:
,余数为,考虑和,此时有,考虑和,它们有倍数关系,故最大公约数为.
请写出利用辗转相除法求任意两个正整数的最大公约数的算法步骤,对应的程序框图以及程序.
【考点】辗转相除法与更相减损术 【难度】2星 【题型】解答
【关键词】无
【解析】 S1:输入两个正整数;
S2:计算除以所得的余数;
S3:如果,则执行S4,否则转到S6;
S4:把赋予,把赋予;
S5:执行S2;
S6:输出.
辗转相除法(B版)程序:
a=input(“a=”);
b=input(“b=”);
r=1;
while r<>0
r=mod(a,b);
a=b;
b=r;
end
print(%io(2),b)
//r=mod(a,b)的含义是r为a除以b的余数.
辗转相除法(A版)程序:
INPUT (“a,b=”);a,b
DO
r=a MOD b
a=b
b=r
LOOP UNTIL r=0
PRINT b
END
// r=a MOD b的含义是r为a除以b的余数
【答案】
秦九韶算法
【题36】 用秦九韶算法求次多项式,当时,求需要算乘方、乘法、加法的次数分别为( )
A. B. C. D.
【考点】秦九韶算法 【难度】2星 【题型】选择
【关键词】无
【解析】
【答案】D
【题37】 设计利用秦九韶算法计算次多项式当时的值的程序框图.
【考点】秦九韶算法 【难度】2星 【题型】解答
【关键词】无
【解析】 程序框图如下:
【答案】
课后作业
习题1. 指出下列哪一个不是算法 ( )
A.解方程的过程是移项和系数化为1
B.从济南到温哥华需要先乘火车到北京,再从北京乘飞机到温哥华
C.解方程
D.利用公式,计算半径为的圆的面积为
【考点】算法的含义 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
习题2. 设计一个算法求解方程组
【考点】算法分析 【难度】2星 【题型】解答
【关键词】无
【解析】 法一(高斯消元法)
S1:①×5-②:;
S2:解上式得;
S3:再代入①求解得.
S4:输出计算的结果.
法二(公式法)
S1:,,,,,;
S2:,,;
S3:判断;
S4:计算,.
S5:输出计算的结果.
【答案】
习题3. 已知,写出求该函数的函数值的算法,并画出相应的程序框图.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】解答
【关键词】无
【解析】 算法:
S1:输入;
S2:若,则,否则;
S3:输出函数值.
程序框图如右.
【答案】
习题4. 已知程序框图如图所示,则执行该程序后输出的结果是_______________.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】填空
【关键词】2018,海淀,一模,文科第13题
【解析】
∵,∴对应的.
【答案】
习题5. 如图,下程序框图的程序执行后输出的结果是 .
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】填空
【关键词】2018,朝阳,一模,文科第11题
【解析】 将经过次运行后的值列表如下.于是.
1
2
3
4
5
...
...
10
2
3
4
5
6
11
1
3
6
10
15
55
【答案】55
习题6. 写出下列程序的运行结果:______.
i=0
s=0
WHILE i<=20
s=s+i
i=i+1
WEND
PRINT s
【考点】Basic语言 【难度】1星 【题型】填空
【关键词】无
【解析】 计数变量从开始,循环到为止,当时,跳出循环,
故;输出结果为;
【答案】
习题7. 为了在运行下列程序之后输出,键盘输入的值应为 .
【考点】Scilab程序语言 【难度】1星 【题型】填空
【关键词】2009,海淀,高二,期中测试
【解析】
【答案】或
习题8. 分别用自然语言、程序框图描述等值算法,并写出等值算法的程序.
【考点】辗转相除法与更相减损术 【难度】2星 【题型】解答
【关键词】无
【解析】 自然语言:
S1:输入两个正整数;
S2:如果不等于,则执行第三步(S3);否则转到第五步(S5);
S3:把的差赋予;
S4:如果,则把赋予,把赋予;否则把赋予,执行第二步(S2);
S5:输出最大公约数.
程序(A版Basic语言):
INPUT (“a,b=”);a,b
WHILE a<>b
IF a>b THEN a=a-b
ELSE b=b-a
END IF
WEND
PRINT b
END
程序(B版Scilab程序语言):
a=input(“a=”);
b=input(“b=”);
while a<>b
if a>b
a=a-b;
else
b=b-a;
end
end
print(%io(2),b)
程序框图如下:
【答案】
程序框图与算法
高考要求
算法
初步
要求层次
重难点
算法及其程序框图
算法的含义
A
(1)算法的含义、程序框图
① 了解算法的含义,了解算法的思想.
② 理解程序框图的三种基本逻辑结构:顺序、条件分支、循环.
(2)基本算法语句
理解几种基本算法语句――输入语句、输出语句、赋值语句、条件语句、循环语句的含义.
程序框图的三种基本逻辑结构
B
基本算法语句
A
例题精讲
板块一:算法的含义与描述
知识内容
一、算法的含义与描述
1.算法的概念:由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照一定规则解决某一类问题的明确的和有限的步骤,称为算法(algorithm).
通常可以编成计算机程序,让计算机执行并解决问题.
2.算法的特征:
⑴有穷性:算法必须在执行有限步后结束,通常还理解为实际上能够容忍的合理限度;
⑵确定性:算法的每一个步骤必须有确定的含义;
⑶可行性:组成算法的每个步骤和操作必须是相当基本的,原则上都是能精确地执行的;
⑷输入:有零个或多个输入:
⑸输出:有一个或多个输出.
3.算法的描述:
⑴用自然语言;⑵用数学语言;⑶用算法语言(程序设计语言);⑷用程序框图(流程图).
4.算法的三种基本逻辑结构:顺序结构、条件(分支)结构和循环结构.
⑴顺序结构:最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的.如下图,只有在执行完A框指定的操作后,才能接着执行B框指定的操作;
⑵条件(分支)结构:在一个算法中,用来处理需要根据条件是否成立有不同的流向的结构.
常见的条件结构的程序框图有下面两种形式:
⑶循环结构:从某处开始,按照一定的条件反复执行某些步骤的情况,就是循环结构,其中反复执行的步骤称为循环体.
常见的循环结构的框图对应为:
<教师备案>
1.在画程序框图时,从开始框沿箭头必须能到达结束框,特别是条件分支结构应沿每条支路都能到达结束框,流程线必须加箭头表示顺序.
2.对于循环结构有如下需要注意的情况:
⑴循环结构非常适合计算机处理,因为计算机的运算速度非常快,执行成千上万次的重复计算,只不过是一瞬间的事,且能保证每次的结果都正确;
⑵循环结构要有中止循环体的条件,不能无休止的运算下去,循环结构中一定包含条件结构,如就是中止循环的条件;
⑶循环结构的关键是,要理解“累加变量”和“用代替”,是一个累加变量, 是计数变量,每循环一次,和都要发生变化,这两步要重复计算若干次;
⑷一种循环结构是先判断是否成立,若是,执行循环体;若否,则中止循环,像这样,每次执行循环体前对控制循环条件进行判断,条件满足时执行循环体,不满足则停止,称为当型循环.除了当型循环外,常用的循环结构还有直到型循环.
5.程序框图的概念:用一些通用的图形符号构成的一张图来表示算法,称为程序框图(简称框图).
常用图形符号:
图形符号
名称
符号表示的意义
起、止框
框图的开始或结束
输入、输出框
数据的输入或者结果的输出
处理框
赋值、执行计算语句、结果的传送
判断框
根据给定条件判断
流程线
流程进行的方向
连结点
连结另一页或另一部分的框图
<教师备案>
1.画程序框图的规则:
⑴ 使用标准的框图的符号;
⑵ 框图一般按从上到下、从左到右的方向画;
⑶ 除判断框外,大多数框图符号只有一个进入点和一个退出点.判断框是具有超过一个退出点的惟一符号;
⑷ 一种判断框是“是”与“不是”两分支的判断,而且有且仅有两个结果;另一种是多分支判断,有几种不同的结果;
⑸ 在图形符号内描述的语言要非常简练清楚.
2.画程序框图要注意的几点:
⑴起、止框是任何流程不可少的,表示程序的开始和结束;
⑵输入、输出框可以用在算法中任何需要输入、输出的位置;
⑶算法中间要处理数据或计算,可分别写在不同的处理框内;
⑷当算法要求你对两个不同的结果进行判断时,要写在判断框内;
⑸一个算法步骤到另一个算法步骤用流程线连结;
⑹如果一个框图需要分开来画,要在断开处画上连结点,并标出连结的号码.
如:用海伦公式求任意三角形的面积的程序框图,其中断开处画上连结点,并标出连结的号码.
典例分析:
算法的含义
【题1】 看下面的四段话,其中不是解决问题的算法的是( )
A.从济南到北京旅游,先坐火车,再坐飞机抵达
B.解一元一次方程的步骤是去分母.去括号.移项.合并同类项.系数化为1
C.方程有两个实根
D.求的值,先计算,再由于,,,最终结果为
【考点】算法的含义 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
【题2】 算法的有穷性是指( )
A.算法最后包含输出 B.算法的每个操作步骤都是可执行的
C.算法的步骤必须有限 D.以上都不正确
【考点】算法的含义 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
【题3】 早上从起床到出门需要洗脸刷牙(5min).刷水壶(2min).烧水(8min).泡面(3min).吃饭(10min) .听广播(8min)几个步骤,下列选项中最好的一种算法为( )
A.s1洗脸刷牙s2刷水壶s3烧水s4泡面s5吃饭s6听广播
B.s1刷水壶s2烧水的同时洗脸刷牙s3泡面s4吃饭s5听广播
C.s1刷水壶s2烧水的同时洗脸刷牙s3泡面s4吃饭的同时听广播
D.s1吃饭的同时听广播s2泡面s3烧水的同时洗脸刷牙s4刷水壶
【考点】算法的含义 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
【题4】 已知直角三角形两直角边长为,,求斜边长的一个算法分下列三步:
①计算;②输入直角三角形两直角边长,的值;
③输出斜边长的值,其中正确的顺序是( )
A.①②③ B.②③① C.①③② D.②①③
【考点】算法分析 【难度】2星 【题型】选择
【关键词】无北京师大附中,2009,高二,期中考试
【解析】
【答案】D
算法分析(自然语言与数学语言)
【题5】 算法:
S1 输入
S2 判断是否是,若,则满足条件,若,则执行S3
S3 依次从到检验能不能整除,若不能整除,满足上述条件的是( )
A.质数 B.奇数 C.偶数 D.约数
【考点】算法分析 【难度】2星 【题型】选择
【关键词】
【解析】
【答案】A
【题6】 用二分法设计一个求方程的近似根的算法.
【考点】算法分析 【难度】3星 【题型】解答
【关键词】无
【解析】 算法分析:回顾二分法解方程的过程,并假设所求近似根与准确解的差的绝对值不超过0.005,
则不难设计出以下步骤:
第一步:令.因为,,所以设.
第二步:令,判断是否为,若则,则为所求;若否,则继续判断大于还是小于.
第三步:若,则令;否则,令.
第四步:判断是否成立?若是,则之间的任意取值均为满足条件的近似根;若否,则返回第二步.
小结:算法具有以下特性:(1)有穷性;(2)确定性;(3)顺序性;(4)不惟一性;(5)普遍性
【答案】
【题7】 分别用自然语言.数学语言写出对任意四个整数...,求出最小值的算法.
【考点】算法分析 【难度】3星 【题型】解答
【关键词】无
【解析】 自然语言:
S1:先将这四个整数的值输入;
S2:假定序列中的整数为“最小值”;
S3:将序列中的数与“最小值”比较,如果它小于此“最小值”,这时就假定“最小值”是这个整数;
S4:对序列中整数.,重复S3;
S5:在序列中一直到没有可比的数为止,这时假定的“最小值”就是这个序列中的最小值.
数学语言:
S1:输入...四个数的值;
S2:;
S3:如果,则;
S4:如果,则;
S5:如果,则;
S6:就是...中的最小值.
【答案】
【题8】 某批发商按客户订单数额的大小分别给予不同的优惠折扣.计算客户应付货款的算法步骤如下:
S1 输入订单数额(单位:件);输入单价A(单位:元);
S2 若,则折扣率;
若,则折扣率;
若,则折扣率;
若,则折扣率;
S3 计算应付货款(单位:元);
S4 输出应付货款.
已知一客户买400件时付款38000元,则应付货款为88200元时订单数额是 .
【考点】算法分析 【难度】2星 【题型】填空
【关键词】2009,宣武,一模
【解析】 由题意有.
不妨设应付货款为88200时的订单数额.
于是有.满足题意.
【答案】980
算法的三种基本逻辑结构与程序框图
【题9】 算法的三种基本结构是( )
A.顺序结构、选择结构、循环结构 B.顺序结构、流程结构、循环结构
C.顺序结构、分支结构、流程结构. D.流程结构、循环结构、分支结构
【考点】算法的含义 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】A
【题10】 下面的问题中必须用条件结构才能实现的个数是( )
(1)已知三角形三边长,求三角形的面积;
(2)求方程(为常数)的根;
(3)求三个实数中的最大者;
(4)求的值.
A.4个 B.3个 C.2个 D.1个
【考点】算法的含义 【难度】1星 【题型】选择
【关键词】无
【解析】 (2),(3)是必须得用的,(1)可以直接用海伦公式,(4)可以直接用等差数列求和公式.
【答案】C
【题11】 在右面的程序框图中,若,则输出的值是( )
A.2 B.3 C.4 D.5
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】选择
【关键词】2018,丰台,一模,第3题
【解析】 ,对应的.
【答案】C
【题12】 在右面的程序框图中,若,则输出的值是( )
A.2 B.3 C.4 D.5
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】选择
【关键词】2018,丰台,一模,第3题
【解析】 ,对应的.
【答案】C
【题13】 已知程序框图如图所示,则该程序框图的功能是( )
A.求数列的前10项和 B.求数列的前10项和
C.求数列的前11项和 D.求数列的前11项和
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】选择
【关键词】2018,石景山,一模,文科第6题
【解析】 注意和的步长分别是和.
【答案】B
【题14】 已知某程序框图如图所示,则执行该程序后输出的结果是( )
A. B. C. D.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】选择
【关键词】2018,海淀,一模,第7题
【解析】
∵,∴对应的.
【答案】A
【题15】 某地区为了了解岁老人的日平均睡眠时间(单位:h).随机选择了50位老人的进行调查.下表是这50位老人日睡眠时间的频率分布表.
序号
()
分组
(睡眠时间)
组中值
()
频数
(人数)
频率
()
1
[4,5
6
2
[5,6
10
3
[6,7
20
4
[7,8
10
5
[8,9]
4
在上述统计数据中,一部分计算见算法流程图,则输出的的值是 .
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】填空
【关键词】2018,江苏,高考,第7题
【解析】 由算法流程知.
【答案】
【题16】 右图是一个程序框图,其中判断框①处缺少一个判断条件,②为一输出框.
⑴若在①处填空“”,请求出在输出框②处输出的的值;
⑵若在①处填空“”,请求出在输出框②处输出的的值.
【考点】算法的三种基本逻辑结构与程序框图 【难度】3星 【题型】解答
【关键词】2009,海淀,高二,期中测试
【解析】 ⑴不考虑的值,循环几次看的值与的值的关系:⑵不考虑的值,循环几次看的值与的值的关系.
【答案】⑴;⑵
【题17】 半径为的圆面积计算公式为,写出计算圆面积的算法,并画出框图.
【考点】算法的三种基本逻辑结构与程序框图 【难度】1星 【题型】解答
【关键词】无
【解析】 S1:输入任意一个正实数;
S2:计算以为半径的圆的面积;
S3:输出圆的面积.
程序框图如右.
【答案】
【题18】 画出求的程序框图.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】解答
【关键词】无
【解析】 S1:设T;
S2:设;
S3:设T=T*;
S4:设;
S5:如果执行S6,否则执行S3;
S7:输出T,结束算法.
程序框图如右.
【答案】
【题19】 写出求解一般的二元一次方程组的程序框图.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】解答
【关键词】无
【解析】 可用公式法求解,对应的程序框图如右:
【答案】
【题20】 画出求解方程(为常数)的程序框图.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】解答
【关键词】无
【解析】 要求解此方程,需要分情况讨论:
时,此方程有无穷多解,或者无解;时,此方程有唯一解,
需要用一个条件结构来描述.
框图如下面所示,也可以对解的情况进行进一步讨论,写成下面右边的形式.
【答案】
【题21】 已知算法:(1)指出其功能(用算式表示),(2)将该算法用流程图来描述之.
S1 输入;
S2 若,执行S3;否则,执行S6;
S3 ;
S4 输出;
S5 结束;
S6 若,执行S7;否则执行S10;
S7 ;
S8 输出;
S9 结束;
S10 ;
S11 输出;
S12 结束.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】解答
【关键词】无
【解析】 这是一个输入的值,求值的函数的算法.其中其流程图如下.
【答案】
板块二:基本算法语句
知识内容
Basic语言(A版)
1.将算法转变成计算机能够理解和能在计算机上实现的程序,这就需要程序语言,每一种程序语言都包含一些基本的语句,程序语言的基本语句结构:输入语句、输出语句、赋值语句、条件语句、循环语句.
2.赋值语句:表明赋给某一个变量一个具体的确定值的语句.
一般格式:变量=表达式.其中, “=”叫做赋值号.
作用:先计算出赋值号右边表达式的值,然后将它赋给左边的变量,使该变量的值等于表达式的值.
3.输入语句:在每次程序运行时,用于输入相应的初始数据的语句,我们主要介绍键盘输入语句.
一般格式:INPUT “提示内容”;变量
例:INPUT “Maths=”; a,
INPUT “Chinese=”;b
c=(a+b)/2
END
表示输入数学与语文的成绩,其中c表示它们的平均数.
4.输出语句:以某种形式把求解结果输出的语句.
一般格式:PRINT “提示内容”;表达式
如上例中输出平均成绩可以用:PRINT “The average=”;(a+b)/2
5.条件语句:处理条件结构的算法语句.有以下两种基本格式:
一般格式1:IF 条件 THEN
语句体
END IF
计算机执行语句时,先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体,否则执行END IF之后的语句.
一般格式2:IF 条件 THEN
语句体1
ELSE
语句体2
END IF
计算机执行语句时,先对IF后条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体1,否则(ELSE)执行语句体2.
6.循环语句:处理算法中的循环结构的语句;
有两种基本语句:UNTIL语句和WHILE语句,前者称为直到型循环语句,后者称为当型循环语句.
UNTIL语句:DO
循环体
LOOP UNTIL 条件
WHILE语句的一般格式:WHILE 条件
循环体
WEND
Scilab程序语言(B版)
1.将算法转变成计算机能够理解和能在计算机上实现的程序,这就需要程序语言,每一种程序语言都包含一些基本语句,程序语言的基本语句结构:输入语句、输出语句、赋值语句、条件语句、循环语句.
2.赋值语句:表明赋给某一个变量一个具体的确定值的语句.
一般格式:变量名表达式;其中“”叫做赋值号.
作用:先计算出赋值号右边表达式的值,然后将它赋给左边的变量,使该变量的值等于表达式的值.
3.输入语句:在每次程序运行时,用于输入相应的初始数据的语句,我们主要介绍键盘输入语句.
Scilab中的输入语句常用的是:“input”;
一般格式:变量名=input(“提示内容”)
例:a=input(“x1”);b=input(“x2”);aver=(a+b)/2
表示输入,的值,求它们的算术平均数,
在Scilab界面内运行结果如下:
-->a=input("x1");b=input("x2");aver=(a+b)/2
x1-->
此时通过键盘输入x1的值,如,再按“Enter”键,界面出现:
x2-->
输入x2的值,如,再按“Enter”键,这时界面出现:
aver =
5.
4.输出语句:以某种形式把求解结果输出的语句.
Scilab中有:print,write,format,printf,disp等输出语句,主要介绍print语句:
一般格式:print(%io(2),表达式);其中参数%io(2)表示在屏幕上输出.
5.条件语句:处理条件分支结构的算法语句.
Scilab程序语言中常用的条件语句为if语句.
一般格式:if 表达式
语句序列1;
else
语句序列2;
end
最简格式:if 表达式
语句序列1;
end
6.循环语句:处理算法中的循环结构的语句;
Scilab有两种循环语句:for循环和while循环.
for循环的格式:for 循环变量=初值:步长:终值
循环体;
end
while语句的一般格式:while 表达式(即条件)
循环体;
end
<教师备案>
1.计算机能够直接或间接理解的程序语言有很多种,比如C语言,Basic语言,以及一些应用数学软件:Matlab,Mathsmatics,Scilab对应的计算机语言.这里的基本语句结构在这些语言中都是存在的,但是对应不同的程序语言,都会有自己的输入指令与方法.这里是以一种语言为例,让大家理解程序语句的含义,为以后深入学习程序设计打下基础.
2.赋值语句:
⑴赋值号左边只能是变量名,而不是表达式;如是错误的;
⑵赋值号左右不能对换,是将赋值号右边的表达式的值赋给左边的变量;如表示用的值替代变量原先的值,与不同;
⑶不能利用赋值语句进行代数式(或符号)的演算;如是不能实现的;并且在一个赋值语句中,只能给一个变量赋值;
⑷赋值号与数学中的等号的意义不同,执行赋值语句后,右面表达式的值会赋给左边,如果左边变量原来有一个值,会自动被冲掉,如表示将的原值加再赋给,即的值加.
3.输入语句:在某些算法中,变量的初值要根据情况经常地改变,一般我们把程序与初始数据分开,每次算题时,即使初始数据改变,也不必改变程序部分,只要程序运行时,输入相应的数据即可,这个过程在程序语言中,用“输入语句”来控制.输入语句中还有read输入语句等.
输入语句要求输入的一般都是具体的常数,也可输入单个或多个字符,格式为:
变量名=input(“提示内容”,“string”),string表示输入字符型变量.
4.循环语句:
for语句:先把初值赋给循环变量,记下终值和步长,循环变量增值到超过终值时,执行end后面的语句,不超过时,执行for后面的语句;循环变量起计数作用,控制算法中循环次数,有初值与终值,步长是指循环变量每次增加的值,步长为时,可以省略;
while语句:先判断条件是否成立,并在符合条件时,执行循环体;直到某次不符合时,跳到end后面的语句.
对应的基本框图是:
5.在程序语言中,乘、除、乘方、求平方根、绝对值,分别用下列符号表示:*、/、^、sqrt()、abs().程序语言中,一般“=”为赋值号,“==”表示等号.
、、分别写成:、、.
在程序中,如果赋值语句后面用分号隔开,则被赋值的变量不会输出,一般不随便使用逗号或句号,而是直接使用回车或空格.
在Scilab语句中,变量名一般用一个字母表示,不可以用几个字母表示.如可以用s表示变量名,但不能用sum表示变量名,但在有些程序语言中,可以用多个字母表示变量名.
典例分析:
Basic语言(A版)
【题22】 下列关于条件语句的叙述正确的是( )
A.条件语句中必须有ELSE和END IF
B.条件语句中可以没有END IF
C.条件语句中可以没有ELSE,但必须有END IF结束
D.条件语句中可以没有END IF,但必须有ELSE
【考点】Basic语言 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
【题23】 下边程序运行后的输出结果为( )
A. B. C. D.
【考点】Basic语言 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
【题24】 下边方框中为一个求20个数的平均数的程序,则在横线上应填的语句为( )
A.i>20 B.i<20C.i>=20 D.i<=20
【考点】Basic语言 【难度】1星 【题型】选择
【关键词】无
【解析】 该算法程序中,使用了UNTIL循环语句,按照该种循环特征,当某一次条件满足时,不再执行循环体,跳到LOOP UNTIL句的后面,执行其他的语句.根据问题要求,应填i>20.
【答案】A
【题25】 将下列的程序补充完整
INPUT x
IF x<=0 THEN
y=x*x—1;
ELSE y=-x*x-1;
END IF
PRINT y
END
输入,输出结果为_______;输入,输出结果为_____.
【考点】Basic语言 【难度】1星 【题型】填空
【关键词】无
【解析】 ,故;,;故输出的结果分别为;
【答案】
【题26】 分别用WHILE语句和UNTIL语句写出计算的值的算法,并写出程序框图.
【考点】Basic语言 【难度】2星 【题型】解答
【关键词】无
【解析】 WHILE语句:
i=1
s=0
WHILE i<=100
s=s+1/i
i=i+1
WEND
PRINT s
END
UNTIL语句:
i=1
s=0
DO
s=s+1/i
i=i+1
LOOP UNTIL i>100
PRINT s
END
程序框图:
【答案】
【题27】 如图所示,在边长为的正方形的边上有一点,沿着折线,由点(起点)向点(终点)运动.设点运动的路程为,的面积为,求与之间的函数关系式.并画出程序框图,写出程序.
【考点】Basic语言 【难度】3星 【题型】解答
【关键词】无
【解析】 由题意可得
程序框图如图:
程序:
INPUT “x=”;x
IF x>=0 AND x<=4 THEN
y=2*x
ELSE
IF x<=8 THEN
y=8
ELSE
y=2*(12-x)
END IF
END IF
PRINT y
END
【答案】
Scilab程序语言(B版)
【题28】 在界面内,输入如下程序:
在输入完程序,击键后,输出的值为( )
A. B. C. D.
【考点】Scilab程序语言 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
【题29】 下面程序输出的结果是 .(注:表示的绝对值)
【考点】Scilab程序语言 【难度】1星 【题型】填空
【关键词】2009,海淀,高二,期中测试
【解析】
【答案】
【题30】 在求时,下列程序中所缺少的一步是:
s=0;
for i=1:1:50
____________
end
print(%io(2),s)
如果要用while循环语句计算此式的值,请写出相应的程序.
【考点】Scilab程序语言 【难度】1星 【题型】填空
【关键词】无
【解析】 缺少的一步是:.
用while循环语句:
s=0;i=1;
while i<=50
s=s+i;i=i+1;
end
print(%io(2),s)
【答案】
【题31】 写出将任意三个整数按从小到大的顺序排列的算法,画出相关的程序框图,并写出程序.
【考点】Scilab程序语言 【难度】2星 【题型】解答
【关键词】无
【解析】 用数学语言写此排序算法:
S1:输入、、三个数的值;
S2:如果,则;
S3:如果,则;
S4:如果,则;
S5:依次输出、、的值,即为所求的从小到大的排列.
程序框图:
程序:
a=input(“a=”);b=input(“b=”);c=input(“c=”);
if b t=a,a=b,b=t
end
if c t=a,a=c,c=t;
end
if c t=b,b=c,c=t;
end
print(“%io(2)”,c,b,a)
【答案】
【题32】 分别用while语句和for语句写出计算的值的算法,并写出程序框图.
【考点】Scilab程序语言 【难度】2星 【题型】解答
【关键词】无
【解析】 程序:
while语句:
i=1;
s=0;
while i<=100
s=s+1/i;
i=i+1;
end
print(%io(2),s)
for语句:
s=0;
for i=1:1:100(或:i=1:100)
s=s+1/i;
end
print(%io(2),s)
程序框图:
【答案】
板块三:算法案例
知识内容
1.更相减损术——求两个整数的最大公约数的算法
如何找到一种算法,对任意两个正整数都能快速地求出它们的最大公约数呢?
更相减损术的步骤:
以两个数中较大的数减去较小的数,以差数和较小的数构成一对新的数,对这一对数再用大数减小数,以同样的操作一直做下去,直到产生一对相等的数,此数就是这两个数的最大公约数.
等值算法:用“更相减损术”设计出来的算法求最大公约数的算法称为“等值算法”,用等值算法可以求任意两个正整数的最大公约数.
<教师备案>
《九章算法》是中国古代的数学专著,其中的“更相减损术”可以用来求两个数的最大公约数.以具体的例子来说明更相减损术求最大公约数的原理:
以求和的最大公约数为例:
,
每次操作后得到的两个数与前两个数的最大公约数相同,而且逐渐减少,故总能得到相等的两个数,即为所求的最大公约数.
2.辗转相除法
又称欧几里得算法,是由欧几里得在公元前300年左右首先提出来的求两个数的最大公约数的算法。
辗转相除法的步骤:
对于给定的两个数,以其中较大的数除以较小的数得到一个余数,将较小的数与余数看成一对新的数,重复上面的步骤,直到余数为零为止,此时上一步中较小的数即为所求的最大公约数。
以求和的最大公约数为例:
,故即为所求。
3.秦九韶算法——求多项式的值的算法
对于任意一个元的多项式,如何更快地计算它在某点所取到的值?
秦九韶算法:
已知一个多项式函数,计算多项式在某点处的函数值的一种算法,是我国古代数学家秦九韶提出的,
具体如下.
对任意一个元多项式,
改写成如下形式:
,
求多项式的值时,先计算最内层括号内的一次多项式的值,即,
然后由内向外逐层计算一次多项式的值,即,,,.
这样,求一个次多项式的值,就转化为求个一次多项式的值.
令,则递推公式为,其中.
到目前为止,此算法仍然是世界上多项式求值的最先进的算法.
秦九韶算法与其它算法在计算量上面的比较:,
⑴直接求和法:先计算各个单项式的值,再把它们相加,
乘法次数为,加法次数;
⑵逐项求和法:先计算的各项幂的值,再分别相乘,计算幂值需要乘法次,将幂值与多项式系数相乘需要乘法次,故共需要乘法次,加法次.
此方法对直接求和法有所改进,但仍然比秦九韶算法计算量大很多.
⑶秦九韶算法:计算量仅为乘法次,加法次.
典例分析:
辗转相除法与更相减损术
【题33】 用辗转相除法计算和的最大公约数时,需要做的除法次数是 ( )
A.1 B.2 C.3 D.4
【考点】辗转相除法与更相减损术 【难度】1星 【题型】选择
【关键词】无
【解析】 ,,故只需要两步计算.
【答案】
【题34】 分别用辗转相除法与更相减损术求与的最大公约数,并且由此比较这两种算法.
【考点】辗转相除法与更相减损术 【难度】2星 【题型】解答
【关键词】无
【解析】 更相减损术:
故它们的最大公约数为.
辗转相除法:
;;故它们的最大公约数为.
联系:都是求最大公约数的方法;
区别:①计算上辗转相除法以除法为主,更相减损术以减法为主;
②计算次数上,辗转相除法计算次数相对较少,特别是当两个数差别较大时区别明显;
③从结果输出的时候看,辗转相除法当“余数为”时输出“除数”,更相减损术当“差和减数相等”时输出“差”.
【答案】
【题35】 求两个数的最大公约数还有一种方法叫辗转相除法,即对于任意两个正整数,用两个数中的较大的数除以较小的数,再将所得的商与较小的数组成一组新的数,用同样的方法处理,一直到所得到的两个数呈倍数关系,这时所得的较小的数即为所求的最大公约数.
如:求与的最大公约数:
,余数为,考虑和,此时有,考虑和,它们有倍数关系,故最大公约数为.
请写出利用辗转相除法求任意两个正整数的最大公约数的算法步骤,对应的程序框图以及程序.
【考点】辗转相除法与更相减损术 【难度】2星 【题型】解答
【关键词】无
【解析】 S1:输入两个正整数;
S2:计算除以所得的余数;
S3:如果,则执行S4,否则转到S6;
S4:把赋予,把赋予;
S5:执行S2;
S6:输出.
辗转相除法(B版)程序:
a=input(“a=”);
b=input(“b=”);
r=1;
while r<>0
r=mod(a,b);
a=b;
b=r;
end
print(%io(2),b)
//r=mod(a,b)的含义是r为a除以b的余数.
辗转相除法(A版)程序:
INPUT (“a,b=”);a,b
DO
r=a MOD b
a=b
b=r
LOOP UNTIL r=0
PRINT b
END
// r=a MOD b的含义是r为a除以b的余数
【答案】
秦九韶算法
【题36】 用秦九韶算法求次多项式,当时,求需要算乘方、乘法、加法的次数分别为( )
A. B. C. D.
【考点】秦九韶算法 【难度】2星 【题型】选择
【关键词】无
【解析】
【答案】D
【题37】 设计利用秦九韶算法计算次多项式当时的值的程序框图.
【考点】秦九韶算法 【难度】2星 【题型】解答
【关键词】无
【解析】 程序框图如下:
【答案】
课后作业
习题1. 指出下列哪一个不是算法 ( )
A.解方程的过程是移项和系数化为1
B.从济南到温哥华需要先乘火车到北京,再从北京乘飞机到温哥华
C.解方程
D.利用公式,计算半径为的圆的面积为
【考点】算法的含义 【难度】1星 【题型】选择
【关键词】无
【解析】
【答案】C
习题2. 设计一个算法求解方程组
【考点】算法分析 【难度】2星 【题型】解答
【关键词】无
【解析】 法一(高斯消元法)
S1:①×5-②:;
S2:解上式得;
S3:再代入①求解得.
S4:输出计算的结果.
法二(公式法)
S1:,,,,,;
S2:,,;
S3:判断;
S4:计算,.
S5:输出计算的结果.
【答案】
习题3. 已知,写出求该函数的函数值的算法,并画出相应的程序框图.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】解答
【关键词】无
【解析】 算法:
S1:输入;
S2:若,则,否则;
S3:输出函数值.
程序框图如右.
【答案】
习题4. 已知程序框图如图所示,则执行该程序后输出的结果是_______________.
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】填空
【关键词】2018,海淀,一模,文科第13题
【解析】
∵,∴对应的.
【答案】
习题5. 如图,下程序框图的程序执行后输出的结果是 .
【考点】算法的三种基本逻辑结构与程序框图 【难度】2星 【题型】填空
【关键词】2018,朝阳,一模,文科第11题
【解析】 将经过次运行后的值列表如下.于是.
1
2
3
4
5
...
...
10
2
3
4
5
6
11
1
3
6
10
15
55
【答案】55
习题6. 写出下列程序的运行结果:______.
i=0
s=0
WHILE i<=20
s=s+i
i=i+1
WEND
PRINT s
【考点】Basic语言 【难度】1星 【题型】填空
【关键词】无
【解析】 计数变量从开始,循环到为止,当时,跳出循环,
故;输出结果为;
【答案】
习题7. 为了在运行下列程序之后输出,键盘输入的值应为 .
【考点】Scilab程序语言 【难度】1星 【题型】填空
【关键词】2009,海淀,高二,期中测试
【解析】
【答案】或
习题8. 分别用自然语言、程序框图描述等值算法,并写出等值算法的程序.
【考点】辗转相除法与更相减损术 【难度】2星 【题型】解答
【关键词】无
【解析】 自然语言:
S1:输入两个正整数;
S2:如果不等于,则执行第三步(S3);否则转到第五步(S5);
S3:把的差赋予;
S4:如果,则把赋予,把赋予;否则把赋予,执行第二步(S2);
S5:输出最大公约数.
程序(A版Basic语言):
INPUT (“a,b=”);a,b
WHILE a<>b
IF a>b THEN a=a-b
ELSE b=b-a
END IF
WEND
PRINT b
END
程序(B版Scilab程序语言):
a=input(“a=”);
b=input(“b=”);
while a<>b
if a>b
a=a-b;
else
b=b-a;
end
end
print(%io(2),b)
程序框图如下:
【答案】
相关资料
更多