C语言程序设计1:从问题到c语言的程序设计
程序设计面向的问题
许多常见问题通过软件解决了。
而比如打印九九乘法表、图形变换、文件压缩、求和问题、排序问题、数列问题等这种小问题,用程序解决。一切可计算问题都可以用程序解决
程序设计的五个步骤
- 确定问题可计算;
- 建立问题的数学模型;
- 设计算法和数据结构;
- 选择合适的计算机语言编写程序;
- 调试运行程序分析结果
计算
-
什么是计算
从一个按规则组织的符号集合开始,再按照既定的规则一步步地改变这些符号集合,经过有限步骤之后得到一个确定的结果。
-
可计算与不可计算
输入参数和输出参数的对应关系是明确的
-
计算复杂性
从时间复杂度和空间复杂度两个方面度量
算法
-
什么是算法
有穷规则的集合
-
算法的特性
- 有穷性:有限步骤 - 确定性:含义确切 - 有效性:有效执行 - 有零个或多个输入 - 有一个或多个输出
-
算法描述方法
- 自然语言 - 程序语言 - 流程图:顺序结构、条件结构、循环结构 - N-S图 - PAD图 - 伪代码
程序设计方法
-
程序设计风格:
- 正确性:正确实现功能 - 易读性:易于阅读和理解、便于调试、修改和扩充 - 健壮性:算法的对交互和环境的反应或处理能力。正确的输入有正确的结果,不正确的输入有相应的提示 - 高效率:达到所需要的时空性能
-
良好的设计风格应该是:
- 源程序文档化:有意义的符号名如FindRoot;采用缩进格式... - 数据说明标准化:顺序;同类数据排序;对重要数据进行注释 - 语句规范化:避免使用临时变量;尽量使用库函数;公共函数使用括号;避免二义性... - 输入输出格式化:格式简单;对输入数据要进行检验;对输入数据给出必要的提示;输入风格要一致;注释
-
结构化程序设计的特征:
- 模块化结构; - 以三种基本结构的组合来描述程序 - 有限制地使用转移语句; - 每个结构只有一个入口,一个出口; - 采用结构化程序设计语言书写程序,并采用一定的书写格式使程序结构清晰,易于阅读;
小结
程序设计=数据结构+算法+方法
算法=问题分解+算法表达+程序实现
程序实现=语言+环境