- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计初步
程序设计初步
人与人之间互相交流,应能够听懂彼此的语言;人与计算机交流,计算机应能够“听懂”人的语言。程序设计就是为计算机编制程序的过程,即利用计算机“听得懂”的语言来描述人类自然语言所描述问题的解决步骤的过程,以便与计算机交流。
程序设计的基本概念
程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。专业的程序设计人员常被称为程序员。
1.程序设计主要步骤如下:
(1) 分析问题:对于接受的任务要进行认真的分析,研究所给定的条件,分析最后应达到的目标,找出解决问题的规律,选择解题的方法,完成实际问题。
(2) 设计算法:即设计出解题的方法和具体步骤。
(3) 编写程序:将算法翻译成计算机程序设计语言,对源程序进行编辑、编译和连接。
(4) 运行程序,分析结果:运行可执行程序,得到运行结果。能得到运行结果并不意味着程序正确,要对结果进行分析,看它是否合理。不合理要对程序进行调试,即通过上机发现和排除程序中的故障的过程。
(5) 编写程序文档:许多程序是提供给别人使用的,如同正式的产品应当提供产品说明书一样,正式提供给用户使用的程序,必须向用户提供程序说明书。内容应包括:程序名称、程序功能、运行环境、程序的装入和启动、需要输入的数据,以及使用注意事项等。
2.程序设计是一门技术,也是算法设计的基本工具,需要相应的理论、技术、方法和工具来支持。程序设计主要涉及以下3个问题:
(1) 做什么:就是程序需要实现的功能。
(2) 怎么做:就是如何实现程序的功能,在编程中,称为逻辑,即实现的步骤。
(3) 如何描述:就是把怎么做用程序语言的格式描述出来。
程序设计是一个创新的过程,编写的程序由两个主要方面组成:
(1)算法的集合:就是将指令组织成程序来解决某个特点的问题;
(2)数据的集合:算法在这些数据上操作,已提供问题的解决方案。
3.程序设计主要经历了结构化程序设计和面向对象程序设计的发展阶段,程序设计环境则经历了文本化到可视化的发展过程。
(1)结构化程序设计
结构化程序设计(Structural Programming)是一种以功能为中心,基于功能分解的程序设计方法。一般采用自顶向下、逐步求精的方法,将一个复杂的系统功能逐步分解成由许多简单的子功能构成,然后分别对子功能进行编程实现。程序=算法+数据结构,算法是对数据的加工步骤的描述,而数据结构是对算法所加工的数据的描述。数据与操作分离,缺乏对数据的保护;功能会随着需求的改变而变化,而功能子程序的重新设计往往会导致整个程序结构的变动,使得程序难以维护。
(2)面向对象程序设计
在面向对象程序设计(Object-Oriented Programming)中,把数据和对数据的操作封装在一起,对数据的操作必须通过相应的对象来进行,从而加强了数据的保护。程序=对象/类+对象/类+…;对象/类=数据+操作。
算法
1.算法及其特性
(1)什么是算法
算法(Algorithm)就是一组有穷的规则,它规定了解决某一特定问题的一系列运算。通俗地说,为解决问题而采用的方法和步骤就是算法。
(2)算法的特性
①确定性(Definiteness)。算法的每个步骤必须要有确切的含义,每个操作都应当是清晰的、无二义性的。
②有穷性(Finiteness)。一个算法应包含有限的操作步骤且在有限的时间(人们可以接受的)内能够执行完毕。
③有效性(Effectiveness)。算法中的每个步骤都应当能有效地执行,并得到确定的结果。
④有零个或多个输入(Input)。在算法执行的过程中需要从外界取得必要的信息,并以此为基础解决某个特定问题。
⑤有一个或多个输出(Output)。设计算法的目的就是要解决问题,算法的计算结果就是输出。没有输出的算法是没有意义的。输出与输入有着特定的关系,通常,输入不同,会产生不同的输出结果。
(3)算法的分类
根据待解决问题的形式模型和求解要求,算法分为数值和非数值两大类:
①数值运算算法:是以数学方式表示的问题求数值解的方法。例如,代数方程计算、线性方程组求解、矩阵计算、数值积分、微分方程求解等。通常,数值运算有现成的模型,这方面的现有算法比较成熟。
②非数值运算算法:通常为求非数值解的方法。例如,排序、查找、表格处理、文字处理、人事管理、车辆调度等。
2.算法的表示方法
设计出一个算法后,为了存档,以便将来算法的维护或优化,或者为了与他人交流,让他人能够看懂、理解算法,需要使用一定的方法来描述、表示算法。算法的表示方法很多,常用的有自然语言、流程图和伪代码等。我们以求解sum=1+2+3+4+5……+(n-1)+n为例怎样
文档评论(0)