程序和程序设计、算法、结构化程序设计方法.ppt

上传人:wuy****n92 文档编号:73614707 上传时间:2023-02-20 格式:PPT 页数:26 大小:338.50KB
返回 下载 相关 举报
程序和程序设计、算法、结构化程序设计方法.ppt_第1页
第1页 / 共26页
程序和程序设计、算法、结构化程序设计方法.ppt_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《程序和程序设计、算法、结构化程序设计方法.ppt》由会员分享,可在线阅读,更多相关《程序和程序设计、算法、结构化程序设计方法.ppt(26页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第1讲程序和程序设计 算法、结构化程序设计方法 2/20/20231第一章 程序设计基本概念教学目标教学目标掌掌握握程程序序及及程程序序设设计计的的基基本本概概念念,程程序序的的运运行行过过程程、算算法及其特点、算法的描述、法及其特点、算法的描述、C C语言程序的基本结构。语言程序的基本结构。熟悉设计程序时应遵循的基本原则。熟悉设计程序时应遵循的基本原则。了了解解利利用用计计算算机机解解决决实实际际问问题题的的过过程程、结结构构化化程程序序设设计计方法并在以后的程序设计中应用并逐步熟练掌握。方法并在以后的程序设计中应用并逐步熟练掌握。能能将将日日常常生生活活中中解解决决一一些些简简单单问问题题

2、的的步步骤骤用用算算法法描描述述。熟悉程序开发环境,学习上机基本操作。熟悉程序开发环境,学习上机基本操作。2/20/202321.1 程序与程序设计程序与程序设计程序程序是控制计算机运行的指令序列。是控制计算机运行的指令序列。程序设计程序设计就是设计、书写及检查程序的过程。就是设计、书写及检查程序的过程。程序设计语言程序设计语言是软件系统的重要组成部分程序设计语言是软件系统的重要组成部分 程序设计语言是描述计算机指令的工具。程序设计语言是描述计算机指令的工具。各种程序设计语言有自己的语法、词汇。各种程序设计语言有自己的语法、词汇。可分为可分为机器语言机器语言、汇编语言汇编语言和和高级语言高级语

3、言三类。三类。2/20/202331.机器语言由由“0 0”和和“1 1”组成的二进制表示的机器指令的组成的二进制表示的机器指令的集合。集合。例如某种类型的计算机规定以例如某种类型的计算机规定以“10000000”10000000”表示一个表示一个“加法加法”操作,以操作,以“10010000”10010000”表示一个表示一个“减法减法”操作。操作。机器指令一般由机器指令一般由操作码操作码和和操作数操作数两个部分组成。两个部分组成。计算机硬件可以直接识别,因此,它的执行速度计算机硬件可以直接识别,因此,它的执行速度比较快。比较快。针对一种计算机所编写的机器语言程序,一般不针对一种计算机所编写

4、的机器语言程序,一般不能在另一种类型的计算机上运行,而且程序的编能在另一种类型的计算机上运行,而且程序的编写难度较大,修改、调试也不方便,容易出错,写难度较大,修改、调试也不方便,容易出错,程序的直观性较差。程序的直观性较差。2/20/202342.汇编语言用能够帮助记忆的指令助记符来代替机器指令中用能够帮助记忆的指令助记符来代替机器指令中的操作码,用地址符号或十进制数来代替操作数。的操作码,用地址符号或十进制数来代替操作数。如用如用“ADD”ADD”表示加法操作,用表示加法操作,用“SUB”SUB”表示减法操作。表示减法操作。比机器语言直观,容易记忆和理解,编写的程序比机器语言直观,容易记忆

5、和理解,编写的程序比机器语言程序易读、易检查、易修改比机器语言程序易读、易检查、易修改 不同类型的计算机,汇编语言源程序不能通用。不同类型的计算机,汇编语言源程序不能通用。必须由一种专门的翻译程序(汇编程序)将汇编必须由一种专门的翻译程序(汇编程序)将汇编语言源程序翻译成机器语言程序,计算机才能执语言源程序翻译成机器语言程序,计算机才能执行。行。2/20/202353.高级语言面向问题的程序设计语言面向问题的程序设计语言 与具体的计算机硬件无关,其表达方式接近于被与具体的计算机硬件无关,其表达方式接近于被描述的问题,接近于自然语言和数学语言,易为描述的问题,接近于自然语言和数学语言,易为人们接

6、受和掌握。人们接受和掌握。其显著特点是独立于具体的计算机硬件,通用性其显著特点是独立于具体的计算机硬件,通用性和可移植性好。和可移植性好。计算机高级语言已有计算机高级语言已有上百种之多上百种之多,得到广泛应用,得到广泛应用的也有十几种,并且几乎每一种高级语言都有其的也有十几种,并且几乎每一种高级语言都有其适用的领域。适用的领域。CC语言是其中之一。语言是其中之一。2/20/202364.程序运行过程编辑处理编辑处理 通过编辑程序将编写的源程序送入计算机。通过编辑程序将编写的源程序送入计算机。语言处理语言处理 将用户编写的源程序转换成机器语言的形式,以便计将用户编写的源程序转换成机器语言的形式,

7、以便计算机能够识别和运行。算机能够识别和运行。由翻由翻译译程序自程序自动动完成的,翻完成的,翻译译程序除了要完成程序除了要完成语语言言间间的的转换转换外,外,还还要要进进行行语语法、法、语义语义等方面的等方面的检查检查。装配链接处理装配链接处理 装入内存运行装入内存运行2/20/202375.语言处理语言处理程序一般可分为:汇编程序编译程序解释程序这三种类型2/20/202385.语言处理汇编汇编由由汇编程序汇编程序(一种由专业的软件开发商提供的系统软件)(一种由专业的软件开发商提供的系统软件)将用汇编语言编写的将用汇编语言编写的源程序源程序翻译成翻译成目标程序目标程序(某种类型(某种类型计算

8、机的机器语言程序),这一过程称为计算机的机器语言程序),这一过程称为汇编汇编。2/20/20239n n编译由由编译程序编译程序将高级语言将高级语言源程序源程序翻译成翻译成目标程序目标程序。2/20/202310语言处理(续)解释解释 由由解释程序解释程序将高级语言源程序一句一句地读入,每读将高级语言源程序一句一句地读入,每读入一个语句都要对它进行分析和解释,若有错误就即入一个语句都要对它进行分析和解释,若有错误就即时中断其解释过程,并通知用户进行修改,若没有错时中断其解释过程,并通知用户进行修改,若没有错误就按照解释结果执行所要求的操作。解释方式不产误就按照解释结果执行所要求的操作。解释方式

9、不产生目标程序。生目标程序。2/20/2023116.程序设计基本原则正确性正确性 程序本身必须具备且只能具备程序设计规格说明书中所列程序本身必须具备且只能具备程序设计规格说明书中所列举的全部功能。它是判断程序质量的首要标准。举的全部功能。它是判断程序质量的首要标准。可靠性可靠性 程序在多次反复使用过程中不失败的概率。程序在多次反复使用过程中不失败的概率。简明性简明性 简明性的目标是要求程序简明易读。简明性的目标是要求程序简明易读。有效性有效性 程序在计算机上运行需要使用一定数量的计算机资源,如程序在计算机上运行需要使用一定数量的计算机资源,如CPUCPU的时间、存储器的存储空间。有效性就是要

10、在一定的软、硬件条件下,反映的时间、存储器的存储空间。有效性就是要在一定的软、硬件条件下,反映出程序的综合效率。出程序的综合效率。可维护性可维护性 程序的可维护可分为校正性维护、适应性维护和完善程序的可维护可分为校正性维护、适应性维护和完善性维护。一个软件的可维护性如何直接关系到程序的可用性,因此性维护。一个软件的可维护性如何直接关系到程序的可用性,因此应特别予以关注。应特别予以关注。可移植性可移植性 程序主要与其所完成的任务有关,但也与它的运行环程序主要与其所完成的任务有关,但也与它的运行环境有着一定的联系。软件的开发应尽可能远离机器的特征,以提高境有着一定的联系。软件的开发应尽可能远离机器

11、的特征,以提高它的可移植程度。它的可移植程度。2/20/2023127.用计算机解决问题的基本步骤一般由分析问题、建立数学模型、选择合适算一般由分析问题、建立数学模型、选择合适算法、编写程序、调试、运行程序直至得到正确法、编写程序、调试、运行程序直至得到正确的结果等几个阶段所组成。的结果等几个阶段所组成。设计步骤设计步骤 1.1.确定要解决的问题。主要目的是搞清楚确定要解决的问题。主要目的是搞清楚“做什么做什么”。2.2.算法设计与数据结构设计。主要任务是解决算法设计与数据结构设计。主要任务是解决“如何如何做做”。涉及两个方面的内容,一是。涉及两个方面的内容,一是数据结构设计数据结构设计(解决

12、数据的表示与存储),另一个是(解决数据的表示与存储),另一个是算法设计算法设计(描述操作步骤)。(描述操作步骤)。3.3.编写程序和调试程序。编写程序和调试程序。4.4.整理资料,交付使用。整理资料,交付使用。2/20/2023131.2 算法算法是规则的非空有穷集,即算法是解某一特定算法是规则的非空有穷集,即算法是解某一特定类型问题的一组规则。类型问题的一组规则。算法可以用不同的方法表示。常用的有自然语言、算法可以用不同的方法表示。常用的有自然语言、传统流程图、结构化流程图、伪代码等。传统流程图、结构化流程图、伪代码等。算法的特点算法的特点有穷性有穷性确定性确定性有效性有效性有零个或多个输入

13、有零个或多个输入有一个或多个输出有一个或多个输出2/20/2023141 1简单算法举例简单算法举例例例例例1.11.11.11.1 给出求给出求x1+x2+x3+x4+x5 x1+x2+x3+x4+x5 的值的算法。的值的算法。算法分析:算法分析:(1 1)手工计算步骤为:)手工计算步骤为:求求x1x1与与x2x2的和,得到两个数之和;的和,得到两个数之和;将上一步的和与将上一步的和与x3x3相加,得到三个数之和;相加,得到三个数之和;将上一步的和与将上一步的和与x4x4相加,得到四个数之和;相加,得到四个数之和;将上一步的和与将上一步的和与x5x5相加,得到五个数之和。相加,得到五个数之和

