服务类第1章算法与程序框图 联系客服

发布时间 : 星期六 文章服务类第1章算法与程序框图更新完毕开始阅读ea6785447ed5360cba1aa8114431b90d6c8589ad

第 章 算法与程序框图

算法不仅是数学的重要组成部分,也是计算机科学的重要基础,我们常用计算机上网聊天、收发邮件、玩游戏、看电影、听音乐、处理文字、统计数据??,那么,计算机是怎样做到这些的呢?想要弄清这个问题,算法的学习就是其中的一个重要部分。

用程序框图表示算法,不仅直观、形象、容易理解,而且可以清楚地展现算法的逻辑结构,使算法更容易用计算机程序来实现。

本章学习目标

学完本章内容,你将能够 ● 了解算法的概念 ● 体会算法的基本思想 ● 掌握程序框图的基本图例

● 能用程序框图表述简单的算法,并体会其中的逻辑处理过程 ● 通过实例体会算法和程序框图在自然科学和生产实践中得应用

本章目录

§1算法的概念

§2命题逻辑与条件判断 §3程序框图

§4算法与程序框图应用举例

第一节 算法的概念

说起算法,大家可能觉得有点陌生,但事实上,我们几乎每天都会和它打交道。例如:到菜场买菜,青菜每千克4.8元,买了1.2千克,如果我们用计算器计算该付多少钱,我们的做法是:

第一步 按计算器的开启键; 第二步 按数字键输入4.8; 第三步 按乘号键;

第四步 按数字键输入1.2; 第五步 按等号键得出结果。 这就是解决这个问题的算法。

探究

小李想用银行卡从自动取款机上取500元钱,由于他第一次用银行卡取钱,所以向你求助,你能写下用银行卡取钱的具体步骤,帮助他顺利取到钱吗?

新知

算法是指用来解决问题的一系列明确而有效的步骤,是解决问题的清晰指令。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。

我们可以设计出许多实际问题的算法。先看下面几个例子。 例1 设计一个算法,求出1+2+3+?+10的值。

分析 写解决某个问题的算法,只要将做这件事的过程,按次序一步一步写出来就可以了。由于实数的加法满足结合律,所以可以将这些数从左向右依次相加。

解 算法为:

第一步 计算1+2,得到结果3; 第二步 计算3+3,得到结果6; 第三步 计算6+4,得到结果10; 第四步 计算10+5,得到结果15; ????

第九步 计算45+10,得到结果55. 所以,1+2+3+?+10=55.

例2 现在有一杯开水和一杯茶,你能设计一个算法,将开水和茶对调吗?试一试。 分析 将开水和茶对调,就是将开水装在原来装茶的杯子中,同时将茶装在原来装开水的杯子中,为此,我们需要第三只空杯子。

解 为了叙述方便,我们设原来装开水的是A杯,装茶的是B杯,第三只空杯子为C杯。那么将开水和茶对调的算法为:

第一步 将A杯中的开水倒入C杯; 第二步 将B杯中的茶倒入A杯; 第三步 将C杯中的开水倒入B杯。 这样,开水和茶就对调了。 在计算机程序设计的时候,有时我们需要将两个存储单元中的数据对调,这时的算法和将开水和茶对调的算法是类似的,也需要第三个空的存储单元。

随堂练习

1. 设计一个算法,求出1?2?3???10的值。

2. 写出在下面的数列中,搜索出数据5的一个算法: 12,3,-1,2,6,9,18,5,-3,17

我们发现,在设计算法的过程中,解决问题的思想方法有时并不太难,但在描述的时候却很啰嗦,为了解决这个问题,可以引进变量和赋值。

在解决问题的过程中,可以取不同数值的量称为变量。在设计算法和程序时,引入变量并且对它进行适当赋值,可以使算法的表述变得简洁而又清楚。下面就介绍这样设置变量并对它赋值。

大家在看某些娱乐类节目时,经常看到下面的情节: 一开始主持人报:开始的时候的选手的分数为100;

