书签 分享 收藏 举报 版权申诉 / 43
上传文档赚钱

类型Fortran程序设计基础课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3044590
  • 上传时间:2022-06-25
  • 格式:PPT
  • 页数:43
  • 大小:614.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Fortran程序设计基础课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Fortran 程序设计 基础 课件
    资源描述:

    1、第3章 流程控制和逻辑运算流程控制 顺序结构:执行流程成直线,很难实现一些复杂功能的程序。 选择结构选择结构、循环结构、循环结构B块块PA块块成立成立不成立不成立入口入口出口出口IF (条件P) THENA块ELSEB块END IF关系表达式 关系表达式是构成选择结构判断条件的基本式子。它也是一种最简单的逻辑表达式 关系表达式的一般形式 算术量关系运算符算术量 涵义: 关系表达式是由关系运算符将两个算术量连接起来的式子。关系运算符 关系关系Fortran 77Fortran 90大于.gt.大于等于.ge.=等于.eq.=小于.lt.小于等于.le.15.4 或 x+y.gt.15.4 a+b

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

    3、式的影响如: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码大者为大 如:AB 两个字符常量(字符串)比较,将两个字符串中的字符自左向右进行比较,如有差别,则ASCII码大者为大,否则两者相等。 如:SHANGHAISHANGKONG 如果两个字符串长度不等,则系统会自动将短的字符补以空格,使两者等长再比较。 如:

    4、thethen the5 (3) M能被3或5同时乘除 以上关系应如何表示呢?他们不能简单地用关系表达式表。 解决的方法是:逻辑表达式。逻辑表达式逻辑表达式的一般形式 逻辑量逻辑运算符逻辑量 逻辑表达式是由逻辑运算符将两个逻辑量连接起来的式子。 逻辑表达式的运算元素是逻辑量,结果也是逻辑量:真(.True.)或假(.False.)。 逻辑量包括逻辑常量、逻辑变量和关系表达式。逻辑运算回顾逻辑常量 两个:.true.(真).false.(假)逻辑变量 用于存放逻辑常量的变量。 逻辑变量可以通过赋值语句来接受逻辑常量的值,但在使用前,要进行类型说明。 例: logical a, b a=.true

    5、. 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) 5x10 表示为:x=5 .and. x5 表示为:x5 或者为:ab

    6、s (x) 5(3) M能被3或5同时乘除表示为:Mod(m,3)=0 .or. Mod(m,5)=0逻辑运算次序逻辑表达式的运算次序 运算次序为: 括号算术运算关系运算逻辑运算 而逻辑运算: .not.and.or.eqv.,.neqv.逻辑运算举例例1:写出下列条件的逻辑表达式。 5k10 k.ge.5.and.k.le.10 f3g或f5t abs(f).le.3*g.or.abs(f).eq.5*t 1a8并且1b8(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,求下列逻辑表达式的值。

    7、 (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块) endif (endif语句)PA块 if 选择结构 双分支结构 if (条件) then 块1 (then块) else 块2 (else块) endif PAB块 if 选择结构例: 2X3 (X2) Y X5 (X2

    8、)编程如下:read(*,*) xif (x.le.2) then y=2*x+3else y=x+5endifwrite(*,*)x=,x,y=,yendX2True FalseY=2X3 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 (

    9、条件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-4ac0时有两个实根,b2-4ac0时有两个复根。) 输入输入a、b、cb24ac d true d0 false计算两实根计算两实根 计算两复根计算两复根输出输出x1,x2 输出输出x1,x2 结束结束 块 if 选

    10、择结构举例程序 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 elseaacbbx2422, 1块 if 选择结构举例求下列函数值。 0 (x-10) 2x+20 (-10 x0) y= 20 (0 x20) 30-0

    11、.5x (20 x40) 50-x (40 x50) 0 (x50)块 if 选择结构 输入输入x xtrue true x x-10-10 false falsetrue true x x0 0 false falsetrue true x x2020 false falsetrue true x x4040 false falsetruetrue x x5050 falsefalse y=50-x y=0 y=50-x y=0打印打印y yy y0 0y=20y=20y=30-0.5xy=30-0.5xy=2x+20y=2x+20块 if 选择结构举例程序 read*,x print*,y

    12、=,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 y=0.0 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) t

    13、hen 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 语句例: 2X3 (X2) Y X5 (X2)编程如下: read(*,*) x

    14、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选择结构SELECT CASE (变量) CASE (数值1) 语句块1 CASE (数值2) 语句块2 CASE (数值n) 语句块n CASE DEFAULT 类似于 ELSE 语句块n+1END SELECT块CASE选择结构的一般格式Fortran 90 引入SELECT CASE 语句 Case default 程序

    15、模块没有规定一定要出现。 Case 语句里的冒号前后可以放入两个数值,表示在这两个数字范围内的所有数值。 Case 语句可以用逗号放入多个变量 每个Case 所用的数值都必须是固定的常量,不能使用变量 只能使用整数,字符和逻辑型变量不能使用浮点数和复数。块CASE选择结构 问题:已知年月,判断该月所对应的天数。输入年和月月=1,3,5,7,8,10,12DAY=31月=4,6,9,11DAY=30月=2DAY=29DAY=28输出DAYTFFFTT闰年F FTInteger y, m, dRead*, y, mIf (m=1.or.m=3.or.m=5.or.m=7.or.m=8.or.m=1

    16、0.or.m=12) then d=31Else if (m=4.or.m=6.or.m=9.or.m=11) then d=30Else if (mod(y,4)=0.and. mod(y,100)/=0).or.mod(y,400)=0) then d=29 else d=28 end ifend if print*, y, 年, m, 月所对应的天数为:, d, 天end块块if结构求结构求解问题解问题integer y, Month, Dayprint*, 请输入y和Monthread*, y, Monthselect case (Month) case (1,3,5,7,8,10,1

    17、2) 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 ifEnd select print*, y, 年, Month, 月所对应的天数, Day, 天end块块Case选选择结构求择结构求解问题解问题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=?

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Fortran程序设计基础课件.ppt
    链接地址:https://www.163wenku.com/p-3044590.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库