算法初步精简复习.docx

上传人:b****3 文档编号:26841070 上传时间:2023-06-23 格式:DOCX 页数:19 大小:271.49KB
下载 相关 举报
算法初步精简复习.docx_第1页
第1页 / 共19页
算法初步精简复习.docx_第2页
第2页 / 共19页
算法初步精简复习.docx_第3页
第3页 / 共19页
算法初步精简复习.docx_第4页
第4页 / 共19页
算法初步精简复习.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

算法初步精简复习.docx

《算法初步精简复习.docx》由会员分享,可在线阅读,更多相关《算法初步精简复习.docx(19页珍藏版)》请在冰豆网上搜索。

算法初步精简复习.docx

算法初步精简复习

算法初步

重点与难点:

重点:

算法的含义、解二元一次方程组和判断一个数为质数的算法设计。

难点:

把自然语言转化为算法语言。

概念:

我们小时就开始接触算法,像珠心算,求方程的解等。

算法即算术方法,是指一个由已知推求未知的运算过程。

广义地说,算法就是做某一件事的步骤或程序。

菜谱是做菜肴的算法,洗衣机的使用说明书是操作洗衣机的算法,歌谱是一首歌曲的算法。

在数学中,主要研究计算机能实现的算法,即按照某种机械程序步骤一定可以得到结果的解决问题的程序。

比如解方程的算法、函数求值的算法、作图的算法,等等。

写出的算法要求:

1、写出的算法,必须能解决一类问题(如:

判断一个整数n(n>1)是否为质数;求任意一个方程的近似解;……),并且能够重复使用。

2、要使算法尽量简单、步骤尽量少。

3、要保证算法正确,且计算机能够执行,如:

让计算机计算1×2×3×4×5是可以做到的,但让计算机去执行“倒一杯水”“替我理发”等则是做不到的。

秦九韶算法:

通过一次式的反复计算逐步得出高次多项式的值,对于一个n次多项式,只要作n次乘法和n次加法即可。

表达式如下:

例题分析:

例1任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数做出判定。

算法分析:

根据质数的定义,很容易设计出下面的步骤:

第一步:

判断n是否等于2,若n=2,则n是质数;若n>2,则执行第二步。

第二步:

依次从2至(n-1)检验是不是n的因数,即整除n的数,若有这样的数,则n不是质数;若没有这样的数,则n是质数。

例2用二分法设计一个求议程x2–2=0的近似根的算法。

算法分析:

回顾二分法解方程的过程,并假设所求近似根与准确解的差的绝对值不超过0.005,则不难设计出以下步骤:

第一步:

令f(x)=x2–2。

因为f

(1)<0,f

(2)>0,所以设x1=1,x2=2。

第二步:

令m=(x1+x2)/2,判断f(m)是否为0,若则,则m为所长;若否,则继续判断f(x1)·f(m)大于0还是小于0。

第三步:

若f(x1)·f(m)>0,则令x1=m;否则,令x2=m。

第四步:

判断|x1–x2|<0.005是否成立?

若是,则x1、x2之间的任意取值均为满足条件的近似根;若否,则返回第二步。

小结:

算法具有以下特性:

(1)有穷性;

(2)确定性;(3)顺序性;(4)不惟一性;(5)普遍性

x-2y=-1,①

例3写出解二元一次方程组的算法

2x+y=1②

第一步:

取A1=1,B1=-2,C1=1,A2=2,B2=1,C2=-1;

第二步:

计算

第三步:

输出运算结果。

例4写出一个求有限整数列中的最大值的算法。

解:

S1先假定序列中的第一个整数为“最大值”。

S2将序列中的下一个整数值与“最大值”比较,如果它大于此“最大值”,这时你就假定“最大值”是这个整数。

S3如果序列中还有其他整数,重复S2。

S4在序列中一直到没有可比的数为止,这时假定的“最大值”就是这个序列中的最大值。

小题:

写出对任意3个整数a,b,c求出最大值的算法。

在例4中我们是用自然语言来描述算法的,下面我们用数学语言来描述本题的算法。

S1max=a

S2如果b>max,则max=b.

S3如果C>max,则max=c.

S4max就是a,b,c中的最大值。

综合应用题

例5写出求1+2+3+4+5+6的一个算法。

分析:

可以按逐一相加的程序进行,也可以利用公式1+2+…+n=

进行,也可以根据加法运算律简化运算过程。

算法1:

S1:

计算1+2得到3;S2:

