第二章 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-