算法部分章质量检测
本章知识结构
一、知识点剖析
1.算法的定义和特点
掌握要点:
算法定义:在数学中指按照一定规则解决某一类问题的明确和有限的步骤。
算法特点:①有穷性:一个算法的步骤是有限的,它应在有限步操作之后停止。②确定性,
算法的每一步操作必须是明确的,不能有歧义或模糊且算法执行后一定产生确定的结果,不
能模棱两可。③可行性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一
个明确的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步
都要准确无误才能解决问题。④不惟一性:求解某一类问题的算法是不惟一的,对于一个问
题可以有不同的算法。⑤普遍性,很多具体的问题都可以设计合理的算法解决。
易混易错:(1)算法一般是机械的,有时要进行大量重复的运算,只要按部就班的做总能算
出结果,通常把算法过程称为“数学机械化”,“数学机械化”的最大优点是它可以让计算机
来完成。(2)实际上,处理任何问题都需要算法。如,邮购物品有其相应的手续。购买飞机
票也有一定的手续等。(3)求解某个问题的算法不惟一。
2.(1)程序框图表示算法步骤的一些常用的图形和符号
图形符号 名称 功能
终端框(起止框) 程序的开始和结束,
输入、输出框 表示数据的输入或结果的输
出
处理框 赋值,计算
判断框 判断某一条件是否成立,成立
时在出口处标明:“是”或
“YES”;不成立时在出口处标
明“否”或”NO”
流程线 连接程序框
连接点 连接程序框图的两部分
易混易错:在所给的上述符号之中只有判断框有一个入口和两个出口,它是唯一有两个退出
点的符号。
(2)三种基本逻辑结构
①顺序结构
②条件结构
③循环结构
顺序结构:顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺
序进行的。这是任何一个算法都离不开的基本结构。
条件结构:在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立会有
不同的流向,条件结构就是处理这种过程的结构。
易混易错:在条件结构中无论条件是否成立,都只能执行两框之一,两框不可能同时执行,
也不可能两框都不执行。
循环结构:算法结构中经常会遇到从某处开始,按照一定条件反复执行某些步骤的情况,这
就是循环结构,反复执行的步骤成为循环体。循环结构分为两种:当性循环结构和直到性循
环结构。
当性循环结构:在每次执行循环体前,对条件进行判断,当条件满足时,执行循环体,否则
终止循环。“先判断”
直到性循环结构:在执行了一次循环体后,对条件进行判断,如果条件不满足就继续执行循
环体,直到条件满足时终止循环。“先循环”
注意:循环结构中一定包含着条件结构。
3.基本算法语句
(1)输入语句
①输入语句的一般形式是:INPUT “提示内容”;变量
②输入语句的作用是实现算法的输入信息功能
③“提示内容”提示用户输入什么样的信息
④输入语句可以给变量提供初值
⑤提示内容与变量之间用分号隔开,若输入多个变量,变量之间用逗号隔开。
例如:INPUT “提示内容 1,提示内容 2,提示内容 3,…”;变量 1,变量 2,变量
(2)输出语句
①输出语句的一般形式是:PRINT “提示内容”;表达式
②输出语句的作用是实现算法的输出结果功能。
③“提示内容”提示用户输入什么样的信息,如 PRINT “S=;S 是提示输出的结果是 S 的值
④PRINT 语句可以在屏幕上出现常量、变量以及系统信息。
注意:任何求解问题的算法,都要把求解问题的结果输出。
(3)赋值语句
①赋值语句是最基本的语句
②赋值语句的一般格式为:变量=表达式
③“=”叫做赋值号。
易混易错: ①赋值号做变只能是变量而不能使表达式。
②赋值号的左右两边不能调换。
③不能利用赋值语句进行代数式的演算(如化简、因式分解、解方程等)。
④赋值号与数学中的符号意义不同。
注意:输入语句、输出语句、赋值语句基本上对应程序框图中的顺序结构;一个算法有 0 个或
者多个输入,有一个或多个输出;输出语句和赋值语句具有运算功能而输入语句不具有运算
功能。
(4)条件语句
共分为两种形式 IF-THEN-ELSE 格式
(1)
当计算机执行上述语句时,首先对 IF 后的条件进行判断,如果条件符合,就执行 THEN 后的语
句 1,否则执行 ELSE 后的语句 2。其对应的程序框图为:(如上右图)
② IF-THEN 格式
IF 条件 THEN
语句 1
EL
语句 2
满足条件?
语句 1 语句 2
是
否
IF 条件 THEN
语句
END IF
满足条件?
语句
是
否
计算机执行这种形式的条件语句时,也是首先对 IF 后的条件进行判断,如果条件符合,就执
行 THEN 后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的
程序框图为:(如上右图)
条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到
何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。
(5)循环语句
算法中的循环结构是由循环语句来实现的。对应于程序框图中的两种循环结构。
一般程序设计语言中也有当型(WHILE 型)和直到型(UNTIL 型)两种语句结构。即 WHILE 语
句和 UNTIL 语句。
①WHILE语句的一般格式是:
其中循环体是由计算机反复执行的一组语句构成的。WHLIE 后面的“条件”是用于控制计算机
执行循环体或跳出循环体的。
当计算机遇到 WHILE 语句时,先判断条件的真假,如果条件符合,就执行 WHILE 与 WEND 之
间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,
直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到 WEND 语句后,接着
执行 WEND 之后的语句。因此,当型循环有时也称为“前测试型”循环。其对应的程序结构
框图为:(如上右图)
②UNTIL 语句的一般格式是:
其对应的程序结构框图为:(如上右图)
从 UNTIL 型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,
如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到
某一次条件满足时,不再执行循环体,跳到 LOOP UNTIL 语句后执行其他语句,是先执行循环
体后进行条件判断的循环语句。
区别:在 WHILE 语句中,是当条件满足时执行循环体,而在 UNTIL 语句中,是当条件不满足
时执行循环体。
4.算法案例
辗转相除法算法:
第一步:用较大的数 m 除以较小的数 n 得到一个商 q0和一个余数 r0;
第二步:若 r0=0,则 n 为 m,n 的最大公约数;若 r0≠0,则用除数 n 除以余数 r0得到一个商
WHILE 条件
循环体
WEND
DO
循环体
LOOP UNTIL 条件
满足条件?
循环体
是
否
满足条件?
循环体
是
否
q1和一个余数 r1;
第三步:若 r1=0,则 r1为 m,n 的最大公约数;若 r1≠0,则用除数 r0除以余数 r1得到一个商
q2和一个余数 r2;
……
依次计算直至 rn=0,此时所得到的 rn-1即为所求的最大公约数。
程序框图
程序:
INPUT “m=”;m
INPUT “n=”;n
IF m99而不是i>100,因为这个数列共有99
项
3.讨论法画程序框图写程序
方法归纳:先通过解决数学题的思想进行讨论,再画图写程序。
例3、画出解关于x的不等式ax+b99???
输出 s
结束
INPUT a,b
IF a= 0 THEN
IF b>0 THEN
PRINT 无解
ELSE
PRINT x 为全体实数
ELSE IF a>0 THEN
PRINT
bx
a
-<
ELSE
PRINT
bx
a
->
END IF
END
i=1
s=0
DO
s=s+1/(i*(i+1))
i=i+1
LOOP UNTIL i>99
PRINT s
END
主要过程:(1) xy 012.1100
(2)程序如下:
S=100
I=1.2
X=0
WHILE Sc
a=b
输出 a
a=c
Y
Y
N
N
第 1 题
三、高考链接
(2008 广东 )1.阅读右上的程序框图。若输入 m = 4,n = 3,则输出 a = __12__,i =_3____ 。
(注:框图中的赋值符号“=”也可以写成“←”或“:=”)
(2007 山东)2.阅读如上右边的程序框图,若输入的 n
是 100,则输出的变量 S和T 的 ( D )
A.2500,2500 B.2550,2550
C.2500,2550 D.2550,2500`
巩固练习
1、给出一个算法的流程图(如图),若 sin , cos , tan , ( , )
4 2
a b c ,则输出结
果 a为 ( )
A、sinθ B、 cos C、tanθ D、不确定
2.x=5
y=6
PRINT x+y=11
END
上面程序运行时输出的结果是( )
A.xy=11 B.11 C. x+y=11
D.出错信息
3.如果下边程序执行后输出的结果是 990,那么在程序中 UNTIL 后面
的“条件”应为( )
A. i>10
B. i