将第一步中的运算结果3与3相加得到6;S3:

将第二步中的运算结果6与4相加得到10;S4:

将第三步中的运算结果10与5相加得到15S5:

将第四步中的运算结果15与6相加得到21。

算法2:

S1:

取n=6;S2:

计算

;S3:

输出运算结果。

小结:

算法1是最原始的方法,最为繁琐,步骤较多,当加数较大时,比如1+2+3+…+10000,再用这种方法是行不通的;算法2比较简单,且易于在计算机上执行操作。

小题;求1×3×5×7×9×11的值,写出其算法。

算法:

用P表示被乘数,i表示乘数。

S1使P=1。

S2使i=3S3使P=P×i

S4使i=i+2S5若i≤11,则返回到S3继续执行;否则算法结束。

小结在上面的算法中,S3,S4,S5构成一个完整的循环,这里需要说明的是,每经过一次循环之后,变量P、i的值都发生了变化,并且生循环一次之后都要在步骤S5对i的值进行检验,一旦发现i的值大于11时,立即停止循环,同时输出最后一个P的值

算法小结

算法的描述可以用自然语言,也可以用数学语言。

例如,某同学要在下午到体育馆参加比赛,比赛下午2时开始,请写出该同学从家里发到比赛地的算法。

若用自然语言来描述可写为

(1)1:

00从家出发到公共汽车站

(2)1:

10上公共汽车(3)1:

40到达体育馆

(4)1:

45做准备活动。

(5)2:

00比赛开始。

若用数学语言来描述可写为:

S11:

00从家出发到公共汽车站S21:

10上公共汽车S31:

40到达体育馆

S41:

45做准备活动S52:

00比赛开始

大家从中要以看出,实际上两种写法无本质区别,但我们在书写时应尽量用教学语言来描述,

2.算法框图的基本结构及设计

2.1顺序结构与选择结构

1)顺序结构:

顺序结构描述的是是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的。

例2:

已知一个三角形的三边分别为2、3、4,利用海伦公式设计一个算法,求出它的面积,并画出算法的程序框图。

算法分析:

这是一个简单的问题,只需先算出p的值,再将它代入公式,最后输出结果,只用顺序结构就能够表达出算法。

程序框图:

 

2)条件结构:

一些简单的算法可以用顺序结构来表示,但是这种结构无法对描述对象进行逻辑判断,并根据判断结果进行不同的处理。

因此,需要有另一种逻辑结构来处理这类问题,这种结构叫做条件结构。

它是根据指定打件选择执行不同指令的控制结构。

例3:

任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在,画出这个算法的程序框图。

算法分析:

判断分别以这3个数为三边边长的三角形是否存在,只需要验收这3个数当中任意两个数的和是否大于第3个数,这就需要用到条件结构。

程序框图:

a+b>c,a+c>b,b+c>a是否

否同时成立?

2.2变量与赋值

一般格式是:

变量=表达式

赋值语句中的“=”叫做赋值号。

赋值符号“=”也可以写成“

”或“

注:

①赋值号左边只能是变量名字,而不能是表达式。

如:

2=X是错误的。

②赋值号左右不能对换。

如“A=B”“B=A”的含义运行结果是不同的。

赋值号“=”与数学中的等号意义不同。

【例题精析】例1:

编写程序,计算一个学生数学、语文、英语三门课的平均成绩。

分析:

先写出算法,画出程序框图,再进行编程。

算法:

程序:

 

 

例2:

交换两个变量A和B的值,并输出交换前后的值。

分析:

引入一个中间变量X,将A的值赋予X,又将B的值赋予A,再将X的值赋予B,从而达到交换A,B的值。

(比如交换装满水的两个水桶里的水需要再找一个空桶)

程序:

 

〖补例〗:

编写一个程序,要求输入一个圆的半径,便能输出该圆的周长和面积。

取3.14)

分析:

设圆的半径为R,则圆的周长为

,面积为

,可以利用顺序结构中的INPUT语句,PRINT语句和赋值语句设计程序。

程序:

 

2.3循环结构:

在一些算法中,也经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这种结构称为循环结构.

循环结构的算法流程图:

 

循环结构的有关概念:

循环体:

反复执行的处理步骤称为循环体.

计数变量:

在循环结构中,通常都有一个起到循环计数作用的变量,这个变量的取值一般都含在执行或终止循环体的条件中.

当型循环:

在每次执行循环体前对控制循环条件进行判断,当条件满足时执行循环体,不满足则停止.

直到型循环:

