逻辑思维与逻辑问题ppt课件

上传人:无*** 文档编号:175116662 上传时间:2022-12-18 格式:PPT 页数:58 大小:209.50KB
返回 下载 相关 举报
逻辑思维与逻辑问题ppt课件_第1页
第1页 / 共58页
逻辑思维与逻辑问题ppt课件_第2页
第2页 / 共58页
逻辑思维与逻辑问题ppt课件_第3页
第3页 / 共58页
点击查看更多>>
资源描述
逻辑思想与逻辑问题逻辑思想与逻辑问题闰年闰年我们知道有些年份是闰年,有我们知道有些年份是闰年,有366366天,其规那么天,其规那么为假设年份能被为假设年份能被400400整除,那么它是闰年;否整除,那么它是闰年;否那么,假设年份能被那么,假设年份能被4 4整除并不能被整除并不能被100100整除,整除,那么它是闰年,否那么为平年,请写一个程那么它是闰年,否那么为平年,请写一个程序,输入年份,计算此年份能否为闰年。序,输入年份,计算此年份能否为闰年。目前我们所学能做的目前我们所学能做的l整除计算整除计算l假设假设a a整除整除b b,等价于,等价于b b对于对于a a取余为取余为0 0。l假设假设a a不能整除不能整除b b,等价于,等价于b b对于对于a a取余不为取余不为0 0。l显然光有这些不能完成义务的计算。显然光有这些不能完成义务的计算。我们还需求什么?我们还需求什么?l根据余数的结果对程序进展不同处置根据余数的结果对程序进展不同处置l关系运算和关系表达式关系运算和关系表达式l条件分支语句条件分支语句关系运算与关系表达式关系运算与关系表达式l用于将数值大小关系运用计算机言语进展描用于将数值大小关系运用计算机言语进展描画。画。l关系运算符,一共关系运算符,一共6 6个个l=等于等于l!=不等于不等于l 大于大于l =大于等于大于等于l=小于等于小于等于关系表达式关系表达式l普通方式普通方式l 1 关系运算符关系运算符 2 l假设表达式假设表达式1 1的值与表达式的值与表达式2 2的值满足关系运的值满足关系运算符的关系,那么此关系表达式的值为算符的关系,那么此关系表达式的值为1 1,否,否那么为那么为0 0。l比如比如ab,ab,假设假设a a的值为的值为1 1,b b的值为的值为2 2,那么此,那么此表达式的值为表达式的值为0 0;假设;假设a a的值为的值为2 2,b b的值为的值为1 1,那么此表达式的值为那么此表达式的值为1 1。lC C言语中运用言语中运用0 0表示假,非表示假,非0 0表示真表示真关系表达式值的例如程序关系表达式值的例如程序#include#include int main()int main()printf(34 printf(34 的逻辑值是的逻辑值是%dn,34);%dn,34);printf(34 printf(34 的逻辑值是的逻辑值是%dn,34);%dn,3=4 printf(3=4 的逻辑值是的逻辑值是%dn,3=4);%dn,3=4);printf(3=4 printf(3=4 的逻辑值是的逻辑值是%dn,3=4);%dn,3=4);printf(3!=4 printf(3!=4 的逻辑值是的逻辑值是%dn,3!=4);%dn,3!=4);printf(3=4 printf(3=4 的逻辑值是的逻辑值是%dn,3=4);%dn,3=4);return 0;return 0;目前我们进了一步目前我们进了一步l 我们可以计算年份能否整除某一个数了。l 先定义一个整型变量year来存储用户输入的年份语句写成表达式year=2000year=2019year=1900被400整除year%400=0100被4整除year%4=0111不被100整除year%100!=0010分支构造分支构造l经过计算关系,我经过计算关系,我们对不同的情况需们对不同的情况需求进展不同的处置,求进展不同的处置,我们需求学习分支我们需求学习分支构造。构造。if if 语句语句lC C言语中运用言语中运用ifif语句来实现分支构造。语句来实现分支构造。l(1)(1)第第1 1种情况种情况lif(if(表达式表达式)l语句语句1 1;l假设表达式为真,那么只执行语句假设表达式为真,那么只执行语句1 1;否那么;否那么什么都不做。什么都不做。if if 语句语句l(2)(2)第第2 2种情况种情况lif(if(表达式表达式)l l语句块语句块1 1;l l假设表达式为真,那么执行语句块假设表达式为真,那么执行语句块1 1能够是能够是多条语句的内容;否那么什么都不做。多条语句的内容;否那么什么都不做。if if 语句语句l(3)(3)第第3 3种情况种情况lif(if(表达式表达式)l语句语句1 1;lelseelsel语句语句2 2;l假设表达式为真,那么执行语句假设表达式为真,那么执行语句1 1;否那么执;否那么执行语句行语句2 2。if if 语句语句l(4)(4)第第4 4种情况种情况lif(if(表达式表达式)l l语句块语句块1 1;l lelseelsel l语句块语句块2 2;l l 假设表达式为真,那么执行语句块假设表达式为真,那么执行语句块1 1;否那么执行;否那么执行语句块语句块2 2;ifif语句的嵌套语句的嵌套 l由于由于ifif语句的子句中也可以是语句的子句中也可以是ifif语句,所以语句,所以会出现会出现ifif语句的嵌套情况语句的嵌套情况 lif(if(表达式表达式1)1)lif(if(表达式表达式2)2)l语句语句1 1;lelseelsel语句语句2 2;是哪一种?是哪一种?lelseelse总和它之前的未匹配的最近的一个总和它之前的未匹配的最近的一个ifif匹匹配配 lif(if(表达式表达式1)1)l lif(if(表达式表达式2)2)l语句语句1 1;l lelseelsel语句语句2 2;剧烈建议剧烈建议l建议对一切子句都是用花括号括起来,建议对一切子句都是用花括号括起来,l这样一来层次很明晰,这样一来层次很明晰,l二来不会由于二来不会由于if-elseif-else匹配问题导致程序逻辑匹配问题导致程序逻辑错误。错误。分支构造实例分支构造实例l计算分段函数计算分段函数1100)(23xxxxxxxf处置流程处置流程l 判别x的值,根据不同的值,做不同的处置处理义务处理义务4-14-1l我们学习了我们学习了ifif语句后,语句后,就有才干处理义务就有才干处理义务4-4-1 1了了【义务【义务4-24-2】计算器】计算器l请设计一个计算器,支持加,减,乘,除四请设计一个计算器,支持加,减,乘,除四种操作,四种操作分别用操作符种操作,四种操作分别用操作符+,-,*,/表示,每次用户先输入一个操作符,表示,每次用户先输入一个操作符,然后输入两个数,计算器输出计算结果。比然后输入两个数,计算器输出计算结果。比如输入如输入“+1.1 2.2+1.1 2.2,输出,输出1.1+2.2=3.31.1+2.2=3.3。我们所学的知识够不够?我们所学的知识够不够?l读入字符和数值读入字符和数值lscanfscanfl判别操作符类型判别操作符类型lififl计算数值计算数值l算术运算算术运算lOKOK,我们学的曾经可以处理这个问题了!,我们学的曾经可以处理这个问题了!例程例程l例程不够优美例程不够优美lif-elseif-else的嵌套太多了,不明晰,很累赘的嵌套太多了,不明晰,很累赘lC C言语提供一个多路开关语句言语提供一个多路开关语句switchswitchswitchswitchswitch(switch(表达式表达式)case case 值值1 1:操作操作1;1;break;break;case case 值值2 2:操作操作1;1;break;break;.case case 值值n:n:操作操作n;n;break;break;default:default:其他情况下的操作其他情况下的操作;break;break;留意点留意点l(1)(1)表达式的值和表达式的值和casecase子句的值必需是整型,子句的值必需是整型,字符型留意是字符,不是字符串或者枚字符型留意是字符,不是字符串或者枚举型。举型。留意点留意点l(2)break(2)break语句在语句在switchswitch中表示跳出中表示跳出switchswitch的的构造,也就是说程序运转构造,也就是说程序运转breakbreak语句后,直接语句后,直接会跳到会跳到switchswitch语句构造的语句构造的“后面一条语句。后面一条语句。假设进展对应的操作后不写假设进展对应的操作后不写breakbreak语句,那么语句,那么程序会继续顺序执行。程序会继续顺序执行。留意点留意点l(3)default(3)default项可以缺省,假设缺省而表达式项可以缺省,假设缺省而表达式计算的值又没有计算的值又没有casecase子句的值与之匹配,那子句的值与之匹配,那么程序什么都不做。么程序什么都不做。运用运用switchswitch完成义务完成义务4-24-2if-else if-else 与与 switchswitch的比较的比较lswitchswitch能做的,能做的,if-elseif-else一定能做一定能做lif-elseif-else能做的,能做的,switchswitch不一定能做,或者不不一定能做,或者不好运用好运用switchswitch实现实现l只需当分类值很容易经过计算得到时,运用只需当分类值很容易经过计算得到时,运用switchswitch才简约和优美才简约和优美,否那么不如用否那么不如用if-elseif-elsel小技巧小技巧l假设分区范围是有规律的,那么经过计算可假设分区范围是有规律的,那么经过计算可以得到范围值以得到范围值小技巧例如小技巧例如l计算以下分段函数计算以下分段函数ly=10y=10*x 0=x 10;x 0=x 10;ly=20y=20*x 10=x 20;x 10=x 20;ly=30y=30*x 20=x 30;x 20=x 0n0个自然数中最大的一个。一共输个自然数中最大的一个。一共输入入n+1n+1个自然数,第一个整数为个自然数,第一个整数为n n。处理义务4-3【义务【义务4-44-4】丑数】丑数l当一个自然数只含有质因子当一个自然数只含有质因子2 2,3 3,5 5,7 7的时的时候,我们称这个数为丑数。如今给他一个自候,我们称这个数为丑数。如今给他一个自然数,请判别这个数能否是丑数。然数,请判别这个数能否是丑数。解题思绪解题思绪l(1)(1)枚举测试枚举测试2 2到到7 7的因子,假设为的因子,假设为4 4和和6 6就跳就跳过测试;过测试;l(2)(2)不断地用因子去试除自然数不断地用因子去试除自然数x x,直到因子,直到因子不能整除自然数不能整除自然数x x;l(3)(3)假设假设x x为为1 1,那么直接跳出测试,这个数,那么直接跳出测试,这个数为丑数;为丑数;l(4)(4)假设一切因子测试完,假设一切因子测试完,x x不为不为1 1,那么这,那么这个数包含非个数包含非2 2,3 3,5 5,7 7的因子,不为丑数。的因子,不为丑数。l假设为假设为4 4和和6 6就跳过测试;就跳过测试;lcontinuecontinuelcontinuecontinue语句的意思是循环体后面的任务都语句的意思是循环体后面的任务都不做了,直接跳回循环最前面去不做了,直接跳回循环最前面去 l假设假设x x为为0 0,那么直接跳出测试,那么直接跳出测试lbreakbreaklbreakbreak语句的作用在于跳出本层循环,直接到语句的作用在于跳出本层循环,直接到循环体外。循环体外。whilewhile语句语句 while(while(表达式表达式)循环体语句块;循环体语句块;为了使循环测试表达式为假,为了使循环测试表达式为假,使得循环终了,那么在循环使得循环终了,那么在循环体中,必需修正表达式中的体中,必需修正表达式中的一些变量的值,使得循环有一些变量的值,使得循环有终了的能够,否那么就会出终了的能够,否那么就会出现死循环。现死循环。dodo 循环体语句块;循环体语句块;while(while(表达式表达式);与与whilewhile不同的是,不同的是,do-do-whilewhile是先执行一次循环是先执行一次循环体,再进展循环终了测体,再进展循环终了测试,所以它至少会执行试,所以它至少会执行一次循环体。一次循环体。与while不同的是,do-while是先执行一次循环体,再进展循环终了测试,所以它至少会执行一次循环体。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


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

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


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