2.C语言程序设计—算法

一、程序

程序=算法+数据结构
1.对数据的描述 在程序中指定要用到哪些数据,以及这些数据的类型和数据的组织形式。 这就是数据结构
2.对操作的描述 要求计算机进行的操作步骤 也就是算法
数据是操作的对象,操作的目的是对数据进行加工处理 以得到期望的结果。

算法、数据结构、程序设计方法和语言工具是一个程序设计人员所应具备的知识 算法是灵魂 数据结构是加工对象 语言是工具 编程需要采用合适的方法。

二、算法

1.做任何事情都一定的步骤,为解决一个问题而采取的方法和步骤,就称为算法。
为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。
计算机算法可分为两大类,数值运算算法和非数值运算算法,数值运算的目的是求数值解,非数值运算设计的面非常广泛,最常见的是事务管理领域。
2.算法的特性
1)有穷性 一各算法应包含有限的操作步骤,而不是无限的
2)确定性 算法中的每一个步骤都应当是确定的,而不是含糊的、模棱两可的。
3)有零个或多个输入 所谓输入是指在执行算法是需要从外界取得必要的信息。
4)有一个或多个输出 算法的目的是为了求解,“解”就是输出。
5)有效性 算法中的每一个步骤都应当能有效地执行,得到确定的结果。

三、算法的表示方法

算法的表示方法有:自然语言、传统流程图、结构化流程图 和伪代码等
1.用自然语言表示
用自然语言表示通俗易懂但冗长 容易出现歧义 ,除了哪些很简单的问题以外,一般不用自然语言表示算法。
2.用流程图表示算法
流程图是用一些图框来表示各种操作。用图形表示算法,直观形象,易于理解。

菱形图的作用是对一个给定的条件进行判断,根据给定的条件判断是否成立决定如何执行其后的操作。它有把一个入口两个出口。

连接点(小圆圈)是用于将画在不同地方的流程连接起来。

在这里插入图片描述
一个流程图包括以下几个部分:
1)表示相应操作的框
2)带箭头的流程线
3)框内外必要的文字说明
流程图不要忘记画箭头,因为它是反应流程的先后的,如不画出箭头就难以判定各框的执行次序了。
传统的流程图存在弊端,在结构化程序设计方法推广之后,好多书刊开始用N-S结构化流程图代替这种传统的流程图。
传统的流程图 流程线顺序无限制,人员不易看懂规范后产生结构化流程图

三种基本结构
1)顺序结构 图2.14
2)选择结构 图2.15
3)循环结构 图2.17 和 图2.18
在这里插入图片描述

以上3种基本结构。有以下共同特点:
1)只有一个入口
2)只有一个出口 注意判断框有两个出口,而选择结构只有一个出口
3)结构内的每一部分都有机会会被执行到
4)结构内不存在死循环
可以由以上者3种基本结构组成结构化程序。

用N-S流程图表示算法
在流程图中,完全去掉带箭头的流程线。全部算法写在一矩形框内,该框内还可以包含其他从属于它的框,这种流程图又称N-S结构化流程图。

在这里插入图片描述
3.用伪代码表示算法
在设计算法时,可能需要反复修改,而修改流程图比较麻烦。故而出现了一种更方便的表示方法伪代码。
在这里插入图片描述

伪代码书写格式比较自由,容易表达出设计者的思想。
4.用机器语言表示算法
在这里插入图片描述

四、结构化程序设计方法

一个结构化程序就是用计算机语言表示的结构化算法,用3种基本结构组成的程序必然是结构化的程序。
采取以下方法得到结构化的程序:
1)自顶向下
2)逐步细化
3)模块设计
4) 结构化编码在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值