程序和程序设计算法结构化程序设计方法_第1页
程序和程序设计算法结构化程序设计方法_第2页
程序和程序设计算法结构化程序设计方法_第3页
程序和程序设计算法结构化程序设计方法_第4页
程序和程序设计算法结构化程序设计方法_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章程序设计基本概念教学目标掌握程序及程序设计的基本概念,程序的运行过程、算法及其特点、算法的描述、C语言程序的基本结构。熟悉设计程序时应遵循的基本原则。了解利用计算机解决实际问题的过程、结构化程序设计方法并在以后的程序设计中应用并逐步熟练掌握。能将日常生活中解决一些简单问题的步骤用算法描述。熟悉程序开发环境,学习上机基本操作。1.1程序与程序设计程序与程序设计程序是控制计算机运行的指令序列。程序设计就是设计、书写及检查程序的过程。程序设计语言程序设计语言是软件系统的重要组成部分

程序设计语言是描述计算机指令的工具。各种程序设计语言有自己的语法、词汇。

可分为机器语言、汇编语言和高级语言三类。1.机器语言由“0”和“1”组成的二进制表示的机器指令的集合。例如某种类型的计算机规定以“10000000”表示一个“加法”操作,以“10010000”表示一个“减法”操作。

机器指令一般由操作码和操作数两个部分组成。

计算机硬件可以直接识别,因此,它的执行速度比较快。

针对一种计算机所编写的机器语言程序,一般不能在另一种类型的计算机上运行,而且程序的编写难度较大,修改、调试也不方便,容易出错,程序的直观性较差。

2.汇编语言用能够帮助记忆的指令助记符来代替机器指令中的操作码,用地址符号或十进制数来代替操作数。如用“ADD”表示加法操作,用“SUB”表示减法操作。

比机器语言直观,容易记忆和理解,编写的程序比机器语言程序易读、易检查、易修改

不同类型的计算机,汇编语言源程序不能通用。

必须由一种专门的翻译程序(汇编程序)将汇编语言源程序翻译成机器语言程序,计算机才能执行。

3.高级语言面向问题的程序设计语言

与具体的计算机硬件无关,其表达方式接近于被描述的问题,接近于自然语言和数学语言,易为人们接受和掌握。

其显著特点是独立于具体的计算机硬件,通用性和可移植性好。

计算机高级语言已有上百种之多,得到广泛应用的也有十几种,并且几乎每一种高级语言都有其适用的领域。C语言是其中之一。肯尼思·汤普森和

丹尼斯·里奇

在计算机发展的历史上,大概没有哪个程序设计语言像C那样得到如此广泛地流行;也没有哪个操作系统像UNIX那样获得计算机厂家和用户的普遍青睐和厚爱。它们对整个软件技术和软件产业都产生了深远的影响。而C和UNIX两者都是贝尔实验室的DennisRitchie和KennethThompson设计、开发的。他们两人共同获得1983年度的图灵奖。UNIX成功的一个重要因素是它的可移植性。正是里奇竭尽全力开发了C语言,并把UNIX用C重写了一遍,这才使它具有了这一特性。里奇还和克尼汉(B.W.Kernighan)合著了一本介绍C的专著:《C程序设计语言》(TheCProgrammingLanguage,Prentice-Hall,1978,1988)。4.程序运行过程编辑处理

通过编辑程序将编写的源程序送入计算机。语言处理

将用户编写的源程序转换成机器语言的形式,以便计算机能够识别和运行。由翻译程序自动完成的,翻译程序除了要完成语言间的转换外,还要进行语法、语义等方面的检查。装配链接处理

装入内存运行5.语言处理语言处理程序一般可分为:汇编程序编译程序解释程序这三种类型5.语言处理汇编由汇编程序(一种由专业的软件开发商提供的系统软件)将用汇编语言编写的源程序翻译成目标程序(某种类型计算机的机器语言程序),这一过程称为汇编。编译由编译程序将高级语言源程序翻译成目标程序。语言处理(续)解释由解释程序将高级语言源程序一句一句地读入,每读入一个语句都要对它进行分析和解释,若有错误就即时中断其解释过程,并通知用户进行修改,若没有错误就按照解释结果执行所要求的操作。解释方式不产生目标程序。

6.程序设计基本原则正确性

程序本身必须具备且只能具备程序设计规格说明书中所列举的全部功能。它是判断程序质量的首要标准。

可靠性

程序在多次反复使用过程中不失败的概率。简明性

简明性的目标是要求程序简明易读。

有效性

