第四章结构化程序设计.ppt

上传人:王** 文档编号:185277 上传时间:2023-04-02 格式:PPT 页数:32 大小:372.50KB
下载 相关 举报
第四章结构化程序设计.ppt_第1页
第1页 / 共32页
第四章结构化程序设计.ppt_第2页
第2页 / 共32页
第四章结构化程序设计.ppt_第3页
第3页 / 共32页
第四章结构化程序设计.ppt_第4页
第4页 / 共32页
第四章结构化程序设计.ppt_第5页
第5页 / 共32页
第四章结构化程序设计.ppt_第6页
第6页 / 共32页
第四章结构化程序设计.ppt_第7页
第7页 / 共32页
第四章结构化程序设计.ppt_第8页
第8页 / 共32页
第四章结构化程序设计.ppt_第9页
第9页 / 共32页
第四章结构化程序设计.ppt_第10页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第四章结构化程序设计.ppt》由会员分享,可在线阅读,更多相关《第四章结构化程序设计.ppt(32页珍藏版)》请在优知文库上搜索。

1、第第 4 4 章章 结构化程序设计结构化程序设计4.1 4.1 结构化程序设计概述结构化程序设计概述 教学目的掌握if语句的三种结构掌握条件运算掌握switch语句的格式和执行过程掌握三种循环 掌握三种循环的区别4.2 4.2 选择(分支)结构程序设计选择(分支)结构程序设计4.3 4.3 循环结构程序设计循环结构程序设计4.4 4.4 多重循环的实现多重循环的实现C语言程序设计C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-224.1 4.1 结构化程序设计概述结构化程序设计概述程序的三种基本结构1、顺序结构S1S2顺序结构(a)(b)真假BS2S1分支结构(a)(

2、b)真真真假假B1B2BnS1S2SnSn+1.假 多分支结构2、选择结构C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-234.1 4.1 结构化程序设计概述(续)结构化程序设计概述(续)3、循环结构真假BS当型循环结构(a)(b)假真SB直到型循环结构(a)(b)C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-24三种基本结构都具有下列的共同特征三种基本结构都具有下列的共同特征 (1)单入口和单出口,即只有一个入口和一个出口; (2)没有无用的部分,即结构中所有部分都有被执行的机会; (3)不存在“死循环”(无终止的循环),即执行时间是有

3、限的。 已有人从理论上证明了,由三种基本结构顺序组合构成的程序能处理任何复杂的问题。C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-254.2 4.2 选择(分支)结构程序设计选择(分支)结构程序设计if 语句有以下三语句有以下三 种形式:种形式:1、if形式(也称条件执行)语法格式: if (表达式) 语句;功能:当“表达式”的值不等于0(即判定为“逻辑真”)时, 则执行语句,否则直接转向执行下一条【例4.1】输入x并求出x的绝对值。 例程例程单选条件语句执行过程表达式语句假(0)真(非0)(a)(b)C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束20

4、23-4-26If If 语句(续)语句(续)2、 if-else(分支选择)格式:if(表达式) 语句组1; else 语句组2;功能:当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,否则,执行语句组2 双选条件语句执行过程表达式语句1假(0)语句2真(非0)(a)(b)【例4.2】:从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出例程例程C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-27If If 语句(续)语句(续)3、else if形式(阶梯式的if语句)格式: if (表达式1) 语句1;else if (

5、表达式2) 语句2; else 语句n+1;【例4.3】给一个成绩,要求输出成绩等级。90分及以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E例程例程C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-28switchswitch语句语句switch语句的基本格式: switch (表达式e) case 常量表达式1: 语句1;break; case 常量表达式2: 语句2;break; case 常量表达式n: 语句n;break; default :语句n+1; 计算过程:1、计算表达式e的值2、与常量表达式 i 一致者则从语句i开始执行

6、;直到遇到break语句或switch的“3、若与任何常量表达式都不一致则执行default语句或执行后续语句说明:1、常量表达式i必须与e类型一致,不能为变量2、常量表达式i仅起标志作用,不做求值判断3、常量表达式i值必须唯一,无先后次序4、多个语句可共用一组执行语句【例4.4】给一个成绩,要求输出成绩等级。90分及以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E(用switch语句)例程例程C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-29【例4.5】输入一个年号,判断是否为闰年,算法:能被4整除且不是100的倍数,或者能被400整

7、除。例程例程C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-2104.3 4.3 循环结构结构程序设计循环结构结构程序设计 所谓循环结构就是在给定条件成立的情况下,重复执行一个程序段;当给定条件不成立时,退出循环,再执行循环下面的程序。 实现循环结构的语句称为循环语句。在C语言中,循环语句有while语句、dowhile语句和for语句一、while语句(1)作用: 实现“当型”循环结构。(2)格式: while () (3)执行过程: 先计算表达式的值,当表达式的值为非0时,重复执行指定的语句;当表达式的值为0时,结束循环。 while语句执行过程语句真(非0)假(

8、0)表达式(a)(b)【例4.6】计算1+2+3+n的和例程例程C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-211【例4.7】输入两个正整数,求其最大公约数和最小公倍数分析:1、用辗转法求最大公约数,m对n求余数为a,若a0,则mn,na,即需求余;否则n为最大公约数,如m=24,n=10次数被除数除数余数1241042104234202、最小公倍数=m*n/最大公约数m1=m,n1=n a=m1%n1a0m1=n1n1=aa=m1%n1输入m,n输出n1及m*n/n1例程例程C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-212dodo

