计算机程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第5章计算机程序设计

•教学内容与目标:

本章主要介绍程序设计基础知识、程序设计的一般过程和程序设计语言,重点介绍了面向过程程序设计、面向对象程序设计和可视化程序设计的特点,并结合C、C++、Java、VB等语言介绍这些程序设计方法的具体应用。学习本章内容,要求对已上所述程序设计的有关知识和方法有一个较全面的了解,为将来进行具体深入的学习做好准备。

•教学重点、难点:

本章重点是面向过程程序设计、面向对象程序设计和可视化程序设计的特点,难点是面向对象的程序设计。

•教学方法

本章教学采用教师讲授,多媒体辅助演示的方法,尽量在较短的时间内,全面展现计算机程序设计的过程和各种方法。

•教学过程:

一、概述

1.程序设计基础

计算机之所以能自动连续地进行工作,最根本的原因在于“存储程序”和“程序控制”。

“存储程序”——就是把计算机处理问题的步骤用计算机能够识别的指令编写出来,并送入计算机内部的存储器存储起来。

“程序控制”——就是把事先存储好的程序从存储器取出来,送入CPU执行,计算机才能按照人的意图自动完成指定的工作。因此,程序就是为解决某一问题而编写的语句集合,是将一个实际问题的具体操作用某种程序设计语言描述出来的指令序列。编写程序的过程就是程序设计。程序设计语言就是计算机能够理解和执行的特殊语言。

2.程序设计的一般过程

概括地说,程序设计就是分析问题、编写程序、调试程序的过程。用计算机解决实际问题的基本过程如下图所示。

程序设计步骤如下:

(1)分析要解决的问题,明确任务

(2)分析问题,建立数学模型,并选择合适的解决方案

(3)确定数据结构和算法:数据结构+算法 = 程序

(4)编写程序

(5)调试程序

(6)整理资料,交付使用

3.程序设计语言

程序设计语言是人们根据描述问题的需要而设计的,是计算机能够直接识别的语言,有一套固定的符号和语法规则,是人与计算机交流所使用的“语言”。

程序设计语言可分成机器语言、汇编语言和高级语言。前两类依赖于计算机硬件,因机器而异,又称为低级语言,而高级语言与计算机硬件基本无关,是目前使用非常广泛的程序设计语言。

机器语言

机器语言是一种用二进制数“0”和“1”表示计算机各种操作的程

序设计语言。一条机器指令能够控制计算机执行一种操作。

计算机能够直接理解和执行使用机器语言编写的程序,执行速

度快,占用内存少;但难于记忆,编程困难,可读性差,容易出错。机器语言是面向机器的语

言,可移植性极差。

汇编语言

汇编语言是一种用助记符来表示各个基本操作的程序设计语言。如用ADD表示加法操作,SUB 表示减法操作等。

汇编语言的出现,大大减少了程序编写、阅读、修改、维护等方面的工作量,但汇编语言也是一种面向机器的语言,计算机不能直接执行,通用性和可移植性差,必须经过汇编程序翻译成机器语言程序后才能在计算机上执行,需要程序员对计算机内部结构非常了解。

高级语言

高级语言是一种用接近自然语言和数学语言的语法、符号描述基本操作的程序设计语言。

高级语言编写的程序不依赖于具体的机器,程序员编程时无需关心计算机内部的细节,从而大大提高了编程效率。计算机不能直接执行使用高级语言编写的程序,需用专门的翻译程序将其转换成机器语言程序后才能执行。

目前,使用较广泛的高级语言有C、C++、Visual Basic、Visual C++、Power Builder、Java、Delphi、ASP、JSP、PHP、Visual Foxpro等。

4.程序设计发展概况

20世纪60年代,由于程序好坏的评价标准是指令少,运行速度快,占用内存少。这使程序员过分追求语言的表述能力和技巧,程序员往往将注意力集中在问题求解本身,而无暇顾及求解的过程,很少考虑程序结构的合理性和可扩展性。软件开发主要依赖程序员的个人经验,缺乏科学理论和方法作指导,开发出的软件或程序只能靠测试来检查错误,这些因素使得许多大型软件崩溃,软件开发周期长,生产效率低,可靠性及可维护性差,20世纪60年代末最终引发了“软件危机”。

思考问题:程序调试能否保证程序正确?怎样保证程序正确?程序好坏的评价标准是什么?科学指导程序设计的原理和方法是什么?

1968年,E.W.Dijkstra指出:Goto语句是有害的,它造成了程序结构的混乱,高级语言程序设计应取消Goto语句,并由此引发了关于程序设计首先是讲究好的结构,还是讲究效率的讨论。

4.程序设计发展概况

Dijkstra还提出了结构化程序设计思想、概念和标准,希望通过程序静态结构的良好性来保证程序的正确性,并提出了“程序测试只能发现程序中的错误而不能保证程序无错误”的科学论断。同时,Wirth也提出了自顶向下、逐步求精的程序设计方法,将一个复杂的问题分解成若干个相互独立的、简单的模块,再将模块分解成更简单的子模块,直到所有问题能用程序设计语言简单方便地解决。采用这种程序设计方法,能有效地控制程序设计的复杂性,有益于提高程序设计的效率。

20世纪80年代,Gries综合了各种程序设计理论和方法的成果,完成了“The Science of Programming”一书,首次把程序设计从经验、技巧上升为科学,使程序设计从此步入了科学的轨道。

二、面向过程程序设计

1.概述

面向过程程序设计有三种基本结构:顺序结构、选择结构和循环结构,又称“结构化程序设计”。程序一般由一个主程序(或主函数)和若干个子程序(或函数)组成。程序设计的首要问题是“设计过程”。

后来,人们将程序按功能划分成若干个基本模块,各模块在功能上相对独立,这就是“模块化程序设计”。但它仍属于面向过程的程序设计。它把数据和过程分离成两个相互独立的实体,程序员必须时刻注意所处理的数据,对不同数据作相同处理或对相同数据作不同处理,都要重新编程,程序的可重用性不好。

面向过程程序设计中过程的实现取决于数据结构。如果一个数据结构发生变化,将导致许多函数和过程重写。有时几个关键的数据结构发生变化,将导致整个软件系统的结构崩溃。

相关文档
最新文档