fortran90程序设计chapter2

更新时间:2023-12-26 08:14:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第二章 Digital Visual FORTRAN 5.0 入门

FORTRAN语言是最早出现的计算机高级程序设计语言,它对程序设计语言的研究和发展产生了极其深刻的影响。随着计算机科学技术的飞速发展,FORTRAN语言也不断得到完善和充实,从传统FORTRAN,到结构化FORTRAN,再到具有现代特征的Digial Visual FORTRAN 5.0。

本章将介绍FORTRAN语言的发展历史、Digital Visual FORTRAN 5.0简介、Microsoft Developer Studio开发环境、FORTRAN 90语言书写格式,以及FORTRAN 90程序的编辑、创建、打开、保存、编译、连接和运行等内容。

2.1 FORTRAN语言发展概述

FORTRAN是英文“FORmula TRANslator”的缩写,译为“公式翻译器”,它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。FORTRAN语言以其特有的功能在数值、科学和工程计算领域发挥着重要作用。

早在1951年,美国IBM公司约翰·贝克斯(John Backus)针对汇编语言的缺点着手研究开发FORTRAN语言,并于1954年在纽约正式对外发布。称约翰·贝克斯提出的FORTRAN语言为FORTRANⅠ,FORTRANⅠ虽然功能简单,但它的开创性工作,在社会上引起了极大的反响。到1957年第一个FORTRAN编译器在IBM704计算机上实现,并首次成功运行了FORTRAN程序。

在1958年,对FORTRANⅠ进行了扩充和完善,引进了子函数等概念,推出了商业化的FORTRANⅡ版本。之后,FORTRAN语言发展迅速,多种版本相继在其它计算机上实现。

在1962年,推出了FORTRAN Ⅳ。FORTRAN Ⅳ没有充分考虑兼容性,导致FORTRANⅡ程序不能在FORTRAN Ⅳ系统中运行,使其应用受到了很大限制,这时语言不兼容性问题和影响被突出表现出来。此前也出现过FORTRAN Ⅲ,但由于存在严重缺陷,没有在计算机上实现。

随着FORTRAN语言版本的不断更新和变化,语言不兼容性问题日益突出,语言标准化工作被提上了日程。1962年5月,美国标准化协会(简称ANSI)成立相关机构着手进行FORTRAN语言标准化的研究工作,并于1966年正式公布了两个标准文本:美国国家标准FORTRAN(ANSI X3.9-1966)和美国国家标准基本FORTRAN(ANSI X3.10-1966),前者相当于FORTRAN Ⅳ,后者相当于FORTRANⅡ。基本FORTRAN是美国国家标准FORTRAN的一个子集,从而实现了语言的向下兼容,初步解决了语言的兼容性问题。通常称美国国家标准FORTRAN为FORTRAN 66。FORTRAN 66的推出在国际上产生了广泛影响,1972年国际标准化组织(简称ISO)在FORTRAN 66基础上制定了FORTRAN语言三级国际标准:基本级、中间级和完全级。

20世纪60代末,结构化程序设计方法提出后,具有结构化特征的程序设计语言开始出现,如:ALGOL、PASCAL、MODULA、C等。如何将结构化特征引入FORTRAN 66引起计算机厂商和研究机构的高度重视,许多计算机厂商开始对FORTRAN 66进行不同程度的扩充,引入了结构化特征。针对这种情况,ANSI于1976年对FORTRAN 66(ANSI X3.9-1966)进行了修订,吸收了计算机厂商所扩充的一些行之有效的功能,同时增加了许多新内容。ANSI于1978年4月正式公布了新的美国国家标准(程序设计语言FORTRAN ANSI X3.9-1978),同时宣布撤消ANSI

第二章 Digital Visual FORTRAN 5.0 入门

FORTRAN 3.9-1966,通常称新标准为FORTRAN 77(该版本原计划1977年公布)。FORTRAN 77向下兼容FORTRAN 66。在1980年,FORTRAN 77被ISO正式确定为国际标准ISO 1539-1980,该标准分全集和子集。FORTRAN 77推出后,由于具有结构化特征,在社会上得到了广泛应用,同时由于扩充了字符处理功能,在非数值处理领域也能大显身手。

20世纪80年代末,FORTRAN 77结构化和现代化的研究开始兴起,到1991年5月,ANSI公布了新的美国国家标准FORTRAN(ANSI 3.198-1991)。之后,ISO采纳该标准,并确定为国际标准ISO/IEC 1539-1:1991,新国际标准还采纳了我国计算机和信息处理标准化技术委员会程序设计分会提出的多字节字符集数据类型及相应的内部函数,为非英语国家使用计算机提供了极大的方便。通常称新标准为FORTRAN 90,FORTRAN 90向下兼容FORTRAN 77。之后不久又出现了FORTRAN 95。

FORTRAN 90的推出,使传统FORTRAN语言具有了现代气息。微软公司将FORTRAN 90无缝集成在Developer Studio集成开发环境之中,推出了Microsoft FORTRAN PowerStation 4.0,使FORTRAN 90真正实现了可视化编程,彻底告别了传统DOS环境(字符界面),转到了现代Windows环境(视窗界面),共享微软公司Windows平台的丰富资源。在1997年3月,微软公司和数据设备公司(Digital Equipment Corp,简称DEC)强强联合,合作研究、开发和推出了功能更强的FORTRAN语言新版本:Digital Visual FORTRAN 5.0,它是Microsoft FORTRAN PowerStation 4.0的升级换代产品。DEC公司在高性能科学和工程计算方面拥有世界领先技术,其高质量的FORTRAN编译器遍及全球。1998年1月,DEC与Compag公司合并,DEC成为Compag公司的全资子公司,于是Digital Visual FORTRAN更名为Compag Visual FORTRAN,到目前为止,Visual FORTRAN的最新版本为Compag Visual FORTRAN 6.6。

FORTRAN语言发展简述如表2-1所示。

表2-1 FORTRAN语言发展简述

说明 由约翰.贝克斯提出,1957年在IBM704计算机上实现。该1954 FORTRAN Ⅰ 版功能简单,对高级语言发展贡献大 1958 FORTRAN Ⅱ 对FORTRAN Ⅰ进行扩充,引入子函数概念,投入商业运行 1960 FORTRAN Ⅲ 该版本有一定缺陷,未在计算机上实现和在实践中使用 功能趋于完善,语言趋于成熟,兼容性差,与早期版本不兼1962 FORTRAN Ⅳ 容,应用受限制 语言标准规范,ANSI有两个标准,ISO有三个标准,相当1966 FORTRAN 66 FORTRAN Ⅱ和FORTRAN Ⅳ 对FORTRAN 66进行了扩充,引入结构化特征,支持结构化程1978 FORTRAN 77 序设计,扩充字处理功能,可用于非数值处理领域,完全向下兼容 对FORTRAN 77进行了扩充,引入现代语言特征,功能强大,1991 FORTRAN 90 结构化程度和灵活性很高,缩短了与PASCAL、C、JAVA等语言的差距,完全向下兼容 微软公司产品,支持FORTRAN 90,Developer Studio集成环1995 FORTRAN PowerStation 4.0 境,视窗界面,可视化编程,可开发Windows程序 微软和DEC公司合作产品,是FORTRAN PowerStation 4.01997 Digital Visual FORTRAN 5.0 升级换代产品,功能十分强大 Compag与DEC公司合作产品,是Digital Visual FORTRAN 1998 Compag Visual FORTRAN 6.x 5.0升级换代产品,最新版本为6.6版 时间 版本 -22-

2.2 FORTRAN 90主要特征

2.2 FORTRAN 90主要特征

FORTRAN 90引入了许多新的特性,体现了现代气息,并保持了良好的兼容性,完全向下兼容FORTRAN 77。FORTRAN 90仍保留了过时内容,含有过时内容的FORTRAN 77程序在FORTRAN 90中认为是合法的,可以运行。在程序设计中提倡使用FORTRAN 90新特性编写程序。 1. 程序组织结构

FORTRAN 90采用模块化和结构化相结合的程序组织结构。FORTRAN 90程序由四部分组成:主程序单元、外部子程序单元、模块单元和数据块单元,可分别保存在独立的源程序文件中,分别编译,最后连接和运行。FORTRAN 90程序组织结构如图2-1所示。

FORTRAN 90程序 主程序单元 CONTAINS 外部子程序单元 外部子程序1 CONTAINS 内部子程序组 内部子程序组 外部子程序2 CONTAINS 内部子程序组 内部子程序组 数据块说明 模块单元 类型说明部分 CONTAINS 数据块单元 图2-1 FORTRAN 90程序组织结构

