第3章 流程控制和逻辑运算.

Slides:



Advertisements
Similar presentations
學校日簡報 ~ 608 ( 六下 ) 歡迎各位家長! 報告者:黃怡萍老師. 主題一 : 滿滿的感謝 一年多來感謝家長們的支持與鼓勵,使班 務運作順利,親師生溝通良好;六年級下 學期是貴子弟國小生涯的最後一階段,時 間雖然短暫,但老師也擬定最後衝刺的目 標,希望親師生三方持續合作,讓我們愉 快的度過每一天。
Advertisements

1 程式語言 Visual Basic 循序結構、選擇結構 黃瀧輝 老師 Long Hwai,Huang.
人的性别遗传 合肥市第四十九中学 丁 艳. 男女成对染色体排序图 1 、男性和女性各 23 对染色体有何异同 ? 哪 一对被称为性染色体 ? 2 、这两幅图中,哪幅 图显示的是男性的染色 体?哪幅图显示的是女 性染色体? 3 、图中哪条染色体是 Y 染色体?它与 X 染色体 在形态上的主要区别是.
首页 全国高等学校招生考试统一考试 监考员培训 广州市招生考试委员会办公室.
延边大学 2016年度本科专业评估指标体系解读.
2011年会计初级职称全国统考 初级会计实务 教案 主讲:高峰 2010年12月.
人口增长.
2011级高考地理复习(第一轮) 第三篇 中国地理 第一章 中国地理概况 第五节 河流和湖泊.
辨性别 A B. 辨性别 A B 第三节人类染色体与性别决定 昌邑市龙池初中 杨伟红 学习目标 1.理解人的染色体组成和传递规律。 2.解释人类性别决定的原理。 3.通过探究活动,解读数据了解生男生女的比例。
二次函數 高士欽 林國源.
通州国税纳税信用等级A类纳税人 取消发票认证操作培训 2016 通州国税.
第一章 会计法律制度 补充要点.
二、个性教育.
情緒與壓力管理 手部舒壓運動 第六組.
七(7)中队读书节 韩茜、蒋霁制作.
“国培计划(2015)”——吉林省农村 幼儿园教师信息技术应用提升培训
新准则框架与首次执行 企业会计准则 主讲人:陈清宇.
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
碘缺乏病.
四年級課程綱要細目解讀 第四組 冠瑛、家珍、惠卿、琬婷.
问题解决与创造思维 刘 国 权 吉林省高等学校师资培训中心.
教您如何选购血糖仪 之血糖仪选购篇 检测小窍门【如何检测血糖仪误差?】 糖友在医院使用生化检测血糖值时,同时使用血糖仪检测血糖值,并记录
第3章 黑盒测试及其用例的设计 3.1 测试用例设计概述 3.2 黑盒测试法的概念 3.3 三角形问题与NextDate函数
第四单元 自觉依法律己 避免违法犯罪.
清仓处理 跳楼价 满200返160 5折酬宾.
财经法规与会计职业道德 (3) 四川财经职业学院.
致亲爱的同学们 天空的幸福是穿一身蓝 森林的幸福是披一身绿 阳光的幸福是如钻石般耀眼 老师的幸福是因为认识了你们 愿你们努力进取,永不言败.
命题.
四种命题.
1.1.2 四 种 命 题.
第 5 章 流程控制 (一): 條件分支.
增值评价 2014级 初中起点报告 解读培训 辽宁省基础教育质量监测与评价中心.
色 弱 與 色 盲.
Chapter 4 流程控制.
面向海洋的开放地区——珠江三角洲 山东省高青县实验中学:郑宝田.
第四课时 常见天气系统 阜宁一中 姚亚林.
宠物之家 我的宠物性别? 雌(♀) or 雄(♂) 第一阶段:我的宠物我做主 第二阶段:宠物“相亲记” 第三阶段:家族诞生
1.某生物个体经减数分裂产生4种类型的配子,即Ab∶aB∶AB∶ab=4∶4∶1∶1,这个生物如自交,其后代中出现显性纯合体的几率是
勾股定理 说课人:钱丹.
第4章 种群和群落 第3节 群落的结构 自主学习案   合作探究案 课后练习案. 第4章 种群和群落 第3节 群落的结构 自主学习案   合作探究案 课后练习案.
欢迎来到我们的课堂!.
算法和程序设计 第4课 分支结构的算法设计 •.
選擇 運算式 邏輯運算 if指令 流程圖基本觀念 程式註解 巢狀if指令 switch指令.
三角形的邊角關係 大綱:三角形邊的不等關係 三角形邊角關係 樞紐定理 背景知識:不等式 顧震宇 台灣數位學習科技股份有限公司.
第二章 负债 1、负债的概念:是指过去的交易或事项形成的、预 期会导致经济利益流出企业的现时义务。 2、负债的分类 流动负债 短期借款
《中级经济法》模考点评 主讲老师:武劲松.
第2章 Fortran程序设计基础.
笫11章指针 指针是现代程序设计语言中一个非常重要的概念,它使语言的功能大大加强。FORTRAN90以前的FORTRAN版本,没有指针这种数据类型,FORTRAN90对其作了重大改进,引入了指针的概念。但是值得注意的是,FORTRAN90的指针与C语言中的指针并不相同,因为它并不代表一个变量的地址,而是代表一个变量的别名,实质上它相当于C++里的引用,本章介绍指针的概念与应用。
第4章 程序控制结构与算法基础.
Chapter 2 Basic Elements of Fortran
人教版数学四年级(下) 乘法分配律 单击页面即可演示.
初级职称前导课 第一章 资产 主讲老师:海伦老师(兰老师).
算法与程序设计 周少品.
二元一次聯立方程式 代入消去法 加減消去法 自我評量.
知识点二 国际环境法的实施.
第1课时 不等式的性质及比较法证明不等式 要点·疑点·考点 课 前 热 身   能力·思维·方法   延伸·拓展 误 解 分 析.
课前注意 课前注意 大家好!欢迎加入0118班! 请注意以下几点: 1.服务:卡顿、听不清声音、看不见ppt—管家( ) 2.课堂秩序:公共课堂,勿谈与课堂无关或消极的话题。 3.答疑:上课听讲,课后答疑,微信留言。 4.联系方式:提示老师手机/微信: QQ:
× (1)( )若一元二次方程式可分解為 (x+1)(x+2)=1, 則 x+1=1,x+2=1, 所以 x=0 或-1
第四章 控制结构 1、顺序控制结构 2、选择结构 3、循环结构.
实际问题与一元二次方程.
9.1.2不等式的性质 周村实验中学 许伟伟.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
1.理解力和运动的关系,知道物体的运动不需要力来维持。
7.2 正弦公式 附加例題 1 附加例題 2.
坚持,努力,机会留给有准备的人 第一章 四大金融资产总结 主讲老师:陈嫣.
第八章 服務部門成本分攤.
美丽的旋转.
12.1分解因式.
数学建模示例 椅子能在不平的地面上放稳吗 问题分析 模型假设 通常 ~ 三只脚着地 放稳 ~ 四只脚着地
第二章 Java基础语法 北京传智播客教育
Presentation transcript:

