收藏 分销(赏)

嵌套结构.pptx

上传人:精**** 文档编号:1657357 上传时间:2024-05-07 格式:PPTX 页数:46 大小:305KB 下载积分:14 金币
下载 相关 举报
嵌套结构.pptx_第1页
第1页 / 共46页
嵌套结构.pptx_第2页
第2页 / 共46页


点击查看更多>>
资源描述
嵌套结构2第一讲 嵌套结构3主要内容n嵌套结构:自顶向下,逐步细化得分析得结果n选择嵌套结构if 深入n循环嵌套结构n复合嵌套结构n嵌套结构得典型算法4嵌套结构n自顶向下,逐步细化得分析得结果5程序得三种基本控制结构nBohra和Jacopini提出了以下三种基本结构:顺序结构选择结构循环结构n 用这三种基本结构作为表示一个良好算法得基本单元。6顺序结构顺序结构选择结构选择结构三种基本结构得图示循环结构循环结构7三种基本结构得共同特点n(1)只有一个入口。n(2)只有一个出口。(请注意:一个菱形判断框有两个出口,而一个选择结构只有一个出口。不要将菱形框得出口和选择结构得出口混淆。)n(3)结构内得每一部分都有机会被执行到。n(4)结构内不存在“死循环”(无终止得循环)。8嵌套结构n三种基本结构中得语句组(顺序语句组、if分支语句组、else分支语句组、循环体语句组)可以包含任意结构得语句,从而形成不同得嵌套结构。n嵌套结构没有特定得结构形式,由分析方法自然形成9嵌套结构示例:求n个数中得最大值(sample02_01、cpp)n输入nn输入第一个数,假定为最大值maxn循环i从2到n,step 1输入一个数到x如果x比假定最大值max还大,则 修正max为xn输出max得值循环体嵌套:顺序语句选择语句10if语句深入n复杂条件表示逻辑运算符连接多个条件nif语句得多种结构nif和else得匹配原则复杂条件得表示nx就是一个介于0到10得数n0=x=0并且x=0&x&()-|()逻辑运算符中得“&”和“|”低于关系运算符,“!”高于算 术运算符例:a&b 若a,b为真,则a&b为真。a|b 若a,b之一为真,则a|b为真。!a 若a为真,则!a为假。14 逻辑表达式 例:设a=4,b=5:!a得值为0 a&b得值为1a|b得值为1 !a|b得值为14&0|2得值为1任何非零得数值被认作任何非零得数值被认作“真真”n用逻辑运算符将关系表达式或逻辑量连接起来得式子就 就是逻辑表达式。n逻辑表达式得值应该就是一个逻辑量“真”或“假”。C语言对应计算值1或015逻辑表达式示例 例:53&84-!0 自左向右运算 1&0逻辑值为083逻辑值为1表达式值为016逻辑表达式 得优化原则在逻辑表达式得求解中,并不就是所有得逻辑运算符都要被执行。(1)a&b&c 只有a为真时,才需要判断b得值,只有a和b都为真时,才需要判断c得值。(2)a|b|c 只要a为真,就不必判断b和c得值,只有a为假,才 判断b。a和b都为假才判断c例:(m=ab)&(n=cd)当a=1,b=2,c=3,d=4,m和n得原值为1时,由于“ab”得值为0,因此m=0,而“n=cd”不被执行,因此n得值不就是0而仍保持原值1。17复杂条件示例 用逻辑表达式来表示闰年的条件能被4整除,但不能被100整除。能被4整除,又能被400整除。答答 (year%4=0&year%100!=0)|year%400=0案案 值为真(1)就是闰年,否则为非闰年。18if语句得多种结构n双分支结构n单分支结构n嵌套结构多分支结构19单分支结构nif(条件)语句if(c=m)m=m;else m=c;if(c!=m)m=c;常见错误示范常见错误示范语句语句1表达式表达式真真假假单分支结构示例-求绝对值#include int main(void)int number;printf(Enter a number:);scanf(%d,&number);if(number 0)number=-number;printf(The absolute value is%d、n,number);return 0;20Enter a number:10 The absolute value is 10、Enter a number:-300 The absolute value is 300、sample02_02、cpp21选择嵌套结构在if语句中又包含一个或多个if语句称为if语句得嵌套22完整嵌套结构nif(条件1)n if(条件2)n 语句1n elsen 语句2nelsen if(条件3)n 语句3n elsen 语句4表达表达式式1表达表达式式3语句语句4真真 假假表达表达式式2语句语句3语句语句1语句语句2真真 真真 假假假假23多分支结构if(表达式1)语句1else if(表达式2)语句2else if(表达式n-1)语句n-1else 语句n24多分支结构图示25多分支示例-分段计算水费sample02_03、cpp#include int main(void)double x,y;printf(Enter x:);scanf(%lf,&x);if(x 0)y=0;else if(x=15)y=4*x/3;else y=2、5*x-10、5;printf(f(%、2f)=%、2fn,x,y);return 0;Enter x:-0、5f(-0、50)=0、00 Enter x:9、5f(9、50)=12、67Enter x:21、3f(21、30)=42、75Enter x:?26不对称嵌套结构示例:求实足年龄 sample02_04、cpp nage=sysY-bthY;n if(sysMbthM)n age=age-1;n else n if(sysM=bthM)n if(sysDbthD)n age=age-1;n年龄=当前年份-生日年份n如果生日月份还没到n 年龄减一岁n否则 如果生日月份已到但生日还没到n 年龄减一岁age=sysY-bthY;if(sysMbthM)age=age-1;else if(sysM=bthM)&(sysDbthD)age=age-1;272种嵌套if语句得比较if(x 1)y=x+1;else if(x 2)y=x+2;else y=x+3;if(x 2)if(x 1)y=x+1;else y=x+2;else y=x+3;x2 x1y=x+1y=x+2真真 假假真真 y=x+3假假假假 x1 x2y=x+1y=x+2真真 假假真真 y=x+328else 和 if 得匹配if(表达式1)if(表达式2)语句1else 语句2 elseif(表达式3)语句3 else 语句4 if(表达式表达式1)if(表达式表达式2)语句语句1 elseif(表达式表达式3)语句语句3 else 语句语句4 else 与最靠近她得、没有与别得与最靠近她得、没有与别得 else 匹配过得匹配过得 if 匹配匹配if(表达式表达式1)if(表达式表达式2)语句语句1 elseif(表达式表达式3)语句语句3 else 语句语句4 29改变else 和 if 得配对例3-10 改写下列 if 语句,使 else 和第1个 if 配对。if(x 2)if(x 1)y=x+1;else y=x+2;if(x 2)if(x 1)y=x+1;else y=x+2;if(x 2)if(x 1)y=x+1;else;else y=x+2;每条语句得执行条件每条语句得执行条件?作业:写出下列表达式n判断char型变量ch就是否为大写字母n判断整型变量A得值就是否为奇数n判断整型变量x就是否为1100间得整数31循环嵌套结构n循环结构体里包含其她循环结构32循环嵌套结构(一)统计sample02_05、cppn输入n个学生得学号和5门功课成绩求每位同学得总分和平均分,最后输出班级平均总分,最高总分和学号每位同学得总分 sum班级总分 total最高总分 max最高分学号maxno33算法n1、total=0,max=-1,maxno=-1n2、循环i从1到n step 1n (1)输入学号n (2)sum=0n (3)循环j从1到5 step 1n 输入一个成绩xn sum=sum+xn (4)输出该学生得学号,总分和平均分n (5)total=total+sumn (6)如果该学生得总分比max高,修正max和maxnon3、输出班级总分和平均分,最高分学生得学号和总分34循环嵌套结构(二)画图形n画图形:n行n i 空格 星号1 5 12 4 33 3 54 2 75 1 96 0 11 n-i 2*i-135分析过程n循环i从1到n行 step 1n 输出一行输出一行1、输出空格2、输出星号3、回车输出空格循环j从1到n-i 输出一个空格输出星号循环j从1到2*i-1 输出一个星号36算法 sample02_06.cpp循环i从1到n行 step 1 1、输出空格 循环j从1到n-i 输出一个空格 2、输出星号 循环j从1到2*i-1 输出一个星号 3、回车/循环i从1到n行 step 1for(i=1;i=n;i+)/1、输出空格 for(j=1;j=n-i;j+)printf();/2、输出星号 for(j=1;j=2*i-1;j+)printf(*);/3、回车 printf(n);37复合嵌套结构n选择结构和循环结构相互嵌套38复合嵌套结构(一)求素数n判断一个数就是不就是素数n求100以内得全部素数 例4-9 sample02_07、cpp39判断一个数n就是不就是素数n定义:除了1和本身,不能2到n-1得数整除得数。n算法循环i从2到n-1 n如果n能被i整除 跳出循环如果im 则就是素数,输出42复合嵌套结构(二)穷举法n穷举所有可能得方案,对每一种方案检查就是否符合约束条件。找出所有可能得解break语句-跳出一层控制结构43真真假假 exp 语句语句1假假expb 语语 句句2循环体循环体真真带break语句得循环控制nfor(;符合循环得条件;)n、n if(结束循环得条件)n break;n 4445穷举法举例:例4-11 搬砖问题sample02_08_1、cpp某地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬一块。问用45人正好搬45块砖,有多少种搬法?nfor(men=0;men=45;men+)n for(women=0;women=45;women+)n for(child=0;child=45;child+)n if(men+women+child=45)&(men*3+women*2+child*0、5=45)n printf(men=%d women=%d child=%dn,men,women,child);n46例4-11 源程序(2)sample02_08_2.cppfor(men=0;men=15;men+)for(women=0;women=22;women+)child=45 women men;if(men*3+women*2+child*0、5=45)printf(men=%d women=%d child=%dn,men,women,child);比较循环次数比较循环次数
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服