C语言程序设计教程第1章算法与程序设计.ppt

上传人:cl****1 文档编号:572406812 上传时间:2024-08-13 格式:PPT 页数:25 大小:746.50KB
返回 下载 相关 举报
C语言程序设计教程第1章算法与程序设计.ppt_第1页
第1页 / 共25页
C语言程序设计教程第1章算法与程序设计.ppt_第2页
第2页 / 共25页
C语言程序设计教程第1章算法与程序设计.ppt_第3页
第3页 / 共25页
C语言程序设计教程第1章算法与程序设计.ppt_第4页
第4页 / 共25页
C语言程序设计教程第1章算法与程序设计.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《C语言程序设计教程第1章算法与程序设计.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计教程第1章算法与程序设计.ppt(25页珍藏版)》请在金锄头文库上搜索。

1、1.1 程序设计的基本概念程序设计的基本概念1.2 算法和流程图算法和流程图1.3 结构化程序设计结构化程序设计第第1章章 算法与程序设计算法与程序设计1.1 程序设计的基本概念程序设计的基本概念1.1.11.1.1什么是程序什么是程序1.1.21.1.2计算机如何运行程序计算机如何运行程序1.1.31.1.3如何实现程序设计如何实现程序设计1.2 算法和流程图算法和流程图1.2.11.2.1什么是算法什么是算法1.2.21.2.2算法应具备的特性算法应具备的特性1.2.31.2.3怎样表示算法怎样表示算法解解决决某某一一问问题题的的具具体体方方法法和和步步骤骤怎怎样样表表示示呢呢?当当然然可

2、可以以用用语语言言来来描描述述,除除此此之之外外,还还可可以以采采用用传传统统流流程程图图、N-S流流程程图图等等。下面我们分别介绍一下最常用的几种方法。下面我们分别介绍一下最常用的几种方法。1自然语言描述法自然语言描述法例例1.11.1 求求n! ( n0 )第一步:输入第一步:输入n的值。的值。第二步:判别一下第二步:判别一下n的值,如果小于的值,如果小于0,则显示,则显示“输入错误输入错误”信息,然后执行第信息,然后执行第五步。五步。第三步:判断一下第三步:判断一下n的值如果大于或的值如果大于或等于等于0,则进行以下操作。,则进行以下操作。(1)给存放连乘积的变量)给存放连乘积的变量fa

3、c赋初值赋初值为为1;(2)给代表乘数的变量)给代表乘数的变量i赋初值为赋初值为1;(3)进行连乘运算:)进行连乘运算:fac=faci;(4)乘数乘数i增加增加1:i=i+1;(5)判断乘数判断乘数i是否大于是否大于n?如果如果i的的值不大于值不大于n,重复执行第三步,否则执行下重复执行第三步,否则执行下一步;一步;第四步:输出第四步:输出fac的值,即的值,即n!值。值。第五步:结束运行。第五步:结束运行。2传统流程图描述法传统流程图描述法使用自然语言描述算法通俗易懂,它使用自然语言描述算法通俗易懂,它是文字性的。所以,此种方法一般用于算是文字性的。所以,此种方法一般用于算法比较简单的问题

4、。法比较简单的问题。传统流程图是借助一些图形符号来表传统流程图是借助一些图形符号来表示算法的一种工具,如图示算法的一种工具,如图1-3所示。这种表所示。这种表示方法直观形象,容易理解。这些图形符示方法直观形象,容易理解。这些图形符号均采用美国国家标准协会号均采用美国国家标准协会ANSI规定的通规定的通用符号,在世界上也是通用的。用符号,在世界上也是通用的。3N-S流程图描述法流程图描述法N-S流流 程程 图图 是是 由由 美美 国国 两两 位位 学学 者者(I.Nassi和和B.Schneiderman)提提出出的的。这这种种算算法法描描述述工工具具完完全全取取消消了了流流程程线线,所所有有的

5、算法均以三种基本结构作为基础。的算法均以三种基本结构作为基础。1.3 结构化程序设计结构化程序设计1.3.11.3.1 为为什什么么要要采采用用结结构构化化程程序序设计设计1.3.21.3.2结构化程序的基本组成结构化程序的基本组成结结构构化化程程序序的的基基本本组组成成是是顺顺序序结结构构、分分支支结结构构和和循循环环结结构构。这这三三种种基基本本结结构构可可用用于于表表示示任任何何一一个个复复杂杂的的算算法法结结构构。下下面面我我们们通通过过N-S流流程程图图具具体体说说明明一一下下这这三三种种基基本结构。本结构。1顺序结构顺序结构顺序结构是三种结构中最简单的一种顺序结构是三种结构中最简单

6、的一种结构。这种结构的程序是按照语句的先后结构。这种结构的程序是按照语句的先后次序顺序执行。次序顺序执行。图图1-6是用是用N-S流程图表示的顺序结构,流程图表示的顺序结构,按照图按照图1-6的图型所示,首先执行的图型所示,首先执行A语句,语句,然后再顺序执行然后再顺序执行B语句。语句。图图1-6 顺序结构的顺序结构的N-S流程图流程图2分支结构分支结构分支结构又称作为选择结构。在分支分支结构又称作为选择结构。在分支结构中必须包含条件判断语句,根据条件结构中必须包含条件判断语句,根据条件判断的结果,决定执行哪一个分支结构。判断的结果,决定执行哪一个分支结构。图图1-7是用是用N-S流程图表示的

