版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章控制结构,返回总目录,目录,3.1节目结构框,3.2第二季度结构,3.3季度结构,3.6练习3,3.4循环结构,3.5break和continue语句,返回总目录,基本要求:)您熟悉C语言的节目结构)精通结构化编程方法。学习重点:)流程图,N-S图表,循环结构)结构化编程方法。3.1节目结构框,3.1.1自然语言说明,编程的核心是算法。算法是对实际问题解决阶段的说明。通过精确有效的算法,可以用任何电脑语言编写程序,解决各种问题。算法可以用自然语言、流程图、N-S图表等来说明。自然语言说明:用人们每天使用的语言(如英语、汉语)对算法的说明。返回、目录、3.1节目结构框、3.1.1自然语言说
2、明、示例3.2 s=1 2 3 100的总和。问题解决的想法是把1100加到S变量中。首先初始化变量s=0,然后使用语句序列S=S1即可。S=S2要反复写100个加法赋值语句,显然这种算法是不可取的。改用下面介绍的算法。算法步骤:(1)设置s=0,n=0。(2)变量n的值加1等于n=n 1;(3)将n添加到变量s,即s=s n。(4)如果N的值小于100,请返回并继续执行步骤2。否则,请执行步骤5。(5)输出s变量的值。3.1节目结构框,3.1.2流程图,流程图是使用多个茄子不同几何图形表示不同特性工作的传统算法描述方法。使用流程行指示算法的运行方向。流程图中表示的算法简单直观,易于转换为相应
3、的语言程序。表示算法开始或结束的3.1节目块图表,3.1.2流程图;表示数据输入和输出。实际输入输出也经常用作矩形框表示。用于判断给定的条件,根据条件是否成立来决定后续操作。有两个入口和出口。用于表示常规数据处理。表示算法运行进程。用于连接在其他位置绘制的流程图。公用流程图符号,3.1节目结构框,3.1.2流程图,示例3.4在流程图中表示示例3.2的算法,如下图所示。3.1节目块图表、3.1.3 NS图表和N-S图是美国I.Nassi和B.Shneiderman牙齿一起提议的节目算法的另一种图形表示。这意味着所有算法将按顺序结构、分支(,3.1节目块图表,3.1.3 NS图表,3茄子基本结构的
4、NS图表,顺序结构:门出现的顺序运行)。如上图所示,首先运行a模块,然后运行b模块。分支结构:根据指定条件进行判断,然后选择分支运行之一。如上图所示,P表示条件,当P为真时运行分支A模块,否则运行分支B模块。类型循环:满足条件时重复操作。如上图所示,如果条件P为“真”,则重复A模块操作,直到P为“假”为止,结束循环并继续循环后面的语句。到类型循环:首先执行周期操作,然后确定条件,如果满足条件,则继续循环操作,直到不满足条件。如上图所示,首先执行A模块操作,然后检查指定的条件P是否为真,如果为真,则重复执行A模块操作,直到条件P不成立为止。3.1节目结构框,3.1.3 NS图,示例3.6用N-S
5、图表示示例3.2中的算法,如下图所示。3.1节目块图表,3.1.4结构化编程,结构化编程的基本思想是所有程序都由顺序结构、分支结构和循环结构三个茄子基本结构组成。结构化程序:三个茄子基本结构反复组合和嵌套的程序。结构化编程方法:从上到下,模块化设计结构化编码、3.1节目块图表、3.1.4结构化编程、结构化编程功能包括:节目单位由三种茄子基本结构组成:顺序、分支和循环。三个茄子基本结构可以重复嵌套,表示复杂的算法。一个大程序由多个茄子不同功能的小模块组成。每个小型模块只有一个入口和一个出口。程序不能有无限循环(死循环)。程序在任何条件下都不能执行的门(史文)牙齿上渡边杏。以结构化思想设计的电脑程
6、序具有明确的模块接口,因此,在编写程序时,必须根据逻辑结构和层次深度使用缩进排列,将节目模块写在不同的位置。这提高了程序的可读性,有助于调试程序和查找程序的逻辑错误。3.1节目结构框、3.1.5结构化节目语句和表达式语句:由“表达式分号”组成。赋值语句、函数调用语句等空语句:仅由一个分号组成。空语句经常用于循环体,不产生任何动作。控制语句:完成特定的节目流控制功能。例如:if-else、switch-case、for、while、do-while、break、continue、goto、return。复合语句:一对花括号包围的一个或多个语句。封闭语句可以是函数主体或循环主体中经常使用的四种茄子
7、类型的语句。3.2第二季度结构,3.2.1第二季度if语句,默认格式:if(表达式)语句1;Else语句2;示例:if (xy) printf (max=% d ,x);Elseprintf (max=% d ,y);返回目录,3.2第二季度结构,3.2.1第二季度if语句。例如,3.7查找两个整数x,y中的较大者,并将它们分配给变量max。问题解决idea X,Y值由输入函数输入,并根据大小极大地分配给max变量。N-S图可以编写如下程序,如图3.8所示:#include main() int x,y,maxPrintf(Input x,y=);Scanf(%d,%d,3.2分支结构,3.2
8、.2不平衡if语句,默认格式:if(表达式)语句;示例:if (xy) printf (max=% d ,x);3.2第二季度结构,3.2.2不平衡if语句,示例3.8设计了从小到大从键盘输入三个整数的程序。问题解决idea 3整数x,y,z,2比2比较,始终保持x的最小值,z的最大值,如果不满足牙齿条件,则交换值。基本N-S图可按如下方式编写程序,如图3.10所示:#include main() int x、y、z、tempPrintf(Input x,y,z=);Scanf(%d,%d,%d,3.2分支结构,3.2.3 if语句嵌套,嵌套通用格式,3.2分支结构,3.2.3 if语句嵌套,
9、示例3.11 Scanf(%f,示例3.11=b );修改:if(a=b)if(b=c)printf( a=b=c );else printf(“a!=b );实施if else的正确配对方法:加法,3.3多分支结构,3.3.1多分支switch语句,if语句的嵌套实现多分支:多分支导致嵌套if语句级别增加,程序冗长且难以理解。因此,C语言提供了条件选择语句以处理称为switch语句的多分支结构,也称为交换机语句。,返回目录,3.3多分支结构,3.3.1多分支switch语句,switch语句(开关语句)正则格式:switch(表达式)case常量表达式1:语句组1;布列克;Case常量表达式
10、2:语句组2;布列克;case常量表达式n:语句组n;布列克;Default:门组n 1;布列克;3.3多分支结构、3.3.1多分支switch语句、switch语句(开关语句)执行过程:说明:switch后面的表达式的值类型可以是整数、字符或枚举。如果表达式值等于case中的常量表达式值,则会执行该case后面的语句序列,直到遇到break语句或到达switch结构的末尾。多个连续的case语句可以共享一个语句序列。Case后面的徐璐其他常量表达式的值不能相同。Break的作用是更改switch结构中程序的执行流,从switch语句中离开节目流,转到switch语句后面的下一个语句中运行。您
11、可以在Switch语句中嵌套switch语句。通过使用3.3多分支结构、3.3.1多分支switch语句和示例3.14键盘输入学生成绩来判断学生成绩等级。成绩90100分,等级为“A”,成绩为8089分,等级为“B”,成绩为7079分,等级为“C”,成绩为6069分,等级为“D”,成绩低于60分,等级为缅因iiiChar grade;printf(“input students score:”);scanf(“% d”,n=100);n)s=s n;for语句执行过程(1)计算表达式1;(2)计算表达式2,如果值不是0牙齿,则执行步骤3。如果为0,请转至步骤6。(3)循环体的实施;(4)计算表
12、达式3;(5)跳到步骤2继续。(6)结束回圈,然后执行for陈述式之后的下列陈述式:3.4循环结构,3.4.1 for语句,示例3.17示例使用3.16 for语句实现,程序如下:# includemain () ints,n;For (s=0,n=1);N=100n)s=s n;Printf (s=% dn ,s);如果在、3.4循环结构、3.4.1 for语句、for语句说明、3.4循环结构、(1) for语句中设置为表达式1牙齿默认值,则必须将表达式1作为语句放置在for语句之前。示例3.17示例3.16用for语句实现,可以编写以下程序:#include main() int s,n;
13、s=0;n=1;for(;N=100n)s=s n;Printf (s=% dn ,s);3.4.1 for语句,for语句说明,3.4循环结构,(2)如果在for语句中将表达式2设置为默认值,则系统默认循环控制条件为true (0牙齿以外的值),如果在循环主体中添加另一个语句而不进行控制,则循环不受限制,示例3.17示例3.16将作为for语句实现,可以编写以下程序#include main() int s,n;For (s=0,n=1);N)if(n100)break;s=s n;Printf (s=% dn ,s);3.4.1 for语句、for语句说明、3.4循环结构、(3)如果在fo
14、r语句中默认设置表达式3牙齿,则可以将该语句放在循环的末尾。示例3.17示例3.16用for语句实现,可以编写以下程序:#include main() int s,n;For (s=0,n=1);N=100)s=s n;n;Printf (s=% dn ,s);3.4.1 for语句、for语句说明、3.4循环结构、(4)在for语句中,可以将所有三个表达式设置为默认值,但不能省略其中的两个分号。示例3.17示例3.16用for语句实现,可以编写以下程序:# includemain () int s=0,n=1;for(;)s=s n;n=n 1;If(n100)中断;Printf (s=%
15、dn ,s);3.4.1 for语句、for语句说明、3.4循环结构、(5)循环体可以是null语句,但必须有分号(即循环是null语句)牙齿。示例3.17示例3.16用for语句实现,可以编写以下程序:# inclus For(s=0,n=1);N=100S=s n,n);Printf (s=% dn ,s);3.4.1 for语句,思维和练习:示例3.16作为for语句实现。该程序以前以几种茄子方法为例。请学生们用其他可能的方法编写程序。此外,示例3.16可以通过while语句、do-while语句、if goto等方法实现。这表明,针对实际编程问题,可以编写多个茄子程序来解决相同的问题。因此,对初学者来说,学习更多,努力练习是关键,熟练的话可以巧妙,到时候写程序就有空了!加油!3.4循环结构,3.4.1 for语句,3.4循环结构,3.4.2 while语句,while语句的通用格式while(表达式)循环;示例:int n、s;n=1;s=0;while(n=100)s=s n;n;3.4循环结构、3.4.2 while语句、while语句执行过程首先计算并确定表达式值,如果表达式值为true(非0牙齿),则执行循环主体,然后返回程序,计算并判断表达式值,直到表达式值为false。3 . 4循环结构、3.4.2 while语句,示例3.16#include main
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年五轴机床智能数字终端与生态构建
- 2026年成渝共建算力基础设施与跨区域算力资源调度机制设计指南
- 2026年临床医生AI工具使用培训与诊断正误鉴别能力
- 条约法的订立生效和终止
- 2026年网络安全法律法规
- 2026年社区消防安全知识培训
- 心脏骤停的急救国际合作项目
- 2025-2026学年人教版六年级下册数学 应用题专项突破 年龄问题(含答案)
- 麻纺厂产品质量考核办法
- 某公关公司活动策划办法
- 2026年江西电力职业技术学院单招职业技能考试题库带答案详解
- 2026年常州机电职业技术学院单招职业倾向性考试题库带答案详解(完整版)
- 2026年宁夏石嘴山市单招职业适应性考试题库附参考答案详解(综合卷)
- 幼儿园内部控制工作制度
- 眉山天府新区2026年上半年公开招聘专职网格管理员(77人)考试参考试题及答案解析
- 2026年复产复工安全生产部署专题会议纪要
- 出水井施工方案(3篇)
- 健康照护师操作测试考核试卷含答案
- 2026湖南省卫生健康委直属事业单位招聘185人考试参考试题及答案解析
- 航空航天及设备制造标准化操作规程手册
- 【2025年】裁剪工岗位职业技能资格考试联系题库-含答案
评论
0/150
提交评论