逻辑思维与逻辑问题.ppt_第1页
逻辑思维与逻辑问题.ppt_第2页
逻辑思维与逻辑问题.ppt_第3页
逻辑思维与逻辑问题.ppt_第4页
逻辑思维与逻辑问题.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

逻辑思维与逻辑问题,闰年,我们知道有些年份是闰年,有366天,其规则为如果年份能被400整除,那么它是闰年;否则,如果年份能被4整除并不能被100整除,那么它是闰年,否则为平年,请写一个程序,输入年份,计算此年份是否为闰年。,目前我们所学能做的,整除计算如果a整除b,等价于b对于a取余为0。如果a不能整除b,等价于b对于a取余不为0。显然光有这些不能完成任务的计算。,我们还需要什么?,根据余数的结果对程序进行不同处理关系运算和关系表达式条件分支语句,关系运算与关系表达式,用于将数值大小关系使用计算机语言进行描述。关系运算符,一共6个=等于!=不等于大于=大于等于b,如果a的值为1,b的值为2,则此表达式的值为0;如果a的值为2,b的值为1,则此表达式的值为1。C语言中使用0表示假,非0表示真,关系表达式值的示例程序,#includeintmain()printf(34的逻辑值是%dn,34);printf(3=4的逻辑值是%dn,3=4);printf(3=4的逻辑值是%dn,3=4);printf(3!=4的逻辑值是%dn,3!=4);printf(3=4的逻辑值是%dn,3=4);return0;,目前我们进了一步,我们可以计算年份是否整除某一个数了。先定义一个整型变量year来存储用户输入的年份,分支结构,通过计算关系,我们对不同的情况需要进行不同的处理,我们需要学习分支结构。,if语句,C语言中使用if语句来实现分支结构。(1)第1种情况if(表达式)语句1;如果表达式为真,则只执行语句1;否则什么都不做。,if语句,(2)第2种情况if(表达式)语句块1;如果表达式为真,则执行语句块1(可能是多条语句)的内容;否则什么都不做。,if语句,(3)第3种情况if(表达式)语句1;else语句2;如果表达式为真,则执行语句1;否则执行语句2。,if语句,(4)第4种情况if(表达式)语句块1;else语句块2;如果表达式为真,则执行语句块1;否则执行语句块2;,if语句的嵌套,由于if语句的子句中也可以是if语句,所以会出现if语句的嵌套情况if(表达式1)if(表达式2)语句1;else语句2;,是哪一种?,else总和它之前的未匹配的最近的一个if匹配if(表达式1)if(表达式2)语句1;else语句2;,强烈建议,建议对所有子句都是用花括号括起来,这样一来层次很清晰,二来不会因为if-else匹配问题导致程序逻辑错误。,分支结构实例,计算分段函数,处理流程,判断x的值,根据不同的值,做不同的处理,解决任务4-1,我们学习了if语句后,就有能力解决任务4-1了,【任务4-2】计算器,请设计一个计算器,支持加,减,乘,除四种操作,四种操作分别用操作符(+,-,*,/)表示,每次用户先输入一个操作符,然后输入两个数,计算器输出计算结果。比如输入“+1.12.2”,输出1.1+2.2=3.3。,我们所学的知识够不够?,读入字符和数值scanf判断操作符类型if计算数值算术运算OK,我们学的已经可以解决这个问题了!,例程,例程不够优美if-else的嵌套太多了,不清晰,很累赘C语言提供一个多路开关语句switch,switch,switch(表达式)case值1:操作1;break;case值2:操作1;break;.case值n:操作n;break;default:其他情况下的操作;break;,注意点,(1)表达式的值和case子句的值必须是整型,字符型(注意是字符,不是字符串)或者枚举型。,注意点,(2)break语句在switch中表示跳出switch的结构,也就是说程序运行break语句后,直接会跳到switch语句结构的“”后面一条语句。如果进行对应的操作后不写break语句,那么程序会继续顺序执行。,注意点,(3)default项可以缺省,如果缺省而表达式计算的值又没有case子句的值与之匹配,则程序什么都不做。,使用switch完成任务4-2,if-else与switch的比较,switch能做的,if-else一定能做if-else能做的,switch不一定能做,或者不好使用switch实现只有当分类值很容易通过计算得到时,使用switch才简洁和优美,否则不如用if-else小技巧如果分区范围是有规律的,则通过计算可以得到范围值,小技巧示例,计算下列分段函数y=10*x0=x10;y=20*x10=x20;y=30*x20=x0)个自然数中最大的一个。一共输入n+1个自然数,第一个整数为n。,解决任务4-3,【任务4-4】丑数,当一个自然数只含有质因子2,3,5,7的时候,我们称这个数为丑数。现在给你一个自然数,请判断这个数是否是丑数。,解题思路,(1)枚举测试2到7的因子,如果为4和6就跳过测试;(2)不断地用因子去试除自然数x,直到因子不能整除自然数x;(3)如果x为1,则直接跳出测试,这个数为丑数;(4)如果所有因子测试完,x不为1,则这个数包含非2,3,5,7的因子,不为丑数。,如果为4和6就跳过测试;continuecontinue语句的意思是循环体后面的工作都不做了,直接跳回循环最前面去如果x为0,则直接跳出测试breakbreak语句的作用在于跳出本层循环,直接到循环体外。,while语句,while(表达式)循环体(语句块);为了使循环测试表达式为假,使得循环结束,那么在循环体中,必须修改表达式中的一些变量的值,使得循环有结束的可能,否则就会出现死循环。,do循环体(语句块)

温馨提示

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

评论

0/150

提交评论