当前位置:文档之家› 高中数学 算法初步 教师版

高中数学 算法初步 教师版

高中数学 算法初步 教师版
高中数学 算法初步 教师版

算法的引入

想想你每天从起床到去学校中,必不可少要有三个环节,分别是起床、穿衣服、出门,比如说起床,甭管你是爬起来,跳起来,还是嗖的钻起来,总之你得起床,除非你希望你爸妈抬着你家的床到学校,然后你再穿衣服……考虑其中的两项,可以调换顺序么?比如说穿衣服和出门互换,先出门后穿衣服可不可以?当然可以,只要你不介意裸奔嘛,只是随后可爱的警察叔叔就会带你去一个美丽的地方。那么,像这样的处理一类问题的步骤我们称之为算法。

事实上,算法的迅速发展是在1945年之后,1945年发生一件什么大事?除了日本投降之外,计算机诞生了.那么计算机的诞生就导致人们发现,如果一件事情,你能够规定出一个计算方法来,那么计算机就会比你执行的快.这个年头,大家都用计算机,而且用得非常遛了!但是,你知道有些事情计算机能替你做,有些事情计算机替你做不了.所以,这时我们就希望,越来越多的东西可以用计算机来替我们算,所以,我们需要给计算机提供一个算法.换句话说,一件事情该怎么计算的方法,要由我们来提供,然后由计算机去执行.

提到算法这个概念,大家会觉得比较抽象,其实在数学里,有一些比较经典的东西,你要是仔细来说的话都是算法.比如说《九章算术》里介绍的“合分”就是一个很好的算法案例,所谓的合分就是两个分数相加,书中说的是:母互乘子,并以为实.母相乘为法.也就是两个分母相乘作为新的分母,

分子分母互乘之后加起来得到分子.具体的如21

?

32

+=,我们很快就可以得到答案,但它运算的实际过

知识切片

4.1算法基本概念与算法特性

知识点睛

看到这些算法,都惊呆了!

程是先通分再加减,为什么这么算,小学的时候我们就学过,老师说以后看到这个式子你就这样算就行了,只不过,现在我们越来越熟悉,在脑海中这个过程唰一闪就出来了,式子都不用列,结果就出来了,那实际上这个过程就是算法.就是一个东西该怎么运算,你给规定了一个方法,你按照这个方法执行就行了.从这个角度来说,很多东西就都是算法了,比如说1324?,这个计算过程也是一个算法.那么稍微高级一点的东西,比如说中国古代劳动人民一个智慧的结晶:辗转相除法—求最大公约数,这个也是算法.还比如说“韩信点兵”,这都是算法.下面我们来看一下算法的概念.

1.算法的概念:由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照一定规则解决

某一类问题的明确的和有限的步骤,称为算法().

2.算法的特性:

⑴明确性:算法的每一个步骤必须有确定的含义;

⑵有限性: 算法必须在有限的时间内执行完,即算法必须在执行有限个步骤之后终止 ⑶可执行性:①算法的每个步骤必须是能实现的;②算法的执行结果要达到预期的目的.

【教师备案】因为各个参考书对算法的特性总结的都不一样,所以我们重点总结了三条,其它的老师

可以根据班里学生的情况进行补充,下面是算法特性的一种讲解方法,老师可以借鉴. 计算机执行算法不是无休止的,也不是没有结果的,设想一个计算机等输入了东西然后 运行直到地球毁灭宇宙重生都没有而且永远都不会有结果的将是不可行的算法.根据计 算机处理问题的特点,算法需要具备以下特性:

⑴明确性(Definiteness)

指下的指令必须是清晰明确的,比如:你跟计算机说,小计啊!一会你会收到一个数,

不管你收到什么数,你遇见它以后,你就平方显示出来,那么计算机收到明确的指令,收到2给你返回4,收到3给你返回9,收到5-给你返回25,很明确的指令.或者你跟它说,不管一会你收到一个什么数,你把它减3给我显示出来,那现在收到一个4,显示一个43-,收到一个5,显示一个53-就OK 了.这叫明确性,你给算法的指令必须是清晰明确的,你不能跟它商量,算法很晕的.你跟它商量说,一会你收到一个数,你愿意减3你就减3,你愿意平方你就平方,然后显示出来,那计算机拿到以后啪就晕了,它不会有思想,它只是执行,所以你必须给它明确的指令.