FORTRAN 90程序有且只能有一个主程序单元,其它程序单元可有可无,可多可少。子程序分内部子程序和外部子程序,有不同的使用范围,外部子程序只能在外部子程序单元中说明和定义,内部子程序只能在主程序、外部子程序模块中的CONTAINS和END语句之间说明和定义。模块单元中的子程序称为模块子程序。 2. 源程序书写形式

FORTRAN 90源程序有自由格式和固定格式两种书写格式,可任选一种格式书写。

固定格式采用FORTRAN 77书写格式,有严格的书写限制。固定格式规定:一个程序单元由若干行语句组成,每行80个字符,分四个区域:标号区、续行区、语句区和注释区,如图2-2所示。

? 1-5为列标号区,标号区第一个字符为“!”表示该行为注释行,FORTRAN 77规定第一个字符为“C”或“*”表示该行为注释行,之外,标号区只能写代表标号的整数。

? 6列为续行区,续行区字符为“&”,FORTRAN 77规定续行区字符为任意非0非空格字符。当语句在语句区一行内写不下时,可使用续行。

? 7-72列为语句区,语句区只能书写FORTRAN语句,从第7列开始,一行只能写一条语句,一条语句写不下,可使用一行或多行续行。语句区内空格被忽略(字符串内空格除外)。

? 73-80列为注释区,注释区给出该行语句的简要说明。注释区注释不需给出“!”字符。

-23-

第二章 Digital Visual FORTRAN 5.0 入门

标号区 续行区 (1-5列) (6列) 语句区

(7-72列) 注释区 (73-80列) ! 求一元二次方程两个实根 PROGRAM quadratic REAL a,b,c,d,x1,x2 READ *,a,b,c 输入系数 d=b*b–4*a*c 计算判别式 100 IF (d>=0) THEN x1=(–b+SQRT(d))/(2*a) x2=(–b–SQRT(d)) & /(2*a) PRINT *, 'x1=' , x1 PRINT *, 'x2=' , x2 ELSE PRINT *, '该方程有复数根。' END IF END 程序结束

图2-2 固定格式书写示例

自由格式采用PASCAL、C等现代语言书写格式,书写不再受分区和位置限制。自由格式规定:一个程序单元由若干行语句组成,一行长度可任意(默认为132个字符);“!”字符后均为注释说明文字;标号与语句之间用空格间隔;一行可写多条语句,语句之间用“;”字符间隔;语句可从任意位置开始书写,如图2-3所示。

! 求一元二次方程两个实根

PROGRAM quadratic

REAL a,b,c,d,x1,x2

READ *,a,b,c !输入方程系数

d=b*b–4*a*c !计算判别式

IF (d>=0) THEN

x1=(–b+SQRT(d))/(2*a); x2=(–b–SQRT(d))/(2*a)

PRINT *, 'x1=', x1

PRINT *, 'x2=', x2

ELSE

PRINT *, '该方程有复数根。'

END IF

END !程序结束

图2-3 自由格式书写示例

-24-

2.2 FORTRAN 90主要特征

3. 结构化控制语句

FORTRAN 90改善和扩充了FORTRAN 77中的结构化控制语句,提供了块IF、块CASE、DO循环和DO WHILE循环语句。语句中都将END IF、END SELECT或END DO作为语句的结束子句,取消了CONTINUE语句。FORTRAN 90还允许对结构化控制语句进行命名,如图2-4所示。

Sum:DO I<=10

S=S+I

I=I+1

END DO Sum

图2-4 循环语句命名

4. 过程

过程是被命名的一组语句,也称子程序,通过调用执行,完成一系列运算或操作,获得运行结果。过程分函数和子程序。FORTRAN 90增加了递归过程。

5. 作用域

作用域是指程序中名称(变量名、子程序名、函数名等)的作用范围,FORTRAN 90规定了名称的作用域。主程序单元中声明的名称其作用域为整个程序以及与公用块有关的所有外部子程序。子程序内声明的名称其作用域为子程序本身。不同作用域声明的名称可以重名,只在自身作用域内起作用,互不干扰。作用域说明如图2-5所示。

PROGRAM main

REAL a,b,c

CONTAINS

SUBROUTINE p1(?)

REAL b?,c?,d b?,c?,d a,b,c

的作用域 的作用域

END SUBROUTINE p1

SUBROUTINE p2(?)

REAL c?,d?,e c?,d?,e

的作用域

END SUBROUTINE p2

END

图2-5 作用域说明

6. 关联

关联是将同一作用域单元的变量联系起来,允许已声明的变量可被同一作用域内的其它变量访问。有三种关联:名称关联、指针关联和存储关联。

7. 数据类型

FORTRAN 90提供五种预定义的内部数据类型(INTEGER、REAL、COMPLEX、CHARACTER、LOGICAL),并引入了派生数据类型特征,提供了派生类型声明语句TYPE?ENDTYPE,使FORTRAN

-25-

第二章 Digital Visual FORTRAN 5.0 入门

90能说明和定义复杂的数据结构。FORTRAN 90同时对五种预定义的数据类型进行了扩充,为其指定了一个类型参数值(KIND值),用于指定数据类型在内存中的存储方式和取值范围。

8. 数组

数组是一组有序的、数据类型相同的数据集合。FORTRAN 90对数组的操作有了很大改进,提供了许多能直接对数组进行操作的语句和函数,数组可按单个数据对象进行处理。

9. 指针

指针是具有动态属性的变量,用于构建动态数据结构的一种数据形式。FORTRAN 90引入了指针概念,新增了指针类型数据,使数据的动态构建和访问成为可能。

10. 输入输出 FORTRAN 90扩充了输入输出功能,引入了新的输入输出方法,可设定文件操作的访问权限,可了解文件的开关状态。READ和WRITE语句功能得到了扩充。

11. 语法检测 FORTRAN 90强化了程序的语法检测功能,能对语法进行有效检测并加以报告,编程人员可通过编译开关决定是否对检测结果进行报告。

2.3 Digital Visual FORTRAN 5.0主要特性

Digital Visual FORTRAN 5.0是微软公司Microsoft FORTAN PowerStation 4.0的升级换代产品,它是微软和DEC公司于1997年起合作开发的产品,是一个集编译、连接、调试和运行于一身的FORTRAN 90集成开发环境。

Digital Visual FORTRAN 5.0有两个发行版本:标准版和专业版。 ? 标准版包括:Digital Visual FORTRAN(DVF)编译器、DVF程序库和Developer Studio。 ? 专业版包括:DVF编译器、DVF程序库、Developer Studio和IMSL程序库。 Digital Visual FORTRAN 5.0的主要特性有:

? 支持FORTRAN 90标准,包含部分FORTRAN 95特性,支持多种平台FORTRAN 语言扩展。 ? 可共享Windows环境的丰富资源和微软公司的软件产品。软件开发速度快、效率高。 ? 支持COM组件对象模型(Component Object Model)和OLE自动对象(OLE Automation Objects),提供模块向导功能,可快速产生调用COM和OLE对象的FORTRAN 90模块。

? 专业版提供了处理数学和统计数据的IMSL数值库,库中给出了源程序和模块文件、在线帮助、在线README文件、大量应用例子以及用于多处理和高性能系统的算法。

? 支持命令行界面(文本界面、DOS环境),允许定制命令行窗口环境。安装后在FORTRAN程序文件夹中生成F90图标文件,执行该文件,可进入命令行窗口环境。

? 兼容性好,提供多种平台和多种版本扩展特性,如:兼容Digital UNIX和OpenVMS Alpha系统上的Digital FORTRAN以及Windows系统上的Microsoft FORTRAN Powerstation 4.0。

? 提供强大的在线帮助系统InfoViewer,在编程的同时就可实时获得必要的帮助信息。 ? 支持多语言混合编程,发挥不同语言的优点开发高质量的程序或软件。可混合编程的语言有:Visual FORTRAN、Visual C++、Visual J++、Visual Basic和Microsoft MASM。

? Visual FORTRAN为微软公司Visual 系列产品之一,可与其它Visual系列产品(如:Visual Basic)协同开发32位Windows应用程序。

-26-

2.4 Digital Visual FORTRAN 5.0软硬件配置和安装

2.4 Digital Visual FORTRAN 5.0软硬件配置和安装

Digital Visual FORTRAN 5.0功能强大,但同时对运行环境的软硬件配置提出了较高要求。软硬件配置不当,会降低其性能,甚至会导致其无法运行。 1. 硬件配置

使用Digital Visual FORTRAN 5.0的基本硬件配置有: ? 要求Intel 486/66 MHz以上CPU,或完全兼容CPU。

