
正文
C语言01
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
从问题到C语言程序设计1.1计算机的问题求解方法程序设计面向的问题
什么问题可以用程序的方法解决?
打印九九乘法表
图形变换
文件压缩问题
.......
一切可计算的问题
如何解决?
确定问题可计算
建立问题的数学模型
设计算法和数据结构
选择合适的计算机语言编写程序
调试运行程序分析结果
关于计算
什么是计算
基于规则的符号集合的变换过程,有限的步骤
可计算和不可计算
可计算:输入与输出是明确的
不可计算:旅行家问题
理论上可计算的问题,实际上不一定有解
计算的复杂性
时间复杂度:受问题规模影响(如:梅森素数)
空间复杂度(不讨论)
关于算法
什么是算法
有穷规则的集合,规则规定了解决某一特定类型的问题的运算序列(是解决问题的有限步骤)
算法的特征
有穷性:有限步骤
确定性:含义确切
有效性:有效执行
有零个或多个输入
有一个或多个输出
算法描述方法:
自然语言
程序语言
流程图----->传统方法
N-S图------->结构化程序设计方法(待补充)
PAD图
伪代码------>随意但不严谨的方法
算法优化:
减少判断次数
无效输出减少
总结:
算法是解题步骤,设计取决于人的创造
实际问题需要首先分析----抽象----建模,才能设计算法
算法的5个特征,设计时必须满足
基于计算机的问题求解和数学方法有很大不同
算法需要用工程化的方法表达
算法有很大的优化空间
结构化程序设计方法
自顶向下,逐步求精
单入口单出口
什么是好程序
可读性好
效率高
写好一个程序
三个基本结构构成(顺序,选择,循环待补充)
不用GOTO语句(原则不用,适当使用)
良好的程序设计代码特点:
正确性----正确实现功能
易读性----易于阅读和理解,便于调试、修改和扩充
健壮性----算法对交互和环境的反应或处理能力
高效率----所需时空都小
良好的程序设计风格
源程序文档化
数据说明标准化
语句规范化
输入输出格式化
总结
过程:问题---->程序---->指令序列---->结果
从问题到程序---->抽象、建模+程序设计
抽象、建模=可计算+计算复杂性
程序设计=数据结构+算法+方法
算法=问题分析+算法表达+程序实现
程序实现=语言+环境
程序设计面向的问题
什么问题可以用程序的方法解决?
打印九九乘法表
图形变换
文件压缩问题
.......
一切可计算的问题
如何解决?
确定问题可计算
建立问题的数学模型
设计算法和数据结构
选择合适的计算机语言编写程序
调试运行程序分析结果
关于计算
什么是计算
基于规则的符号集合的变换过程,有限的步骤
可计算和不可计算
可计算:输入与输出是明确的
不可计算:旅行家问题
理论上可计算的问题,实际上不一定有解
计算的复杂性
时间复杂度:受问题规模影响(如:梅森素数)
空间复杂度(不讨论)
关于算法
什么是算法
有穷规则的集合,规则规定了解决某一特定类型的问题的运算序列(是解决问题的有限步骤)
算法的特征
有穷性:有限步骤
确定性:含义确切
有效性:有效执行
有零个或多个输入
有一个或多个输出
算法描述方法:
自然语言
程序语言
流程图----->传统方法
N-S图------->结构化程序设计方法(待补充)
PAD图
伪代码------>随意但不严谨的方法
算法优化:
减少判断次数
无效输出减少
总结:
算法是解题步骤,设计取决于人的创造
实际问题需要首先分析----抽象----建模,才能设计算法
算法的5个特征,设计时必须满足
基于计算机的问题求解和数学方法有很大不同
算法需要用工程化的方法表达
算法有很大的优化空间
结构化程序设计方法
自顶向下,逐步求精
单入口单出口
什么是好程序
可读性好
效率高
写好一个程序
三个基本结构构成(顺序,选择,循环待补充)
不用GOTO语句(原则不用,适当使用)
良好的程序设计代码特点:
正确性----正确实现功能
易读性----易于阅读和理解,便于调试、修改和扩充
健壮性----算法对交互和环境的反应或处理能力
高效率----所需时空都小
良好的程序设计风格
源程序文档化
数据说明标准化
语句规范化
输入输出格式化
总结
过程:问题---->程序---->指令序列---->结果
从问题到程序---->抽象、建模+程序设计
抽象、建模=可计算+计算复杂性
程序设计=数据结构+算法+方法
算法=问题分析+算法表达+程序实现
程序实现=语言+环境







