第二章 算法——程序的灵魂课后习题

//习题1、什么是算法?试从日常生活中找3个例子,描述它们的算法。

对操作的描述。要求计算机进行操作的步骤,也就是算法,算法解决的是做什么怎么做的问题。广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。
例一:求1+2+3+4+5。
思路:设置两个变量,一个变量代表被加数,一个变量代表加数。不另设变量存放和,而是直接将每一步骤的和放在被加数变量中。今设变量p为被加数变量i为加数。
用循环算法来求结果。可以将算法改写如下:
S1:1→p(表示将1存放在变量p中)
S2:2→i(表示将2存放在变量i中)
S3:使p与i相加,二者之和仍放在变量p中,可表示为: p+i→p
S4:使i的值加1,即i+1→i
S5:如果i不大于5,返回重新执行S3及其后的步骤S4和S5;否则,算法结束。最后得到p的值就是的值。
例二:求1000以内大于3的的所有偶数。
思路:虽然只有不到短短十几个字,但条件很充足。①必须是一百以内,②必须大于3,③必须是偶数。
设一个常量n为1000用来满足条件①.i用来存放每一个一千以内的数字
S1:1000→n
S2:2→i
S3:判断i是否大于3,如果是,则输出i
S4:i+2→i
S5:如果i=1000则结束,否则返回S3继续依次执行。
例三略。


//习题2、什么叫结构化的算法?为什么要提倡结构化的算法?

答:有基本结构组成的算法就叫做“结构化”算法,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前向后的跳转。为了提高算法的质量,使算法的设计和阅读方便所以提倡结构化的算法。
注:基本结构有选择、循环、顺序。由这些基本结构按一定顺序组成一个算法结构(如同用一些基本预制构件来搭建成房屋一样),如果能做到这一点,算法的质量就能得到保证和提高。


//习题3、试述3种基本结构的特点,请另外设计两种基本结构(要符合基本结构的特点)。

答:顺序结构–在执行完上一条指令之后才可以执行下一条指令,顺序结构是最简单的一种结构。
选择结构–又称为选取结构和分支结构。先判断给出条件,若成立会执行分支中的某一条。
循环结构–又称重复结构,即反复执行某一部分的操作。


//习题4、用传统流程图表示求解以下问题的算法。
(1)有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即A瓶原来盛醋,现改盛酱油,B瓶则相反)。
在这里插入图片描述

(2)依次将10个数输人,要求输出其中最大的数。
在这里插入图片描述

(3)有3个数a,b,c,要求按大小顺序把它们输出。
在这里插入图片描述

(4)求1+2+3+…+ 100。
在这里插入图片描述

(5)判断一个数n能否同时被3和5整除。
在这里插入图片描述

(6)将100~200之间的素数输出。
在这里插入图片描述
(7)求两个数m和n的最大公约数。
在这里插入图片描述
(8)求方程式ax2+bx+c=0的根。分别考虑:
①有两个不等的实根;
②有两个相等的实根。
在这里插入图片描述


//习题5、用N-S图表示第4题中各题的算法。
(1)
在这里插入图片描述
(2)
在这里插入图片描述
(3)
在这里插入图片描述
(4)
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值