在执行了一次循环体之后,对控制循环体进行判断,当条件不满足时执行循环体,满足则停止.

例1:

例1设计一算法,求和:

1+2+3+…+100画出解答此问题算法的程序框图.

算法:

第一步:

确定首数a,尾数b,项数n;第二步:

利用公式“总和=(首数+尾数)×项数/2”求和;第三步:

输出求和结果。

程序框图:

 

7、循环语句的两种类型:

当型和直到型.当型循环语句先对条件判断,根据结果决定是否执行循环体;直到型循环语句先执行一次循环体,再对一些条件进行判断,决定是否继续执行循环体.两种循环语句的语句结构及框图如右.说明:

“循环体”是由语句组成的程序段,能够完成一项工作.注意两种循环语句的区别及循环内部改变循环的条件.

例题:

将步骤A和步骤B交换位置,结果会怎样?

能达到预期结果吗?

为什么?

要达到预期结果,还需要做怎样的修改?

答:

达不到预期结果;当i=100时,退出循环,i的值未能加入到Sum中;修改的方法是将判断条件改为i<101

 

 

三、巩固提高1、设计一算法,求积:

1×2×3×…×100,画出流程图

 

四、小结:

1.算法的基本逻辑结构有三种即顺序结构、条件结构和循环结构。

其中顺序结构是最简单的结构,也是最基本的结构,循环结构必然包含条件结构,2.循环结构要在某个条件下终止循环,这就需要条件结构来判断。

因此,循环结构中一定包含条件结构,但不允许“死循环”。

3.在循环结构中都有一个计数变量和累加变量。

计数变量用于记录循环次数,累加变量用于输出结果。

计数变量和累加变量一般是同步执行的,累加一次,计数一次。

3几种基本语句

3.1条件语句

一、问题

1.问题1:

某居民区的物业管理部门每月按以下方法收取卫生费:

3人和3人以下的住户,每户收取5元;超过3人的住户,每超出1人加收1.2元.试设计算法,根据输入的人数计算应收取的卫生费?

若用

(单位:

元)表示应收取的费用,

表示住户的人口数,则

具体算法步骤如下:

S1输入

;S2若

,则

,否则

S2输出

流程图如右图所示.从流程图可以看出这是一个选择结构,

我们可以用条件语句来实现该过程.

1.条件语句:

条件语句的一般形式为:

If—then—Else(如图1所示),对应的程序框图为图2。

“条件A”表示判断的条件,“

 

Endif表示条件语句的结束。

计算机在执行时,首先对If后的条件进行判断,如果符合条件A,则执行Then后面的语句1;若不符合条件A,则执行Else后面的语句2。

例题:

例1.写出输入两个数a和b,将较大的数打印出来的算法,

,并画出流程图.算法:

S1输入a,b;S2若a>b,则输出a,否则输出b.

例2.儿童乘坐火车时,若身高不超过1.1m,则无需购票;若身高超过1.1m到不超过1.4m,可买半票;若超过1.4m,应买全票.试设计一个购票的算法,写出伪代码,并画出流程图.

解:

算法步骤为:

S1测量儿童身高

S2如果

,那么免费乘车;否则,如果

,那么购买半票乘车;否则,购买全票乘车.

伪代码:

流程图:

Read

If

Then

Print免费乘车

ElseIf

Then

Print半票乘车

Else

Print全票乘车

EndIf

例3.已知函数

,试写出计算

值的一个算法.

解:

可以用条件语句表示这类分段函数的算法:

Readx流程图:

Ifx>0Then

y←1

ElseIfx=0Then

y←0

Else

y←

EndIf

Printy

3.2循环语句

思考1:

计算1+2+3+…+100的值有如下算法:

第一步,令i=1,S=0.

第二步,计算S+i,仍用S表示.

第三步,计算i+1,仍用i表示.

第四步,判断i>100是否成立.若是,则输出S,结束算法;否则,返回第二步.

使用until语句

 

思考1思考2思考3

思考2:

计算1+2+3+…+100的值又有如下算法:

第一步,令i=1,S=0.

第二步,若i≤100成立,则执行第三步;否则,输出S,结束算法.

第三步,S=S+i.

第四步,i=i+1,返回第二步.利用WHILE语句写出这个算法对应的程序

思考3:

阅读下面的程序,你能说明它是一个

什么问题的算法吗?

求满足x2<1000的所有正整数x的值.

例2将用“二分法”求方程的近似解的程序框图转化为相应的程序.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1