版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第1页。1.1程序设计的基本概念1.2算法和流程图1.3结构化程序设计第1章算法与程序设计C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第2页。1.1程序设计的基本概念1.1.1什么是程序1.1.2计算机如何运行程序1.1.3如何实现程序设计C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第3页。1.2算法和流程图1.2.1什么是算法1.2.2算法应具备的特性1.2.3怎样表示算法 解决某一问题的具体方法和步骤怎样表示呢?当然可以用语言来描述,除此之外,还可以采用传统流程图、N-S流程图等。下面我们分别介绍一下最常用的几种方法。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第4页。1.自然语言描述法 例1.1求n!(n≥0) 第一步:输入n的值。 第二步:判别一下n的值,如果小于0,则显示“输入错误”信息,然后执行第五步。 第三步:判断一下n的值如果大于或等于0,则进行以下操作。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第5页。(1)给存放连乘积的变量fac赋初值为1;(2)给代表乘数的变量i赋初值为1;(3)进行连乘运算:fac=faci;(4)乘数i增加1:i=i+1;(5)判断乘数i是否大于n?如果i的值不大于n,重复执行第三步,否则执行下一步;第四步:输出fac的值,即n!值。第五步:结束运行。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第6页。2.传统流程图描述法 使用自然语言描述算法通俗易懂,它是文字性的。所以,此种方法一般用于算法比较简单的问题。 传统流程图是借助一些图形符号来表示算法的一种工具,如图1-3所示。这种表示方法直观形象,容易理解。这些图形符号均采用美国国家标准协会ANSI规定的通用符号,在世界上也是通用的。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第7页。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第8页。3.N-S流程图描述法
N-S流程图是由美国两位学者(I.Nassi和B.Schneiderman)提出的。这种算法描述工具完全取消了流程线,所有的算法均以三种基本结构作为基础。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第9页。1.3结构化程序设计1.3.1为什么要采用结构化程序设计1.3.2结构化程序的基本组成 结构化程序的基本组成是顺序结构、分支结构和循环结构。这三种基本结构可用于表示任何一个复杂的算法结构。下面我们通过N-S流程图具体说明一下这三种基本结构。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第10页。1.顺序结构 顺序结构是三种结构中最简单的一种结构。这种结构的程序是按照语句的先后次序顺序执行。 图1-6是用N-S流程图表示的顺序结构,按照图1-6的图型所示,首先执行A语句,然后再顺序执行B语句。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第11页。图1-6顺序结构的N-S流程图C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第12页。2.分支结构 分支结构又称作为选择结构。在分支结构中必须包含条件判断语句,根据条件判断的结果,决定执行哪一个分支结构。 图1-7是用N-S流程图表示的分支结构,按照图1-7的图形表示,当“条件”成立时,执行A语句分支,当“条件”不成立时,执行B语句分支。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第13页。图1-7分支结构的N-S流程图C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第14页。3.循环结构 循环结构的功能是:根据循环条件成立与否,来决定是否重复执行某一条或几条语句。循环结构又分为当型循环结构和直到型循环结构,如图1-8所示。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第15页。图1-8循环结构的N-S流程图C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第16页。 图1-8(a)和图1-8(b)均为当型循环结构,它们是在条件成立的情况下执行A语句部分,条件不成立时,不执行A语句,跳出循环结构。图1-8(a)和图1-8(b)不同的情况是:循环条件与重复执行的语句A相对位置不一样,图1-8(a)是循环条件在前,称为前测型,先来判断循环条件是否成立;而图1-8(b)是循环条件在后,称为后测型,最少执行一次循环语句A,然后再来判断循环条件是否成立。循环条件成立则继续循环,循环条件不成立则结束循环。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第17页。图1-8(c)和图1-8(d)均为直到型循环结构,它们的功能是:直到循环条件成立时,则跳出循环结构,在循环条件不成立时,执行循环语句A。图1-8(c)和图1-8(d)不同的是:图1-8(c)是前测型,首先判断循环条件是否成立;而图1-8(d)为后测型,最少执行一次循环语句A,然后再来判断循环条件是否成立。循环条件不成立则继续循环,循环条件成立则跳出循环。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第18页。注意:在C语言中没有提供“直到型循环”语句。当型循环和直到型循环的结构是可以互相转换的。在由以上三种基本结构组成的结构化程序中,需满足以下基本条件:(1)整个程序只有一个入口和一个出口;(2)所有的语句都有可能执行到。以上我们已经按结构的划分对结构化程序设计进行了分别介绍,最后我们举一综合实例。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第19页。1.3.3复杂问题的解决方法 下面我们举一实例,加以具体说明。 例如:学籍管理系统。 就整个系统来看,我们很难马上就写出解决问题的算法及对应的源程序,因为这个系统相对来说比较大、比较复杂,我们不妨把整个系统分解成若干个小问题,减小问题的规模和复杂程度。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第20页。 经过系统分析,整个系统大致包括数据输入、数据修改、数据查询、数据统计和数据输出几个部分。根据不同问题的划分,每一类问题作为一个模块,可以画出整个学籍管理系统的一级模块图,如图1-10所示。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第21页。图1-10学籍管理系统的一级模块图C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第22页。 此时的模块图比起最初的感觉要直观一些,每一个子模块要比整个系统要简单一些。这时还可以把一级模块图中某一个子模块再进一步划分。比如:数据输入可分解成学生基本情况输入模块、学生成绩输入模块、学生奖惩情况输入模块等,同样其他一级子模块也可继续细分,这里就不再赘述了。C语言程序设计教程-第1章--算法与程序设计全文共25页,当前为第23页。 通过对该例解决问题思路的描述,我们对“自上而下,逐步细化,模块化”的程序设计思想有了进一步的了解。希望读者在今后的程序设计中,不断地学习,不断地实践,逐步掌握这种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理病案中的礼仪服务意识
- 护理法律知识考核与测试
- 护理实施与患者安全
- 儿童重症监护病房护理常规及实践
- 胃癌患者的综合护理
- 天津市武清区2024-2025学年七年级上学期期末英语试题(含答案)
- 血卟啉病护理常规操作
- 酒吧委托协议书
- 脊髓肿瘤患者的疼痛评估与控制
- 景观恢复协议书
- 2025年广西公需科目答案6卷
- GB/T 23720.3-2025起重机司机培训第3部分:塔式起重机
- 风电机安装安全管理规定
- 北京林业大学 研究生 学位考 科技论文写作 案例-2023修改整理
- 护理人员心理健康与维护
- 读写结合-《第九味》徐国能
- 吊篮使用说明书
- GB/T 7129-2001橡胶或塑料软管容积膨胀的测定
- GB/T 35347-2017机动车安全技术检测站
- GB/T 14413-1993船用舷窗
- 急性呼吸窘迫综合征
评论
0/150
提交评论