《程序流程控制》PPT课件

上传人:san****019 文档编号:16087095 上传时间:2020-09-18 格式:PPT 页数:67 大小:304.10KB
收藏 版权申诉 举报 下载
《程序流程控制》PPT课件_第1页
第1页 / 共67页
《程序流程控制》PPT课件_第2页
第2页 / 共67页
《程序流程控制》PPT课件_第3页
第3页 / 共67页
资源描述:

《《程序流程控制》PPT课件》由会员分享,可在线阅读,更多相关《《程序流程控制》PPT课件(67页珍藏版)》请在装配图网上搜索。

1、程序流程控制,C语言是一种结构化、模块化的通用程序设计语言。通过对程序流程控制的学习,建立运用3种基本结构(顺序结构、分支结构、选择结构)进行编程的思想。,模块一 顺序程序设计,能力目标:,正确认识顺序结构的执行特点 根据流程图,写出相应的程序 进行顺序程序的设计,任务一 考察顺序结构的执行特点,请观察下面的流程图,1.在该图中运用了哪些流程图框? 起止框、输入输出框、一般处理框 2.根据流程图,写出相应的C程序。,main() float r,s; scanf(“%f”, ,在写程序中,注意流程线的方向。 在程序中,正确定义变量。 顺序结构的执行特点:程序按照语句从上到下的排列顺序依次执行,

2、每条语句必须执行且只能执行一次。,知识盘点:,任务二 熟悉顺序程序,2根据流程图,完成C程序。 #include”stdio.h” main() char ch1,ch2; printf(“请输入一个大写字母:”); ch1=getchar(); ch2=ch1+32; printf(“相应的小写字母为:”); putchar(ch2); 3如果输入的字符不是大字字母,这样的转换还有意义吗?怎样才能避免输入非大写字母?,请看题目:输入一个大写字母,转换成小写字母输出。 1.填写流程图,答:这样的转换没有意义,如果要避免输入非大写字母,可以在转换前加一个是否是大写字线的判断。,任务三 设计顺序程

3、序,请看题目:输入2个整数a、b,然后交换a、b的值输出。 1填写流程图,2.根据流程图,写出C程序。,main() int a,b,t; scanf(“%d%d”, ,3.如果不借助中间变量t能使变量a、b的值交换吗?如果能,该如何编程?,t=a;a=b;b=t;,模块二 分支程序设计,能力目标:,根据实际问题,正确书写关系、逻辑表达式 正确认识分支结构的执行特点 运用if语句的3种形式及switch语句进行分支程序的设计,任务一 认识关系运算符和关系表达式,1.观察C语言提供的6种关系运算符:、=、= 、=、 !=,2.上机调试程序,记录运行结果,#include”stdio.h” mai

4、n() int true,false; true=(1=1); false=(1=0); Printf(“真=%d,假=%dn”,true,false);,请记录运行结果:,真=1,假=0,3.完成下表:,假,真,假,知识盘点:,关系运算的概念 关系运算的优先级 关系表达式的概念,任务二 认识逻辑运算符和逻辑表达式,1种逻辑运算符:、!,3写出下列表达式的等价式 xy,()试写出if语句的一般形式:,()归纳if语句的流程图:,if(表达式) 语句,知识盘点:,()题目:输入一个整数,如果该数为正,输出该数。,完成程序:,main() int x; scanf(“%d”, ,根据程序,画出流程

5、图。,思考:如果要求x的绝对值,用if语句(第一种形式)实现,该如何完成?,(x0),main() int x,y; scanf(“%d”, ,.认识ifelse语句(第二种形式),()请观察下面的流程图:,真假,该流程图表示的意思是什么?,()if else语句的形式: if(表达式) 语句1 else 语句2,(3)请填写流程图: 真 假,答:求x的绝对值。,表达式,语句2,知识盘点:,if else语句构造了两路分支的选择结构,也是一种最基本的选择结构。如果“表达式”计算为真,执行语句1;否则执行语句2。其中“语句”部分可以是简单语句或者复合语句。“表达式”可以是关系表达式、逻辑表达式,

6、也可以是算术表达式。,(3)题目:从键盘上输入两个整数x和y,若x2+y2大于10,则输出x2+y2个位上的数字,否则输出两数之和。,请画出流程图:,由流程图的思路,填写程序。 #include”stdio.h” main() int x,y,s,l; printf(“请输入2个整数:”); scanf(“%d%d”, ,(s10),4.认识ifelseif语句,(1)题目:输入一个数x,如果x=10,则y=3x-10,否则,y=2x-1,输出y的值。,该题将面临几种选择?,答:3种选择。,(2)请观察下面的流程图,回答问题。,对照上图形式在图内填空,真,假,真,假,真,假,真,假,真,假,根

7、据上图,写出对应的语句形式。,if(表达式1) 语句1 else if( ) 语句2 else if(表达式3) else 语句4,表达式2,语句3,表达式,语句3,(3)根据所得语句形式,填写程序,并记录上机调试结果。,#include”stdio.h” main() float x,y; printf(“请输入x的值:”); scanf(“%f”,请记录上机调试结果:,y=x;,y=2*x-1;,知识盘点:,ifelseif语句是通过一连串的判断,来实现互斥分支,它排列了一系列的操作,每一种操作是在相应的条件下才能执行。该语句执行时,依次对各个条件进行判断,符合某一条件,则转去执行该条件下

8、的操作,其余部分被跳过;若无条件为真,就执行最后一个else所指定的操作。,5else与if的配对规则,请观察以下程序段和流程图,完成问题。,程序段: if(x7) if(x13) printf(“left!n”); else printf(“right!n”);,流程图:,真,真,假,假,真,假,真,假,(1)判断以上2个流程图中,哪一个与程序段相吻合?为什么?,答:根据else与if的配对规则,第二个图与程序段相吻合。,(2)写出该程序段的运行结果。,无结果,left!,right!,6if语句的嵌套,(1)按else与if的配对规则划分下列关系。 if(条件1) if(条件2) 语句1

9、else 语句2 else if(条件3) 语句3 else 语句4,(2)题目:有一个函数: -1(x0)输出y值。,写法1: main() int x,y; scanf(“%d”, ,原因:,请判断下列哪些写法是正确的?为什么?,正确。,写法2: if(x=0) if(x0) y=1; else y=0; else y=-1;,原因:,写法3: y=-1; if(x!=0) if(x0) y=1; else y=0;,原因:,正确。,不正确。,任务五 考察switch语句,#include”stdio.h” main() char grade; printf(“请输入成绩等级(A、B、C、

10、D)n”); grade=getchar(); switch(grade) caseA:printf(“优秀n”); break; caseB:printf(“良好n”);break; caseC:printf(“及格n”);break; caseD:printf(“不及格n”);break; default:printf(“输入数据错误!n”); ,switch语句部分流程图:,1请阅读下面的程序及流程图,完成问题。,A,B,C,D,default,(1)记录上机调试运行结果:,(2)说明该程序的功能是什么?,(3)思考:如果将程序段中的所有break语句去掉,输入字符C,运行结果是什么?,

11、答:运行结果为:及格 不及格 输入数据错误!,知识盘点:,请归纳switch语句的一般形式:,预期运行结果: B 上机调试结果:,及格,任务六分支的应用,2由上述分析,填写下列流程图。,真,假,真,假,真,假,n50,r=0.8,3根据流程图,填写程序。,4请记录上机调试结果:,n50,r=0.8,模块三 循环程序结构,能力目标:,正确认识循环程序的执行特点 运用3种循环语句(while语句、do while语句、for语句)进行循环程序设计 运用2个循环辅助语句(break语句、continue语句),更好地控制程序流程,任务一 认识while语句,1初识while语句,(1)思考:在程序设

12、计中,通常会遇到输出一个星号*,可以用一个printf()语句,那么输出5个星号*、10个星号*,甚至更多的星号*,该如何处理呢?,(2)观察下面两个程序,完成问题。,程序一 main() printf(“*n”); printf(“*n”); printf(“*n”); printf(“*n”); printf(“*n”); ,程序二 main() int i=1; while(i+=5) printf(“*n”); ,上面两个程序分别实现什么功能?,两个程序中,哪一个简便?在程序中能否用循环语句来实现对重复操作的控制?,答:它们都实现输出5个星号*。,答:程序二简便,在程序中能用循环语句来

13、实现对重复操作的控制。,2学习while语句的形式,(1)请观察下面while语句的形式,完成问题。,两条语句的关键字是什么?,关键字后的括号内是什么表达式?,关键字后的语句部分可以是哪些语句?,(2)试写出while语句的一般形式。,while,关系表达式、逻辑表达式,简单语句、复合语句,while(表达式) 语句,3学习while语句的执行过程,(1)请观察while语句的流程,完成问题。,真,假,表达式,(2)请记录该程序的上机调试结果,画出以下程序的流程图,并指出循环条件、循环体及循环控制变量的三个工作。,请记录上机调试结果:,流程图:,循环条件是 循环体是 循环控制变量是 ,3个工作

14、分别 是 、 、 。,I3,printf(“%cn”,ch);,I,I=1,I3,I+,(3)请观察下面2个程序段,完成问题。,语句一 I=1; while(I+=10) printf(“hello!n”);,语句二 I=1; while(-I=10) printf(“world!n”);,判断下面哪一个程序段是正确的?,循环控制变量更新的趋势是什么?,程序在什么时候才能判断循环是否终止?,语句一,让循环条件为假,判断循环条件时,讨论,用while语句编程求1+2+10之和。(同时画出该程序的流程图),程序:,流程图:,知识盘点:,任务二认识dowhile语句,1学习dowhile语句的形式,

15、(2)试写出dowhile语句的一般形式。,do while,sum=sum+i;i=i+1;,i=10,do While(表达式);,2学习dowhile语句的执行过程,请观察dowhile语句的流程,完成问题。,真,假,语句,表达式,3dowhile语句与while语句的区别,(2)由上述运行结果看出,dowhile语句与while语句的区别是什么?,ABC,*AB,ABC,无结果,答:当第次执行循环体时,因为表达式为“真”,两种循环得到的结果相同;否则,二者结果就不同。(前提:二者循环体中的语句相同),任务三认识for语句,1学习for语句的形式,答:输入10个数,并求这10个数的和。,

16、for(表达式;表达式;表达式) 语句,2学习for语句的执行过程,请观察for语句的流程,完成问题。,真,假,3讨论for语句的灵活性,(1)写出以下程序段的运行结果。,(2)讨论:在for语句的表达式1、表达式2、表达式3中可能会出现哪几种情况?,运行结果:,运行结果:,运行结果:,运行结果:,运行结果:,4运用for语句编程,编程求1210之积。(同时画出该程序的流程图),程序:,流程图:,任务四认识循环嵌套,1学习循环嵌套的形式,()请观察下面两个图,完成问题。,(b)图,(2)阅读信息,完成问题。,信息:语言提供的3种循环结构:whiledowhilefor都可以相互嵌套,自由组合。

17、 问题:在已有几种循环嵌套形式后,补充3种合法的形式。,嵌套形式:,while() do while() do while(); while();, , for(;) while() ,2观察二重循环,()请阅读程序,完成问题。,程序定义了哪些变量?,程序中采用几重循环嵌套?,程序中外层循环为哪几行?外层循环的循环体中有几条语句?,程序中内层循环为哪几行?内层循环的循环体中有几条语句?,答:两个变量,m和n,答:二重循环,答:外层循环从7行到12行,外层循环的循环体中有2条语句。,答:内层循环从9行到10行,内层循环的循环体中有1条语句。,(2)请观察循环嵌套部分的流程,完成问题。,真,假,真

18、,假,for,1,5,6,完成下表。(该表给出了内外层循环控制变量的变化情况),2 4 6 8 10,3 6 9 12 15,4 8 12 16 20,5 10 15 20 25,(3)请阅读程序,完成问题,并记录上机调试结果。,请记录上机调试结果:,请思考:为什么会出现这种结果?与上例程序有什么区别?,任务五认识循环辅助语句:break语句和continue语句,1学习break语句 (1)请阅读程序,完成问题。,该程序for语句部分的循环体内有几条语句?,除了当r10时,可退出for循环外,是否有其他的方式退出for循环?,3条语句。,答:可以通过当V100.0时,执行break语句退出循

19、环。,(2)请观察该程序for语句部分的流程,完成问题。,真,假,假,真,break,从流程上看,循环一定是执行了10次才退出吗?为什么?,请写出该程序的预期结果。 请输入圆柱体的高:6,答:不一定,因为当V100.0时,执行break语句退出循环。,体积等于18.840000 体积等于75.360001 此时r=3,(3)请记录该程序的上机调试结果,并与预期结果比较,有差异吗?,请记录上机调试结果:,差异:,2学习continue语句,()请阅读程序,完成问题,并记录上机调试结果。,记录上机调试结果:,该程序for语句部分的循环体内有几条语句?,答:有2条语句。,(2)请观察该程序for语句

20、部分的流程,完成问题。,真,假,假,真,continue,从流程上看出,什么情况下不输出数据?而输出的数据是具有什么性质的数据?,答:当数据能被7整除时,不输出。而输出的数据具有不能被7整除的性质。,(3)思考:如果该程序不使用continue语句,要实现同样的功能,该如何处理?,知识盘点:,任务六循环的应用,1累加的应用 题目:用while语句编程求1+2+3+100的和。,(3)用for语句编程实现以上同样的功能。 程序:,i=100,i+,main() int sum,I; sum=0; for(I=1;I=100;I+) sum=sum+I; printf(“1+2+100=%d”,sum); ,2累乘的应用题目:编程求210。(用2种方法实现),(1)分析:由题意可知,求的是10个2相乘。程序需要定义2个变量s和,s用于存放乘积,用于计算乘以2的次数(即循环次数)。,(2)根据分析,编写程序,并记录上机调试结果。,方法一:,记录上机调试结果:,方法二:,记录上机调试结果:,3讨论题目:假设有一张无限大的纸,其厚度为0.2mm(毫米),现反复地将其对折,编程计算对折多少次后可以达到珠穆朗玛峰的高度8848m(米)?,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!