⑵有限性(Finiteness )

因为我们最终要解决一类问题,问题的解决要有限才可以,叫做解决.比如说,你告诉

计算机,你把10万以下的质数给我输出来,当然根据你程序的快慢,早晚有那么一天,如果你程序编的好,一分钟就出来了;如果你程序编的不好,有可能下礼拜就出来了,但是,早晚有那么一天,你还可以算出来.如果你给计算机下这么一条指令,你听说过“哥德巴赫猜想”吗?计算机点点头说听说过,你要干嘛啊!我这慎得慌呢!你把“哥德巴赫猜想”给我证一下吧,从6开始,挨个往上你给我拆一遍.什么时候这个问题能够解决,不可能解决.所以,我们说有限性,要让计算机在有限的步骤内解决.当然了,对于计算机实用的角度来说,我们还希望有限步越少越好.有同学说,是有限步,100年以后就算出来了,这就太不切实际了,所以一般来讲,有限性如果说数字忒大,大到这个计算机虽然能算,但是要几年,几百年之后才能结束,那么往往也不认为是一个很好的算法.

⑶可执行性(Effectiveness)

执行性在计算机里有些事情是做不到的.比如说,数码相机、摄像头、计算机里的数码

相片,都有一个概念叫像素,像素越高画面越清晰,像素代表什么意思呢,计算机里面对于图象所识别的最小单位每一个点是什么颜色,然后很多密密麻麻的点摆在一起,一个点是绿的,一个点是黄的,一个点在稍微黄点,这么多有颜色的点摆在一起,看起来可能就是一个从绿到黄的草坪,实际上它只是每一个点是一个单一的颜色.那么,

对于计算机来说,有没有可能做出纯我们视觉看到的那种自然色,这不可能,它可以像素非常非常的细密,比如说iPhone 像素很高就看不见点了,但仍然是数字化处理一

格一格的,不是自然的.你返回1.732,但是反过来你告诉它小数,你问它这是根号几?注意,无限不循环小数,它会认不出来,因为它处理不了,他只能处理到你看起来好像已经几乎没有差别了而已,就是说计算机永远在做模拟,在很多程度上,计算机的工作不具有可执行性.

【教师备案】算法虽然没有一个明确的定义,但其特点是鲜明的,不仅要注意算法的有限性、可执行性、明确性的特点,还应该充分理解算法问题的指向性,即算法往往指向解决某一类问

题,泛泛地谈算法是没有意义的.以下是三个导入的题.

【备选】写出下列算法

1.12个小球,其中有一个小球超重,找出一个算法:只用天平称三次找出这个超重的小球

【解析】S1:将12个小球分为2堆,一堆6个,用天平称重

S2:将S1中重的那6个小球分成2堆,每堆3个,用天平称重

S3:取S2中重的那3个小球中任意2个小球称重,若相等,则剩下的那个小球是重的,

不等,则重的那个小球是超重的.

【教师备案】本题在ICS中有具体演示的视频,老师可以放给学生看。

2.人鬼过河:河的一边有三个人和三个鬼,河中有一小船,每次最多能乘坐2个人或鬼,而且至少要有一个人或鬼船才能行驶。请设计一种算法,把人和鬼都送到对岸。注:不论是在河边、船上,如果人鬼数量相同,则鬼和人能和谐相处,鬼不吃人,否则,鬼吃掉人。要求算法能给出整个运送过程,包括每次船行驶的方向(是驶向对岸还是返回),船上的人和鬼数量。

【解析】S1:鬼1人一过河

S2:人一回

S3:鬼2,3过河(这样三个鬼过河了,三个人在一起还没过河)

S4:鬼1带船回到人的那一边

S5:人一,人二,过河

