第2章 程序的灵魂——算法

知识点

算法的五个特性:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性

计算机科学家沃思提出:程序 = 算法 + 数据结构

常用的算法表示方法有:自然语言、传统流程图、结构化流程图、伪代码、PAD图等

计算机算法可分为两大类:数值运算算法和非数值运算算法

习题

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

算法是对解题方案的准确而完整的描述,是一系列解决问题的清晰指令。

例1:上课
S1:从宿舍向教学楼出发
S2:进入教室
S3:找空位
S4:坐下

例2:晾衣服
S1:将衣服从洗衣机内取出
S2:将衣架置入衣物内
S3:将衣物挂上晾衣架

例3:喝茶
S1:将茶叶放入茶壶
S2:倒入开水等待几分钟
S3:倒入茶杯
S4:喝茶

2.2 什么叫结构化的算法?为什么要提倡结构化的算法?

结构化算法是由一些基本结构顺序组成的,如顺序结构、选择结构、循坏结构。
因为结构化的算法不存在无规律的转向,相较于非结构化的算法更为严谨阅读性以及质量更高。

2.3 试述3种基本结构的特点,你能否自己另外设计两种基本结构(要符合基本结构的特点)。

顺序结构:一种线性有序的结构,依次执行各语句模块
选择结构:根据条件成立与否选择程序执行的通路
循坏结构:重复执行一个或几个模块,直到满足某一条件

基本结构的特点:
① 只有一个入口
② 只有一个出口
③ 结构内的每一部分都有机会被执行到。
④ 结构内不存在死循环

由此可以给出以下两种结构:while型和until型循坏复合以及多选择结构

2.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)求方程式ax²+bx+c=0的根。分别考虑:①有两个不等的实根;②有两个相等的实根;

2.5 N-S图表示2.4题中各题的算法。

2.6 用伪代码表示2.4题中各题的算法。

2.7 什么叫结构化程序设计?它的主要内容是什么?

结构化程序设计是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变单纯而明确,为设计一些较大的软件打下了良好的基础。

2.8 用自顶向下、逐步细化的方法进行以下算法的设计:

(1)输出1900-2000年中是闰年的年份。

(2)求ax²+bx+c=0的根,分别考虑D=b²-4ac大于0、等于0和小于0这3种情况。

(3)输入10个数,输出其中最大的一个数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值