第4章 结构化程序设计 教学PPT_190814ppt课件.pptx
-
资源ID:16977525
资源大小:4.93MB
全文页数:58页
- 资源格式: PPTX
下载积分:30金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
第4章 结构化程序设计 教学PPT_190814ppt课件.pptx
第4章 结构化程序设计 教学PPT_190814 第第4章章 结构化程序设计结构化程序设计 循环结构 跳转语句 程序流程图 顺序结构 选择结构 4.1 程序流程图流程图是描述问题处理步骤的一种常用图形工具,它由一些图框和流程线组成。使用流程图描述问题的处理步骤,形象直观,便于阅读。 4.1 程序流程图 4.1 程序流程图 起止框:使用圆角矩形表示,用于标识流程的开始或结束。输入/输出框:使用平行四边形表示,其中可以写明输入或输出的内容。 判断框:使用菱形表示,它的作用是对条件进行判断,根据条件是否成立来决定如何执行后续的操作。 4.1 程序流程图 处理框:使用矩形表示,它代表程序中的处理功能,如算术运算和赋值运算等。 流程线:使用实心单向箭头表示,可以连接不同位置的图框。连接点:使用圆形表示,用于流程图的延续。 4.1 程序流程图计算三个数中最小值,流程图如右图。 4.1 程序流程图第1步:程序开始;第2步:进入输入/输出框,输入三个变量值x、y、z;第3步:进入判断框,判断xy是否成立,如果是成立,则进入左边的判断框,继续判断yz是否成立;否则进入右边的判断框,判断xz是否成立; 4.1 程序流程图第4步:进入下一层判断框。如果进入的是左边的判断框,判断yz是否成立,如果成立,则进入左边的处理框,得出最小值是z;如果不成立,则进入右边的处理框,得出最小值为y。如果进入的是右边的判断框,则判断xz是否成立,如果成立,则进入左边的处理框,得出最小值是z;如果不成立,则进入右边的处理框,得出最小值是x。 4.1 程序流程图第5步:进入输出框,输出结果;第6步:进入结束框,程序运行结束。 4.2 顺序结构顺序结构:程序中的所有语句都是从上到下逐条执行。 4.2 顺序结构printf(我n); printf(爱n); printf(Cn); printf(语n); printf(言n); 4.3 选择结构在实际生活中经常需要做出一些判断,如开车来到一个十字路口,需要对红绿灯进行判断,如果是红灯,就停车等候;如果是绿灯,则继续前行。在C语言中也经常需要对一些条件做出判断,C语言中的判断由选择结构语句实现,C语言选择语句可分为if条件语句和switch条件语句。 4.3.1 if条件语句1、if语句在if语句中,如果满足if后面的条件,就进行相应的处理。 4.3.1 if条件语句if语句的格式如下: if(判断条件) 执行语句 4.3.1 if条件语句2、ifesle语句ifelse语句是指如果满足某种条件,就进行相应的处理,否则就进行另一种处理。 4.3.1 if条件语句ifelse语句的格式如下: if (判断条件) 执行语句1 else 执行语句2 4.3.1 if条件语句3、ifelse ifelse语句ifelse ifelse语句用于需对多个条件进行判断,进而执行不同操作的情景中。 4.3.1 if条件语句ifelse ifelse语句的格式如下: if (判断条件1) 执行语句1 else if (判断条件2) 执行语句2 else if (判断条件n) 执行语句n else 执行语句n+1 多学一招:意大利面条式代码多学一招:意大利面条式代码过多地使用if语句或ifelse语句会导致代码冗长。if(判断条件1) 执行语句1if() 执行语句2 else if(判断条件2) if(判断条件3) 执行语句3if(判断条件4) 执行语句4 else执行语句5 这样的代码被形象地称之为“意大利面条”,结构复杂、逻辑混乱,不利于阅读与维护。 4.3.2 switch条件语句switch条件语句也是一种很常用的选择语句,和if条件语句不同,它针对某个表达式的值做出判断,从而决定程序执行哪一段代码。 4.3.2 switch条件语句switch(表达式) case 目标值1:执行语句1break; case 目标值2:执行语句2break; case 目标值n:执行语句nbreak; default:执行语句n+1break;switch语句将表达式的值与每个case中的目标值进行匹配,如果找到了匹配的值,就会执行相应case后的语句,否则执行default后的语句。break的作用是跳出switch语句。 4.3.2 switch条件语句int week = 5;printf(请输入17之间的整数值:);scanf(%d, &week);switch (week)case 1:printf(星期一n);break;/case 7:printf(星期天n);break;default:printf(输入的数字不正确.);break; 多学一招:多学一招:ifif条件语句与条件语句与switchswitch条件语句的条件语句的不同不同if条件语句与switch条件语句的不同主要有以下两点: switch条件语句只进行相等与否的判断;而if条件语句还可以进行大小范围上的判断。 switch无法处理浮点数,只能进行整数的判断,case标签值必须是常量;而if条件语句则可以对浮点数进行判断。 4.4 循环结构在实际生活中经常会将同一件事情重复做很多次,如走路会重复使用左右脚,打乒乓球会重复挥拍的动作等。在C语言中,也经常需要重复执行同一代码块,这时就需要使用循环语句。循环语句分为while循环语句、dowhile循环语句和for循环语句3种。 while循环4.4.1 while循环while循环语句和if条件判断语句有些相似,都是根据判断条件来决定是否执行大括号内的执行语句。区别在于,while语句会反复地进行条件判断,只要条件成立,中的语句就会一直执行。 4.4.1 while循环while循环语法: while (循环条件) 执行语句 中的执行语句被称作循环体,循环体是否执行取决于循环条件,当循环条件的值非0时,循环体就会被执行。循环体执行完毕时会继续判断循环条件,直到循环条件的值为0时,整个循环过程才会结束。 4.4.1 while循环while循环流程图: 4.4.1 while循环int num = 1; /定义变量num,初始值为1 while (num = 10)/ 循环条件 / 条件成立,打印num的值 printf(num = %dn, num); num+;/ nu,进行自增 脚下留心:语句后的分号脚下留心:语句后的分号”;”;”在编程时会经常性的在结尾加上分号,在使用while循环语句时,一定要记得不能在()后面加分号,这样就造成了循环条件与循环体的分离。 脚下留心:语句后的分号脚下留心:语句后的分号”;”;”while(1);printf(无限循环); 4.4.2 dowhile循环dowhile循环语句和while循环语句功能类似,二者的不同之处在于,while语句先判断循环条件,再根据判断结果来决定是否执行大括号中的代码,而dowhile循环语句先要执行一次大括号内的代码再判断循环条件。 dowhile循环语法: do 执行语句 while(循环条件);关键字do后面中的执行语句是循环体。dowhile循环语句将循环条件放在了循环体的后面。这也就意味着,循环体会无条件执行一次,然后再根据循环条件来决定是否继续执行。4.4.2 dowhile循环 dowhile循环流程图:4.4.2 dowhile循环 int res, num;printf(请输入num的值:);scanf(%d,&num);dores = num % 10; /取末尾倒数第一个数printf(%d, res);/输出末尾倒数第一个数/每去掉末尾一个数之后舍掉该数num = num / 10; while (num != 0);4.4.2 dowhile循环 4.4.2 dowhile循环当输入数据123时,程序输出了反转后的数据321,其反转过程如下:(1)进入dowhile循环;(2)执行第10行代码,res=num%10=123%10=3;(3)执行第11行代码,输出res的值,即输出3;(4)执行第12行代码,num=num/10=123/10=12,执行之后,num的值为12; 4.4.2 dowhile循环(5)执行第13行代码,判断while循环中的条件是否成立,由于num的值为12,因此num!=0成立;(6)继续执行下一轮循环。这样直到数据反转完成,while循环不成立,输出321。 4.4.3 for循环for循环通常用于循环次数已知的情况。 for(初始化表达式; 循环条件; 操作表达式) 执行语句 for关键字后面()中包括了初始化表达式、循环条件和操作表达式3部分内容,它们之间用“;”分隔,中的执行语句为循环体。 for( ; ; ) 4.4.3 for循环分别用“”表示初始化表达式、“”表示循环条件、“”表示操作表达式、“”表示循环体,通过序号来分析for循环的执行流程。 4.4.3 for循环第1步,执行。第2步,执行,如果判断条件的值非0,执行第3步;如果判断条件的值为0,退出循环。第3步,执行。第4步,执行,然后继续执行第2步。第5步,退出循环。 4.4.3 for循环for循环流程图 4.4.3 for循环int i, sum = 0;for (i = 1; i = 100; i+) /i的值会在1100之间变化sum += i;/实现sum与i的累加printf(sum = %dn, sum); 4.4.3 for循环sum和i循环中的值循环次数isum第1次11第2次23第3次36第4次410第100次1005050 4.4.4 循环嵌套在一个循环中再定义一个循环,这样的方式被称做循环嵌套。在C语言中,while、dowhile、for循环语句都可以进行嵌套,它们之间也可以互相嵌套。 for(初始化表达式; 循环条件; 操作表达式) for(初始化表达式; 循环条件; 操作表达式) 执行语句; 4.4.4 循环嵌套for循环嵌套是最常用的循环嵌套。 4.4.4 循环嵌套int i, j;for (i = 1; i = 3; i+)printf(i=%d:, i);/每一次外层循环都输出i的值for (j = 1; j = 4; j+)printf(%3d, j); /内层循环输出j的值,输出宽度为3printf(n);/每一次外层循环结束后就换行 4.4.4 循环嵌套 4.5 跳转语句breakcontinuegoto 4.5.1 break1、break语句在switch条件语句和循环语句中都可以使用break语句:当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构;当它出现在循环语句中,作用是跳出当前循环语句,执行后面的代码。 4.5.1 breakchar ch = a;while (ch = 122)printf(%2c, ch);if (ch = 116)break;ch+;printf(n循环之后的代码n); 4.5.2 continue2、continue语句continue语句用在循环中,其作用是终止本次循环,接着执行下一次循环。 4.5.2 continuecontinue与break的区别有以下两点:(1)break终止当前循环,执行循环体外的语句;而continue是终止本次循环,继续执行下一次循环。(2)break语句可以用于switch语句,而continue不可以。 4.5.2 continuechar ch = 96;while (ch 122) ch+;if (ch = 116)continue;printf(%2c, ch);printf(n循环之后的代码n); 4.5.2 continuechar ch = 96;while (ch 122) ch+;if (ch = 116)continue;printf(%2c, ch);printf(n循环之后的代码n); 4.5.3 gotogoto语句用于从当前位置跳转到某一处指定位置,其语法格式如下:goto 语句标记;hello:/hello是语句标记,其后跟冒号printf(hello world!n);goto hello;/跳转到hello标记处执行代码 4.5.3 goto虽然goto语句可随心所欲地更改程序流程,但它不符合模块化程序设计思想,且滥用该语句会降低程序可读性,所以程序开发中应尽量避免使用该语句。 4.6 本章小结本章首先讲解了程序的运行流程图;然后讲解了C语言中最基本的三种流程控制语句,包括顺序结构语句、选择结构语句和循环语句;最后讲解了C语言中常用的跳转语句。通过本章的学习,读者应该能够熟练的运用if条件语句、switch条件语句、while循环语句、do-while循环语句以及for循环语句。掌握本章的内容就能够编写逻辑比较复杂的C语言程序了,并且有助于后面章节的学习。