您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第三讲 程序控制结构
第三讲程序控制结构(一)讲师:程浩学习目标:l了解程序设计的一般方法、结构化程序设计l熟悉顺序结构、简单程序流程图的画法l熟练应用if语句的使用规则以及相应的程序流程l熟练应用switch语句的使用规则及相应的程序流程学习重点:Llif语句的使用规则以及相应的程序流程lswitch语句的使用规则及相应的程序流程学习难点:if语句的嵌套的应用一、程序设计的一般方法(1)程序就是按照某种算法,在有限的步骤内对一些经过整理的、按照一定形式组织起来的有关联的数据(即数据结构)进行分析研究,得到期望的结果,并且计算机可以执行的指令序列。数据结构和算法是程序设计的主要因素。程序设计的一般方法可以概括为以下四个步骤:明确处理对象、选择算法画流程图编写程序调试程序一、程序设计的一般方法(2)为了解决一个问题清楚地理解这个问题收集相关信息处理这些信息得出解决方案一、程序设计的一般方法(3)已知三角形三条边,求三角形的面积首先需要明确处理对象,选择适合的算法根据数据特点和取值范围,浮点型的数据可以很好地表示三角形的边长和面积。如果a、b、c符合两边之和大于第三边,则a、b、c可以组成三角形,其面积的算法可以使用海伦公式第二步画流程图。二、流程图(1)是算法的一种图形化表示方式,将一个过程中的指令或流动的流程绘制成图,并使用符号表示其中的每个活动。STARTDISPLAY'HelloWorld!'STOP二、流程图(2)流程图用来表示各种操作的图框。起止框输入输出框判断框处理框流程线二、结构化程序设计(1)结构化程序设计方法的基本思想是:任何程序都可用三种基本结构的组合来实现。这三种基本结构是:顺序结构、选择结构和循环结构。这三种结构都具有一个入口和一个出口。要求限制无条件转移语句(即goto语句)的使用二、结构化程序设计(2)顺序结构:是按照书写顺序依次执行的。选择结构:是对给定的条件进行判断,再根据判断的结果决定决定执行哪一个分支循环结构:是在给定条件成立时反复执行某段程序。条件程序段1程序段2条件程序段程序段1程序段2二、顺序结构(1)顺序结构是结构化程序设计的三种基本结构中最简单的。它可以独立存在,也可以出现在选择结构或循环结构中,整个程序都存在顺序结构。在顺序结构中,函数、一段程序或者语句是按照出现的先后顺序执行的。例求ax2+bx+c=0方程的解。a、b、c由键盘输入,且b2-4ac0。二、顺序结构(2)算法表示:定义a、b、c、p、x1、x2用于存放方程的系数、中间变量和结果;输入a、b、cp=sqrt(b*b-4*a*c)计算x1、x2:x1=(-b+p)/(2*a)x2=(-b-p)/(2*a)输出方程的根x1、x2开始输入a、b、cp=sqrt(b2-4ac)x1=(-b+p)/2ax2=(-b-p)/2a输出方程的根x1、x2结束举一反三:画出实现“输入三个数a、b、c,输出平均值aver”的程序的流程图和伪代码。三、选择结构(分支)选择结构是结构化程序的三种基本结构之一,用于根据给定条件的判断执行何种操作。C语言中的选择结构有两种:if语句和case语句。If语句主要提供两个分支的选择,case语句提供多分支的选择。下面我们先介绍最为常用的选择结构if语句。三、if语句(1)if语句的基本形式(简单的if语句)if(条件)语句;条件语句成立不成立例:由键盘输入x、y两个数,要求从大到小排序并输出。分析:关键技术:两个变量互换算法是:t=x;x=y;y=t;•定义x、y、t用于存放输入的两个数和中间变量;•输入x、y•if(xy){t=x;x=y;y=t;}•输出x、y三、if语句(1)开始定义变量x、y结束从键盘给x、y赋值xy?x、y互换NoYes输出x、y三、if语句(2)复杂的if语句if(条件)语句1;else语句2;条件语句1语句2成立不成立三、if语句(2)•判断方程ax2+bx+c=0是否有实数解,其中a、b、c由键盘输入•分析:用伪代码表示算法:•定义a、b、c、p用于存放方程的系数、中间变量;•输入a、b、c•令p=b*b-4*a*c•if(p=0)输出方程有实数解•else输出方程无实数解开始p=b2-4ac结束p=0输出有实数解输出无实数解成立不成立输入a、b、c由键盘输入系数a、b、c,判断方程ax2+bx+c=0是否有实数解,如果有则输出其解。(提示:需要用到复合语句)三、if语句(3)当if语句中的语句1或语句2是一个含if语句的复合语句时,形成if语句的嵌套。形式一:当语句2是if语句结构if(条件1)语句1elseif(条件2)语句2else语句3形式二:当语句1是if语句结构if(条件1)if(条件2)语句1else语句2else语句3条件1语句1成立不成立条件2语句2语句3成立不成立条件1语句1成立不成立条件2语句2语句3成立不成立三、if语句(3)例:编写程序,输入一个x,按照函数要求输出y值。-1(x0)y=0(x=0)1(x0)分析:采用形式二的算法:采用形式一的算法:定义变量x,y定义变量x,y输入x输入xif(x=0)if(x0)y=-1;if(x0)y=-1;elseif(x==0)y=0;elsey=0;elsey=1;elsey=1;输出y值输出y值举一反三:试判断下列选择结构是否可以表示上例函数。if(x0)y=-1;if(x==0)y=0;elsey=1;三、if语句(3)在if语句嵌套中,特别注意else与if的配对问题C编译系统处理该问题的的原则是:else总是与同一语法层次中离它最近的尚未配对的if配对。为了避免出现else的配对错误,通常利用大括号将if-else语句结构括起来。程序段一:程序段二:if(a=0)if(a=0){if(a0)printf(“a0\n”);}if(a0)printf(“a0\n”);elseprintf(“a0\n”);elseprintf(“a==0\n”);四、switch语句(1)switch语句用于实现多重分支格式为注意:如果需要执行完本case语句后就跳出switch语句,则在对应的case语句后加上一个break语句switch(整型表达式){case数值1:语句1;break;case数值2:语句2;break;…………case数值n:语句n;break;default:语句n+1}整型表达式语句1语句2等于数值1语句n语句n+1等于数值2等于数值n等于其它值…四、switch语句(2)switch语句由键盘输入一个成绩,然后输出相应的等级“优”、“良”、“中”、“及格”、“不及格”。开始定义score结束score/10输出优秀等于10输入score输出良好输出中等输出及格输出不及格输出”输入错误”输出优秀等于9等于8等于7等于6等于5等于其它值输出不及格等于0……#includestdio.hvoidmain(){intscore;printf(“请输入学生分数:”);scanf(“%d”,&score);switch(score/10){case10:case9:printf(“成绩优秀\n”);break;case8:printf(“成绩良好\n”);break;case7:printf(“成绩中等n”);break;case6:printf(“成绩及格\n”);break;case5:case4:case3:case2:case1:case0:printf(“成绩不及格\n”);break;default:printf(“输入分数错误\n”);}}举一反三:由键盘输入等级A、B、C、D,输出成绩范围。其中“A”代表85~100分,“B”代表70~85分,“C”代表60~70分,“D”代表60分以下。例子/*-----------------------------------------------------------------程序L3_8.C:从键盘输入1~7之间的数字,输出对应星期中的英文单词。-----------------------------------------------------------------*/#includestdio.hmain(){charw;scanf(%c,&w);switch(w){case'0':printf(Sunday\n,w);break;case'1':printf(Monday\n,w);break;case'2':printf(Tuesday\n,w);break;case'3':printf(Wednesday\n,w);break;case'4':printf(Thursday\n,w);break;case'5':printf(Friday\n,w);break;case'6':printf(Saturday\n,w);break;}}作业与上机练习1.输入两个数,判断两个数的关系是“大于”、“等于”或“小于”,并输出结果。2.从键盘任意输入三个整数,按从小到大顺序输出。3.判断ax2+bx+c=0方程的有几个解,如果有解则输出。系数a、b、c由键盘输入。
本文标题:第三讲 程序控制结构
链接地址:https://www.777doc.com/doc-3198385 .html