第一环节结束后,主持人报:这一环节结束后,分数加20; 第二环节结束后,主持人报:这一环节结束后,分数加30; 第三环节结束后,主持人报:这一环节结束后,分数减15; 第四环节结束后,主持人报:这一环节结束后,分数加50; 如果要计算这名选手最后的得分,可以用下面的算法: 第一步 计算100+20,得到结果120; 第二步 计算120+30,得到结果150; 第三步 计算150-15,得到结果135; 第四步 计算135+50,得到结果185. 所以,这名选手的最终得分为185.

如果我们引入变量,这个算法可以这样表述: 第一步 S=100; 第二步 S=S+20; 第三步 S=S+30; 第四步 S=S-15; 第五步 S=S+50; 第六步 输出S。

可见,引入变量,并且对它进行赋值,可以使算法的表述变得非常简洁。

上述算法中,前五步的每一步,都要计算这名选手在这一环节结束后的得分,并将它都记为S,S在整个过程中可以取不同的值,所以S就是一个变量。

新知

在算法和程序设计中,变量与赋值是非常重要的概念,一个变量对应了一定的存储单元,用于存储数据,给变量赋值就是将这个值(数据)存储到这个变量所对应的存储单元,你可以将变量看成是一个盒子,而给变量赋值就相当于往这个盒子里放东西,这个盒子可以放不同的值,但每次只能放一个。只要不给变量赋新的值,变量将始终保持已经存入的值直到算法终止,当给变量赋新的值时,原来的值将被新的值替代。

给变量赋值的一般格式为: 变量名=表达式 其中的符号“=”,就是赋值号,它的意义是将后面的表达式的值赋给变量,也就是将表达式的值存储到这个变量所对应的存储单元。

例如:n=2, S=a+b, i=i+1。 都是合法的。

注意,赋值号“=”与以前我们熟悉的等号是不同的,赋值号就是将表达式的值存储到这个变量所对应的存储单元,而等号表示左右两边的值相等。

例如:上述算法的第一步S=100,就是将数据100存入变量S所对应的存储单元,第二步S=S+20也是合法的,它的意义是将原来S的值加上20,得到一个新的值,并将它赋给S,此时,变量S中存储的值就是新的值。假如原来S=100,则在执行S=S+20后,变量S中所存储的值就变为120了。而在代数式中,S=S+20是不可能成立的。

在一个算法中,可以给同一个变量先后多次赋值,但该变量最终的值只是最后一次所赋的值。

例如上面的算法,最后输出的S的值只是最后一次所赋的值,即185.

例3 请仔细阅读下面的算法: 第一步 A=1,B=2,C=3; 第二步 A=A+B; 第三步 A=A+B+C; 第四步 输出A,B,C。

问:最后输出的A,B,C的值各为多少?

分析 我们可以给同一个变量先后多次赋值,而该变量最终的值只是最后一次所赋的值,但如果我们没有给变量赋新的值,即使这个变量参与运算和操作,该变量的值仍不变。

解 最后输出的A,B,C的值分别为8,2,3.

例4 金融作为现代生活不可或缺的行业,与我们的生活密切相关。李大爷现在手上有10000元人民币,他按照定期一年,到期自动转存的方式存入银行,已知当前定期一年的利率为3.5%,那么5年后他连本带利可以得到多少钱?你能设计一个算法,帮李大爷算一算吗?(假设五年的利率不变,并且不计利息税)

分析 由于定期一年的利率为3.5%,所以一年后连本带利为10000×(1+3.5%)元,然后以它为本金,计算第二年得到的钱数。

解:算法为:

第一步 S=10000; 第二步 S=S×(1+3.5%); 第三步 S=S×(1+3.5%); 第四步 S=S×(1+3.5%); 第五步 S=S×(1+3.5%); 第六步 S=S×(1+3.5%); 第七步 输出S。

S即5年后他连本带利可以得到的钱数。

上述算法中,第一步的变量S中存储的是本金,第二、三、四、五、六步中变量S中存储的分别为第一、二、三、四、五年后李大爷连本带利得到的钱数。