S6:人一,鬼2同时带船过河

S7:人一,人三同时过河(这时,人全部过河了,和人一起的只有一个鬼3)

S8:鬼3带船回(这时,三个人全过了河,而三个鬼和船在一边)

S9:鬼1,2过河

S10:人一回

S11:人一,鬼3过河(完成)

【教师备案】本题在ICS中有具体演示的视频,老师可以放给学生看。

经典精讲

【铺垫】下列关于算法的说法正确的有( )

①求解某一类问题的算法是唯一的;

②算法必须在有限步操作之后停止;

③算法的每一步操作必须是明确的,不能有歧义或模糊;

④算法执行后产生确定的结果;

A.1个B.2个C.3个D.4个

【解析】C

对于①,解决某一类问题的算法可以有很多个.②③④都正确.故选C.

【例1】算法的概念

⑴下列结论正确的是()

A.一个程序的算法步骤是可逆的B.一个算法可以无止境地运算下去

C.完成一件事情的算法有且只有一种D.设计算法要本着简单方便的原则

⑵算法的有限性是指()

A.算法中每个操作步骤都是可执行的B.算法的步骤必须有限

C.算法必须有确定的结果D.以上说法均不正确

【解析】⑴D

⑵ B

【拓展】有一堆形状、大小相同的珠子,其中只有一粒重量比其它的轻,某同学经过思考,他说根据科学的算法,利用天平,三次肯定能找到这粒最轻的珠子,则这堆珠子最多有几粒( )

A .21

B . 24

C . 27

D . 30

【解析】 C

将27个9,9,9分堆找出有轻球的那9个,再将这9个3,3,3分堆,再称3个球中的任意两个即可找出最轻的球.

30个球分成10,10,10;当10个球3,3,4分组的时候,若有3个球的2组平衡时,这时有轻球在4球的一堆中,但只有一次称量机会,故无法找出. 答案为C

【例2】 体会算法

【教师备案】让学生做一个感受算法的小例子,在真正的如何去找算法和描述算法之前,计算机上有

一个经典的小问题.在讲这个问题之前先讲一个概念,计算机里数字是怎么处理存储的,比如3,计算机里一定要把3放到一个位置存储,你可以把计算机硬盘看成一个很大的空间,分成很多小格,每一个小格是计算机的一个存储单位,在每一个存储单位下存一个数时,它一定要放在一个位置上.现在你把3放在某一个位置上了,下次你想用的时候,你得把它调出来,因为你除了知道3以外,还要知道3被放在哪,这个“哪”在计算机里叫地址.所以每一个数对应一个存储地址,也叫存储空间.比如(如图):m 就是3所在的地址,我们可以写成“3m = ”,这里的“=”是“赋值号”,“赋值号”是将式子右边的数放在左边的空间.所以,我们不能将式子写成“3m =”,即不能一个数放到另一数里.但我们可以写成“n m =”(如图),即把一个数放到另一个空间里.那下面我们来看一下下面的题. 有实数a 、b ,试设计一个算法,将a 、b 的值互换.

【解析】 法一: 法二:

【教师备案】老师在讲这道题时,可以给学生提示,假如现在有两个杯子,一个杯子里装有半杯的红

豆,另外一个杯子里装有半杯的绿豆,现在要求把红豆倒在装绿豆的杯子里,把绿豆倒在装红豆的杯子里,应该怎么弄?很多同学的第一反应就是再找一个空杯子,然后把红豆倒在空杯子里,把绿豆倒在装红豆的杯子里,最后将红豆再倒在装绿豆的杯子里,这样就可以将红豆和绿豆互换了.老师在讲完这时就可以讲例2中的法一了.讲完法一,老师可以接着再提问,说刚才很宽厚,给了你们一个空杯子,现在要求不用空杯子,那应该怎么将红豆和绿豆进行互换.这时候同学就会想到将半杯的红豆倒入半杯的绿豆里,然后再将绿豆数出来放在装红豆的杯子里.这时我们会发现,空间省了但会费好多的时间,这时老师就可以讲法二了.