? 对于Windows95/98/2000下的x86系统,要求16M以上内存;对于Windows NT下的x86系统,要求24M以上内存;对于Windows NT下的Alpha系统,要求32M以上内存。

? 要求32速以上光驱。

? 对于标准版(x86系统),要求30M(光驱运行安装)?190M(完全安装)硬盘;对于专业版(x86系统),要求30M?240M;对于专业版(Alpha系统),要求40M?260M。

? 要求VGA以上显示器,推荐17英寸SVGA显示器。 ? 鼠标或其它兼容定位设备。 2. 软件配置

使用Digital Visual FORTRAN 5.0的基本软件配置有:

? Windows 95/98/2000/NT 4.0,或UNIX、OpenVMS操作系统平台(必须)。 ? Visual C++、Visual J++、Visual Basic、MASM程序设计语言(可选)。 ? Microsoft Excel 97/2000数据图示工具(可选)。

? Visual KAP优化与并行处理(可选),用于优化和并行处理FORTRAN代码。 ? Internet Explorer网络浏览软件(可选),用于浏览软件在线信息。 ? 微软公司的其它软件产品(可选)。 3. 软件安装

以Windows平台为例,介绍软件安装过程。 ?启动Windows系统平台;

?若系统平台为Windows NT,则以受权名称登录; ?把Digital Visual FORTRAN 5.0光盘插入光驱;

? 若初次安装,则插入光盘后,自动运行安装程序,弹出安装主窗口。若非初次安装,则插入光盘后,打开光盘,双击执行SETUP程序,弹出安装主窗口。

? 在安装主窗口中,单击“Install Visual FORTRAN”命令按钮,开始安装;

? 弹出“Welcome”对话框,提示停止其它程序运行,单击“Next”按钮,继续安装; ? 弹出“Registration”对话框,给出软件许可协议,单击“Yes”按钮接受协议,在对话框中输入注册信息(名称、单位、注册号),单击“Next”按钮,继续安装;

? 弹出“Setup Install Type”对话框,给出三种安装类型:典型安装(Typical)、定制安装(Custom)和由光驱运行安装(Run From CD-ROM)。对话框中给出系统默认安装路径“C:\\Program Files\\DevStudio”,用户可改变安装路径。单击“Next”按钮,继续安装;

? 弹出“Select Folder”对话框,指定程序组名,缺省为“Visual FORTRAN 5.0”,单击“Next”按钮,进行检测和文件复制。文件复制完成后,开始创建程序组和图标。

? 弹出“Setup Complete”对话框,单击“Finish”按钮,完成安装;

-27-

第二章 Digital Visual FORTRAN 5.0 入门

说明: ① 对于普通用户,推荐典型安装,安装软件最常用组件。对于高级用户,推荐定制安装,灵活选用相 关软件组件,以达到最佳存储开销。对于硬盘空间有限的用户,推荐由光盘运行安装类型,只在硬盘上安 装最小的公用组件,其它组件需直接在光驱上运行。 ② 在安装中,可选择FORTRAN PowerStation 4.0命令行组件,则指定安装路径,默认为“C:FPS4”。 ③ 若计算机中未安装IE浏览器,安装过程中提示是否安装IE。 ④ 若已安装了微软可视化开发工具:Visual C++、Visual J++等,Visual FORTRAN 安装在已有的 相同版本的Microsoft Developer Studio目录内。 ⑤ 在安装中可升级使用命令行窗口的环境变量。单击“Yes”按钮升级,修改Autoexec.bat文件 内容,插入一条CALL命令来执行Dfvars.bat文件。

2.5 Microsoft Developer Studio开发环境概述

Digital Visual FORTRAN 5.0不但支持FORTRAN 90语言标准,而且还提供了Microsoft Developer Studio可视化集成开发环境。

本节简要介绍Microsoft Developer Studio开发环境,详细内容参阅有关书籍。

2.5.1 Microsoft Developer Studio简介

Microsoft Developer Studio是一个可视化集成开发环境(IDE),它为多种软件系统提供统一的可视化集成开发平台。微软公司的许多软件产品(Visual FORTRAN、Visual C++、Visual J++、Visual Basic、Visual InterDev等)都允许共享使用Microsoft Developer Studio。

软件开发环境,特别是可视化集成开发环境的研究、开发和应用,长期以来一直是计算机厂商和一些研究机构关注的重点和焦点。到20世纪80年代末,美国Borland公司率先在DOS系统中开展集成化软件开发环境的研究,推出了集程序编辑、编译、调试、运行为一体的Turbo系列编程工具(Turbo C、Turbo PASCAL、Turbo BASIC等),允许用户在统一的操作界面下完成所有编程工作,极大地提高了程序设计的效率和质量,学习、掌握和使用编程工具变得简单、轻松和自然。Turbo系列编程工具在社会上流行、使用了很长一段时间。

进入90年代,随着视窗概念和图形界面的出现,Turbo系列软件已显落后,基于视窗技术软件的研究、开发和应用受到了普遍重视,微软公司可以说在这方面涉足最早且独占鳌头。早在20世纪90年代初,微软公司就在其产品Windows 3.x及所支持的软件中引入集成开发环境,特别是于1995年推出基于视窗技术的Windows 95操作系统后,陆续推出了许多可视化编程工具和可视化软件开发环境,其Visual系列编程工具(Visual FORTRAN、Visual C++、Visual J++、Visual Basic、Visual InterDev等)在社会上产生了极大影响。Microsoft Developer Studio就是集可视化和集成开发环境为一身的突出代表。

1995年,微软公司推出了Microsoft Developer Studio,并尝试在有关编程工具中使用,这些编程工具成为Microsoft Developer Studio下的重要组件。后来,其它Visual系列软件产品也使用Microsoft Developer Studio作为它们开发环境。微软公司率先将FORTRAN 90语言Visual化,引入Microsoft Developer Studio,于1995年推出了基于Microsoft Developer Studio的Microsoft FORTRAN PowerStation 4.0,其后1997年,微软公司与DEC

-28-

2.5 Microsoft Developer Studio开发环境概述

公司合作,共同研究、开发和推出了Digital Visual FORTRAN 5.0, Microsoft Developer Studio仍作为其集成开发环境,与FORTRAN 90形成一个有机整体。

微软Visual 系列软件都统一使用Microsoft Developer Studio作为开发环境。Microsoft Developer Studio与编程工具的关系如图2-6所示。 Visual FORTRAN Visual C++ Visual J++ Visual Basic 程序 程序 程序 程序 Microsoft Developer Studio

Visual FORTRAN Visual C++ Visual J++ Visual Basic

图2-6 Microsoft Developer Studio与编程工具的关系

Microsoft Developer Studio将文本编辑器、资源编辑器、项目创建工具、增量连接器、源程序浏览器、程序调试器和信息查询器等集成在一起,以可视化形式进行程序的编辑、编译、调试、运行等操作,用户在统一的视窗界面上操作,完成FORTRAN 90程序的设计和开发。

2.5.2 工作空间(Workspace)和项目(Project)

用户在开发软件过程中会创建和产生大量的源程序文件、资源文件和其它类型辅助文件(需求分析、规格说明书、流程图、开发计划等),这些文件相互关联,合理地组织这些文件是软件开发的一项重要工作,Windows中的资源管理器就是合理组织文件的有效工具。Developer Studio中的工作空间和项目功能类似资源管理器功能。在Developer Studio中,通过工作空间和项目来合理地组织文件。一个用户可根据所开发软件类型分类创建多个工作空间(类似文件夹),每个工作空间根据软件特点创建多个项目(类似子文件夹),每个项目内又可创建和生成有关的源程序文件、资源文件和其它类型辅助文件。对于由ActiveX部件(Word、Excel和Powerpoint等软件)创建的ActiveX文档均可添加到项目中。一个项目最简单情况是只有一个源程序文件。用户、工作空间、项目和文件及关系如图2-7所示。

用 户 工作空间1 工作空间2 工作空间3 工作空间4 工作空间5

项目31 项目32 项目33 项目34 项目35

源程序331 资源文件332 其它文件333

图2-7 用户、工作空间、项目和文件及关系

如读者在学习FORTRAN 90过程中,主要设计和编写3种类型FORTRAN程序:一类是作业程序;一类是练习程序;一类是应用程序。读者可分别创建3个工作空间:Homework、Exercise,Application,分别组织作业程序、练习程序和应用程序,以及相关文件。如果作业

-29-

第二章 Digital Visual FORTRAN 5.0 入门

