《08分支结构(1).ppt》由会员分享,可在线阅读,更多相关《08分支结构(1).ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、东软信息学院计算机系 12/18/2022分支结构程序设计分支结构程序设计程序设计基本思路程序设计基本思路程序设计三种基本结构简介程序设计三种基本结构简介if-else分支结构程序设计分支结构程序设计本节对应教材的内容为本节对应教材的内容为P60-P67东软信息学院计算机系 12/18/2022C程序设计思路程序设计思路每个每个C程序的设计思路基本都分为以下四大步:程序的设计思路基本都分为以下四大步:(1)定义需要的变量)定义需要的变量(2)给某些变量赋值(或输入值)给某些变量赋值(或输入值)(3)程序运算部分(可能计算出另一些变量的值,)程序运算部分(可能计算出另一些变量的值,或通过推理得出
2、一定的执行结果)或通过推理得出一定的执行结果)(4)输出程序结果)输出程序结果这里的每一步都要由相应的语句来实现这里的每一步都要由相应的语句来实现东软信息学院计算机系 12/18/2022C语句概述n以“;”作为语句的结束符.nC语句分类n表达式语句:表达式加分号构成。n空语句:;n程序控制语句(9种):if()else switchfor()while()dowhile()continuebreakgotoreturn分支循环辅助控制如 total=total+limit;a=3;func();printf(“Hello,world!n”);东软信息学院计算机系 12/18/2022n程序的
3、三种基本结构n结构化程序设计n基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto)n结构化程序:由三种基本结构反复嵌套构成的程序n优点:结构清晰,易读,提高程序设计质量和效率n三种基本结构n顺序结构ABAB流程图N-S图东软信息学院计算机系 12/18/2022PAB真假PBA真假v选择结构kA1A2AiAnk=k2k=k1k=knk=ki.l二分支选择结构l多分支选择结构东软信息学院计算机系 12/18/2022v循环结构l当型循环结构l直到型循环结构PA假真当P为真AAP真假A直到P为真注:A,B,A1.An可以是一个简单语句,也可以是一个基本结构东软信息学院计算
4、机系 12/18/2022 分支结构分支结构东软信息学院计算机系 12/18/2022分支结构的引入分支结构的引入从键盘输入一元二次方程的三个系数从键盘输入一元二次方程的三个系数a、b、c,求方,求方程的两个实根。程的两个实根。是不是输入任意的三个系数都能求得两个实根?是不是输入任意的三个系数都能求得两个实根?如果用户随便输入三个系数,如何保证程序不出错如果用户随便输入三个系数,如何保证程序不出错?东软信息学院计算机系 12/18/2022分支结构流程图分支结构流程图ABP传统流程图N-S结构图真假真假PAB其意义为:若表达式的值为真,则执行其意义为:若表达式的值为真,则执行A语句,否则语句,
5、否则执行执行B语句。语句。东软信息学院计算机系 12/18/2022 if 语句语句东软信息学院计算机系 12/18/2022if-else 形式的形式的if语句语句程序执行流程:程序执行流程:若表达式若表达式e的值为真,的值为真,执行语句执行语句1否则否则 执行语句执行语句2if(表达式表达式e)语句语句1;else 语句语句2;表达式表达式e语句语句1语句语句2值为真值为真值为假值为假表达式e真假语句1语句2东软信息学院计算机系 12/18/2022从键盘输入一元二次方程的三个系数从键盘输入一元二次方程的三个系数a、b、c,若方程有两个实根,则,若方程有两个实根,则求解并输出两个实根;否则
6、,输出信息求解并输出两个实根;否则,输出信息“no real root!”。定义变量a,b,c,x1,x2,p;输入a,b,c的值;求判别式p的值;p=0真假求x1,x2并输出输出“no real root!”解决该问题的解决该问题的N-S盒图盒图东软信息学院计算机系 12/18/2022从键盘输入一元二次方程的三个系数从键盘输入一元二次方程的三个系数a、b、c,若方程有两个实根,则,若方程有两个实根,则求解并输出两个实根;否则,输出信息求解并输出两个实根;否则,输出信息“no real root!”。#include#include void root()定义变量定义变量a、b、c、x1、x
7、2、p;输入输入a、b、c的值;的值;求判别式求判别式p的值;的值;若若p=0 求求x1,x2并输出;并输出;否则否则 输出输出“no real root!”;#include#includevoid root()double a,b,c,x1,x2,p;printf(“请输入请输入a、b、c的值的值:”);scanf(“%lf%lf%lf”,&a,&b,&c);p=b*b-4*a*c;if(p=0)x1=(-b+sqrt(p)/(2*a);x2=(-b-sqrt(p)/(2*a);printf(“x1=%lf,x2=%lf”,x1,x2);else printf(“no real root!
8、”);东软信息学院计算机系 12/18/2022课堂实践课堂实践 1、求任意一元二次方程度两个实根并输出,若没有实根,请输出“no real root!”。2、从键盘输入一个整数,若整数是奇数,输出“odd number!”;否则,输出“even number!”。3、输入两个整数,输出其中的较大者。东软信息学院计算机系 12/18/2022#include#include void root()double a,b,c,x1,x2,p;printf(“a=”);scanf(“%lf”,&a);printf(“b=”);scanf(“%lf”,&b);printf(“c=”);scanf(“%
9、lf”,&c);1、求任意一元二次方程度两个实根并输出,若没有实、求任意一元二次方程度两个实根并输出,若没有实根,请输出根,请输出“no real root!”。p=b*b-4*a*c;if(p=0)x1=(-b+sqrt(p)/(2*a);x2=(-b-sqrt(p)/(2*a);printf(“x1=%lf,x2=%lf”,x1,x2);else printf(“no real root!”);/*end of if*/*end of function root*/东软信息学院计算机系 12/18/2022#include void isoddnumber()int n;printf(“i
10、nput a integer:”);scanf(“%d”,&n);if(p=0)x1=(-b+sqrt(p)/(2*a);x2=(-b-sqrt(p)/(2*a);printf(“x1=%f,x2=%f”,x1,x2);else printf(“no real root!”);/*end of if*/*end of function isoddnumber*/2、从键盘输入一个整数,若整数是奇数,输出、从键盘输入一个整数,若整数是奇数,输出“odd number!”;否则,输出;否则,输出“even number!”。东软信息学院计算机系 12/18/2022 include void ge
11、tmax();main()getmax();void getmax()int a,b;scanf(“%d,%d”,&a,&b);if(ab)printf(“%d”,a);else printf(“%d”,b);3、输入两个整数,输出其中的较大者。、输入两个整数,输出其中的较大者。东软信息学院计算机系 12/18/2022如果用变量ringbell表示下课铃声是否响起(0代表未响,1代表响了)。请编写一个程序,实现以下要求:从键盘上输入ringbell的值,根据该值进行判断,如果铃响了,则在屏幕上显示如下信息“下课了,该休息的休息,想出去透气的到外面走走,洗手间在拐角处”,如果铃未响,则在屏幕上输出“还没有下课,我要继续努力学习,C语言我一定能学好”。思考题:思考题:东软信息学院计算机系 12/18/2022本次课主要讲了以下内容:1、三种基本的程序设计结构2、分支结构中的if-else语句小结小结 东软信息学院计算机系 12/18/2022课后作业课后作业1、写一程序,从键盘上输入一年份year(为十进制数),判断其是否为闰年。(闰年的条件是:能被4整除、但不能被100整除,或者能被400整除)2、从键盘输入x的值,求y的值并输出。要求:1、画出N-S图;2、课下在计算机上调试程序,使之能得到正确结果。y=x x=0-x x0
限制150内