【点评】 可以以此题来讲计算机里空间与时间互换.解法一中采用了三次赋值操作,占用,,a b c 三个地

址空间,而解法二采用了三次加减法,和三次赋值操作,而只用了二个地址空间,在本题中,

法一的c 的一个地址空间相当于法二的三次加减法,所以我们设计算法的时候,要尽量降低 算法的时间和空间复杂度.

n 33m ③ b=c ② a=b x x y x y y x y x ① c=a c b y x a ③ a=a b ② b=a b x

y x

y x+y x+y ① a=a+b b y x a

1、算法的描述:

⑴用自然语言; ⑵用数学语言;

⑶用算法语言(程序设计语言); ⑷用程序框图(流程图). 【教师备案】算法可以用自然和数学语言来描述,比如,“x 的平方大于4”就是自然语言的描述,数

学语言的描述则是“2

4x ”。对于计算机呢,则有专门的一套语言,比如大家学过的

BASIC ,C 或者C++用来描述算法。可是,算法代表着解决问题的操作步骤,这些方法

要么过于繁琐,要么过于抽象,对于我们理解算法帮助不大。而图形化表示能够直观、形象的描述着算法解决问题的过程,因此学习算法一个非常好的工具是算法的直观、形象的表征工具——程序框图.

程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形.

下面,我们来看一看流程图中有哪些具体的规定和要求。

2、程序框图的概念:

用一些通用的图形符号构成的一张图来表示算法,称为程序框图(简称框图).常用图形符号(图一)

图形符号

名称 符号表示的意义

起、止框 框图的开始或结束

输入、输出框

数据的输入或者结果的输出

处理框

赋值、执行计算语句、结果的传送

判断框 根据给定条件判断

流程线

流程进行的方向

连结点

连结另一页或另一部分的框图 【教师备案】⑴每个程序只有一个开始和结束框,只有一条流程线出去或者进来,当有多个输出结果

时,必须汇合到一条线上结束,不允许多个结束框;

⑵判断框里的语句必须是称述句,出来的两条线上必须标“是”和“否”(或者‘Y ’ 和‘N ’);

⑶流程线必须横平竖直,不能出现曲线或者交叉;

⑷框图基本规则:①从上到下,从左到右;②主线对齐;③连接线不能交叉.

知识点睛

4.2程序框图

【例3】 写简单的程序框图

⑴输入直角三角形两直角边长度,输出第三条边长度,画出此题的程序框图.

【追问】若改为输入两个正实数,则该怎么写?

⑵已知223(0)

2(0)x x y x x +>?=?-+?

≤,写出求该函数的函数值的算法,并画出相应的程序框图.

【追问】若把式子稍加改动,22302050x x y x x x +>??

=-+

则程序框图应该怎么写?

【解析】 ⑴ 【追问】

⑵算法: S1:输入x ; 0x >,则23y x =+,否则22y x =-+; S2:若S3:输出函数值y . 程序框图如下:

【追问】

【教师备案】对于例3⑴,如果真的放在计算机里去跑,在输入的时候会出现一个问题:当输入是

3,4a b =-=-时,依然可以输出5c =,可是明显的,这三个数并不能构成一个直角三角形。也就是说,计算机得对输入的数据有个容错能力,如果没有,那么这个算法就是不完善的,这个便是评价一个算法好坏的一个重要指标——健壮性。在这道题中,具体来说,应该在在输入,a b 后加一个判断框,判断这两个数是不是正实数,如果是那么ok ,可以进行下去;如果不是,那么直接结束,没有输出。如追问所示。

【教师备案】从例3我们可以看出,框图有直接从开始到结束的,也有中间需要判断的,对于这两个算

法的结构,就是三种基本逻辑结构的两种形式,下面我们来一起看一下算法的三种基本逻辑结构.

经典精讲

是y=-x 2+2y=2x+3x >0输出y

输入x

结束开始

输出 y 否

是否

是y =x 2+2y =5

x =0

y =2x +3x>0

输入x

结束开始开始结束

