Fortran — 世界上推出的第一种高级程序设计语言 谢建勤(电子与信息工程学院) Email:icxjq@fosu.edu.cn Tel:82982543,13435409997 1
总体要求 1、不要迟到旷课 2、按时完成实验和练习 3、严肃认真、积极参与与分享 总体要求 1、不要迟到旷课 2、按时完成实验和练习 3、严肃认真、积极参与与分享
课程的要求 该课程为必修课,4学分。 总评成绩: 期末考试50%+平时成绩10% +实验成绩40%
课程特点 课内实验时间较少,自己要在课后增加上机时间。 利用教师提供的教学资源复习。教学资源: 实验课上机:CS区 教学网站地址: 教材 教师教学网站:http:// 202.192.163.58 学生提交作业服务器:FTP://202.192.163.48
交作业的方法 本课程作业全部通过网络上传到自己的FTP帐 号中,该帐号由基础教学部实验室提供,FTP服 务器由实验室管理. 每个同学需要在网站http://202.192.163.48以自 己的10位学号(如2011414001)作为账户名申请 空间(统一规定为40M),请记住自己的密码 上传作业需要使用软件CuteFTP或浏览器,学生 机房的机器都已经安装该软件.
第1章 fortran程序语言及其开发环境概述 启示录:有一句话说的好:经常议论别人的缺点,你就是一个道德水准低下者;经常议论人类的缺点,你就是一个思想家。 结论:不能光看小的,要看大处 。
Fortran之父约翰·巴克斯(JOHN BACKUS),他开发出了第一种高级编程语言Fortran,为现代软件开发奠定了基础。 引 言 Fortran之父约翰·巴克斯(JOHN BACKUS),他开发出了第一种高级编程语言Fortran,为现代软件开发奠定了基础。
Fortran之父约翰·巴克斯 巴克斯生前长期在IBM公司从事计算机研究工作,他在1979年接受IBM员工杂志《Think》采访时曾风趣地说,他大部分的软件开发最初的缘由都是因为自己的懒惰。“我不喜欢写程序,所以当时在IBM701(一台早期计算机)工作,为计算导弹弹道编写程序,我就开始琢磨开发一个编程系统,可以让编写程序变得简单些”。于是,Fortran应运而生。
Fortran之父约翰·巴克斯 巴克斯的教育履历令人“刮目相看”,中学时因为厌学,成绩一塌糊涂,不得不另外补课。后在化学家父亲的逼迫下,他到弗吉尼亚大学学习化学,但6个月后便以退学告终。应征加入美国陆军后,他又学起了医学,后来发现无线电工程更有乐趣,遂放弃医学改学工程,但最终却决定钻研数学,并获得了哥伦比亚大学的硕士学位。毕业前,他在纽约曼哈顿岛参观IBM公司,并被当场聘用。并一直在IBM干到退休。
史上最牛的演讲 甲骨文总裁拉里埃里森在耶鲁大学的演讲 我很抱歉,如果你们不喜欢这样的开场白。我想请你们为我做一件事。请你---好好看 一看周围,看一看站在你左边的同学,看一看站在你右边的同学。请你设想这样的情 况:从现在起5年之后,10年之后,或30年之后,今天站在你左边的这个人会是一个失 败者;右边的这个人,同样,也是个失败者。而你,站在中间的家伙,你以为会怎 样?一样是失败者。失败的经历。失败的优等生。 说实话,今天我站在这里,并没有看到一千个毕业生的灿烂未来。我没有看到一千个 行业的一千名卓越领导者,我只看到了一千个失败者。你们感到沮丧,这是可以理解 的。为什么,我,埃里森,一个退学生,竟然在美国最具声望的学府里这样厚颜地散 布异端?我来告诉你原因。因为,我,埃里森,这个行星上第二富有的人,是个退学 生,而你不是。因为比尔盖茨,这个行星上最富有的人---就目前而言---是个退学 生,而你不是。因为艾伦,这个行星上第三富有的人,也退了学,而你没有。再来一 点证据吧,因为戴尔,这个行星上第九富有的人---他的排位还在不断上升,也是个退 学生。而你,不是。 你们非常沮丧,这是可以理解的。因为你没 辍学,所以你永远不会成为世界上最富有的人。
当然,你可以, 也许,以你的方式进步到第10位,第11位,就像Steve。不过,我没有告诉你他在为谁 工作,是吧?根据记载,他是研究生时辍的学,开化得稍晚了些。 现在,我猜想你们中间很多人,也许是绝大多数人,正在琢磨,"能做什么?我究竟有 没有前途?"当然没有。太晚了,你们已经吸收了太多东西,以为自己懂得太多。你们 再也不是19岁了。你们有了``内置``的帽子,哦,我指的可不是你们脑袋上的学位 帽。 嗯......你们已经非常沮丧啦。这是可以理解的。所以,现在可能是讨论实质的时候 啦---绝不是为了你们,2000年毕业生。 你们已经被报销,不予考虑了。我想,你们就偷偷摸摸去干那年薪20万的可怜工作 吧,在那里,工资单是由你两年前辍学的同班同学签字开出来的。事实上,我是寄希 望于眼下还没有毕业的同学。我要对他们说,离开这里。收拾好你的东西,带着你的 点子,别再回来。退学吧,开始行动。 我要告诉你,一顶帽子一套学位服必然要让你沦落......就像这些保安马上要把我从 这个讲台上撵走一样必然......
你的点子? 你是天才吗? 知人者智,自知者明。
Fortran之父约翰·巴克斯 1975年,他获得美国“全国科学奖章”; 1977年度,美国计算机学会将图灵奖颁予巴克斯; 1993年,美国工程科学院将其最高荣誉查尔斯·斯塔克·德雷珀奖授予了巴克斯。 图灵奖(A.M. Turing Award),由美国计算机协会(ACM)于1966年设立,又叫“A.M. 图灵奖”,有“计算机界诺贝尔奖”之称,专门奖励那些对计算机事业作出重要贡献的个人。其名称取自计算机科学的先驱、英国科学家阿兰·麦席森·图灵。获奖者的贡献必须是在计算机领域具有持久而重大的技术先进性的。大多数获奖者是计算机科学家。目前图灵奖由英特尔公司和google公司赞助,奖金为250,000美元。奖杯为图灵碗。 奖杯-图灵碗
计算机先驱人物约翰·巴克斯2007年3月病逝, 享年82岁。 美国计算机学会评奖委员会联合主席吉姆·霍宁评价说,Fortran语言的诞生是计算机领域的一个巨大突破,它改变了“游戏方式”,“而这种性质的改变在计算机业的历史上仅有过两三次。” 计算机先驱人物约翰·巴克斯2007年3月病逝, 享年82岁。
FORTRAN及其历史版本 FORTRAN是英文“FORmula TRANslator”的缩写,译为“公式翻译器”, 广泛应用于科学和工程计算领域。FORTRAN语言以其特有的功能在数值、科学和工程计算领域发挥着重要作用。在数值计算界它的地位还是很难动摇的。
历史版本 1951年,美国IBM公司着手研究开发FORTRAN语言,并于1954年对外发布,称FORTRANⅠ。 1966年,推出FORTRAN 66,美国标准,后被ISO采用。 1978年,推出FORTRAN 77,兼容性好,结构化特征。 1991年,推出FORTRAN 90,现代语言,可视化编程。 1995年,微软公司在Developer Studio集成开发平台上推出FORTRAN PowerStation 4.0。引入可视化编程技术。 1997年,微软和数据设备公司合作推出Digital Visual FORTRAN 5.0,功能强大。FORTRAN 95标准同年推出。 1998年,康柏公司与数据设备公司合并,推出Compag Visual FORTRAN 6.x。 2004年,推出FORTRAN 2003,解决了现代化问题,支持面向对象 FORTRAN 66流行了十几年,几乎统治了所有的数值计算领域,许多应用程序和程序库都是用FORTRANⅣ语言编写的。 FORTRAN 77标准完成后,新版本的修订工作也在同一时间开始进行。这个版本进行了15年,最后在1992年正式由国际标准组织ISO公布,它就是FORTRAN 90。
程序设计概述 任何计算机系统都是按照人们用某种程序设计语言编写的程序进行工作,人们通过程序设计语言编写的程序来指挥和控制计算机运行。 WORD软件 程序设计语言 计算机 人 任何计算机系统都是按照人们用某种程序设计语言编写的程序进行工作,人们通过程序设计语言编写的程序来指挥和控制计算机运行。
程序设计概述 程序设计语言是人与计算机进行交流的有效工具,伴随计算机诞生而诞生,伴随计算机发展而发展,在计算机科学技术的发展过程中,发挥了巨大作用。 对于计算机来说,如果说CPU是计算机心脏,那么程序设计语言及其程序就是其灵魂。了解和掌握程序设计语言和程序设计方法是驾驭和运用计算机系统的重要一环。
程序设计语言分类 机器语言 程序设计语言 低级语言 汇编语言 高级语言 目前,程序设计语言种类很多,各有特色,但本质相同。 程序设计语言属于人工语言、形式语言、非自然语言。 程序设计语言分:低级语言(机器语言、汇编语言)、高级语言。
程序设计语言分类 机器语言:计算机能直接理解、的识别和执行的程序设计语言,它由0和1两个二进制符号按照规则描述和表达。与具体的硬件系统有关。其优点是计算机能直接识别,运行效率极高。 汇编语言:是用一些可靠性、易于理解的符号来取代机器语言中难于理解的二进制编码。可以大大提高程序的可理解性、可读性、可维护性和可移植性。
程序设计语言示例比较 0010001100000010 -----将2送累加器A 机器语言程序 0000001100000011 -----将3与累加器相加,结果在累加器 00110111 -----将累加器数取反,求反码 00010111 -----将累加器数加1,求补码,结果为-5 0000001100000100 -----将4与累加器相加,结果-1在累加器 00010111 -----将累加器数加1,求补码,结果为1 00000010 -----将累加器数1从总线输出 机器语言程序 MOV A,2H -----将2送累加器A ADD A,3H -----将3与累加器相加,结果在累加器 CPL A -----将累加器数取反,求反码 INC A -----将累加器数加1,求补码,结果为-5 ADD A,4H -----将4与累加器相加,结果-1在累加器 INC A -----将累加器数加1,求补码,结果为1 OUTL BUS,A -----将累加器数1从总线输出 汇编语言程序 aaaaaaaaaaa 高级语言程序 PRINT *,2+3-4 -----计算2+3-4,并输出 END
源程序、目标程序、汇编程序、编译程序之关系 机器语言目标程序 高级语言源程序 汇编语言程序 编译程序 汇编程序 高级程序语言不能被计算机直接识别、理解和执行,必须将其翻译转换成机器语言程序或者先翻译成汇编语言程序,再通过汇编程序翻译转换成机器语言程序。高级语言程序的翻译转换工作由计算机通过相应软件自动完成,翻译过程称为:编译,完成编译的软件叫编译程序,被翻译的叫源程序,翻译后生成的机器语言程序称为:目标程序。
程序设计概述 程序就是一组符合程序设计语言词法、语法和语义规定的计算机指令或语句组成的语句序列。指令序列规定了指令的执行顺序。 程序设计语言是全部计算机指令(或语句)的集合。 用程序设计语言编写的程序类似用自然语言写的一份工作计划,如同可写出多份’工作计划一样,用程序设计语言也可写出许多不同的程序,计算机的神奇之处就是可以执行许许多多奥妙无穷的程序。 程序有小型、中型、大型和特大型之分,前面程序是一个小型程序,文字处理系统(如:WORD是一个大型程序,Windows操作系统程序是一个特大型程序。 程序加文档说明通常称为软件,由于中型、大型和特大型程序一般都配置详细的文档说明,所以一般称其为软件,如文字处理系统WORD一般称“WORD软件”。 软件按性质可分为系统软件和应用软件。 PROGRAM example PRINT *, 'Hello World!' END
程序设计概述 词法、语法和语义是程序设计语言三个最基本概念。 词法: 组成合法语句的基本单位称为单词,构成合法单词的规则称为词法。如:语句“PRINT * ,sum ,ave”中的“PRINT”、“*”、“,”、“sum”、“ave”都是合法单词,如果将“PRINT”改写成“PRN”,由于“PRN”不是FORTRAN语言的合法单词。 语法:具有特定含义的符号串或句子称为语句,构成合法语句的规则称为语法。如:语句“PRINT * ,sum ,ave”就是符合语法规则的合法语句,如果将其改写成“PRINT ,* ,sum,ave”就不是一个合法语句。 语义:合法语句的实际含义称为该语句的语义。语义通常采用自然语言描述。程序设计语言规定了每一个语句的语义。对语义的理解是否准确,直接影响程序的可靠性和正确性。如FORTRAN语言规定PRINT语句语义是输出,如果理解为输入,则程序将产生错误。
程序设计概述 程序设计:采用科学、规范、正确的方法编写程序的过程。 程序设计不是一个简单、呆板、单调的程序书写过程,而是一个复杂、灵活、多样的智力活动过程。 一个高素质的程序设计人员应具备以下能力: 有较强的逻辑思维能力,严谨的逻辑思维方法。 准确理解算法概念和特性,掌握算法设计方法,熟悉常用算法 熟练掌握程序设计的基本概念和方法。 熟练掌握多种程序设计语言,理解语言词法、语法和语义。 具有较强的计算机操作能力和程序调试经验。
程序设计步骤 分析问题,建立数学模型; 设计算法,绘制流程图; 选择语言,编写程序; 调试程序,分析结果; 整理资料,撰写文档。 进行程序设计要遵循有关的程序设计规则和采用成熟的程序设计方法。 程序设计方法有两种:一种是面向过程方法;一种是面向对象方法。前者称为传统方法,后者称为现代方法,代表了程序设计方法的发展趋势。面向过程方法又分为模块化方法和结构化方法。
面向过程程序设计方法-模块化 模块化就是把大的程序划分成若干模块,每个模块完成一个子功能,所有模块组成一个整体,相互协调,共同完成特定功能满足问题求解要求。 大的、比较复杂的问题 子问题1 子问题2 子问题3 子问题4 子问题21 子问题22
面向过程程序设计方法-结构化 Fortran语言程序结构化程序设计方法有三种基本结构 顺序结构 选择结构 循环结构
顺序结构程序与选择结构程序 顺序结构程序 选择结构程序 program main program main integer a, b, max; read *,a, b if( a > b ) max = a else max= b end if print *,’max =‘, max END program main REAR a, b, c READ *,a, b c = a+ b; PRINT *,’c =‘, c End program 程序自上而下按语句顺序逐句执行,且每条语句都执行一次 根据条件判定结果决定语句执行顺序,只执行满足条件的语句。某些语句可能执行不到。
循环结构程序 循环结构程序 重复执行一个或几个模块,直到满足某一条件为止。 program main do while(abs(d)>1.0e-6) d=(2*x**3-4*x**2+3*x-7) /(6*x**2-8*x+3) x=x-d enddo print*,'计算结果=',x END 重复执行一个或几个模块,直到满足某一条件为止。
程序设计概述--算法 古老含义是采用算术的方法根据已知条件求解未知问题的运算过程,即解题过程。 传统含义是采用科学的方法根据现有资料完成某项事务的执行过程。 现代含义是采用逻辑思维的方法对获取数据用计算机处理的步骤,即计算机解题步骤或计算机算法
程序设计概述--算法基本特征 算法有五个基本特征: 有穷性:算法是一有穷步骤序列,即一个算法必须在执行有穷步之后结束。 确定性:算法中的每一步骤不能有歧义性(二义性、不确定性)。 大于等于0个输入:算法开始执行前,可以有0个或若干个输入数据。 大于等于1个输出:算法在执行过程中必须有1个以上输出,即算法中必须有输出操作。 能行性:算法中的每一步骤是可实现的,即在现有计算机上是可执行的。
程序设计概述--算法评价标准 算法有四个评价标准: 正确性:一个好的算法或程序必须保证执行后的结果正确。 可读性:一个好的算法或程序应有良好的可读性。 通用性:一个好的算法或程序要尽可能通用,应适用一类问题的求解,提高算法设计的效率。如:设计求解一元二次方程2x2+3x+1=0的算法,该算法最好设计成求解一元二次方程ax2+bx+c=0的算法。 高效率:高效率包括时间和空间两个方面。执行速度快、运行时间短、占用内存少。 问题:有长10米,宽5米的一块地,地价是每平方米4000元,求总地价,并输出。 !通用性好,适合任意长宽地块 !求地价,并输出 INTEGER length,width,area,price PRINT*,’输入地块长宽值:’ READ*,length,width area=length*width price=4000*area PRINT*,’总地价:’,price,’元’ END !通用性差,特定地块 x=10 y=5 a=x*y b=4000*a PRINT*,b 问题:有长10米,宽5米的一块地,地价是每平方米4000元,求总地价,并输出。 !可读性好 !求地价,并输出 INTEGER length,width,area,price PRINT*,’输入地块长宽值:’ READ*,length,width area=length*width price=4000*area PRINT*,’总地价:’,price,’元’ END !可读性差 READ*,x,y a=x*y b=4000*a PRINT*,b
程序设计概述--算法描述工具 算法一般有五种描述工具: 用自然语言描述算法。 用流程图描述算法。 问题: 计算1+2+3+ … +100,并输出。 自然语言描述 流程图(框图)描述 ⑴ 将0赋予sum。 ⑵ 将1赋予i。 ⑶ 判断i≤100吗? ⑷ 若i>100,则转⑻。 ⑸ 将sum+i赋予sum。 ⑹ 将i+1赋予i。 ⑺ 转⑶。 ⑻ 输出sum值。 ⑼ 结束 0=>sum 1=>I I≤100 sum+I=>sum I+1=>I 输出sum Y N 结 束 开始 算法一般有五种描述工具: 用自然语言描述算法。 用流程图描述算法。 用N-S图描述算法。(合图:取消了带线头的流程线) 用PAD图描述算法。(问题分析图:日本日立公司发明) 用伪代码描述算法。(介于自然语言与高级语言之间的描述工具)
Compaq Visual Fortran 6.5及其开发环境 Compaq Developer Studio是Compaq公司开发的一个可视化集成开发环境(IDE),为多种软件系统提供统一的可视化集成开发平台。
Compaq Visual Fortran 6.5及其开发环境 Compaq Developer Studio将文本编辑器、资源编辑器、项目创建工具、增量连接器、源程序浏览器、程序调试器和信息查询器等集成在一起,以可视化形式进行程序的编辑、编译、调试、运行等操作,用户在统一的视窗界面上操作,完成FORTRAN 90程序的设计和开发。
Compaq Visual Fortran 6.5开发环境主窗口
Compaq Visual Fortran 6.5及其开发环境 Developer Studio通过工作空间和项目来合理地组织文件,工作空间和项目功能类似“我的电脑”资源管理器功能。 。 工作空间:项目集合。一个工作空间创建一个文件夹,且文件夹内包含若干项目(子文件夹)和二个管理这些项目的数据库文件(.opt,.dsw)。 项目:与软件有关的源程序文件、资源文件、辅助文件的集合。一个项目构成可独立运行的软件。一个项目创建一个文件夹,且文件夹内包含源程序文件、资源文件、辅助文件、可执行文件、数据库管理文件。
在Compaq Visual Fortran 6.5中新建工程 1、新建工作空间 2、新建工程 3、添加源代码文件 4、编译、链接、运行
小 结 程序设计 算法 编程环境 程序概念 程序设计语言分类 程序设计方法 定义 基本特征 评价标准 Compaq Visual Fortran 6.5 工作空间、项目、文件之间的关系
作业要求 熟悉Compaq Visual Fortran 6.5开发环境 测试P38程序