7、分支结构,流程图表示的分支结构,按照图按照图1-7的图形表示,当的图形表示,当“条件条件”成立时,成立时,执行执行A语句分支,当语句分支,当“条件条件”不成立时,不成立时,执行执行B语句分支。语句分支。图图1-7 分支结构的分支结构的N-S流程图流程图3循环结构循环结构循循环环结结构构的的功功能能是是:根根据据循循环环条条件件成成立立与与否否,来来决决定定是是否否重重复复执执行行某某一一条条或或几几条条语语句句。循循环环结结构构又又分分为为当当型型循循环环结结构构和和直到型循环结构,如图直到型循环结构,如图1-8所示。所示。图图1-8 循环结构的循环结构的N-S流程图流程图图图1-8 (a)和

8、和图图1-8(b)均均为为当当型型循循环环结结构构,它它们们是是在在条条件件成成立立的的情情况况下下执执行行A语语句句部部分分,条条件件不不成成立立时时,不不执执行行A语语句句,跳跳出出循循环环结结构构。图图1-8(a)和和图图1-8(b)不不同同的的情情况况是是:循循环环条条件件与与重重复复执执行行的的语语句句A相相对对位位置置不不一一样样,图图1-8(a)是是循循环环条条件件在在前前,称称为为前前测测型型,先先来来判判断断循循环环条条件件是是否否成成立立;而而图图1-8(b)是是循循环环条条件件在在后后,称称为为后后测测型型,最最少少执执行行一一次次循循环环语语句句A,然然后后再再来来判判

9、断断循循环环条条件件是是否否成成立立。循循环环条条件件成成立立则则继继续续循循环,循环条件不成立则结束循环。环,循环条件不成立则结束循环。图图1-8(c)和图和图1-8(d)均为直到型循环结均为直到型循环结构,它们的功能是:直到循环条件成立时,构,它们的功能是:直到循环条件成立时,则跳出循环结构,在循环条件不成立时,则跳出循环结构,在循环条件不成立时,执行循环语句执行循环语句A。图图1-8(c)和图和图1-8(d)不同不同的是:图的是:图1-8(c)是前测型,首先判断循环条是前测型,首先判断循环条件是否成立;而图件是否成立;而图1-8(d)为后测型,最少执为后测型,最少执行一次循环语句行一次循

10、环语句A,然后再来判断循环条然后再来判断循环条件是否成立。循环条件不成立则继续循环,件是否成立。循环条件不成立则继续循环,循环条件成立则跳出循环。循环条件成立则跳出循环。注意:在注意:在C语言中没有提供语言中没有提供“直到型循直到型循环环”语句。当型循环和直到型循环的结构是语句。当型循环和直到型循环的结构是可以互相转换的。可以互相转换的。在由以上三种基本结构组成的结构化在由以上三种基本结构组成的结构化程序中,需满足以下基本条件:程序中,需满足以下基本条件:(1)整个程序只有一个入口和一个出)整个程序只有一个入口和一个出口;口;(2)所有的语句都有可能执行到。)所有的语句都有可能执行到。以上我们

11、已经按结构的划分对结构化以上我们已经按结构的划分对结构化程序设计进行了分别介绍,最后我们举一程序设计进行了分别介绍,最后我们举一综合实例。综合实例。1.3.31.3.3复杂问题的解决方法复杂问题的解决方法下面我们举一实例,加以具体说明。下面我们举一实例,加以具体说明。例如:学籍管理系统。例如:学籍管理系统。就就整整个个系系统统来来看看,我我们们很很难难马马上上就就写写出出解解决决问问题题的的算算法法及及对对应应的的源源程程序序,因因为为这这个个系系统统相相对对来来说说比比较较大大、比比较较复复杂杂,我我们们不不妨妨把把整整个个系系统统分分解解成成若若干干个个小小问问题题,减小问题的规模和复杂程

12、度。减小问题的规模和复杂程度。经过系统分析,整个系统大致包括数经过系统分析,整个系统大致包括数据输入、数据修改、数据查询、数据统计据输入、数据修改、数据查询、数据统计和数据输出几个部分。根据不同问题的划和数据输出几个部分。根据不同问题的划分,每一类问题作为一个模块,可以画出分,每一类问题作为一个模块,可以画出整个学籍管理系统的一级模块图,如图整个学籍管理系统的一级模块图,如图1-10所示。所示。图图1-10 学籍管理系统的一级模块图学籍管理系统的一级模块图此此时时的的模模块块图图比比起起最最初初的的感感觉觉要要直直观观一一些些,每每一一个个子子模模块块要要比比整整个个系系统统要要简简单单一一些

13、些。这这时时还还可可以以把把一一级级模模块块图图中中某某一一个个子子模模块块再再进进一一步步划划分分。比比如如:数数据据输输入入可可分分解解成成学学生生基基本本情情况况输输入入模模块块、学学生生成成绩绩输输入入模模块块、学学生生奖奖惩惩情情况况输输入入模模块块等等,同同样样其其他他一一级级子子模模块块也也可可继继续续细细分分,这这里里就就不再赘述了。不再赘述了。通过对该例解决问题思路的描述,我通过对该例解决问题思路的描述,我们对们对“自上而下,逐步细化,模块化自上而下,逐步细化,模块化”的的程序设计思想有了进一步的了解。希望读程序设计思想有了进一步的了解。希望读者在今后的程序设计中,不断地学习,不者在今后的程序设计中,不断地学习,不断地实践,逐步掌握这种设计方法。断地实践,逐步掌握这种设计方法。1.3.41.3.4如何评价一个程序如何评价一个程序(1)功能正确性;)功能正确性;(2)运行可靠性;)运行可靠性;(3)使用方便性;)使用方便性;(4)运行效率;)运行效率;(5)可维护性;)可维护性;(6)可移植性。)可移植性。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号