输入a ,b c =a 2+b 2输出c 否

是结束

输出c c=a 2+b 2

a >0且

b >0

输入a,b

开始

【教师备案】计算机处理问题的一个非常重要的特征就是无论如何复杂的问题都会转化成一个个基本

处理运算,计算机有三种基本运算:逻辑运算(与、或、非),算术运算(加、减、乘、除等),位运算.复杂的问题通过这些基本运算的不断组合与重复处理构成了计算机处理问题的方式,虽然冗长复杂,但是计算机处理速度快使得人们感觉到复杂的问题是瞬间完成的.

然而算法代表着计算机处理问题的思维方法,对此建立了三种基本逻辑结构:顺序结构,条件分支结构,循环结构.

算法的三种基本逻辑结构:顺序结构、条件(分支)结构和循环结构.

1.顺序结构:最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的.如图二

(左),只有在执行完A 框指定的操作后,才能接着执行B 框指定的操作;

【教师备案】例3⑴就是一种顺序结构,但顺序结构有一个缺点,就是很平淡,没有选择或者成长的权

利,只需要一件一件的做,这个事情就完成了。甚至说看到这个结构,你就知道结果是什么,失去了新意,当然很无聊。比如我们打游戏,同样的剧情,随着你完成程度不一样,触发新的彩蛋剧情或者副本,你就会兴致勃勃的打下去。但是,如果把这些都给去了。打着,打着,发现boss 挂了,啥也没爆出来。次奥!彩蛋呢?奖励呢?太坑爹了!!那这游戏就太无聊了.所以,顺序结构的算法太简单以至于无聊了.老师在讲这里时,给学生介绍一下就行,重点讲解另外两种结构.

是是

B A

A

P P

B

A

图二

2.条件(分支)结构:在一个算法中,用来处理需要根据条件是否成立有不同的流向的结构.常见的

条件结构的程序框图有图二的两种形式

【教师备案】条件分支结构的背景就是分段函数,如例3⑵.在讲完条件分支后,就可以让学生做例4.

【例4】

条件分支结构

⑴ 已知函数1y x =-,如图程序框图表示的是给定x 的值,求其相应函数值的算法,将该程

序框图补充完整,其中①处填 ,②处填 ,

⑵ 下面的程序框图能判断任意输入的整数x 的奇偶性.其中判断框内的条件是( )

A .0m =

B .1m =

C .0x =

D .1x =

⑶ 如下图所示的程序框图,如果输入三个实数a b c ,,,要求输出这三个数中最大的数,那么在空白的判断框中,应该填入下面四个选项中的( ) A .c x > B .x c > C .c b > D .b c >

⑷(目标班专用) 写一个程序框图:输入三个正实数,判断这三个数能否构成三角形,若能,输出三角形的面积

经典精讲

知识点睛

4.3三种基本逻辑结构

