Fortran程序设计:第一讲 程序设计语言基础_第1页
Fortran程序设计:第一讲 程序设计语言基础_第2页
Fortran程序设计:第一讲 程序设计语言基础_第3页
Fortran程序设计:第一讲 程序设计语言基础_第4页
Fortran程序设计:第一讲 程序设计语言基础_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、Fortran程序设计第一讲 课程相关评价考核作业10%实验10%期中20%期末60%提示作业、实验完成度不足70%,或期末考试卷面不足55分的同学,将不能通过本课程第一讲 学习目的与方法学习目的锻炼你的思维能力掌握物理研究与工程应用的重要工具学习方法作为一门实践性极强的课程,学好本课程的最主要途径就是多做实验,也就是大量的编程练习在编程练习中,要坚持独立思考如果你觉得问题过于复杂,难以解决,那么先进行比较简单的编程练习,无论如何,独立编写一个简单的程序也要比抄袭一个复杂程序的收获更大第一讲 程序设计语言基础计算机直接能懂的语言叫机器语言,由二进制代码组成例如:计算2+3-4,并从屏幕上输出,

2、用机器语言描述的程序为:0010001100000010 -将2送累加器A0000001100000011 -将3与累加器相加,结果在累加器00110111 -将累加器数取反,求反码00010111 -将累加器数加1,求补码,结果为-50000001100000100 -将4与累加器相加,结果-1在累加器00110111 -将累加器数取反,求反码00010111 -将累加器数加1,求补码,结果为100000010 -将累加器数1从总线输出第一讲 程序设计语言基础机器语言的最大优点: 直接识别、理解和执行,有极高的运行效率,在一些嵌入式控制系统中有时会使用机器语言编写的程序。机器语言有明显缺点:

3、 难以理解、阅读、编写机器语言程序,机器语言程序其可靠性难以保证,不易维护,可移植性很差。 为了解决机器语言存在的突出问题,克服机器语言自身的不足和缺点,出现了汇编语言,或称符号语言。 MOV A,2H -将2送累加器AADD A,3H -将3与累加器相加,结果在累加器CPL A -将累加器数取反,求反码INC A -将累加器数加1,求补码,结果为-5ADD A,4H -将4与累加器相加,结果-1在累加器CPL A -将累加器数取反,求反码INC A -将累加器数加1,求补码,结果为1OUTL BUS,A -将累加器数1从总线输出第一讲 程序设计语言基础汇编语言的优点: 执行速度快,占用空间少

4、,运行效率高。缺点: 不易编写、理解、维护和移植。 汇编语言同机器语言一样,与计算机硬件系统有关,不同种类的计算机配置有不同的汇编语言,相互不能通用。 由于汇编语言的固有缺点,绝大多数情况不使用汇编语言,但是在一些嵌入式控制系统中还习惯采用其编写程序,以提高这些控制系统的运行效率,所以在高级语言极其普及的今天,汇编语言还是有一定的生存空间。 可以直接对硬件进行操作,对内在地址进行操作与位操作。第一讲 程序设计语言基础 对于汇编语言程序,必须翻译转换成机器语言程序后,才能被计算机识别、理解和执行。 汇编程序机器语言目标程序 汇编语言源程序第一讲 程序设计语言基础 高级语言是其表达方式接近自然语言

5、和数学语言的一类程序设计语言。 高级语言克服了低级语言的固有缺点,它面向过程、易读易学、易于编写、可靠性高、可维护性好,基本与计算机硬件系统无关,能在不同种类的计算机上运行。 下面是计算物体运动距离的FORTRAN 90语言程序: ! 计算物体运动距离PROGRAM ex01_01 REAL v0,a,t,sREAD *,v0,a,ts=v0*t+0.5*a*t*tPRINT *,s=,sEND! 计算2+3-4PROGRAM ex01_02REAL AA=2+3-4PRINT *, 2+3-4=,aEND第一讲 程序设计语言基础 高级语言也称“算法语言”。 FORTRAN语言是世界上最早出现

6、的高级语言,受其影响,其后不同风格、不同用途、不同规模、不同版本的高级语言不断涌现,目前高级语言有上百种,但常用的只有十多种。不同的高级语言其词法、语法和语义不尽相同,应用范围和领域也有差异。 高级语言程序不能被计算机直接识别、理解和执行,必须将其翻译转换成机器语言程序,或者先翻译转换成汇编语言程序,再通过汇编程序翻译转换成机器语言程序。 编译程序机器语言目标程序 高级语言源程序汇编语言程序 汇编程序机器语言目标程序第一讲 程序设计语言基础 程序设计语言种类繁多,形式各异,功能有别,同自然语言一样,它们都有严格的词法、语法和语义规定。 程序设计语言与自然语言的不同之处是不允许出现任何二义性、歧