第3章 流程控制和逻辑运算

流程控制 IF (条件P) THEN A块 ELSE B块 END IF 顺序结构:执行流程成直线,很难实现一些复杂功能的程序。 选择结构、循环结构 B块 P A块 成立 不成立 入口 出口 IF (条件P) THEN A块 ELSE B块 END IF

关系表达式 关系表达式是构成选择结构判断条件的基本式子。它也是一种最简单的逻辑表达式 关系表达式的一般形式 〈算术量〉〈关系运算符〉〈算术量〉 涵义: 关系表达式是由关系运算符将两个算术量连接起来的式子。

关系运算符 关系 Fortran 77 Fortran 90 大于 .gt. > 大于等于 .ge. >= 等于 .eq. == 小于 .lt. < 小于等于 .le. <= 不等于 .ne. /=

关系表达式 关系运算符的两个字母(GT, LE…)的两侧各有一个句点,不要漏写。例如“A.GT.B”是一个关系表达式,如果漏写句点,就变成”AGTB”,系统会把它当成一个变量名来处理。 在关系表达式中,同时包含算术运算符和关系运算符,Fortran 规定,先进行算术运算,后进行关系运算。例如X+Y .GT. A-B

关系表达式 关系表达式的例子: x+y>15.4 或 x+y.gt.15.4 a+b≠a-b 只能写成 a+b.ne.a-b 或 (a+b)/=(a-b) ex≥2.17 只能写成 exp(x).ge.2.17 或 exp(x)>=2.17 2019/4/19 6

