程序设计与软件.doc

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计与软件.doc

程序设计与软件 在第1章中,我们通过受力分析建立了预测伞兵下降速度的数学模型。该数学模型采用了微分方程的形式 同时,我们也知道了,可以通过一个称为欧拉法的简单数值方法求得该方程的解 给定初始条件,就可以反复地利用该方程计算不同时刻伞兵的速度。但是,为了获得更高的计算精度,必须采用更多、但长度更短的步长。用手工实现这样的计算将极为繁琐和耗时。但是在计算机的辅助之下,这样的计算很容易实现。 因此,接下来的任务就是描述如何实现这样的计算。本章将介绍如何用计算机这个工具来获得此类问题的解。 2.1 软件包与程序设计 现在,有两种类型的软件用户。一方面,有些用户是给他什么他就使用什么。也就是说,他们的求解能力仅限于软件的标准运行模式。例如,如果要求解线性方程组,或生成x-y平面上的图形,最直接的方法就是用Excel或MATLAB软件来实现。因为这通常只需要最小的努力就可以做到,大多数用户通常都采用这种“普通”运行模式。另外,由于这些软件包的设计者对许多典型用户需求进行了预测,所以许多重要的问题都可以这样解决。 但是,当我们遇到的问题超出了这些工具的标准能力时,会怎么样呢?令人遗憾的是,您只能摊开双手,说:“对不起,老板,我无能为力!”,但在大多数工程领域中,这是不能接受的。在此情况下,有两种选择: 第一,可以寻求其他的软件包,看看它是否有能力求解这个问题。这也是本书介绍Excel和MATLAB两个软件的原因之一。在后面,您将会明白,这两个软件都不是包罗万象的,但它们各有所长。如果对两者都熟悉,将极大地扩大解决问题的范围。 第二,通过学习编写Excel VBA宏代码或MATLAB M文件,可以不断进步而成为一个“超级用户”。宏代码或M文件只不过是一些计算机程序,通过它们就可以扩展这些工具的功能。因为工程师绝不应该仅满足于工具本身,而应该做任何必要的工作来解决问题。实现这个目的的一个强有力的方式就是学习在Excel和MATLAB环境下编写程序。编写宏文件和M文件所需的编程技巧,甚至要达到与有效地使用Fortran 90或C这样的高级语言一样。 本章的主要目的是介绍如何实现这个目标。但是,我们假设您具有基本的计算机编程知识。所以我们强调的重点将放在编程中直接影响工程问题求解的方面。 计算机程序 计算机程序(computer program)只是控制计算机执行某个任务的一组指令。由于许多人需要编写各个领域中的各种应用程序,所以大多数计算机高级编程语言具有丰富的功能,如Fortran 90和C语言。尽管有些工程师可能会涉及到所有这些功能,但是大多数人仅需要执行面向工程的数值计算功能。 从这个角度来看,我们可以将这种复杂性概括为几个编程主题,即: 简单信息表示(常数、变量和类型声明)。 高级信息表示(数据结构、数组和记录)。 数学公式(赋值、优先级规则和内部函数)。 输入/输出。 逻辑表示(顺序、选择和循环)。 模块化程序设计(函数和子例程) 因为我们假定您具有一定的编程知识,所以我们将不会花时间在前四项内容上。对实现后面的程序必备的编程知识,我们会提供一些相关参考资料的清单。 但是,我们将会花一些时间对后两个主题进行介绍。我们强调逻辑表示,这是因为逻辑表示是最影响算法相关性和可理解性的一个方面。我们对模块化编程进行介绍,这是因为它也对程序的组织起到了很重要的作用。另外,模块也为有用算法的打包提供了一种方式,这样就可以为后面的应用提供一个方便的格式。 2.2 结构化程序设计 在计算机出现的早期,程序员通常不太关注他们的程序是否清晰和易于理解。今天,我们已经意识到,编写经过组织的、结构良好的代码有很多好处。除了使软件更易于共享这个显著的优点以外,它也有助于大大提高程序开发的效率。也就是说,结构良好的算法总是更容易调试和测试,程序的开发、测试与更新也只需要更短的时间。 为了开发这样的高质量软件,计算机科学家们已经系统地研究了有关的因素和开发过程。从本质上讲,结构化程序设计(structured programming)是一组规则,它规定程序员应该具有的良好编程风格与习惯。尽管结构化程序设计具有足够的灵活性,准许程序员尽可能地发挥他们的创造性,和进行个性化的表达,但是这些规则也对程序强加了足够多的约束,使最后的代码远优于非结构化版本。尤其是,最后的产品会更加完美和更加易于理解。 结构化程序设计的一个关键思想是,任何数值算法都可以由三个基本的控制结构组成:顺序、选择和循环。将程序的结构限定为这些结构以后,最后得到的计算机代码将更加清晰和易于理解。 在下面的段落中,我们将对这三个控制结构分别进行描述。为了保持描述的一般性,我们将采用流程图和伪代码两种形式。流程图(flowchart)是对算法的一种直观和图形化的表示。流程图运用了一系列的

文档评论(0)

dreamzhangning + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档