x ((1)(3)(4)

(1) (2) (3)

【解析】 ⑴10x -<(或10x -≤,1x <,1x ≤), 1y x =-

⑵ B

由程序框图所体现的算法可知判断一个数是奇数还是偶数, 看这个数除以2的余数是1还是0.由图可知应该填1m =. ⑶A ;根据程序框图判断,在空白的判断框内填入c x >.故选A . ⑷如图:

【教师备案】此题我们给出两种解答,比较推荐的是⑵,比较简单。为什么会有

()()()0p p a p b p c --->的出现,,,222

b c a a c b a b c

p a p b p c +-+-+--=-=-

=

如果三个数不能构成三角形,一定会出现两个数之和小于或等于另外一个,比如,a b c a b c ++-≤≤0,那么c 最大,0,0b c a a c b +->+->,三个式子有且仅有一个小于等于0.所以,只需检验它们的乘积,如果大于0,说明所有为正,可以;如果小于等于0,则不能构成三角形。

⑴ ⑵

3.循环结构:从某处开始,按照一定的条件反复执行某些步骤的情况,就是循环结构,其中反复执行

的步骤称为循环体.常见的循环结构的框图对应为图三.

图三

【教师备案】循环结构一定包含条件结构,要不然没法循环,或者可以循环不过是个死循环,无法输

出结果,自然不符合我们的要求。比如说,大家常玩的无尽之剑,游戏中的BOSS ,THE God King (不死之王), 花了很长的时间寻找到了名叫Infinity Blade 的剑, 也就是无尽之剑, 并依此而控制了大陆。 主角为了打败不死之王前往他的要塞, 并要让人们重获自由。 在击败了不死之王麾下的各种手下后败在了Dark Knight (黑骑士)手下。 最终主角被不死之王用无尽之剑杀死。 主角的子孙们怀着同一个梦想和为父辈复仇的愿望踏上了相同的道路......这就是一个非常典型的循环结构,可以看出来,如果打败不死之王,那么游戏结束(欢迎大家进入无尽之剑2,3);如果一直没有,那这个游戏可以玩到世界毁灭之日了。所以在产生循环结构时,一定要切记判断的条件是不是能够最后输出一个结果来。

同样的,在循环的时候也得注意,每次循环一定会有一个条件发生了变化,不然就会陷

入死循环。像无尽之剑中,每次装备收回但是等级和技能点积累,这样你可以让你的角色无限强大下去,最终闯关成功。至于说先改变条件再循环还是先循环再改变条件,就看你个人爱好了,两者都是可以的,只要保证最后的输出结果正确。

【教师备案】老师在介绍这个之后可以拿铺垫此题让同学熟悉这个形式,关键是说清楚为什么要设立

两个参数,S i ,一个代表整个式子的和,一个标定加到第几项了。那么自然的,循环的条件就是1i i =+,项数每次加1,再把这个数加到和上去。这里,项数和这项本身数值一样,所以可以用i 来代替,如果不一样,就必须对变量进行变换来表示每一项。

【铺垫】写出计算123100++++的值的一个程序框图 【解析】 如下⑴图:

【教师备案】每个学生画的肯定都不会完全一样,可能有的学生把循环顺序改变了,比如说先改变i ,

再改变S ,这也是可以的,只不过需要注意的是,此时判断框里的判断条件也要发生变化,如上⑵图,老师可以让学生自己去填充。对于第⑶图,老师可以简单给学生讲解一下,99i =时,循环结束,恰好可以输出。

对于第⑷图,是先循环后判断的结构,也是可以的,需要注意的是初始条件和判断条件要相应改变才行。可以看出来,对于一个循环结构而言,没有什么是不能发生变化的。可以先判断后循环,也可以先循环后判断,循环时的顺序也可以调整,需要注意的是结束循环的条件是否合适,能不能输出正确的结果。那么,在设计程序框图时,我们的习惯是,框图形式越简单,越容易阅读越好。

经典精讲

知识点睛

输出S 否是

i=i+1S=S+i

i ≤100S =0,i =1

结束

开始

输出S 否是i=i+1

S=S+i S=1,i=1

结束

开始i=99输出S 否

是i=i+1

S=S+i

S=1,i=1

结束

开始否

是结束

输出S i ≤99i=i+1

S=S+i

S=0,i =0开始

⑴ ⑵ ⑶ ⑷

【例5】

写循环结构框图

⑴ 写出计算2222123100++++的值的一个程序框图;

⑵ 写出计算111

123100

++++

的值的一个程序框图; ⑶ 写出计算12399100?????的值的一个程序框图.

⑷(目标班专用)写出计算1234562012+-+-+-+的值的一个程序框图.

【解析】 如图

(1)(2)(开S =0i =1

i ≤10i =i +1S =S ·i 输S 结是否开始S =0,i =1

i ≤100

i =i +1S =S +

1i

输出S 结束

否否是

结束

输出S S =S +i 2

i =i +1i ≤100

S =0,i =1

开始

(1) (2) (3)

输出S 否是

i=i+1S=S ?i

i ≤100

S =1,i =1

结束开始

【教师备案】例5⑴老师可以带领学生一起做,并从中总结出程序框图具有“可复用性”,某一个程序

可以稍微改变一部分,就可以解决另一问题,这样的算法最有价值.这样,学生就可以迅速的解决其它的问题.

【拓展】老师可根据班里学生的情况,让学生写写下面的程序框图.

⑴设计算法,求1

11

21

31

415167

S =++

+

+

+

+

⑵设计算法,求1234587169+++++++++的前n 项和

【解析】

(1) (2)

【教师备案】下面的铺垫和例6则是在程序框图一章里常考的输出结果题型,一般会给你流程图让你

去计算结果。

【铺垫】⑴ 写出下图①中顺序框图的运算结果_______________.

⑵ 写出下图②中顺序框图的运算结果___________.

【解析】 ⑴

5

2 ⑵ 10

① ②

【例6】 求输出结果

⑴(2010年合肥高中联考)执行下面的程序框图,若4p =, 则输出的S 等于( )

A .78

B .1516

C .3132

D .12

⑵如图是一个算法的程序框图,当输入的x 的值为5时,其输出的结果是________. ⑶程序框图(即算法流程图)如图所示,其输出结果是 . ⑷(目标班专用)(2013昌平区二模理12)执行如图所示的程序框图, 若①是6i <时,输出的S 值为 ; 若①是2013i <时,输出的S 值为 .

(1) (2) (3) ⑷ 【解析】 ⑴B

由程序框图可知234111115

222216

S =+++=.

⑵2 50x =>,20x =>,10x =-<,故输出1

(0.5)2y -==.

⑶127

⑷5;2013

输出 sum 结束

i ≥100?

i =i +2

sum=sum+i

i =2,sum=0开始

结束

输出S 否是S =S +12n

n =n +1n

开始否是(2)

输出a a >100 ?a =2a +1a =1结束开始结束

输出x

x =log 2a +3a 输入a =2开始S =b a +a

b 输出S 结束

开始

输入a =2,b =4

否是

开始结束

输入x

x ≤0y =0.5x

输出y x =x -3①

i =1,S =0a i =cos i π2+1S =S +a i i =i +1否

输出S 结束开始

读图完成下列两题

⑴ 循环体执行的次数是( )

A .50

B .49

C .100

D .99 ⑵ 程序输出结果是( )

A .5049

B .4850

C .2450

D .2550

【解析】 ⑴ B :

∵2i i =+,∴当22100n +≥时,循环

结束,此时49n =,

⑵ C

sum 024*******=+++++=

【点评】本题容易误认为2100n ≥,得出循环50次,忽略了从2开始

【演练1】下列算法:①z x =;②x y =;③y z =;④输出x y ,;关于算法作用,下列叙述正确的是

( )

A .交换了原来的x y ,

B .让x y ,相等

C .变量z 与x y ,相等

D .x y ,仍是原来的值 【解析】 A

交换2个数的值的标准方法,

【演练2】写出求任意两个实数,a b 的最小值算法的程序框图.

【解析】 如右图

【演练3】某算法的程序框图如下图所示,则输出量y 与输入量x 满足的关系式是________.

【解析】 2,1

2,1x x y x x ?=?->?

实战演练

min =a 输出min 结束开始

输入a,b a>b min =b

是否

y =2x 输出y y =x -2x >1开始

结束

输入实数x

【演练4】写出计算1!2!3!20!++++的值的一个程序框图. 【解析】

【演练5】如图是一个算法的程序框图,若该程序输出的结果为

4

5

,则判断框中应填入的条件是( ) A .4T > B .4T < C .3T > D .3T <

S = S +

1T ? i

T =T +1i =i+1S =0

T =0i =1输出S 否

是结束

开始

【解析】 B ;

循环一次得:12,1,2i T S ===

;两次得:112

3,2,263

i T S ===+=;三次得:2134,3,3124i T S ===+=;四次得:314

5,4,4205

i T S ===+=,此时需要跳出循环,故

填4T <.

1. 算法的概念:由基本运算及规定的运算顺序所构成的 ,或者看成按照 解决某

一类问题的 的和 的步骤,称为算法(Algorithm ).

2. 算法的特性: 、 、 .

3. 用一些通用的图形符号构成的一张图来表示算法,称为 .

4. 算法的三种基本逻辑结构: 、 和 .

概念要点回顾

S=S+i !

开始

结束S =0,i =1i ≤20

i=i+1是

输出S

伟大的创造——“图灵机”

1937年,伦敦权威的数学杂志又收到图灵一篇论文《论可计算数及其在判定问题中的应用》。这篇论文是阐明现代电脑原理的开山之作,被永远载入了计算机的发展史册,照耀着现代电脑的前进方向。后来,冯·诺依曼在他的《自动计算机的一般逻辑理论》一文中写道:“大约12年前,英国逻辑学家图灵开始研究下列问题,他想给自动计算机的含义下一个一般性的定义。”在这篇文章中,冯·诺依曼阐述了图灵在理论上的重大贡献。

熟悉科学史的人都知道,伟大的科学发明往往是在理论取得重大突破之后才能够得以实现。巴贝奇和阿达终身奋斗,致力于发明一台通用计算机——分析机,但他们并没有从理论上证明它的可行性,凭借的只是自己的经验和热情。图灵的这篇论文,涉及的议题并非是如何研制一台具体计算机,而是为了解决数学领域一个基础性问题。

还在剑桥读书时,图灵天才的大脑就常常在思索数学函数的“可计算性”问题。物理学家阿基米德曾手持杠杆宣称:给我一个支点,我就能移动地球。如果茫茫宇宙间真有这么个支点,只要给阿基米德足够的时间,比方说数以亿计的年度,地球的确可以被他的杠杆撬动。然而,数学上的一些函数,是不是只要给人以足够的时间演算,也都能够通过有限次机械步骤求得解答呢?

这是一个必须在理论上做出解释的数学难题,传统数学家当然只会想到用公式去推导,证明它是否成立。可是,具有“跳跃思维”头脑的图灵不愿意墨守陈规,他独辟蹊径地想出了一台冥冥之中的机器,一台理想中的计算机。图灵想象的机器说起来很简单:该计算机使用一条无限长度的纸带,纸带被划分成许多方格,有的方格被画上斜线,代表“1”;有的没有画任何线条,代表“0”。该计算机有一个读写头部件,可以从带子上读出信息,也可以往空方格里写下信息。该计算机仅有的功能:把纸带向右移动一格,然后把“1”变成“0”,或者相反把“0”变成“1”。

这就是图灵设计的“理想计算机”,后人把它称为“图灵机”,实际上这是一种不考虑硬件状态的计算机逻辑结构。在他的论文中,图灵还提出可以设计出另一种“万能图灵机”,用来模拟其它任何一台“图灵机”的工作。如果认为“图灵机”是理想计算机,那么“万能图灵机”就是通用计算机的原始模型。图灵甚至还想到把程序和数据都储存在纸带上,从而比冯·诺依曼更早提出了“储存程序”的概念。

图灵把证明数学题的推导过程,转变成为一台自动机器的运行过程后,不仅证明了这一数学难题,而且用“万能计算机”的设想,从理论上证明了制造出通用计算机的可能性。他的“万能计算机”就是现代通用计算机的一种模型,这种机器只要为它编好程序,就可以承担其他机器能做的任何工作。后来研制出来的通用计算机,无论是5年之后楚泽研制的Z-3、8年之后艾肯研制的MarkⅠ,还是10年之后莫契利等创造的第一台电脑ENIAC,莫不是图灵在头脑里早就在构思的机器。

纽曼教授感慨地说过:“现在的人很难认识到,当时把纸带及在纸带上的穿孔模式这类话题引进数学基础的讨论是多么大胆的革新。”从“理想计算机”和“储存程序”开始、直到后来论证的“自动程序设计”和“系统仿真”等等,阿兰·图灵以其独特的洞察力提出了大量有价值的理论思想,似乎都成为计算机发展史不断追逐的目标,不断地被以后的发展证明其正确性。

相关主题
文本预览
相关文档 最新文档