引言
程序包含两个方面的信息:
对数据的描述:
就是数据结构:程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式.
需要的数据 数据的类型 数据的存储的形式 如:key-value
对操作的描述:即要求计算机进行操作的步骤,也就是算法
数据是操作对象
操作的目的是对数据进行加工处理来得到想要的结果
程序设计人员应具备的知识: 算法、数据结构、程序设计方法、语言工具。
算法+数据结构=程序
算法是灵魂,语言是工具,数据结构是加工对象,编程需要采用合适的方法
2.1 什么是算法
算法(广义): 解决一个问题采取的方法和步骤
计算机语言算法 :程序
2.2 简单的算法举例
略
2.3 算法的特性
有效算法的特点:
有穷性:一个算法包含有限的操作步骤,而不能是无限的
确定性:算法每个步骤都是确定的,不会产生歧义
零个或多个输入(形式参数表):输入是指执行算法时需要从外界取得必要的信息.
有一个或多个输出:算法的目的是为了求解.
有效性:算法中每步能有效的执行
2.4 表示一个算法
2.4.1 用自然语言表示
用人们日常使用语言表示一个算法
2.4.2 用流程图表示
流程图用一些图框表示各种操作
2.4.3 三种基本结构和改进的流程图
传统流程图的弊端
没有严格规范,不易阅读和理解算法逻辑
算法可靠性弱,可维护性低
三种基本结构
用三种基本结构作为一个良好算法的节本单元
顺序结构:
最简单的一种基本结构
选择结构:
选择结构又称选取结构或分支结构判定给定的条件是否成立,从而选择执行A或B
循环结构:
又称重复结构,反复执行某一部分的操作
三种基本结构共同点:
1.只有一个入口
2.只有一个出口
3.结构内每一部分都有机会被执行到
4.结构内不存在死循环(体现了算法的有穷性,步骤是有限的,如:调用一个循环时,条件不会是一个无限循环的条件)
2.4.4 用N-S流程图表示算法
在基本结构上进行修改,去掉带箭头的流程线,算法全部写在一个矩形框中,框中包含其他从属关系.
简单来说,由一些基本的框组成一个大框.
如
2.4.5 用伪代码表示算法
伪代码写算法并无固定的,严格的语法规则,只要把意思表达清楚,便于书写和阅读即可,书写的格式要写成清晰易读的形式。
2.4.6 用计算机语言表示算法
完成一项工作,包括设计算法和实现算法两个部分
如:菜谱是一个算法,厨师炒菜就是在实现这个算法
对于计算机来说,只能用计算机语言来实现算法,流程图和伪代码是无法识别的。
注意:对于C语言来说,写出了C程序,仍然只是描述了算法,并未实现算法,只有运行程序才是实现了算法。
2.5 结构化程序设计方法
结构化程序设计的目的:程序设计风格和程序结构的规范化。
结构化程序设计方法的基本思路:
将复杂问题的求解过程分段进行,每个阶段处理的问题到控制在人们理解和处理的范围内。
主要采取的设计方法:
1>自定向下
2>逐步细化
3>模块化设计
4>结构化编码
- 本文链接:https://www.nscblog.top/posts/4c65aa6d/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub Issues