14、。从手工计算过程中可知:其运算方法类似于用算盘计算该题从手工计算过程中可知:其运算方法类似于用算盘计算该题的过程,每次仅求出两个数之和,其中一个加数为上一步所的过程,每次仅求出两个数之和,其中一个加数为上一步所得的结果,另一加数为多项式中的一项,重复这个过程,直得的结果,另一加数为多项式中的一项,重复这个过程,直到加到最后一项为此。到加到最后一项为此。2/20/202315 该该算算法法能能更更加加简简洁洁地地表表达达上上述述解解题题过过程程,并并具具有有通通用用性性。先先定定义义几几个个变变量量:设设置置变变量量s s表表示示多多项项式式之之和和,其其初初值值为为零零;设设置置变变量量a a

15、表表示示多多项项式式中中的的一一项项,它它的的值值可可以以为为x1x1,x2x2,x5x5;用;用i i记录被加了几次,其初值为记录被加了几次,其初值为1 1。解题步骤为:。解题步骤为:s s 0 0;i i 1 1;a a xi xi;(使(使a a等于多项式中的第等于多项式中的第i i项)项)s s s+a s+a;(求和,并将结果保留在(求和,并将结果保留在s s中)中)i i i+1 i+1;(计数增值)(计数增值)若若i 5i 5,则重复,则重复、各步;否则,计算结束;各步;否则,计算结束;输出输出s s。(2)适合计算机处理的算法。2/20/2023162.算法描述用自然语言表示用

