2.通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程。在具体问题的解决过程中(如,三元一次方程组求解等问题),理解程序框图的三种基本逻辑结构:顺序、条件分支、循环.
1.通过对解决具体问题过程与步骤的分析(如,二元一次方程组求解等问题),体会算法的思想,了解算法的含义;
4.进位值
我们常见的数字都是十进制数,比如一般的数值计算,但是并不是生活中的每一种数字都是十进制的。比如时间和角度的单位是六十进制,电子计算机的指令用的是二进制,早先的计算机的用的是十六进制的。
3.排序
(1)直接插入排序
插入排序的思想就是读一个,排一个。将数组的第1个数据放入数组的第1个位置,以后读入的数据与已存入数组的数据进行比较,确定它按从大到小(从小到大)的排列中排在正确的位置。将该位置以及以后的元素向后推移一个位置,将读入的新数填到空出的位置即可。
(2)冒泡排序
以从大到小为例:依次比较相邻的两个数,把大的放前面,小的放后面。即首先比较第1个数和第2个数,大数放前,小数放后;然后比较完成第2个数和第3个数;......;直到比较完了最后两个数。第一趟排序结束,最小的一定沉到最后。重复上过程,仍从第1个数开始,到最后第2个数...... 由于在排序过程中总是大数往前,小数往后,相当气泡上升,所以叫冒泡排序。
2.我们以这个5次多项式函数为例加以说明,设:
f(x)=a5x5+a4x4+a3x3+a2x2+a1x+a0
首先,让我们以5次多项式一步步地进行改写:
f(x)=(a5x4+a4x3+a3x2+a2x+a1)x+a0
=((a5x3+a4x2+ a3x+a2)x+a1)x+a0
=(((a5x2+a4x+ a3)x+a2)x+a1)x+a0
=((((a5x+a4)x+ a3)x+a2)x+a1)x+a0
上面的分层计算。只用了小括号,计算时,首先计算最内层的括号,然后由里向外逐层计算,直到最外层的括号,然后加上常数项即可。
1.求最大公约数
(1)辗转相除法
程序框图与程序语句
程序:
INPUT “m,n=”;m,n
DO
r=m MOD n
m=n
n=r
LOOP UNTIL r=0
END
(2)更相减损术
更相减损术程序:
INPUT “请输入两个不相等的正整数”;a,b
i=0
WHILE a MOD 2=0 AND b MOD 2=0
a=a/2
b=b/2
i=i+1
WEND
DO
IF b<a THEN
t=a
a=b
b=t
END IF
c=a-b
a=b
b=c
LOOP UNTIL a=b
PRINT a^i
END
对于两个正整数如何选择合适的方法求他们的最大公约数
方法 |
适用范围及特点 |
短除法 |
适合两个较小的正整数或两个质因数较少的正整数,简便易操作。 |
穷举法 |
适合计算机操作,但一一验证过于繁琐。 |
辗转相除法 |
适用于两个较大的正整数,以除法为主,辗转相除法计算次数相对较少,特别当两个数字大小差别较大时计算次数较明显。 |
更相减损术 |
适用于两个较大的正整数,更相减损术以减法为主,计算次数上相对于辗转相处法较多。 |
6] -3 0 15
[-3 6] 0 15
[-3 0 6] 15
[-3 0 6 15]
用冒泡排序法排序:
6 |
|
6 |
|
6 |
|
6 |
|
6 |
|
6 |
|
6 |
|
15 |
|
15 |
|
15 |
-3 |
|
-3 |
|
0 |
|
0 |
|
0 |
|
15 |
|
15 |
|
6 |
|
6 |
|
6 |
0 |
|
0 |
|
-3 |
|
15 |
|
15 |
|
0 |
|
0 |
|
0 |
|
0 |
|
0 |
15 |
|
15 |
|
15 |
|
-3 |
|
-3 |
|
-3 |
|
-3 |
|
-3 |
|
-3 |
|
-3 |
题型4:进位值
例7.把十进制数89化为三进制数,并写出程序语句.
解析:具体的计算方法如下:
89=3×29+2
29=3×9+2
9=3×3+0
3=3×1+0
1=3×0+1
所以:89(10)=1011001(3)。
点评:根据三进制数满三进一的原则,可以用3连续去除89及其所的得的商,然后按倒序的先后顺序取出余数组成数据即可。
例8.将8进制数314706(8)化为十进制数,并编写出一个实现算法的程序。
解析:314706(8)=3×85+1×84+4×83+7×82+0×81+6×80=104902。
所以,化为十进制数是104902。
点评:利用把k进制数转化为十进制数的一般方法就可以把8进制数314706(8)化为十进制数,然后根据该算法,利用GET函数,应用循环结构可以设计程序。
7] 1 3 12 8 4 9 10
[7 1] 3 12 8 4 9 10
[7 3 1] 12 8 4 9 10
[12 7 3 1] 8 4 9 10
[12 8 7 3 1] 4 9 10
[12 8 7 4 3 1] 9 10
[12 9 8 7 4 3 1] 10
[12 10 9 8 7 4 3 1]
冒泡排序
7 |
|
7 |
|
7 |
|
7 |
|
7 |
|
7 |
|
7 |
|
7 |
1 |
1 |
3 |
|
3 |
|
3 |
|
3 |
|
3 |
|
3 |
||
3 |
3 |
1 |
|
12 |
|
12 |
|
12 |
|
12 |
|
12 |
||
12 |
12 |
12 |
|
1 |
|
8 |
|
8 |
|
8 |
|
8 |
||
8 |
8 |
8 |
|
8 |
|
1 |
|
4 |
|
4 |
|
4 |
||
4 |
4 |
4 |
|
4 |
|
4 |
|
1 |
|
9 |
|
9 |
||
9 |
9 |
9 |
|
9 |
|
9 |
|
9 |
|
1 |
|
10 |
||
10 |
10 |
10 |
|
10 |
|
10 |
|
10 |
|
10 |
|
|
第一趟
7 |
|
7 |
|
12 |
|
12 |
|
12 |
|
12 |
3 |
|
12 |
|
8 |
|
8 |
|
9 |
|
10 |
12 |
|
8 |
|
7 |
|
9 |
|
10 |
|
9 |
8 |
|
4 |
|
9 |
|
10 |
|
8 |
|
8 |
4 |
|
9 |
|
10 |
|
7 |
|
7 |
|
7 |
9 |
|
10 |
|
4 |
|
4 |
|
4 |
|
4 |
10 |
|
3 |
|
3 |
|
3 |
|
3 |
|
3 |
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
第2趟 第3趟 第4趟 第5趟 第6趟
点评:直接插入法和冒泡法排序是常见的排序方法,通过该例,我们对比可以发现,直接插入排序比冒泡排序更有效一些,执行的操作步骤更少一些.
例6.给出以下四个数:6,-3,0,15,用直接插入法排序将它们按从小到大的顺序排列,用冒泡法将它们按从大到小的顺序排列.
分析:不论从大到小的顺序还是按从大到小的顺序,都可按两种方法的步骤进行排序。
解析:
直接插入排序法:
题型1:求最大公约数
例1.(1)用辗转相除法求123和48的最大公约数?
(2)用更相减损来求80和36的最大公约数?
解析:(1)辗转相除法求最大公约数的过程如下:(建立带余除式)
123=2×48+27
48=1×27+21
27=1×21+6
21=3×6+3
6=2×3+0
最后6能被3整除,得123和48的最大公约数为3。
(2)分析:我们将80作为大数,36作为小数,执行更相减损术来求两数的最大公约数。执行结束的准则是减数和差相等.
更相减损术:
因为80和36都是偶数,要去公因数2。
80÷2=40,36÷2=18;
40和18都是偶数,要去公因数2。
40÷2=20,18÷2=9
下面来求20与9的最大公约数,
20-9=11
11-9=2
9-2=7
7-2=5
5-2=3
3-2=1
2-1=1
可得80和36的最大公约数为22×1=4。
点评:对比两种方法控制好算法的结束,辗转相除法是到达余数为0,更相减损术是到达减数和差相等。
例2.设计一个算法,求出840与1764的最大公因数。
解析:我们已经学习过了对自然数的素因数分解的方法,下面的算法就是在此基础上设计的。
解题思路如下:
首先对两个数进行素因数分解:
840=23×3×5×7,1764=22×32×72,
其次,确定两个数的公共素因数:2,3,7。
接着确定公共素因数的指数:对于公共素因数2,840中为23,1764中为22,应取较少的一个22,同理可得下面的因数为3和7。
算法步骤:
第一步:将840进行素数分解23×3×5×7;
第二步:将1764进行素数分解22×32×72;
第三步:确定它们的公共素因数:2,3,7;
第四步:确定公共素因数2,3,7的指数分别是:2,1,1;
第五步:最大公因数为22×31×71=84。
点评:质数是除1以外只能被1和本身整除的正整数,它应该是无限多个,但是目前没有一个规律来确定所有的质数.
题型2:秦九韶算法
例3.(2009福州模拟)如果执行右面的程序框图,那么输出的 ( )
A.22 B.46 C. D.190
答案 C
2、(2009浙江卷理)某程序框图如图所示,该程序运行后输出的的值是 ( )
A. B. C. D.
[解析]对于,而对于,则
,后面是,不
符合条件时输出的.
答案 A
湖北省互联网违法和不良信息举报平台 | 网上有害信息举报专区 | 电信诈骗举报专区 | 涉历史虚无主义有害信息举报专区 | 涉企侵权举报专区
违法和不良信息举报电话:027-86699610 举报邮箱:58377363@163.com