7、异性和不确定性。请解释下文中每个“意思”的意思阿呆给领导送红包时,两人的对话颇有意思。领导:“你这是什么意思?”阿呆:“没什么意思,意思意思。”领导:“你这就不够意思了。”阿呆:“小意思,小意思。”领导:“你这人真有意思。”阿呆:“其实也没有别的意思。”领导:“那我就不好意思了。”阿呆:“是我不好意思。”第一讲 程序设计语言基础词法: 组成合法语句的基本单位称为单词,构成合法单词的规则称为词法。词法描述:通常采用严格的形式化描述(如BNF,即巴科斯范式, 讲课采用此法描述),也有采用语法图描述,但很少采用自然语言描述。词法规则:程序设计语言规定了一组描述词法的规则。作用: 通过词法规则可判断一

8、单词符号串是否合法,含有非法单词的程序在计算机上不能运行,所有程序必须符合语言的词法规则。 语法:具有特定含义的符号串或句子称为语句,构成合法语句的规则称为语法。 语法描述:通常采用严格的形式化描述(如BNF,即巴科斯范式,本书采用此法描述),也有采用语法图描述,但很少采用自然语言描述。 语法规则:程序设计语言规定了一组描述语法的规则。第一讲 程序设计语言基础什么是巴科斯范式?巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur 首先引入的用来描述计算机语言语法的符号集。现在,几乎每一位新编程语言书籍的作者都使用巴科斯范式来定义

9、编程语言的语法规则。巴科斯范式的内容在双引号中的字(word)代表着这些字符本身。 而double_quote用来代表双引号。在双引号外的字(有可能有下划线)代表着语法部分。尖括号( )内包含的为必选项。方括号( )内包含的为可选项。大括号( )内包含的为可重复0至无数次的项。竖线( | )表示在其左右两边任选一项,相当于OR的意思。:= 是“被定义为”的意思。第一讲 程序设计语言基础其实BNF很简单 :=表示定义 |表示或 尖括号()括起来的是非终结符 所谓非终结符就是语言中某些抽象的概念,终结符就是可以直接出现在语言中的符号 例:C语言的声明语句可以用BNF这样描述: := ; | ”=“

10、; 这一句中这个非终结符被定义成了两种形式(上面用|隔开的两部分) C语言的标识符可以这样描述: := | 第一讲 算法用计算机解决问题的流程分析问题建立数学模型选择合适的数据结构和算法编写程序调试程序运行程序得到结果第一讲 算法算法为计算机解题设计的有明确意义的运算步骤的有限集合。算法的描述可以用自然语言也可以用形式语言、数学语言当然也可以用程序第一讲 算法用自然语言描述算法烹饪一盆榨菜肉丝汤,设计并用自然语言描述其菜谱(算法)。 准备100克榨菜和50克精猪肉。 将榨菜和精肉切细丝。 向锅中倒入25克色拉油。 将锅中油加温至八成熟。 将榨菜和精肉丝放入锅中烧熟。 放少许盐和适当水并烧开。

11、尝咸、淡否? 若咸,则加少许开水,转。 若淡,则加少许精盐,转。 烹饪结束,出锅。第一讲 算法计算1+2+3+ +100之和,并输出,设计并用自然语言描述其算法。 将0赋予sum。 将1赋予i。 判断i100吗? 若i100,则转。 将sum+i赋予sum。 将i+1赋予i。 转。 输出sum值。 结束第一讲 算法用流程图来描述算法其优点是描述简洁、清晰和直观,缺点是由于转移箭头的无约束使用,影响算法的可靠性。 (a) 处理 (b) 特定处理 (c) 输入输出 (d) 判断 (e) 开始结束 (k) 流程线 (l) 虚线 (m) 省略线 (n) 并行 (f) 循环上界 (g) 循环下界 (h)

12、 连接 (i) 准备 (j) 注释第一讲 算法咸淡求前N个正数和 I I I0TF输入N I=1,N,1 输入XS+X =X I N输出S开始结束结束准备100克榨菜和50克精猪肉将榨菜和精肉 切细丝 向锅中倒入 25克色拉油将锅中油加温 至八成熟 放少许盐和适当水并烧开 将榨菜和精肉丝 放入锅中烧熟尝咸、淡否?出 锅加少许精盐加少许开水开始第一讲 算法用N-S图来描述算法 由于框图存在比较严重的缺点,图中的流程线无任何约束机制,完全由设计人员人为控制,所以用框图描述的算法其可靠性受到很大影响。针对框图的缺点,1973年美国学者I.Nassi和B.Shneiderman提出了一种新的算法描述工