有3个:Homework1、Homework2和Homework3,则在Homework工作空间中分别创建3个项目:Homework1、Homework2和Homework3,分别组织这些作业的作业程序及相关文件。如果Homework2作业有主程序单元、流程图和作业描述,则在Homework2项目中分别创建3个文件:主程序单元文件H2-Main.f90、流程图文件H2-Flowchart和作业描述文件H2-Describe.txt。读者、工作空间、项目和文件及关系如图2-8所示。

读 者 工作空间(文件夹) Exercise Homework Application Homework1 Homework3 Homework2 项目(文件夹) H2-Main H2-Flowchart H2-Describe 文件 图2-8 读者、工作空间、项目和文件的关系

2.5.3 启动Microsoft Developer Studio

开发FORTRAN 90程序,首先要启动Developer Studio,进入开发环境。启动方法分别有: ? 双击桌面上“Developer Studio”图标 ; ? 单击执行菜单项“开始”/“程序”/“Visual FORTRAN 5.0”/“Developer Studio”; ? 单击执行菜单项“开始”/“运行”,通过“运行”启动;

? 双击“我的电脑”图标,启动“资源管理器”,按路径“C:\\Program Files\\DevStudio\\ SharedIDE\\Bin”,找到“Msdev.exe”文件,双击“Msdev.exe”执行文件图标 ; 弹出Developer Studio主窗口,如图2-9所示,在主窗口中完成程序设计的相关操作。

环境窗口 工作空间 窗口 文档窗口 输出窗口

状态条

图2-9 Microsoft Develop Studio 主窗口

-30-

标题条 菜单条 工具条

2.5 Microsoft Developer Studio开发环境概述

2.5.4 Microsoft Developer Studio主窗口说明

主窗口由五部分组成:标题条、菜单条、工具条、状态条和环境窗口。 1.标题条

标题条位于Microsoft Develop Studio 主窗口顶部。左侧给出:当前打开的工作空间名(如quad1);“Microsoft Developer Studio”;当前打开的文件名或帮助信息主题。

2.菜单条

菜单条有9个菜单项,如图2-10所示。菜单内容可能会因操作状态不同而有所变化。

图2-10 停靠菜单条

菜单条具有停靠和浮动特性,处于停靠状态时,只能位于主窗口的顶部、底部、左侧或右侧,菜单条左侧或顶部显示把手特征(两条凸起的线条,若停靠在顶部或底部,则左侧显示把手,若停靠在左侧或右侧,则顶部显示把手)。拖动把手,可将其移到其它位置,若移至文档窗口内,则菜单条变成一个浮动窗口,也可双击把手,使菜单条变成浮动窗口,如图2-11所示。双击浮动菜单条窗口,可使菜单条变成停靠菜单条。

图2-11 浮动菜单条

? File菜单:完成工作空间、项目、文件的创建、打开、保存等工作。 ?New(新建):创建新的源程序文件、项目、工作空间或其它文档。

?Open(打开):打开已存在的源程序文件、项目、工作空间或其它文档。

?Close(关闭):关闭已打开的、当前处于活跃状态的源程序文件或其它文档。 ?Open Workspace(打开工作空间):打开工作空间。 ?Save Workspace(保存工作空间):保存工作空间。 ?Close Workspace(关闭工作空间):关闭工作空间。

?Save(保存):按当前名称保存处于活跃状态的源程序文件或其它文档。

?Save As(另存):按新名保存已打开且处于活跃状态的源程序文件或其它文档。 ?Save All(全存):按已有名称保存全部已打开的源程序文件或其它文档。 ?Rename(换名):改变文件的名称。

?Page Setup(打印设置):设置打印页面参数。

?Print(打印):从打印机打印源程序文件或其它可打印文档。 ?Recent Files(最近打开文件):列出最近打开文件。

?Recent Workspace(最近打开工作空间):列出最近打开工作空间。 ? Edit菜单:完成编辑、修改、查询、定位文档等操作。 ?Undo(撤消):撤消上一次操作。

?Redo(重复):还原恢复撤消后的操作。

?Cut(剪切):将选取的内容剪切并送至剪贴板。 ?Copy(复制):将选取的内容复制并送至剪贴板。

-31-

第二章 Digital Visual FORTRAN 5.0 入门

?Paste(粘贴):将剪贴板中内容粘贴至光标所在位置。 ?Delete(删除):将选取的内容删除。

?Select All(全取):选取当前文档的全部内容。 ?Find(查找):在文档中查询指定的字符串。

?Find in Files(查询文件):查询含指定字符串的文件。 ?Replace(替换):在文档中查询并替换指定的字符串。 ?Go To(定位):跳转到文档指定的行、书签、定义点等。 ?Bookmarks(书签):在文档中添加、删除或跳转书签。

?ActiveX Control in HTML(ActiveX控件):编辑修改HTML中的ActiveX控件。 ?HTML Layout(HTML层):编辑修改HTML层。

?Fortran Format Editor(Fortran 格式语句编辑器):编辑FORTRAN格式语句。 ?Advanced(高级):完成大、小写字母转换以及空格标注、增量查询等操作。 ?Breakpoints(断点):设置执行断点位置。

? View菜单:设置Developer Studio窗口显示方式。 ?Script Wizard(脚本向导):启动脚本向导。

?Resource Symbols(资源符号):浏览和编辑资源文件中的符号。

?Resource Includes(资源内嵌):编辑资源符号文件名和预处理指令。 ?Full Screen(全屏):全屏显示编辑窗口中的内容。 ?Workspace(工作空间):激活工作空间窗口。

?InfoViewer Topic(信息查询器主题):激活信息查询器主题窗口。 ?Results List(结果列表):显示信息查询结果列表窗口。 ?Output(输出):激活输出信息窗口。

?Debug Windows(调试窗口):激活有关调试窗口(变量观察、内存、变量等)。 ?Refresh(更新):从产品供应商处更新信息查询器窗口。 ?Preperties(属性):显示当前文件属性。 ? Insert菜单:在项目中添加或复制资源。

?Resource(资源):在项目中创建或添加资源。 ?Resource Copy(资源复制):在项目中复制资源。 ?Into HTML(进入HTML):添加ActiveX控件。 ?File As Text(文本文件):添加文本文件内容。 ? Project菜单:完成项目激活、添加、设置等操作。

?Set Active Project(激活):激活工作空间中的项目。 ?Add To Project(添加):添加文件到项目中。 ?Dependencies(相关):设置项目间的相关性。 ?Settings(设置):设置项目参数。

?Export Makefile(生成):生成“.mak”文件。

?Insert Project To Workspace(添加项目):添加项目至工作空间。 ? Build菜单:完成对程序的编译、构建、调试、配置等操作。 ?Compile(编译):编译源程序。

?Build(构建):将项目连接构建为可执行文件。

-32-

2.5 Microsoft Developer Studio开发环境概述

?Rebuild All(重新构建):重新构建全部项目。 ?Batch Build(批处理构建):一次构建多个项目。

?Clean(清除):删除构建项目生成的中间和结果文件。

?Update All Dependencies(更新):更新所选项目的相关性。 ?Start Debug(开始调试):启动调试器。

?Debugger Remote Connectio(调试器远程连接):连接本地或远程网络调试器。 ?Execute(执行):运行可执行文件(程序)。

?Set Active Configuration(设置配置):选择项目进行配置。 ?Configuration(配置):添加或删除项目配置。 ?Profile(外置):设置全局选项、全局信息。 ? Tools菜单:提供若干实用功能。

?Source Browser(原始信息浏览器):浏览程序原始信息(函数、数据、宏)。 ?Close Source Browser File(关闭.bsc文件):关闭浏览信息文件(.bsc文件)。 ?Fortran Module Wizard(模块向导):使用向导创建模块单元。 ?Cumtomize(定制):定制工具按钮、工具条、热键等对象。 ?Option(选项):通过“选项”对话框设置项目环境参数。 ?Macro(宏):创建和编辑宏。

? Window菜单:管理窗口,确定窗口布局。

?New Window(新窗口):创建当前编辑窗口的副本窗口。 ?Split(分割):将当前编辑窗口进行分割。

?Docking View(停靠显示):设置查询信息的停靠显示模式。 ?Close(关闭):关闭当前活跃窗口。 ?Close All(全关闭):关闭所有窗口。

?Next(下一个):设置下一个窗口为当前窗口。 ?Previous(前一个):设置前一个窗口为当前窗口。 ?Cascade(层叠排列):按层叠方式排列窗口。

?Tile Horizonally(水平排列):按水平方式排列窗口。 ?Tile Vertically(垂直排列):按垂直方式排列窗口。 ? Help菜单:提供在线帮助信息及信息查询手段。 ?Contents(目录):显示在线帮助信息文档目录。 ?Search(搜索):按关键字索引和查询在线帮助信息。