程序在计算机上运行需要使用一定数量的计算机资源,如CPU的时间、存储器的存储空间。有效性就是要在一定的软、硬件条件下,反映出程序的综合效率。可维护性

程序的可维护可分为校正性维护、适应性维护和完善性维护。一个软件的可维护性如何直接关系到程序的可用性,因此应特别予以关注。可移植性

程序主要与其所完成的任务有关,但也与它的运行环境有着一定的联系。软件的开发应尽可能远离机器的特征,以提高它的可移植程度。7.用计算机解决问题的基本步骤一般由分析问题、建立数学模型、选择合适算法、编写程序、调试、运行程序直至得到正确的结果等几个阶段所组成。

设计步骤

确定要解决的问题。主要目的是搞清楚“做什么”。算法设计与数据结构设计。主要任务是解决“如何做”。涉及两个方面的内容,一是数据结构设计(解决数据的表示与存储),另一个是算法设计(描述操作步骤)。编写程序和调试程序。整理资料,交付使用。1.2算法计算机算法是为计算机解题设计的有明确意义的运算步骤的有限集合。算法可以用不同的方法表示。常用的有自然语言、传统流程图、结构化流程图、伪代码等。算法的特点有穷性确定性有效性有零个或多个输入有一个或多个输出1.简单算法举例例1.1

给出求x1+x2+x3+x4+x5的值的算法。

算法分析:(1)手工计算步骤为:①求x1与x2的和,得到两个数之和;②将上一步的和与x3相加,得到三个数之和;③将上一步的和与x4相加,得到四个数之和;④将上一步的和与x5相加,得到五个数之和。从手工计算过程中可知:其运算方法类似于用算盘计算该题的过程,每次仅求出两个数之和,其中一个加数为上一步所得的结果,另一加数为多项式中的一项,重复这个过程,直到加到最后一项为此。

该算法能更加简洁地表达上述解题过程,并具有通用性。先定义几个变量:设置变量s表示多项式之和,其初值为零;设置变量a表示多项式中的一项,它的值可以为x1,x2,

,x5;用i记录被加了几次,其初值为1。解题步骤为:①s

0;②i

1;③a

xi;(使a等于多项式中的第i项)④s

s+a;(求和,并将结果保留在s中)⑤i

i+1;(计数增值)⑥若i≤5,则重复③、④、⑤各步;否则,计算结束;⑦输出s。(2)适合计算机处理的算法。2.算法描述用自然语言表示通俗易懂、直观、容易掌握,但算法的表达与计算机的高级语言形式差距较大,通常用在较简单的问题中。

用伪代码表示

不在计算机上实际执行,仅仅用于程序员使用C等程序设计语言编写程序之前帮助其构思,而且与自然语言相似,非常方便和友好。

用传统流程图表示

直观,设计者的思路表达得清楚易懂,便于检查修改。

传统流程图常用的符号例1.2输入一个整数,将它倒过来输出用自然语言描述:①输入一个整数送给x;②求x除以10的余数,结果送给d,并输出d;③求x除以10的整数商,结果送给x;④

重复②,③步,直到x变为零时终止。用伪代码描述:①输入一个整数送x;②while(x≠0)do{d=x%10;输出d;

x=x/10;

}定义变量X输入一个数给Xx≠0?d=x%10;输出d;x=x/10;程序结束否是例1.3求出这100个数的累加和、最大值和最小值

从键盘输入100个数,求出这100个数的累加和,并找出它们的最大值和最小值。试用传统流程图描述解决这个问题的算法。ABCABC1.3结构化程序设计方法设计程序时只能使用顺序、选择、循环三种基本结构。

结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。

结构化程序设计方法的基本思路是,把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。

(1)自顶向下;(2)逐步细化;

(3)模块化设计;(4)结构化编码。

1.三种基本结构(1)只有一个入口。(2)只有一个出口。(3)结构内的每一部分都有机会被执行到。(4)结构内不存在“死循环”(无终止的循环)。处理1处理2(a)顺序结构条件处理(c)循环结构满足不满足条件处理1处理2(b)选择结构满足不满足2.NS流程图N-S流程图由美国学者I.Nassi和B.Shneiderman提出的一种新的流程图形式。在这种流程图中,完全去掉了带箭头的流程线,禁用程序的转向语句,将全部算法都写在一个矩形框内,因此,N-S流程图也叫盒图。

处理1处理2(a)顺序结构条件处理1处理2成立不成立(b)选择结构当条件成立时处理直到条件成立为止处理(c)循环结构例1.4

从键盘输入一个整数,判别该数是否为素数

素数,也称为质数,是指只能被1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论