16、自然语言表示通俗易懂、直观、容易掌握,但算法的表达与计算机通俗易懂、直观、容易掌握,但算法的表达与计算机的高级语言形式差距较大,通常用在较简单的问题中。的高级语言形式差距较大,通常用在较简单的问题中。用伪代码表示用伪代码表示 不在计算机上实际执行,仅仅用于程序员使用不在计算机上实际执行,仅仅用于程序员使用CC等程等程序设计语言编写程序之前帮助其构思,而且与自然语序设计语言编写程序之前帮助其构思,而且与自然语言相似,非常方便和友好。言相似,非常方便和友好。用传统流程图表示用传统流程图表示 直观,设计者的思路表达得清楚易懂,便于检查修改。直观,设计者的思路表达得清楚易懂,便于检查修改。2/20/2

17、02317传统流程图常用的符号传统流程图常用的符号2/20/202318例1.2 输入一个整数,将它倒过来输出n用自然语言描述:输入一个整数送给x;求x除以10的余数,结果送给d,并输出d;求x除以10的整数商,结果送给x;重复,步,直到x变为零时终止。n用伪代码描述:输入一个整数送x;while(x 0)do d=x%10;输出d;x=x/10;定义变量X输入一个数给Xx0?d=x%10;输出d;x=x/10;程序结束否是2/20/202319例1.3 求出这求出这100100个数的累加和、最大值和最小值个数的累加和、最大值和最小值 从键盘输入从键盘输入100100个数,求出这个数,求出这1