关系表达式 关系运算用于两个不同类型的运算时,将自动进行数据类型转换,规则同算术运算。 关系表达式的运算元素是算术量,结果是逻辑量:真(.True.)或假(.False.)。 运算符如 .LE.中,点与LE字符是一个整体符号,之间不能有空格。 在使用.EQ.(==)或.NE.(/=)时,应注意实数类型数据的存储误差。例如: logical A real:: x=1.2 A=x*x .EQ. 1.44 print*,A

关系表达式 实数运算误差对关系表达式的影响 如:1.0/3.0*3.0.EQ.1.0 值为.false. 1.0/3.0*3.0=0.9999999 所以采用如下的形式: a.eq.b → abs(a-b).lt.1E-6 c.ne.d → abs(c-d).gt.1E-6

字符关系表达式 两个字符型数据也可以经比较,与数值型格式一致 两个单个字符比较,以其ASCII码比较,ASCII码大者为大 如:'A'<'B' 两个字符常量(字符串)比较,将两个字符串中的字符自左向右进行比较,如有差别,则ASCII码大者为大,否则两者相等。 如:'SHANGHAI'<'SHANGKONG' 如果两个字符串长度不等,则系统会自动将短的字符补以空格,使两者等长再比较。 如:'the'<'then' → 'the︺'<'then'

ASCII 规则 数字0小9大 数字比字母小 大写字母比小写字母小 字母A小Z大,a小z大 其他专用字符有的比数字小有的比数字大 CHAR(I) — 得到ASCII码为I的字符 CHAR(97) → 'a' CHAR(65) → 'A' ICHAR(a) — 得到字符串a中第一个字符的ASCII码 ICHAR('apple') → 97

逻辑运算 关系表达式只能表达简单的关系,但如: (1) 5≤x≤10 (2)|X|>5 (3) M能被3或5同时乘除 以上关系应如何表示呢?他们不能简单地用关系表达式表。 解决的方法是:逻辑表达式。

逻辑表达式 逻辑表达式的一般形式 〈逻辑量〉〈逻辑运算符〉〈逻辑量〉 逻辑表达式是由逻辑运算符将两个逻辑量连接起来的式子。 逻辑表达式的运算元素是逻辑量,结果也是逻辑量:真(.True.)或假(.False.)。 逻辑量包括逻辑常量、逻辑变量和关系表达式。

逻辑运算回顾 逻辑常量 两个:①.true.(真)②.false.(假) 逻辑变量 ——用于存放逻辑常量的变量。 逻辑变量可以通过赋值语句来接受逻辑常量的值,但在使用前,要进行类型说明。 例: logical a, b a=.true. b=.false.