?Documentation Home Page(主页):进入产品供应商主页。 ?InfoViewer Bookmarks(信息书签):管理在线信息文档书签。 ?Synchronize Contents(同步目录):使信息主题与内容同步显示。 ?Define Subsets(定义子集):自定义信息子集。 ?Select Subsets(选择子集):选取信息子集。 ?Keyboard Map(键盘命令):显示所有键盘命令。

?Tip of the Day(当天提示):显示当天提示说明的一些技巧。 ?Digital Fortran Home Page(主页):访问软件主页。 ?About Developer Studio:显示软件版本信息。

-33-

第二章 Digital Visual FORTRAN 5.0 入门

3.工具条

工具条提供了一些常用的操作。有9个预定义工具条,每个工具条都有相应名称。

(a) (b)

图2-12 快捷菜单与“定制”对话框

? 工具条的显示与隐藏。

主窗口中默认显示Standard、Build MiniBar和Fortran工具条,其它工具条通过快捷菜单或定制对话框显示或隐藏。在工具条空白区或文档窗口区单击右键,弹出快捷菜单,如图2-12(a)所示,或者选择执行菜单项“Tools”/“Customize”,弹出“Customize”对话框,选择“Toolbars”选项卡,如图2-12(b)所示。如果工具条名称左侧有符号“√”,则显示该工具条,否则隐藏工具条。单击工具条名称可在显示或隐藏状态之间切换。

? 工具条的停靠与浮动。

工具条具有停靠和浮动特性。工具条停靠和浮动特性类似于菜单条。 ? 工具条的创建与编辑。

根据需要可创建新工具条。通过快捷菜单或“Tools”菜单打开“Customize”对话框,选择“Toolbars”选项卡,如图2-12(b)所示。单击“New”按钮,弹出“New Toolbar”对话框,如图2-13所示,键入新工具条名称,单击“OK”按钮,创建一个新的空白工具条,并在“Toolbars”选项卡左侧工具条列表中添加一个新工具条,且处于显示状态,同时在文档窗口内显示该空白工具条,如图2-14所示。在“Commands”选项卡,单击打开“Category”列表框,选择命令类型(如File类型),右侧列出该类型所有命令图标,选择一命令图标,将其拖至某工具条(预定义工具条或用户创建工具条)适当位置,可在该工具条添加新工具按钮,将工具按钮图标向右拖动一点,可进行按钮分组(左侧增加一竖线,分组线),如图2-15所示。也可选择“Menus”类型,将预定义菜单项拖至工具条中,如图2-16所示。选择“New Menu”类型,可创建新的菜单,方法类似创建新的工具条。

图2-13 “New Toolbar”对话框

-34-

2.5 Microsoft Developer Studio开发环境概述

新工具条“Mytool1” 新工具条“Mytool1” 图2-14 创建新工具条“Mytool1”

工具按钮分组 拖动方向 图2-15 添加工具按钮图标

当“Customize”对话框打开后,可将主窗口中某工具条的某按钮用鼠标拖至“Customize”对话框,即可在该工具条中取消该工具按钮。

-35-

第二章 Digital Visual FORTRAN 5.0 入门

图2-16 添加菜单图标

拖动方向 4.状态条

状态条处于窗口底部,显示操作说明、行号、列号、时间等信息。

5.环境窗口

主窗口提供若干环境窗口作为开发软件的工作场所。环境窗口占据主窗口的大部分区域。环境窗口有两种:停靠窗口和文档窗口。菜单条和工具条是两种特殊停靠窗口。

停靠窗口具有停靠和浮动特性,类似于菜单条,如图2-17所示。具有把手图标的停靠窗口称为固定停靠窗口,可拖至主窗口顶部、底部、左侧和右侧。具有窗口标题条的停靠窗口称为浮动停靠窗口,可在文档窗口内任意拖动。固定和浮动停靠窗口可相互转换。停靠窗口可通过“View”菜单打开或关闭。有两个常用的停靠窗口:工作空间窗口(Workspace)和输出窗口(Output)。前者类似一个简单的资源管理器,以树形结构形式显示已打开的工作空间、项目和文件(源程序文件、资源文件或其它文档文件)。双击源程序文件、资源文件或其它文档文件可打开相应的文档窗口,在相应的文档窗口中完成输入、编辑、修改、查询等操作。后者显示操作结果信息。

文档窗口是位于停靠窗口一侧或停靠窗口下方的窗口,如图2-17所示。文档窗口一般为最大化显示,四周有边框且无标题,它不能用鼠标任意拖动。文档窗口可按3种平铺方式显示:层叠平铺、水平平铺和垂直平铺。标题呈蓝色的文档窗口为当前活跃窗口。最大化窗口与平铺窗口可相互转换,单击平铺窗口最大化按钮,可将该窗口最大化,选择执行“Window”菜单中的平铺菜单项,可使最大化文档窗口变为平铺窗口。单击关闭按钮可关闭文档窗口。平铺窗口可用鼠标在窗口区域内任意移动,拖动文档窗口时会显示一个黑色的矩形框(轮廓线)。

-36-

2.6 Microsoft Developer Studio解题过程

固定停靠窗口:Workspace 文本窗口:guard1.for 浮动停靠窗口:Output 图2-17 停靠窗口和文档窗口

Microsoft Developer Studio有两类主要的且频繁使用的文档窗口:源程序文档窗口和

信息查询文档窗口。前者类似一个简单的文本编辑器,以字符形式显示、编辑、修改和删除文档内容。后者类似一个简单的浏览器,浏览信息内容。

2.6 Microsoft Developer Studio 解题过程

用户在Microsoft Developer Studio上做的主要工作是:输入源程序,创建辅助文档,编译源程序,连接生成目标程序(可执行程序),以及调试程序等,完成这些工作称为解题过程。本节通过实例简要说明解题过程。

问题一:输入两个整数,对其进行交换,将交换后结果从屏幕上输出。

问题二:输入三个整数,对其进行从小到大排序,将排序结果从屏幕上输出。

-37-

第二章 Digital Visual FORTRAN 5.0 入门

2.6.1 前期准备工作

1.问题一前期准备

因问题简单,故需求分析从略,下面给出求解算法(框图)和程序。 算法描述如图2-18所示。程序描述如图2-19所示。

开始 ! 两整数交换

输入a,b PROGRAM exchange

INTEGER a,b,t a => t

READ *,a,b

b => a t=a

t => b 输入a,b a=b b=t PRINT *,a,b END 结 束 图2-18 问题一流程图 图2-19 问题一程序

2.问题二前期准备

因问题简单,故分析从略,下面给出求解算法(框图)和程序。 算法描述如图2-20所示。程序描述如图2-21所示。

开 始 ! 给定3个整数,并进行排序

PROGRAM sort

输入a,b,c INTEGER a,b,c,t

READ *,a,b,c

是 IF c

否 t=c;c=b;b=t

ENDIF 是 b

否 t=b;b=a;a=t

ENDIF 是 c

否 t=c;c=b;b=t

输入a,b,c ENDIF

PRINT *,a,b,c

结 束 END

图2-20 问题二流程图 图2-21 问题二程序

-38-

2.6 Microsoft Developer Studio解题过程

2.6.2 创建工作空间

创建一个工作空间:example,即创建一个新文件夹:example和两个管理文件。 创建步骤:

? 单击选择执行“File”/“New”菜单项,弹出“New”对话框,选取“Workspaces”选项卡,如图2-22所示。

? 在名称和位置框分别键入工作空间名和路径。路径输入可通过浏览窗口查找和定位。 ? 单击“OK”按钮创建新的工作空间。

在工作空间窗口内建立新的选项卡:FileView,同时显示“Workspace’example’:0 Project(s)”,指出工作空间名称和项目个数,如图2-23所示。在D盘上创建新的文件夹: D:\\example,并生成两个工作空间管理文件:example.opt和example.dsw。要打开工作空间:example,打开example.dsw即可。

键入工作空间名称

键入工作空间路径

图2-22 工作空间新建对话框

工作空间窗口

图2-23 新建工作空间选项卡“FileView”

2.6.3 创建项目

针对上述问题在工作空间中分别创建两个项目:example1和example2,在文件夹example内生成两个新的子文件夹:example1和example2以及有关项目管理文件。

创建步骤:

? 打开“New”对话框,选取“Projects”选项卡,如图2-24所示;

? 在文本框分别键入项目名称和路径,路径输入也可单击右侧按钮打开浏览窗口查找和定位路径。单击“Add to current workspace”选项,选择应用程序类型:Win32 Console Application,即控制台应用程序。指定运行平台;