13、具,即N-S图,也称盒图。AB条件P当 条件PA直到 条件PA(a)处理框 (b) 判断框 (c)当型循环框 (d)直到型循环框假真AB第一讲 算法准备100克榨菜和50克精猪肉将榨菜和精肉切细丝 向锅中倒入25克色拉油 将锅中油加温至八成熟将榨菜和精肉丝放入锅中烧熟 放少许盐和适当水并烧开尝咸、淡否?加少许开水咸淡加少许精盐0=sum1=i输出 sumsum+i=sumi+1=i i100出 锅 第一讲 算法用伪代码描述算法 流程图、N-S图:图形描述工具。优点:描述的算法直观易懂。缺点:是图形绘制比较费时费事,图形修改比较麻烦。 所以图形工具也不是很理想的描述工具。为了克服图形描述工具的缺

14、点,现在也开始流行采用伪代码描述工具描述算法。第一讲 算法计算2+4+ +100,并输出,设计并用伪代码描述其算法。 BEGIN 算法开始 置sum为0 置i为1 WHILE i100 IF i/2的余数为0 sum+i送sum ENDIF i+1送i ENDDO 打印 sum END 算法结束第一讲 算法伪代码算法描述工具的优点: 可作为注释直接插入到源程序中间,能保持文档和程序的一致性; 可用正文编辑器或文字处理器完成伪代码的书写和编辑工作; 可借助软件自动生成程序代码。 第一讲 程序设计方法程序设计方法模块化程序设计方法结构化程序设计方法面向对象程序设计方法第一讲 程序设计方法模块化程序

15、设计方法大的、比较复杂的问题子问题1子问题2子问题3子问题4子问题21子问题22第一讲 程序设计方法结构化程序设计方法一、使用三种基本控制结构;二、采用自顶向下和逐步求精方法。自顶向下和逐步求精方法是由抽象到具体、由粗到细的方法。 操作A操作B操作CTF操作A操作B条 件TF操作A条 件TF操作A条 件 (a) 顺序结构 (b) 判断结构 (c) 当型循环结构 (d) 直到型循环结构第一讲 程序设计方法自顶向下和逐步求精方法:由抽象到具体、由粗到细的方法。第一次细化称为“顶层设计”,然后通过一步一步细化,它们依次称为第二层、第三层设计,直到不需细化为止。细化结果可得到一个树型层次结构图。处理学

16、校事务学生事务教学事务财务事务科研事务顶层设计第二层设计第三层设计第一讲 程序设计方法面向对象程序设计方法面向过程程序设计方法:代码与数据是相互分离的,程序维护性较差。面向对象程序设计方法:数据及处理这些数据的函数封装到一个类。类: 一种数据类型。对象:使用类的变量。 在对象内,只有属于该对象的成员函数才可能存取该对象的数据成员,这样其它函数就不会无意破坏其内容,达到保护和隐藏数据的效果。优点: 1、程序的可维护性好,只需要了解必要的细节。 2、程序易修改,通过删除对象来完成。 3、对象可以多次使用,重用性好。全新概念:类/封装/继承性/多态性 第一讲 程序设计方法 举个例子,上银行领钱时,一

17、定要通过银行的出纳员或是自动提款机的帮忙,才能领出户头里的钱。为了安全理由,银行不可能直接把金库开放,让客户自行取出属于自己的金钱。 面向对象中很重要的一项工作,就是数据封装。数据经过封装后可以分成两种数据,一种是可以直接让大家使用的数据,另一种是只能在内部使用的数据。函数也可以拿来做封装,分成公开使用和内部使用的函数。 以银行的例子来说,银行里面的钱,就算是银行的内部数据,不能直接让外人使用,只有银行内部的员工才能直接接触它们。 除了数据封装外,面向对象的另一个重点是程序代码的重复使用。重复使用程序代码最简单的方法,就是使用函数。面向对象提供另外一种思考方法来重复使用程序代码。封装与继承是面

18、向对象方法的主要思想第一讲 Fortran 简介FORmula TRANslator 公式翻译器 科学和工程计算问题的程序设计语言 第一门广泛应用的程序语言 FORTRAN语言的重要意义:Fortran堪称是软件行业的转折点,就像微处理器对硬件行业一样重要。Fortran改变了人机通信的方式,使得程序语言更容易被用户理解和接受。因此,Fortran一直被认为是首款大获成功的高级语言。1977年巴库斯获图灵奖著名编程语言Fortran创始人巴库斯 第一讲 Fortran 简介Fortran语言的发展简史第一个FORTRAN语言版本是在1954年提出的,在1957年正式发布使用。1958 FORTRAN1962 FORTRAN1978 FORTRAN771991.FORTRAN 901997. FORTRAN95 FORRAN95不象FORTRAN90在FORTRAN77添加很多内容,只能视为90的修正版,加强

温馨提示

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

评论

0/150

提交评论