9、whilewhile语句语句(1)作用: 实现“直到型”循环结构。 (2)格式: do while (); (3)执行过程: 先执行语句,然后计算表达式的值,当表达式的值为非0时, 就重复执行指定的语句;当表达式的值为0时,结束循环。真(非0)假(0)表达式语句Do while执行过程(a)(b)【例4.8】编写满足1+2+3+n500中最大的n并求其和的程序例程例程C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-213forfor语句语句1.for语句格式: for (;) 2.for语句的执行过程:TF for (;)退出for语句 执行过程表达式2语句真(非0)

10、假(0)求解表达式1求解表达式3for 语句执行流程图C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-214二、其他形式:1、省略表达式1: for( ;表达式2;表达式3) 循环体语句for(表达式1;表达式2;表达式3) 循环体语句2、省略表达式1、3: for( ;表达式2; ) 循环体语句不能省略说明:1、表达式1省略时应在for前给循环变量赋初值2、表达式2省略时判断循环条件将成为死循环,可在循环体内引入break3、表达式3省略时循环体内应有改变循环变量的语句4、同时省略表达式1、3相当于while循环5、表达式2一般为逻辑和关系表达式,但也可以为数值和字

11、符表达式;如:For(k=1;k-10;k+)s=s+k;3、全省略: for( ; ; ) 循环体语句C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-215【例4.9】读程序,判断程序的功能:#include stdio.hmain() char c; for(;(c=getchar()!=n;) putchar(c);/*表达式1、3无,未置初值这就是for的灵活处,在c=getchar()处获得*/注意:getchar()仅当遇到回车符才执行,从键盘缓冲区中读取;只输出字母?只输出字母?【例4.10】 求 1+2 +100例程例程C语言程序设计结构化程序设计目录

12、目录上页上页下页下页结束结束2023-4-216break、continue语句break语句(1)作用: 终止switch语句与单循环语句的执行; 对多重循环循环语句,可从内循环体跳到外循环体。(2)格式: break;continue语句(1)作用: 在循环语句中,结束本次循环,重新开始下一次循环。(2)格式: continue;【例4.11】判断m是否为素数例程例程【例4.12】输入10个整数,统计其中正数的和及正数的个数。例程例程C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-2174.4 4.4 多重循环的实现多重循环的实现 一个循环体内又包含另一个完整的循

13、环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多重循环。说明:1、嵌套的循环变量不能相同;2、内循环变化快,外循环变化慢;3、正确确定循环体;4、循环控制变量常和求解问题挂钩三种循环可以相互嵌套,如:while( ). while( ) . while( ). do . while( ) for( ). do . while( ) while( ). for( ) . C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-218多重循环举例多重循环举例【例4.13 】输出图形 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6例程

14、例程例程例程C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-219 C语言中,三种循环结构都可以用来处理同一个问题,但在具体使用时存在一些细微的差别。如果不考虑可读性,一般情况下它们可以相互代替。(1)循环变量初始化:while和do-while循环,循环变量初始化应该在while和do-while语句之前完成;而for循环,循环变量的初始化可以在表达式1中完成。(2)循环条件:while和do-while循环只在while后面指定循环条件;而for循环可以在表达式2中指定。(3)循环变量修改使循环趋向结束:while和do-while循环要在循环体内包含使循环趋于结

15、束的操作;for循环可以在表达式3中完成(4)for循环可以省略循环体,将部分操作放到表达式2,表达式3中,for语句功能强大。(5)while和for循环先测试表达式,后执行循环体,而do-while是先执行循环体,再判断表达式。(所以while,for循环是典型的当型循环,而do-while循环可看作直到型循环)。(6)三种基本循环结构一般可相互替代,不能说哪种更加优越。应当尽量选择恰当的循环结构,使程序更加容易理解。(尽管for循环功能强大,但是并不是在任何场合都可以不分条件使用)。几种循环的比较几种循环的比较C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-22

16、0例例 4.14.1#include stdio.hmain() int x; printf(please input x:); scanf(%d,&x); if(x=A & c=90) printf(A); else if(s=80) printf(B); else if(s=70) printf(C); else if(s=60) printf(D); else printf(E); 返回返回C语言程序设计结构化程序设计目录目录上页上页下页下页结束结束2023-4-223例例 4.44.4 main( ) int score,s; printf(Input a score: ); scanf(%d, &score); s = score/10; /*将成绩将成绩/10,转化成,转化成switch语句中的语句中的case标标号号*/ switch (s) case 10: case 9: printf(% d:grade=An,score); break; case 8: printf(% d:grade=Bn,score); break; case 7: printf(% d:gr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > C/C++资料

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

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