? 完成输入后,单击“OK”按钮创建新的项目。

-39-

第二章 Digital Visual FORTRAN 5.0 入门

键入项目名称 键入项目路径 添加新的项目 选择Win32控制台应用程序类型 指定运行平台 图2-24 项目新建对话框

建立新的项目:example1,同时指明工作空间中项目个数,如图2-25所示。在项目文件夹中生成一个项目管理文件:example1.dsp。

同法,针对问题二创建新的项目:example2,如图2-26所示。 新建项目:example1

图2-25 新建项目:example1 图2-26 新建项目:example2

处于活跃状态的项目才能创建或添加文件,才能对源程序文件进行编译、构建、运行和调试。通过快捷菜单或“Project”下拉菜单菜单项:Set Active Project来激活某项目。

2.6.4 创建源程序文件

在项目中首先要创建源程序文件,然后根据需要创建其它资源文件和辅助文档。针对上述问题需分别在项目中创建两个源程序文件:example1.f90和example2.f90。

创建步骤:

? 打开“New”对话框,选取“Files”选项卡,如图2-27所示; ? 选取“Add to project”选项,选择项目名,在文本框分别键入源程序文件名称和路径。路径输入也可单击右侧按钮打开路径浏览窗口查找和定位路径。选择自由格式;

? 完成输入后,单击“OK”按钮创建新的源程序文件。 创建文件后,FileView选项卡中项目:example1下,建立新的源程序文件:example1.f90,

-40-

第二章 Digital Visual FORTRAN 5.0 入门

3. 语法检查

