导图社区 程序设计
程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。专业的程序设计人员常被称为程序员。任何设计活动都是...
社区模板帮助中心,点此进入>>
程序设计
学习目的
1.培养基于计算机进行计算思维的意识
2.培养用计算机语言求解问题的能力
3.学习程序设计方法
步骤
确定问题可计算
建立问题的数学模型
设计算法与数据结构
选择合适的计算机语言编写程序
调试运行程序分析结果
关于算法
有穷规则的集合,规则规定了解决某一特定类型问题的运算序列 是解决问题的有限步骤
特征:有穷性:有限步骤; 确定性:含义确切; 有效性:有效执行; 有零个或多个输入; 有一个或多个输出。
描述方法:自然语言 程序语言 流程图一传统方法 N-S图--结构化程序设计方法 PAD图 伪代码一随意但不严蓬的方
常用流程图 例如:
算法优化
任何程序三部曲:输入-处理-输出
1.算法是解题步骤,设计取决于人的创造 2.实际问题需要首先分析一抽象一建模, 才能设计算法 3.算法有5个特征,设计时必须满足 4.基于计算机的问题求解和数学方法有很 大不同 5.算法需要用工程化的方法表达 6.算法有很大的优化空间
依据问题选择合适的计算
子主题
关于计算
可计算与不可计数
计算机只能完成可计算问题的求解
可计算:输入与输出参数对应明确 如:*函数 *鸡兔同笼 *求和 *梅森素数 *排序 ......
不可计算 如:*图灵停机问题 *旅行家问题 *判断计算机是否有病毒
是基于规则的符号集合的变换过程
从一个按规则组织的符号集合开始,再按照既定的规则一步步地改变这些符号集合,经过有限步骤之后得到一 个确定的结果。
计算复杂度
设计方法
好程序标志:1.可读性好 2.效率高
程序代码要具有: 正确性 易读性:易于阅读和理解,便于调试,修改和扩充 健壮性:算法对交互和环境的反应和处理能力 高效率
结构化程序设计方法
1.三种基本结构:顺序,选择,循环结构(任何算法都可以用这三种结构组合而成)
2.取消GOTO
取消原因:太灵活,可读性差 保留原因:灵活提高效率
如何取消:N-S图
1.功能域明确; 2.容易确定局部和全局数据的 作用域 3.不可能任意转移控制; 4.很容易表示嵌套关系及模块的层次关系。
3。结构化设计方法
程序设计方法:自顶而下,逐步求精
程序控制结构:单入口单出口
程序设计风格
源程序文档化
1.有意义的符号名:FindRoot. JSJKexue、.. 2.写好注释:序言性注释、注解性注释 3.采用缩进格式
数据说明标准化
数据说明的顺序 同类数据排序 对对重要数据进行注释
语句规范化
编程思路不要追求技巧 避免使用临时变量 尽量使用库函数、公共函数 使用括号避免二义性
输入输出格式化
输入格式要简单、自由 对输入数据要进行检验 对输入数据给出必要的提示 输入风格要一致 输出数据要进行注释
1.计算是基于规则的过程 2.用程序解决的问题必须可计算! 当然实现计算的“规则”必须能正确表达; 3.计算复杂度一可计算并不一定 能得到解:空间复杂度和时间复杂度 4.可计算并有限步骤