逻辑运算与选择结构
C0401
第4章逻辑运算和选择结构程序
4.1 关系操作符和关系表达式 4.2 逻辑操作符和逻辑表达式
4.2.1 逻辑操作符 4.2.2 逻辑表达式求值
简单的if if结构 4.3 简单的if结构
4.3.1 if结构的作用 4.3.2 if结构的语法
if-else结构 4.4 if-else结构
4.4.1 if-else结构的形式与用法
表达式表示结论“ 例4-2 用C表达式表示结论“变 的绝对值大于5 。 量a的绝对值大于5”。
分析: 5时有 时有a 5或者 或者a 分析:当|a| > 5时有a > 5或者a < -5, 因此相应的C表达式为( 5) 5),当然也可用 因此相应的C表达式为(a > 5) || (a < -5),当然也可用 fabs( 5表示 表示。 fabs(a) > 5表示。 C语言中还有一个称为逻辑非!的逻辑操作符。逻辑非!是一 语言中还有一个称为逻辑非!的逻辑操作符。逻辑非! 个单目操作符。 个单目操作符。当a为真(非0)时,!a的值为假(0);当a 为真( ,!a的值为假( );当 为假( 为假(0)时,!a的值为真(1)。 ,!a的值为真( 如与“变量a的绝对值不大于5 相应的表达式可以写成 如与“变量a的绝对值不大于5”相应的表达式可以写成 5)), !((a>5)|| (a < -5)), ((a>5) a>5 当然也可写作( 5) 5)。 当然也可写作(a <= 5) && (a >= -5)。
表4-1为逻辑与&&的真值表 为逻辑与&&的真值表 &&
当代数式99 1000不成立时 不成立时, 99和 1000至少 当代数式99 < x < 1000不成立时,则x > 99和x < 1000至少 有一个为假,由真值表可知此时逻辑表达式( 99) 有一个为假,由真值表可知此时逻辑表达式(x > 99) && (x 1000)的值也为假为 的值也为假为0 < 1000)的值也为假为0。 反之亦然! 反之亦然!
选择结构算法原理
选择结构算法原理选择结构算法原理1. 简介选择结构是计算机编程中的一种基本算法,用于根据不同的条件选择不同的执行路径。
选择结构算法原理是计算机编程的重要基础知识之一,对于解决实际问题具有重要作用。
本文将深入探讨选择结构算法的原理、应用和优缺点。
2. 基本原理选择结构算法基于条件判断,根据不同的条件来选择执行不同的代码块。
它通常由以下几个关键部分组成:2.1 条件判断:选择结构算法需要根据一个或多个条件进行判断,以确定具体执行哪个代码块。
常用的条件判断语句有if语句和switch语句。
2.2 执行路径:根据条件判断的结果,程序将选择不同的执行路径。
如果条件为真,将执行与之对应的代码块;如果条件为假,则跳过相应代码块。
3. 应用场景选择结构算法广泛应用于各种编程语言和领域,以下是几个常见的应用场景。
3.1 条件判断:选择结构用于判断条件是否成立,决定是否执行某段代码。
例如,在一个学生成绩查询系统中,可以使用选择结构判断学生的成绩是否及格,从而给出相应的反馈。
3.2 多分支结构:选择结构还可以用于多个条件的判断,实现多个分支的选择。
例如,在一个游戏开发中,可以使用选择结构判断用户的不同操作,从而触发不同的游戏逻辑。
3.3 程序流程控制:选择结构也可以用于控制程序的流程。
例如,在一个自动化流水线的控制系统中,可以使用选择结构根据不同的情况选择不同的操作路径,实现灵活的控制。
4. 优缺点选择结构算法有以下优点和缺点:4.1 优点:- 灵活性:选择结构可以根据不同的条件选择不同的执行路径,使程序具有较高的灵活性。
- 可读性:相比其他复杂的程序结构,选择结构更为简洁,易于读写和理解。
- 执行效率:选择结构的执行效率通常比较高,因为它只会执行符合条件的代码块,而跳过其他代码块。
4.2 缺点:- 代码冗余:如果选择结构的条件判断过多,可能会导致代码冗余,可读性和维护性较差。
- 逻辑限制:选择结构只能判断给定条件的真假,无法处理复杂的逻辑运算。
头歌3.2 项目实训-python 选择结构程序设计
头歌3.2 项目实训-python 选择结构程序设计如何利用Python进行选择结构程序设计。
该文章将介绍选择结构的概念,讨论Python中的条件语句和逻辑运算符,以及如何使用它们构建有效的选择结构程序。
文章还将涵盖一些实例来帮助读者更好地理解和应用这些概念。
首先,我们来了解一下选择结构的概念。
选择结构是计算机编程中一种基本的控制结构,它允许我们根据一定的条件选择执行不同的代码块。
也就是说,它根据条件的真假来决定程序的执行路径。
在Python中,我们可以使用条件语句和逻辑运算符来实现选择结构。
条件语句是Python中非常重要的一种语句。
它使用关键字"if"、"elif"和"else"来构建不同的分支。
下面是一个简单的示例:pythonscore = 85if score >= 90:print("优秀")elif score >= 80:print("良好")elif score >= 60:print("及格")else:print("不及格")在上面的代码中,我们使用"if"、"elif"和"else"关键字来创建多个条件分支。
程序首先检查score是否大于等于90,如果是,则打印"优秀"。
如果不是,程序继续检查score是否大于等于80,如果是,则打印"良好"。
依此类推,直到找到满足条件的分支或者到达最后的"else"分支。
在条件语句中,我们还可以使用逻辑运算符来组合多个条件。
常用的逻辑运算符有"and"、"or"和"not"。
下面是一个示例:pythonage = 25gender = "male"if age > 18 and gender == "male":print("成年男性")else:print("其他")在上面的例子中,我们使用"and"运算符来组合age > 18和gender == "male"两个条件。
C语言基础入门算法的基础招式--选择结构
Raptor综合图
选择 结构
分类
单分支选择 结构
双分支选择 结构
多分支选择 结构
内容小结
谢谢聆听
创新教育 引领未来
65/47
步骤五:支路5上输出提示符号有误
Raptor图
66/47
Raptor图
步骤六:思考如果输入的是2/0,刚才的设计会提示错误吗? 如何修改程序? 1. 加上除数不能为零判断 2. 先判断再计算除法,如果除数不为零,计算并输出结果,
否则提示wrong
67/47
步骤七:完成最终Raptor图。
1. 151. <. 1=2.a0aag<ggee=e!=a&=g1&=e51&a&5&g&ea<&gs=eesx<1e=0=x“=3|0|“女2&男”0&<”saegxe=&“&男ag”e<30 && sex=“女” 2. 252. <. 2=2.a0aag<ggee=e!=aa=gn1=ed51aa5ngnadedn<asd=gesxe1e=<0x“==o3“女r02男”0a”<ndagseexa=n“d 男ag”e<30 and sex=“女”
本节课目标
案例1.1:输入两个数,输出较大值 要求: 1. 分析问题(自然语言描述) 2. 画出程序流程图 3. 设计Raptor图,输出结果
案例一
38/47
案例1.1:输入两个数,输出较大值 要求: 1. 分析问题(自然语言描述) 2. 画出程序流程图 3. 设计Raptor图,输出结果
案例一
自然语言描述
步骤一:先画出主体部分
c语言程序设计 第五章 程序控制流程——选择结构
1. 基本语法格式
if(表达式)
语句
说明:
(1) if语句的执行过程是先计算表达式的值,如果非0就执行包含在if中的语句;如果为0就不执行该语句。如下图所示:
(2) if语句中的表达式可以是任意的有值表达式,实际编程时往往使用关系表达式或将多个关系表达式用逻辑运算符连接起来的逻辑表达式。
main()
{
double a=.9*9,b=.1;
double c=0.1+0.2;
printf("c==0.3 %d\n",c==0.3);
printf("a==b %d\n",a==b);
}
【例5.4】比较两个浮点数是否相等的正确方法
#include <stdio.h>
#include <math.h>
#include <stdio.h>
main()
{
int a10,b=50,c=30;
if(a=b+c) printf("*******\n");
else printf("$$$$$$$\n");
}
【例5.14】输入两个实数,按代数值由小到大的次序输出这两个数。
#include <stdio.h>
main()
scanf("%d,%d,%d",&a,&b,&c);
max=a;/*先假定变量a的值最大*/
if(max<b) max=b;/*比较变量max值和变量b值的大小,如果b大,就将b赋给max*/
if(max<c) max=c;/*比较变量max值和变量c值的大小,如果c大,就将c赋给max*/
程序的三种结构关系运算符和关系表达式逻辑运算符和逻辑表
6
• 四、 选择型程序设计
– if语句(条件选择语句)
• if语句的三种形式 – 形式一: »格式:if (expression) statement »执行过程:
expr 非0 statement =0
例: if (x>y) 形式二 : 非0 printf(“%d”,x); 格式:if (expression) statement1 statement1 else statement2 执行过程: 例:if (x>y) max=x; else max=y;
expr
=0 statement2
7
– 形式三: »格式: 执行过程:
=0
if ( expr1 )
else if (expr2 ) else if (expr3 )
statement1
statement2 statement3
…...
[ else statement n ]
例:if (salary>1000) index=0.4; 非 0 if (salary>800) =0 index=0.3; else expr2 else if (salary>600) index=0.2; =0 非0 else if (salary>400) expr3 index=0.1; else 非0 index=0;
5
三、逻辑运算符和逻辑表达式
1、逻辑运算符: &&:与 ||:或 ! :非 (注意:三个运算符之间的优先级) 注意特例: !0 !2 2||3 2&&3
2、逻辑表达式举例:判断一年为润年的条件是: 年数可以被4整除但不能被100整除 或者 年数可以被400整除。 ( year % 4 ==0 && year % 100 !=0 )||( year % 400 ==0 )
C程序设计(第五版)-第4章选择结构程序设计课后习题答案
C程序设计(第五版)-第4章选择结构程序设计课后习题答案1. 什么是算术运算?什么是关系运算?什么是逻辑运算?【答案解析】算熟运算:算术运算即“四则运算”,是加法、减法、乘法、除法、乘⽅、开⽅等⼏种运算的统称。
其中加减为⼀级运算,乘除为⼆级运算,乘⽅、开⽅为三级运算。
在⼀道算式中,如果有多级运算存在,则应先进⾏⾼级运算,再进⾏低⼀级的运算。
C语⾔中的算熟运算符包括:+、-、*、/、++、--、%等种类。
如果只存在同级运算;则从左⾄右的顺序进⾏;如果算式中有括号,则应先算括号⾥边,再按上述规则进⾏计算。
⽰例:$ (1 + 1)^{2} * 4+5 * 3$解析:1. 先进⾏括号内运算1+1,然后进⾏乘⽅运算得到结果4.2. 接下来与4相乘,得到结果163. 因为乘法优先级⼤于加法,因此先进⾏5*3,得到结果154. 最终相加得到结果31结果:31关系运算:关系的基本运算有两类:⼀类是传统的集合运算(并、差、交等),另⼀类是专门的关系运算(选择、投影、连接、除法、外连接等),⽽在C语⾔中,关系运算通常被认为是⽐较运算,将两个数值进⾏⽐较,判断⽐较结果是否符合给定的条件。
常见的关系运算符包括:<、<=、>、>=、==、!=等种类。
其中,前4种关系运算符(<、<=、>、>= )的优先级别相同,后2种(==、!=)也相同。
⽽前4种⾼于后2种。
例如, >优先于==。
⽽>与<优先级相同。
并且,关系运算符的优先级低于算术运算符,关系运算符的优先级⾼于赋值运算符(=)。
逻辑运算:在逻辑代数中,有与、或、⾮三种基本逻辑运算。
表⽰逻辑运算的⽅法有多种,如语句描述、逻辑代数式、真值表、卡诺图等。
⽽在C语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。
常见的逻辑运算符包括:&&、||、!等种类&&:与是双⽬运算符,要求有两个运算对象,表⽰两个运算对象都成⽴,则结果为真,否则结果为假。
程序设计3(3种基本结构)
流程图:
3.2.5 条件运算符(了解即可) 若if语句中,在表达式为“真”和“假”时,且都 只执行一个赋值语句给同一个变量赋值时,可以用 简单的条件运算符来处理。例如,若有以下if语句: if (a>b) max=a; else max=b; 可以用下面的条件运算符来处理: max=(a>b)?a∶b; 其中“(a>b)?a∶b”是一个“条件表达式”。它是 这样执行的:如果(a>b)条件为真,则条件表达式 取值a,否则取值b。
3.3.5 示例:
4பைடு நூலகம்
1
1 3 1 5 1 7
例:多项式如下:π/4 =1 - 1/3 + 1/5 - 1/7 + 1/9 ... 计算的项数n由键盘输入,求π。结果保留2位小数。 #include <iomanip> int main(){ int n, sign=1; double sum=0.0; cin>>n; for(int i=1; i<=n; i+=2) { sum = sum + sign*1.0/i; sign = -sign; } // 设置浮点数的小数个数2位 cout<<fixed<<setprecision(2)<<4*sum<<endl; return 0; }
3.3.3 for
for语句使用最为灵活,不仅可以用于循 环次数已经确定的情况,而且可以用于循环 次数不确定而只给出循环结束条件的情况, 它完全可以代替while语句。一般形式为: for(表达式1;表达式2;表达式3) 语句
它的执行过程如下: (1) 先求解表达式1。 (2) 求解表达式2,若其值为真, 则执行for语句中指定的内嵌语句, 然后执行下面第(3)步。若为假, 则结束循环。 (3) 求解表达式3。 (4) 转回上面第(2)步骤继续执 行。
Fortran77教程-4逻辑运算和选择结构
2
例:计算职工工资。正常工资rate (yuan/h),一周超过 40 hours时,超过部分按1.5 rate (yuan/h) 。
3
c
Payroll with overtime program payroll read(*,*) rate, hours if(hours.gt.40.0) then regpay=rate*40.0 ovtpay=1.5*rate*(hours-40.0) else regpay=rate*hours ovtpay=0.0 end if pay=regpay+ovtpay write(*,*) 'rate=', rate, ' hours=', hours write(*,*) 'regular pay=', regpay, ' overtime pay=', ovtpay write(*,*) 'total pay=', pay end
成绩分级 A : ≥80 B : ≥70且<80 C : ≥60且<70 D : <60
15
给a, b, c三个数排序,要求从小到大输出
16
read(*,*) a,b,c if(a.le.b) then else t=a a=b b=t end if if(b.le.c) then else t=b b=c c=t if(a.le.b) then else t=a a=b b=t end if end if write(*,*) a,b,c end
第一章 算法 第二章 计算机和计算机程序 第三章 Fortran语言程序设计初步 第四章 逻辑运算和选择结构 第五章 循环结构的实现 第六章 Fortran的数据结构 第七章 数据的输入、输出 第八章 常用算法的程序设计举例
4、选择结构程序设计
例如: 假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、5、6, 求表达式“(x=n1>n2)&&(y=n3>n4)”的值。 X=0,y=6
4.2 逻辑运算符和逻辑表达式
例4.1 逻辑表达式
main() !x*!y为 0 { !!!x的逻辑值为 0 char c='k'; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n",!x*!y,!!!x); printf("%d,%d\n",x||i&&j-3,i<j&&x<y); printf("%d,%d\n",i==5&&c&&(j=8),x+y||i+j+k); } x||i&&j-3的逻辑值为 1
1)条件运算符的运算优先级低于关系运算符和算术运算符, 但高于赋值符。 2)条件运算符?和:是一对运算符,不能分开单独使用。 a>b?a:c>d?c:d a>b?a:(c>d?c:d) 3)条件运算符的结合方向是自右至左。 4)如果表达式2、表达式3的数据类型不一致时,向类型高 的转换。如:i>j?20:32.5
3. 4.
if(a<b){tem=a;a=b;b=temp;} if(a<b) tem=a;a=b;b=temp;
4.3 if语句
2、if-else语句
流程图
4.3 if语句
输入三角形的三个边长,求三角形的面积。
分析: 只有当a+b>c,b+c>a,c+a>b时才能构成三角 形,如果用户输入的三边不满足条件,则应提示 错误,并不再计算。
07 第七讲 C语言的三种语句结构--力天手把手教你学单片机之基础篇
手把手教你学51单片机——之MCS-51基础篇主讲: 尹延辉策划:张勇开发板:LT-Super51QQ群:31646346网址:E-Mail:litianmcu@litianmcu@基础篇第三讲——C语言的三种语句结构◆本讲内容提要●C语句概述●程序的三种基本结构●顺序结构程序设计●逻辑运算与位运算符●选择结构程序设计●循环结构程序设计●习题ABPA B假真PA真假温故知新——C的数据类型与表达式●C语言的数据类型:字符型、整型、长整型,有符号、无符号●51单片机存储器结构:ROM、片内RAM数据区、片外RAM ●C51的变量类型修饰符:code、data、idata、xdata●C运算符与表达式:优先级、结合性的概念●算术运算符与表达式:加、减、乘、除、取模●赋值运算符与表达式:一般赋值表达式、复合赋值符与表达式●C程序的流水灯验证:软仿的概念释疑解惑——C数据类型与表达式(1)◆填空题●char型、int型、long int型变量分别占用1、2、4字节存储单元。
●有以下语句:char a=‘0’;则变量a用十六进制表示的值为0x30。
●对于单片机型号STC89C58,具有256字节的片内用户数据区,其中的128字节定义的C变量需要用data修饰、128字节需要用idata修饰。
想要存储一个1K字节的液晶显示器字符表,需要在定义变量时在其前加code 修饰使得字符表变量位于片内ROM存储器内。
◆实验题●设有char a=10;写出下面表达式的值,并编写程序通过流水灯输出验证①a+=a:20②a-=12:-2③a*=3+a:130④a/=a+a:0——C语句概述◆C语句的定义●和其他高级语言一样,c语言的语句用来向计算机系统发出操作指令。
一个语句经编译后产生若干条机器指令。
一个实际的程序应当包含若干语句。
应当指出,c语句都是用来完成一定操作任务的。
声明部分的内容不应称为语句。
如:int a;不是一个c语句,它不产生机器操作,而只是对变量的定义。
《第9课 条件判断解问题》教学参考
第9课条件判断解问题一、教学目标1. 了解选择结构,掌握if语句的语法格式。
2. 理解关系运算和逻辑运算。
3. 能用条件语句编写程序解决生活中的选择性问题。
二、教学重难点分析教学重点:关系运算和逻辑运算、选择结构的语句格式和用法。
教学难点:选择结构的语句格式和用法、能用if语句编写程序解决一些实际问题。
三、教学准备1. 教学环境软件环境:多媒体网络教学软件、Python编程软件。
硬件环境:多媒体网络教室。
2. 教学资源教学课件、教学范例。
四、教学建议在导入环节,教师可以采用教材上的引言创设问题情境,引出本课的学习目标和学习课题——条件判断解问题,也可以结合生活中的其他实例,引出在编程时如何根据条件进行选择的问题实例。
“新知园地”部分,教材指出了在进行程序设计的时候,根据条件进行比较判断,需要用到条件表达式,通过判断条件表达式解决问题。
(一)关系运算符和逻辑运算符1. 关系运算符对于关系运算的学习,需要首先了解关系运算符。
教师可让学生通过自学课本、自主探究的方式,掌握各种关系运算符,了解计算机可以利用关系运算符比较两个值的大小,其结果为逻辑值“真”(True)或“假”(False)。
教师进行教学点拨时,一让学何时能进行充分的操作和尝试。
例如:2.逻辑运算符教师可以引导学生自学教材,掌握逻辑运算符,还可让学生动手实践学习教材中关于“逻辑运算”的程序代码,在动手实践中理解逻辑运算符的使用。
为了更好地加深学生对关系运算和逻辑运算的理解,教师可在学习完这部分知识后,设置几个简单的测试题,检测学生的学习情况。
如:若a=10,b=20,c=0,d=-10,请写出下面逻辑表达式的返回值。
逻辑表达式返回值逻辑表达式返回值a>b False b or c 20a andb 20 notc Truea orb 10 not b False(二)算法这一环节建议通过教师的讲解让学生由了解生活中的算法过渡到理解计算机中算法的定义,然后通过完成填空题的形式让学生理解算法的相关知识。
选择结构基础知识
程序的三种控制结构
程序结构
顺序结构 选择结构 循环结构
又称为分支结构。是根据给定的条件P是 否成立而选择执行块A还是块B。
条件P 不成立 成立
语句块A 语句块B
成立 条件P 不成立 语句块A 语句块B
选择结构的流程图与N-S图
CONTENTS
关系运算符和关系表达式
!、++、--
高
(a=3)>(b=5)
(a>b)!=(b<c)
①能被4整除,但不能被100整除。
逻辑运算符和逻辑表达式
逻辑运算符与逻辑表达式
所谓关系运算实际上就是“比较”运算,将两个数进行比较,判断比较的结果是否符合指定的条件。
在C语言中,逻辑运算的结果只能是1(真)或0(假),不可能是其他数值;
(year%4==0 && year%100!=0)||(year%400==0)
1.关系运算符和关系表达式
关系运算是条件判断中比较简单的一种。所谓关系运算实际上就是“比 较”运算,将两个数进行比较,判断比较的结果是否符合指定的条件。
➢ 关系运算符
关系运算符 > >= < <= == !=
含义
优先级
大于
大于或等于 这些运算符优先级相同,但 小于 比下面的优先级高
小于或等于
等于 这些运算符优先级相同,但 不等于 比上面的优先级低
【例】判别某一年year是否为闰年。 闰年的条件是符合下面二者之一: ①能被4整除,但不能被100整除。 ②能被400整除。
year%4==0 && year%100!=0 year%400==0
(year%4==0 && year%100!=0)||(year%400==0)
C语言实验三程序 总结 逻辑运算和选择结构程序设计
方法二:用 switch 语句 分析:switch 语句是用于处理多分支的语句。注意,case 后的表达式必须是一个常量 表达式,所以在用 switch 语句之前,必须把 0~100 之间的成绩分别化成相关的常量。所有 A(除 100 以外) 、B、C、D 类的成绩的共同特点是十位数相同,此外都是 E 类。则由此可把 score 除十取整,化为相应的常数。 请同学们自己根据分析写出完整的程序段,并编译、运行、查看结果。
二
实验内容
1 已知三个整数 a,b,c,找出最大值放在 max 中。 #include <stdio.h> main() { 定义整数变量 a,b,c,max; 键盘输入 3 个整数 a,b,c; 在 a,b 中间求出较大数 max(如果 a>=b,则 max=a;否则 max=b); c 与 max 比较,如果 c>max,则 max=c; 输出最大数 max; } 根据上面的算法,编写程序;若输入下列数据,分析程序的执行顺序并写出输出结果。 序号 1 2 3 4 5 6 输入的 3 个整数 a、b、c 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 输出 max max=3 max=3 max=3 max=3 max=3 max=3
程序如下: #include <stdio.h> main() { int score; char grade; printf("请输入学生成绩:"); scanf("%d",&score); if(score>100||score<0) printf("\n 输入成绩错误!\n"); else{ if(score>=90) grade='A'; else if(score>=80) grade='B'; else if(score>=70) grade='C'; else if(score>=60) grade='D'; else grade='E'; printf("\n 成绩等级是%c\n",grade); } } 运行结果如下:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014-3-12
16
4、 块IF结构应用举例 例1:要求利用函数: 3x+6 (x ≥0)
y=
-x2 +2x-8 (x<0)
用键盘输入一个x求出y的值? READ(*,*) X IF (X .GE. 0) THEN Y=3*X+6 ELSE Y=-X**2+2*X-8 ENDIF WRITE(*,*)’Y=’,Y END
2014-3-12
15
3、由若干个语句组成的。块IF语 句、ELSE语句和ENDIF语句只能用在块 IF中而不能在程序中的块IF以外单独使用; 块IF可以根据需要舍去then块或ELSE语 句及else块; 一个块IF必须以块IF语句开始,以ENDIF 语句结束。
〈算数量〉 〈关系运算符〉〈算数量〉 说明:⑴算数量可以是一个数值常量、数值型变量、数
值函数,也可以是一个算术表达式;
⑵关系运算符就是关系比较符,关系符有以下六种。
2014-3-12 3
FORTRAN语言关系运算符
关系运算符
.GT. .GE. .LT. .LE. .EQ.
英语含义
Greater Than Greater than or Equal to Less Than Less than or Equal to Equal to
关系表达式是将两个数值量相比较,这两个数值量可以 是不同类型的量,它在比较时先转化类型,再比较;
关系表达式的值不是一个数值,而是一个逻辑量;
由于实数的存储与运算存在误差,所以运用.EQ.和.NE. 运算符时要注意;
除算术量比较的形式外,还有字符量的比较。
2014-3-12 5
§4.2 逻辑表达式
为了解决多层嵌套程序冗长的问题,FORTRAN语言提 供ELSE IF 语句处理 “否则, 如果……则”的情况。 其形式为: IF (逻辑表达式) THEN then块 ELSE IF (逻辑表达式) then . ELSE else 块 ENDIF
24
2014-3-12
Remark: ⑴ELSE IF语句相当于把ELSE语句和其下 一行的块IF语句连接成一个语句; ⑵ELSE IF语句不需要ENDIF语句与之对 应; ⑶ELSE IF语句可以有与之配对的ELSE语 句
2014-3-12
30
1、刚才已提到块IF是本节课的重点内容,而 掌握块IF的执行过程是学好块IF的前提,因此 有必要再回顾一下: 2、ELSE IF 语句是本讲课的难点,在书写逻辑 表达式时很容易出错,特别是一个程序需要多 条ELSE IF语句时。再强调两点:① ELSE IF语 句的断条件是在块IF语句或其上一条ELSE IF语 句的判断条件不成立的前提下所做的进一步的 判断。②再处理多分支的选择时,要尽可能把 出现几率高的条件写在前面,以提高程序的执 行效率,但同时要注意各条件间的相互关系。
系运算符的运算对象为数值量,运算结果为逻辑量。逻辑 运算符的对象是逻辑量,运算结果是逻辑量;
2. IF语句判断逻辑表式的值是否为“真”,若有关系运算
符,则它的两侧只能是数值量,不能是逻辑量。 例:.TURE . .EQ. .TURE. 是错误的!
3. 在连续用运算连接运算量需按下式书写:如A<B<C<D
READ(*,*)X IF(X.GE.0.0) Y=3.0*X+6.0 IF(X.LT.0.0) Y=-x*x+2*x-8 Write(*,*)Y . END
2014-3-12
29
本节内容小结
1. 块IF的执行过程 2. ELSE IF的条件选择 3. 块IF与逻辑IF的区别
2014-3-12
22
思考 ??
块IF嵌套可以解决多层选择的问题,但是 如果嵌套层次比较多,程序就会冗长。
A B C D E ( X<-10 ) (-10≤X< 20 ) (20≤X<30) (30≤X<50) (X ≥ 50)
23
Y=
2014-3-12
7、 ELSE IF 语句
2014-3-12
19
5、块IF的嵌套
概念:一个块IF中又完整地包含另一个或多个块IF。 嵌套形式: IF (逻辑表达式) THEN IF (逻辑表达式) THEN then 块 ELSE else 块 ENDIF ELSE else 块 ENDIF
20
2014-3-12
A,B都为真则A .AND. B真 A或B之一为真则A .OR. B真 A为真 ,则 .NOT. A 为假 A,B为同一逻辑量时, A .EQV. B为真 A,B为不同逻辑量时, A .NEQV. B为真
8
.NEQV.
2014-3-12
逻辑不等 A .NEQV. B
逻辑表达式运算次序
多个逻辑量经过逻辑运算后可以得到一个逻辑值。当逻辑表达式
14
2014-3-12
2、块IF的执行过程
IF (逻辑表达式)THEN
then 块 ELSE else 块 ENDIF
(1)执行块IF语句,求出逻辑表
达式的值; (2)若为“真”,则流程转到 then块,执行then块,然后跳 过ELSE语句和else块,流程转 到END IF语句处; (3)若逻辑表达式值为“假”, 则流程跳过then块,转到ELSE 语句,执行else块;然后流 程转到END IF语句处; (4)执行END IF语句的下一语句。
31
2014-3-12
3、①块IF不管条件为真还是为假都有相 应的操作,而逻辑IF只有条件为真时才 有操作。②块IF不管条件为真还是为假 都可以有若干条执行语句,而逻辑IF当 条件为真时只能有一条执行语句。③任 何一个逻辑IF都可以用块IF代替,而块IF 也可以用逻辑IF代替,特别是当选择结 构中ELSE块是空缺,而THEN块只有一条 语句时用逻辑IF更方便。
① 8.5
④ .F.
③ .F.
② .F. ⑤ .F.
⑥ .F.
HOME
2014-3-12 12
§4.3 块IF实现选择结构
块IF的组成 块IF的执行过程 块IF使用注意事项 块IF结构应用举例 块IF的嵌套 块IF嵌套的应用 ELSE IF 语句 ELSE IF 语句的应用
所代表的数学符号
>(大于) ≥(大于或等于) <(小于) ≤(小于或等于) =(等于)
.NE.
2014-3-12
Not Equal to
≠(不等于)
4
关系运算符运用的说明
关系运算符的两个字母的两侧个又一个点号,不要漏写;
在一个关系表达式中可能包括算术运算和关系运算符, 运算的次序是:先进行算术运算,后进行关系运算;
第四章 逻辑运算与选择结构
〖本章重点〗关系表达式与逻辑
表达式的正确书写和优先级,使
用块IF或逻辑IF语句实现选择结
构。
2014-3-12
1
逻辑运算与选择结构
关系表达式 逻辑表达式 用块IF实现选择结构
逻辑IF语句
2014-3-12
2
§4.1关系表达式
关系表达式是最简单的一种逻辑表达式,其形式为:
N-S流程图 输入x X>0 是
否
Y=6x+7
执行下一步
输出Y的值
2014-3-12 18
思考 ??
从以上几个例题我们可以看出:在块IF 中,可以用then块和else块分别处理当逻 辑表达式的值为“真”和“ 假”时应进 行的操作。但实际问题往往没有这么简 单,如我们刚提到的个人所得税的计算 问题:如何用Fortran 语言实现?
⑵逻辑假,即不满足逻辑条件,用.FALSE.表示;
说明:逻辑常量可以出现在程序中,可以将它赋给逻辑变量。
逻辑变量
逻辑赋值语句一般形式为:逻辑变量=逻辑表达式
说明:程序中使用逻辑变量时,必须对其加以定义,用 LOGICAL语句说明,如: LOGICAL A,B
2014-3-12 7
逻辑运算符
逻辑运算符 .AND. .OR. .NOT. .EQV. 含义 逻辑与 逻辑或 逻辑非 逻辑等 逻辑运算举例 A .AND. B A .OR. B .NOT. A A .EQV. B 例子含义
25
2014-3-12
8、ELSE IF 语句的应用
例:从键盘输入一个数,求下列分段函数的值?
READ(*,*) X IF (X.LT.-10.0) THEN Y=0.0 ELSE IF (X.LT.20.0) THEN Y=2.0*X+20.0 ELSE IF (X.LT. 50.0) THEN Y=30.0-0.5 ELSE Y=50.0-X END IF WRITE(*,*) ‘Y=’, Y END
逻辑表达式(布尔表达式)是对逻辑量进行逻辑运算的表 达式,其形式为: 〈逻辑量〉 〈逻辑运算符〉〈逻辑量〉 FORTRAN的逻辑量有三种: ⑴ 逻辑常量
⑵ 逻辑型变量
⑶ 关系表达式 逻辑表达式的值是一个逻辑值:逻辑“真”,逻辑“假”
2014-3-12 6
逻辑常量与变量
逻辑常量
⑴逻辑真,即满足逻辑条件,用.TURE.表示;
比较复杂时,则需要按下列规定(Fortran77)进行运算: ⑴ 先计算算术表达式的值 ⑵ 再计算关系表达式的值 ⑶ 最后进行逻辑运算,逻辑运算的先后顺序为:
先.NOT., .AND.,次之 .OR. ,最后.EQV.和.NEQV.。
其形式可参见下表