在编译过程中,还进行有关语法检查。编译结束后,在输出停靠窗口显示编译结果信息,如图2-34所示。如果无语法错误,则显示信息“example1.obj - 0 error(s), 0 warning(s)”,否则显示错误提示信息。若不小心把语句“READ *,a,b”错误写成“REAF *,a,b”,则显示语法错误信息: D:\\example\\example1\\example1.f90(4) : Error: Syntax error, found '*' when expecting one of: ( : % . = => REAF *,a,b -----^ Error executing df.exe. example1.obj - 1 error(s), 0 warning(s) 上述错误信息的含义是:第一行指出语法错误所在源程序行数(第4行),错误性质为语法错误,错误原因是错误将“REAF”看成变量,其后正确字符应为:“:”、“%”、“.”、“=”或“=>”,而实际为“*”,所以语法错;第二行指出出现该语法错误的语句,箭头指出出现错误位置;第三行指出执行df程序出现错误;第四行指出出现语法错误个数。

不同的语法错误,显示的信息有所不同,但错误信息表达的方式是相同的,用户根据显示的错误信息可找到出错位置和原因,并即时修改语法错误。

同法,针对问题二完成有关编译操作。

2.6.7 构建可执行程序文件

编译产生的obj文件是不能直接执行的,必须构建生成可执行程序文件(扩展名为:.exe)才能使编写的程序在计算机上运行并获得运行结果。所谓程序构建(也称连编)就是将obj文件与系统提供的有关环境参数、预定义子程序和预定义函数等连接在一起,生成完整的可执行程序代码。构建过程中也能检查、发现和排除一些语法错误。

1. 构建前参数设置

构建前需根据需要设置有关参数,如:exe文件的存放位置。 exe文件存放位置设置步骤:

? 在工作空间窗口选择项目example1,右击鼠标弹出快捷菜单,选取“Settings”菜单项,弹出“Project Settings”对话框, 选取“Link”选项卡,如图2-36所示;

? 在输出文件框键入构建exe文件以及存放文件的文件夹名(即路径),其它参数取默认; ? 完成输入后,单击“OK”按钮结束参数设置。

在项目文件夹内创建指定的子文件夹:debug4,构建后产生的exe文件被存放在该文件夹内。exe文件名及所属文件夹可与源程序文件名及所属文件夹相同,也可不同。

2. 构建

源程序编译后,需要对obj文件进行构建,以便产生exe文件,为后续运行程序作准备。 三种操作方式,如图2-37所示。构建操作步骤:

? 单击“Build”下拉菜单,选取“Compile example1.exe”菜单项,执行构建;

? 或在工作空间窗口选择项目example1,右击鼠标弹出快捷菜单,选取“Build example1.exe”菜单项,执行构建;

-46-

2.6 Microsoft Developer Studio解题过程

? 或单击“Build”工具条的构建按钮,执行构建。

构建结束后,项目文件夹内创建子文件夹:debug4,在debug4文件夹内生成可执行程序文件:example1.exe和相关文件:example1.ilk,在debug3内生成有关构建信息的数据库文件:example1.pdb,同时修改项目文件夹内的管理文件:exampl1.plg,如图2-38所示。 键入路径: 文件夹与exe文件名

选择构建项目

图2-36 构建参数设置对话框和选项卡

三种构建操作方式

输出窗口显示构建信息

图2-37 构建操作

-47-

第二章 Digital Visual FORTRAN 5.0 入门

图2-38 构建创建的文件夹和有关文件

3. 语法检查

在构建过程中,还进行有关语法检查。构建结束后,在输出停靠窗口显示构建结果信息,如图2-37所示。如果无语法错误,则显示“example1.exe - 0 error(s), 0 warning(s)”,否则显示错误提示信息。信息说明形式类似编译信息说明。

同法,针对问题二完成有关构建操作。

2.6.8 运行程序

产生可执行程序(exe文件)后,需运行可执行程序才能获得运行结果。运行过程中也能检查、发现和排除一些语法错误。

运行程序步骤:

? 单击“Build”下拉菜单,选取“Execute example1.exe”,运行程序,如图2-39所示; ? 或单击“Build”工具条的运行按钮,运行程序,如图2-39所示。

? 或选取执行“开始”菜单的“运行”菜单项,在弹出的对话框中指定文件名(全名)及其路径,然后单击“确定”按钮即可执行该程序,如图2-40所示。

? 或通过Windows系统的资源管理器查找程序,双击文件名运行该程序,如图2-41所示; ? 或采用MS-DOS方式运行生成的exe程序,单击执行“开始”/“程序”/“MS-DOS方式”菜单,弹出“MS-DOS方式”窗口,键入文件名,执行程序,如图2-42示。

程序中如果有输入输出操作语句,则运行时出现输入输出窗口,在窗口中输入数据。 运行过程中,若出现运行错误,则在输出窗口显示运行错误信息。如:执行除法时遇到分母为0,将出现运行错误。用户改正有关错误,重新编译、构建和运行,直到运行正确。

-48-

2.6 Microsoft Developer Studio解题过程

两种运行操作方式 输出窗口显示运行错误信息

图2-39 运行操作

双击程序文件名 图2-40 运行程序窗口 图2-41 资源管理器

窗口中灰色字符为系统显示内容:提示信息、盘符、路径或文件名,窗口中白色字符为用户键入的命令、参数和文件名,其中箭头为回车键。 输入数据 输出数据 图2-42 MS-DOS方式窗口

-49-

第二章 Digital Visual FORTRAN 5.0 入门

2.6.9 调试程序

设计程序的最终目的是得到一个无错误(语法错误、运行错误和逻辑错误)的可执行程序,以便运行该程序,获得正确的结果数据。事实上要达到这一目的并不是一件容易的事情,需要有扎实的程序设计知识、丰富的程序设计经验和强大的程序调试工具。由于人们主观认识的局限性,所设计和编写的程序都难免出现错误,也就是说错误是不可避免的,不管任何人,不管其水平高低,所设计和开发的程序都不能保证绝对正确(即:100%正确),只能保证其程序正确性的高低。能快速查找、发现和纠正错误是对程序设计人员的基本要求,调试程序是查找、发现和纠正错误的有效途径。程序写好后,调试程序的基本步骤如图2-43所示。

1.错误类型

程序中一般蕴涵大量的错误,错误的多少与程序规模成正比,与编写水平成反比。错误的种类很多,形式多样,归纳起来主要有三类:

? 语法错误:在编译过程中由计算机发现的不符合语言词法或语法规则的错误,如:输入语句“READ *,i,j”写成“READ *,i+j”,将产生一个语法错误;

? 运行错误:在运行过程中由计算机发现的不符合语言语义规则的错误,如:表达式i/j在运行中j为0,将产生一个运行错误;

? 逻辑错误:在编译和运行过程中计算机不能发现的错误,如:表达式i+j错误写成i-j,将产生一个逻辑错误。 开始,上机程序

输入程序,创建源程序文件

编辑修改源程序

编译和构建程序

发现 发现语法错误吗?

未发现

运行程序

发现 发现运行错误吗? 未发现

调试程序

发现 发现逻辑错误吗?

未发现

结束,获得正确程序

图2-43 程序调试步骤

-50-

2.6 Microsoft Developer Studio解题过程

2.查错方法

如何查找错误?可视错误类型采取不同的方法。

? 通过编译和构建来查找、发现和纠正语法错误,自动检查和发现语法错误的个数、位置、原因。发现错误后,重新修改程序继续编译和构建,直到无语法错误为止。

? 通过运行来查找、发现和纠正运行错误,检查和发现运行错误及原因。发现错误后,需分析和确定错误位置和原因,修改程序后继续编译、构建和运行,直到无运行错误为止。 显示的错误信息是一些参考信息,不完全是真正的错误位置和原因,可能由其它位置的错误引起,这时要借助报错信息通过手工或调试工具检查和发现真正的错误位置和原因。

如:编写程序,输入4个正整数a、b、c、d,计算(a+b)/(c+d),并从屏幕上输出计算结果。正确程序、含有错误程序、运行报错信息、引发错误语句和实际蕴涵错误语句说明如图2-44所示。 ! 正确程序 ! 蕴涵错误程序 运行程序: ! 计算(a+b)/(c+d) ! 错误:c + d 写成c-c 运行错误信息: PROGRAM example PROGRAM example forrt1:severe(164):program xception -integer divide by zero INTEGER i,j INTEGER i,j INTEGER a,b,c,d INTEGER a,b,c,d READ *,a,b,c,d READ *,a,b,c,d i=a+b i=a+b j=c+d j=c-c 实际错误位置、语句及原因 k=i/j k=i/j 引发错误位置、语句及原因 PRINT *, 'p=',k PRINT *, 'p=',k END END 图2-44 运行错误位置、语句及原因

? 通过调试查找、发现和纠正逻辑错误或运行错误。查找、发现和纠正逻辑错误要比查找、发现和纠正语法错误和运行错误困难的多。图2-43中的把c+d错写成c-c就是一个逻辑错误,它不能通过编译和运行过程检查和发现,只能根据运行错误信息通过手工分析或借助调试工具来检查和发现错误。特别是有些不会产生运行错误的逻辑错误,查找、发现和纠正这类错误更加困难,如图2-43中把c+d写成c-d,程序在运行中一般不会产生运行错误,程序能正常结束,这类错误需要通过测试并借助调试工具来检查、发现和纠正。

3.调试工具

开发环境提供了功能强大的调试工具debug,用户使用debug工具可快速、方便、高效地检查、发现和纠正错误。Debug功能十分强大,内容相当丰富,限于篇幅只能作简单介绍。

使用调试工具debug调试程序步骤:

? 激活显示Build和Debug工具条,如图2-44所示;

? 通过Build工具条断点设置按钮给程序设置断点。所谓断点就是程序在运行中暂停的语句位置。根据需要可设置多个断点。将光标置于断点所在语句位置,单击“Build”工具条上的“断点设置”按钮,即可在该语句处设置一个断点,“断点设置”按钮是一个开关命令,再次单击可取消断点,如图2-44所示;

-51-

第二章 Digital Visual FORTRAN 5.0 入门

? 开始调试程序。单击“Build”工具条上的“开始调试程序”按钮,运行程序至第一个断点位置,如图2-44所示;

? 激活显示有关debug调试窗口,通过debug调试窗口观察程序运行过程中的重要有用信息(变量、内存、堆栈、寄存器、反汇编)。开发环境提供6个debug窗口,常用的有两个:变量窗口Variables和观察窗口Watch,通过它们了解变量和表达式的取值情况,以判断和分析错误所在,如图2-44所示;

? 从暂停断点处继续运行至下一个断点或结束程序运行。运行至第二个断点处,变量窗口和观察窗口显示内容进行了刷新,黑色数据为未刷新值,红色数据为新刷新值(矩形框),如图2-45所示。如果在观察窗口中发现c+d和j的取值不相等,或者为0,则程序存在错误。

Debug工具条上的按钮主要是单步运行功能,一次执行一条语句,用户也可用这些功能调试程序,调试信息显示与上述方法类似。

2.6.10 程序多区域显示

当编写的程序比较大时,在有限的屏幕区域内浏览和查找程序中有关部位显得很不方便,给调试程序带来一定困难。为了解决这一问题,开发环境提供了程序多区域显示功能,通过该功能,用户可同时浏览和查询程序的不同部位。

执行菜单“Windows/Split”,可将窗口分裂成四个区域,可同时浏览和查询程序四个部位。一、二区域或三、四区域可同时左右移动程序文本,一、三区域或二、四区域可同时上下移动程序文本。如图2-46所示。 运行程序按钮 断点设置按钮 单步运行按钮组 运行至下一断点 在光标位置设置 运行至下一语句

黄色箭头指出

暂停位置

红色圆点指出 断点位置 选择运行程序 观察窗口,显示当前变量窗口,显示当 变量和表达式取值,前变量取值,可改 可定义和改变Name变Value值 和Value值

图2-44 调试程序

-52-

2.7 MS-DOS命令行开发环境简介

图2-45 调试程序

分裂区域菜单项 区域一 区域二 区域三 区域四 图2-46 程序多区域显示

2.7 MS-DOS命令行开发环境简介

Digital Visual FORTRAN 5.0不但提供了功能强大的可视化集成开发环境Microsoft Developer Studio,而且也提供了基于文本的MS-DOS命令行开发环境。在MS-DOS环境中也可编辑、编译、构建、调试和运行程序,许多在Microsoft Developer Studio中能做的事,在MS-DOS环境中也能做。

在MS-DOS环境中开发FORTRAN程序也有一定优点,其优点是界面简洁、操作方便,对于熟悉DOS环境的程序设计人员可在MS-DOS环境中开发FORTRAN 90程序。

安装Digital Visual FORTRAN 5.0时,在C盘(或其它系统安装盘)创建一个文件夹:PFS4,该文件夹中复制一些有关MS-DOS环境中开发程序需要的系统文件,如,编译程序:Fl32.exe、连接程序:Link.exe、一些管理程序和若干Lib库文件。

1. MS-DOS环境启动

使用DOS环境开发FORTRAN程序需启动MS-DOS环境,打开MS-DOS方式窗口。 启动方法:

? 打开“开始”菜单,选择“程序”子菜单中的“MS-DOS方式”菜单项;

? 打开“开始”菜单,选择“程序/VisualFortran5.0”子菜单中的“F90”菜单项;

-53-

第二章 Digital Visual FORTRAN 5.0 入门

? 双击桌面“F90”图标。 弹出“MS-DOS方式”窗口,在窗口中执行有关DOS命令,即可完成FORTRAN程序开发工作。要掌握一些常用的DOS命令。

常用DOS命令有:

? MD命令:创建新的目录(文件夹),格式:“MD 路径 \\新目录名”。 ? CD命令:设置目录为当前目录,后续操作在该目录下进行,格式:“CD 路径/目录名”。执行“CD\\”命令设置根目录为当前目录。执行“CD..”命令设置上一层目录为当前目录。

? 盘符:命令:设置新的硬盘为当前盘,格式:“盘符:”。 ? DIR命令:列出当前目录内的所有文件和子目录,格式:“DIR 路径\\文件名”。 ? COPY命令:复制文件,格式:“COPY 路径\\文件名1 路径\\文件名2”。 ? DEL命令:删除文件,可使用“*”和“?”通配符,格式:“DEL 路径\\文件名”。 ? 执行程序命令:执行程序(exe和com文件),格式:“程序文件名 参数”。 2. 创建源程序文件

Windows系统提供一个文本编辑器(程序):EDIT,使用EDIT文本编辑器可创建、编辑、输入、修改源程序。

创建、编辑、输入、修改源程序步骤:

? 执行MD和CD命令创建或进入相关目录。

? 执行EDIT程序,打开文本编辑器窗口, 编辑和输入源程序文本,如图2-47所示。 ? 保存源程序文件,打开“FILE”下拉菜单,选择保存菜单项,指定文件名,如:AA4.F90。

图2-47 文本编辑器窗口

3. 编译源程序文件

FL32.exe为FORTRAN编译程序,运行该程序可生成obj文件和exe文件,如键入“FL32 AA4.F90”,可生成AA4.OBJ和AA4.EXE文件。如有错误,将在窗口内显示错误信息,用户可根据错误信息纠正错误,修改程序,继续编译和运行,直到无错误为止。执行DF.exe程序直接编译生成可执行程序文件(exe文件)。

4. 连接obj文件

Link.exe为FORTRAN语言的连接装配程序,运行该程序可将obj文件连接装配成exe文件,如键入“Link AA4.obj”,可生成AA4.exe文件。

5. 运行可执行程序

运行可执行程序文件,输入数据,获得运行结果,如键入“AA4”,即可运行AA4程序。

-54-

习题二

习题二

1.FORTRAN语言的主要特征是什么?简述FORTRAN语言的发展过程。

2.FORTRAN 90的主要特征是什么?FORTRAN 90与FORTRAN 77的兼容程度如何?

3.简述FORTRAN 90的程序组织结构。主程序单元与其它程序单元的主要区别是什么? 4.何谓源程序的固定书写格式和自由书写格式。FORTRAN 90允许采用何种书写格式? 5.何谓过程(即子程序)?FORTRAN 90过程与FORTRAN 77相比增加了哪些功能? 6.简述作用域和关联概念。

7.FORTRAN 90在数据类型定义上引入了什么现代语言特征? 8.何谓Digital Visual FORTRAN 5.0?

9.Digital Visual FORTRAN 5.0的标准版和专业版有何区别? 10.简述Digital Visual FORTRAN 5.0的主要特性。

11.Digital Visual FORTRAN 5.0运行平台是什么?它支持哪些编程语言? 12.Digital Visual FORTRAN 5.0有几种安装类型?每种类型有何特点? 13.Digital Visual FORTRAN 5.0的强大功能体现在哪些方面?

14.何谓Microsoft Developer Studio?它与Digital Visual FORTRAN5.0、FORTRAN 90有

何关系?

15.Microsoft Developer Studio引入工作空间和项目概念的目的是什么?用户主要根据什

么来创建工作空间和项目?用户、工作空间、项目及文件具有何种关系? 16.如何启动Digital Visual FORTRAN 5.0有哪些启动方法?

17.Microsoft Develop Studio 主窗口主要由几部分组成?简述各部分内容。

18.何谓菜单条、工具条、窗口的停靠和浮动特性?如何设置这些特性?两者如何转换? 19.了解Microsoft Develop Studio菜单系统。 20.工具条如何显示和隐藏?

21.工具条是否可改变形状?如何改变?

22.预定义工具条是否可以修改?修改标准工具条,增加新建按钮,删除全部保存按钮。 23.创建新的工具条,工具条名称为“File Operate”,工具条按钮有:新建、打开、保存、

打印和查询,根据按钮内容进行适当分组。 24.了解工具按钮功能。

25.Microsoft Developer Studio环境窗口的主要作用是什么?环境窗口的类型有哪些?使

用比较频繁的环境窗口有哪些?

26.窗口的重叠、水平平铺和垂直平铺对哪些窗口起作用? 27.了解工作空间、项目、文件创建方法。

28.在一个工作空间中有多个项目。如何认定其中某个项目为当前项目(活跃项目)?如何设

置一个项目为当前项目?

29.创建一个工作空间或一个项目后,将产生什么操作结果?

30.如何创建和编辑源程序文件?源程序文件是何种类型文件?与Word文件有何区别? 31.主要通过什么特征区分FORTRAN 90源程序文件和FORTRAN 77源程序文件?

32.辅助文档文件有哪些类型?如何创建辅助文档文件?辅助文档文件是否可与源程序文

件处于同一文件夹内?

-55-

第二章 Digital Visual FORTRAN 5.0 入门

33.如何编译源程序文件?编译后生成的结果文件是什么?编译过程中能检查、发现和纠正

什么错误?其错误信息在何处给出?错误信息反映些什么内容? 34.在编译前主要设置哪些参数?

35.如何构建可执行程序文件?构建后生成的结果文件是什么?构建过程中能检查、发现和

纠正什么错误?其错误信息在何处给出?错误信息反映些什么内容? 36.构建的作用是什么?为什么要进行构建?在什么情况下才能构建? 37.在构建前主要设置哪些参数?

38.如何运行可执行程序文件?运行过程中能检查、发现和纠正什么错误?其错误信息在何

处给出?错误信息反映些什么内容?

39.调试程序的主要目的是什么?为什么说调试程序非常重要? 40.简述三种错误类型。最难检查、发现和纠正的错误类型是什么?

41.在Microsoft Developer Studio中,如何调试程序?什么叫单步调试? 42.何谓程序多区域显示?

43.Digital Visual FORTRAN 5.0是否允许在DOS环境中开发FORTRAN 90程序?

44.如何启动DOS环境?在DOS环境中如何编辑、编译、连接、运行FORTRAN 90程序? 45.简述Microsoft Developer Studio联机在线帮助功能。

46.求解下述两个问题。求解问题的FORTRAN 90程序如图2-48所示。

1.输入底半径r和高度h,求圆柱体积,并从屏幕上输出。 2.输入底半径r和高度h,求圆锥体积,并从屏幕上输出。 ! Calculate Volumn Volume ! Calculate Taper Volume PROGRAM Volumn PROGRAM Taper REAL V,r,h REAL V,r,h READ*,r,h READ*,r,h V=3.14*r*r*h V=3.14*r*r*h/3 PRINT *,'Volume=',V PRINT *,'Volume=',V (a) 问题一程序 (b) 问题二程序 END PROGRAM Volumn END PROGRAM Volumn 图2-48 源程序

解题要求:

?创建一工作空间:CalculateVolume,文件夹:C-Volume;

?创建两项目:Cylinder和Taper,文件夹分别为:C-C和C-T;

?针对上述问题分别在两项目中创建源程序文件:Cylinder.f90和Taper.f90、流程图文档Cylinder.doc和Taper.doc、问题描述文档文件Cylinder.txt和Taper.txt,分别设计和绘制流程图;

?针对上述问题分别在两项目中编译源程序;

?针对上述问题分别在两项目中构建可执行程序:Cylinder-1.exe和Taper-1.exe; ?针对两问题分别在两项目中运行和调试程序;

? 源程序文件、辅助文档文件、obj文件和exe文件都保存在项目文件夹的子文件夹:Program中。

-56-

第二章 Digital Visual FORTRAN 5.0 入门

33.如何编译源程序文件?编译后生成的结果文件是什么?编译过程中能检查、发现和纠正

什么错误?其错误信息在何处给出?错误信息反映些什么内容? 34.在编译前主要设置哪些参数?

35.如何构建可执行程序文件?构建后生成的结果文件是什么?构建过程中能检查、发现和

纠正什么错误?其错误信息在何处给出?错误信息反映些什么内容? 36.构建的作用是什么?为什么要进行构建?在什么情况下才能构建? 37.在构建前主要设置哪些参数?

38.如何运行可执行程序文件?运行过程中能检查、发现和纠正什么错误?其错误信息在何

处给出?错误信息反映些什么内容?

39.调试程序的主要目的是什么?为什么说调试程序非常重要? 40.简述三种错误类型。最难检查、发现和纠正的错误类型是什么?

41.在Microsoft Developer Studio中,如何调试程序?什么叫单步调试? 42.何谓程序多区域显示?

43.Digital Visual FORTRAN 5.0是否允许在DOS环境中开发FORTRAN 90程序?

44.如何启动DOS环境?在DOS环境中如何编辑、编译、连接、运行FORTRAN 90程序? 45.简述Microsoft Developer Studio联机在线帮助功能。

46.求解下述两个问题。求解问题的FORTRAN 90程序如图2-48所示。

1.输入底半径r和高度h,求圆柱体积,并从屏幕上输出。 2.输入底半径r和高度h,求圆锥体积,并从屏幕上输出。 ! Calculate Volumn Volume ! Calculate Taper Volume PROGRAM Volumn PROGRAM Taper REAL V,r,h REAL V,r,h READ*,r,h READ*,r,h V=3.14*r*r*h V=3.14*r*r*h/3 PRINT *,'Volume=',V PRINT *,'Volume=',V (a) 问题一程序 (b) 问题二程序 END PROGRAM Volumn END PROGRAM Volumn 图2-48 源程序

解题要求:

?创建一工作空间:CalculateVolume,文件夹:C-Volume;

?创建两项目:Cylinder和Taper,文件夹分别为:C-C和C-T;

?针对上述问题分别在两项目中创建源程序文件:Cylinder.f90和Taper.f90、流程图文档Cylinder.doc和Taper.doc、问题描述文档文件Cylinder.txt和Taper.txt,分别设计和绘制流程图;

?针对上述问题分别在两项目中编译源程序;

?针对上述问题分别在两项目中构建可执行程序:Cylinder-1.exe和Taper-1.exe; ?针对两问题分别在两项目中运行和调试程序;

? 源程序文件、辅助文档文件、obj文件和exe文件都保存在项目文件夹的子文件夹:Program中。

-56-

本文来源:https://www.bwwdw.com/article/mr9x.html

Top