逻辑运算 逻辑运算符 .and. (逻辑与) .or. (逻辑或) .not. (逻辑非) .eqv. (逻辑等(同或) .neqv.(逻辑不等(异或)

逻辑运算 逻辑运算符的运算规则 若a,b为两个逻辑量,则: a.and.b——(当a、b同时为真时,为真。) a.or.b ——(当a、b中任意一个为真或同时为真时,为真。) .not.a ——(当a为真,其值为假;当a为假,其值真。) a.eqv.b——(当a、b为同一逻辑常量时,为真。) a.neqv.b——(当a、b不为同一逻辑常量时,为真。)

逻辑运算举例 例如: (1) 5≤x≤10 表示为:x>=5 .and. x<=10 (2)|X|>5 表示为:x<-5 .or. x>5 或者为:abs (x) > 5 (3) M能被3或5同时乘除 表示为:Mod(m,3)==0 .or. Mod(m,5)==0

逻辑运算次序 逻辑表达式的运算次序 运算次序为: 括号→算术运算→关系运算→逻辑运算 而逻辑运算: .not.→.and.→.or.→.eqv.,.neqv.

逻辑运算举例 例1:写出下列条件的逻辑表达式。 ⑴5≤k≤10 k.ge.5.and.k.le.10 ⑵│f│≤3g或│f│=5t abs(f).le.3*g.or.abs(f).eq.5*t ⑶1≤a≤8并且1≤b≤8 (a.ge.1.and.a.le.8).and.(b.ge.1.and.b.le.8)

逻辑运算举例 若a=2.5,b=7.5,c=5.0,d=6.0,求下列逻辑表达式的值。 ⑴(a.lt.b).and.(b.lt.c) ①t ②f ③f

逻辑运算举例 若a=2.5,b=7.5,c=5.0,d=6.0,求下列逻辑表达式的值。 ⑵c/2.0+d.lt.a.and..not..true..or.c.le.d ①8.5 ④F ③T ②F . ⑤F . ⑥T

块 if 选择结构 有以下三种典型的块if选择结构: ⑴ 单分支结构: if (条件) then (块if语句) 块 (then块) ⑴ 单分支结构: if (条件) then (块if语句) 块 (then块) endif (endif语句) P A

块 if 选择结构 ⑵ 双分支结构 if (条件) then 块1 (then块) else 块2 (else块) endif P A B

块 if 选择结构 True False if (x.le.2) then y=2*x+3 else y=x+5 endif 例: 2X+3 (X≤2) Y= X+5 (X>2) 编程如下: read(*,*) x if (x.le.2) then y=2*x+3 else y=x+5 endif write(*,*)'x=',x,'y=',y end X≤2 True False Y=2X+3 Y=X+5 输出结果 结束 输入X值

块 if 选择结构 ⑶多分支块if结构 if (条件1) then 块1 else if (条件2) then 块2 (else if块) ┆ else if (条件n) then 块n [else 块(n+1)] endif

块 if 选择结构 说明: ⑴每个块if中可以完整地包含一个(或多个)块if结构,即构成块if 的嵌套结构。如: if (条件1) then if (条件1) then 块1 if (条件2) then else 块2 if (条件2) then endif 块2 else endif 块1 endif endif

块 if 选择结构 ⑵一个块if 语句必须和一个endif语句相对应。 ⑶块if 中的“then块”、“else块”和“else if块”可为空块。

块 if 选择结构举例 求一元二次方程ax2+bx+c=0的根。 b2-4ac → d 输入a、b、c true d≥0 false 结束 (当b2-4ac≥0时有两个实根,b2-4ac<0时有两个复根。) 输入a、b、c b2-4ac → d true d≥0 false 计算两实根 计算两复根 输出x1,x2 输出x1,x2 结束

块 if 选择结构举例程序 print*,'input a,b,c:' read*,a,b,c f=-b/(2.0*a) d=b**2-4.0*a*c g=sqrt(-d)/(2.0*a) if (d.ge.0.0) then print*,'x1=',f,'+i',g e=sqrt(d) print*,'x2=',f,'-i',g x1=(-b+e)/(2.0*a) endif x2=(-b-e)/(2.0*a) end print*,'x1=',x1 print*,'x2=',x2 else

块 if 选择结构举例 求下列函数值。 0 (x<-10) 2x+20 (-10≤x<0) y= 20 (0≤x<20)

块 if 选择结构 true x<50 false 输入x true x<-10 false y=0 true x<0 false y=2x+20 true x<20 false y=20 true x<40 false y=30-0.5x true x<50 false y=50-x y=0 打印y

块 if 选择结构举例程序 read*,x print*,'y=',y if (x.lt.-10.0) then end y=0.0 else if (x.lt.0.0) then y=2.0*x+20.0 else if (x.lt.20.0) then y=20.0 else if (x.lt.40.0) then y=30.0-0.5*x else if (x.lt.50.0) then y=50.0-x else endif

块 if 选择结构程序举例 read*,x if (x.lt.50.0) then if (x.lt.-10.0) then y=50.0-x y=0.0 else else y=0.0 if (x.lt.0.0) then endif y=2.0*x+20.0 endif else endif if (x.lt.20.0) then endif y=20.0 endif else print*,'y=',y if (x.lt.40.0) then end y=30.0-0.5*x else

逻辑 if 语句 逻辑if语句也是一种选择结构,但与块if 不同,主要表现在: ①只用一行表示一个选择结构; ②仅当条件成立时执行,并且只执行一条语句。 逻辑if语句的一般形式: If〈条件〉语句 例:if (n.le.100) n=n+1

逻辑 if 语句 read(*,*) x read(*,*)x if (x.le.2) then if(x.le.2) y=2*x+3 例: 2X+3 (X≤2) Y= X+5 (X>2) 编程如下: read(*,*) x read(*,*)x if (x.le.2) then if(x.le.2) y=2*x+3 y=2*x+3 if(x.gt.2) y=x+5 else write(*,*)'y=',y y=x+5 end endif write(*,*)'y=',y end

多重判断:块CASE选择结构 Fortran 90 引入 SELECT CASE (变量) 块CASE选择 CASE (数值1) 语句块1 语句块2 …… CASE (数值n) 语句块n CASE DEFAULT [类似于 ELSE] 语句块n+1 END SELECT 块CASE选择 结构的 一般格式

SELECT CASE 语句 Case default 程序模块没有规定一定要出现。 只能使用整数,字符和逻辑型变量不能使用浮点数和复数。

块CASE选择结构 问题: 已知年月,判断该月所对应的天数。 输入年和月 T 月=1,3,5,7 ,8,10,12 DAY=31 F 月=4,6,9,11 DAY=30 月=2 DAY=29 DAY=28 输出DAY T F 闰年 问题: 已知年月,判断该月所对应的天数。

块if结构求解问题 d=29 else d=28 end if Integer y, m, d Read*, y, m If (m==1.or.m==3.or.m==5.or.m==7.or.m==8.or.m==10.or.m==12) then d=31 Else if (m==4.or.m==6.or.m==9.or.m==11) then d=30 Else if ((mod(y,4)==0.and. mod(y,100)/=0).or.mod(y,400)==0) then d=29 else d=28 end if print*, y, " 年", m, " 月所对应的天数为:", d," 天" end

块Case选择结构求解问题 integer y, Month, Day print*, "请输入y和Month" read*, y, Month select case (Month) case (1,3,5,7,8,10,12) Day=31 case(4,6,9,11) Day=30 case(2) if ((mod(y,4)==0.and.mod(y,100)/=0).or.mod(y,400)==0) then Day=29 else Day=28 End if End select print*, y," 年", Month, " 月所对应的天数", Day, " 天" end

GOTO 语句

其他语句 Pause 语句的功能就是,当程序执行到pause时,会暂停,直到用户按下Enter键后才会继续执行。 可以用来调试,输出间断(需要分页),或者数据显示(确定是否运行) Continue 功能为继续向下执行语句。 Stop 功能为结束程序运行。

作业 题目3.1 题目3.2

作业 题目3.3 请采用Fortran90 自由格式编写程序,求解实系数方程ax2+bx+c=0的实数解。要求:系数a,b,c 为程序执行时键盘输入,a,b,c为任意实数;所有的解均输出到屏幕。 题目3.4 请采用IF … GOTO …语句编写Fortran90 自由格式程序,求1+2+3+…+100=?