18、00100个数的累加和,并个数的累加和,并找出它们的最大值和最小值。找出它们的最大值和最小值。试用传统流程图描述解决试用传统流程图描述解决这个问题的算法。这个问题的算法。ABCABC2/20/2023201.3 结构化程序设计方法设计程序时只能使用顺序、选择、循环三种基本设计程序时只能使用顺序、选择、循环三种基本结构。结构。结构化程序设计强调程序设计风格和程序结构的结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。规范化,提倡清晰的结构。结构化程序设计方法的基本思路是,把一个复杂结构化程序设计方法的基本思路是,把一个复杂问题的求解过程分阶段进行,每个阶段处理的问问题的求解过程分

19、阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。题都控制在人们容易理解和处理的范围内。(1)(1)自顶向下;自顶向下;(2)(2)逐步细化;逐步细化;(3)(3)模块化设计;模块化设计;(4)(4)结构化编码。结构化编码。2/20/2023211.三种基本结构n(1)只有一个入口。n(2)只有一个出口。n(3)结构内的每一部分都有机会被执行到。n(4)结构内不存在“死循环”(无终止的循环)。处理1处理2(a)顺序结构顺序结构条件处理(c)循环结构循环结构满足不满足条件处理1处理2(b)选择结选择结构构满足不满足2/20/2023222.NS流程图 N-SN-S流程图由美国学者流

20、程图由美国学者I.NassiI.Nassi和和B.B.ShneidermanShneiderman提提出的一种新的流程图形式。在这种流程图中,完全去掉出的一种新的流程图形式。在这种流程图中,完全去掉了带箭头的流程线,禁用程序的转向语句,将全部算法了带箭头的流程线,禁用程序的转向语句,将全部算法都写在一个矩形框内,因此,都写在一个矩形框内,因此,N-SN-S流程图也叫盒图。流程图也叫盒图。处理1处理2(a)顺序结顺序结构构条件处理1 处理2成立不成立(b)选择结选择结构构当条件成立时处理直到条件成立为止处理(c)循环结构循环结构2/20/202323例1.4 从键盘输入一个整数,判别该数是否为素

21、数从键盘输入一个整数,判别该数是否为素数 素数,也称为质素数,也称为质数,是指只能被数,是指只能被1 1及及其自身整除且大于其自身整除且大于1 1的正整数,如的正整数,如2 2、3 3、5 5、7 7等都是素数。等都是素数。用用N-SN-S流程图描述解流程图描述解决这个问题的算法决这个问题的算法如图如图1.111.11所示。所示。2/20/202324例1.5 编程打印出35000之间的所有质数。分分析析:我我们们采采用用自自上上向向下下、逐逐步步细细化化的的方方法法来来处处理理这这个问题。即先把这个问题分解为二个相对较小的问题:个问题。即先把这个问题分解为二个相对较小的问题:判别某数判别某数i i是否为质数;是否为质数;利利用用循循环环判判别别3 350005000之之间间的的所所有有的的数数是是否否为为质质数数,若若是就把它打印出来;是就把它打印出来;2/20/202325End2/20/202326

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com