GOTOP Fortran 95 程疗设计 彭国伦编著 健莲科技改编 22 and. 12.graden'A 团中用电力出照社 www.infopower.com.cn
前 言 这本书的前身,是笔者在997年出版的“精通Fortran90程序设计”。Fortran95这个 标准,与Fortran90比较起来其实并没有很大的差别:不过这本书在内容上做了许多修订, 把以前解释不足的地方都重新改写,尤其是数组、指针、MODULE的部分:另外在绘图及 数值计算方面还做了更详细的补充:对于Visual Fortran操作环境也做了更清楚的说明。 Fortran95包含Fortran77及Fortran90的原有功能,本书的目标是要让读者习惯新的 Fortran编写格式。不过因为甘前还不可能完全抛弃旧的规则,实例程序偶尔会使用古典风 格来编写,让读者温故知新。在书中会特别注明有哪些命令是Fortran90或Fortran95新添 加的功能,没有特别注明的部分都是从Fortran77延续下来的语法, 这本书对于程序设计方法的讲解,会重于Fortran语法的说明。因为只要掌握写程序的 方法,就有办法使用任何其他程序语言来编写程序。在书中除了会解释Fortran命令的语法, 还会说明为什么需要这个命令,还有什么时候该使用它。 在实例程序方面,前半部的程序主要是用来示范Fortran命令的语法:到后半部介绍 Fortran的应用时,才有机会看到比较实用及有趣的程序。等读者竿握Fortran基本语法能力 后,本书后半部会示范如何应用Fortran来从事数值计算、计算机绘图、窗口程序设计、与 Visual C/Visual Basic/Delphi的链接、甚至是游戏程序的编写。 下面是笔者的电子邮件及树页位置,随时欢迎您的任何指教。 电子螂件信箱pemg@cmlab..csie.ntu.edu.tw 本书网页http:www.mlab..csie.ntu.edu,tw~perng/book 移暖吟
导 读 本书的章节并不完全有关联性,第1章是计算机概论的介绍,第2章是编译器的使用, 读者可以根据自己的情况跳过它们。从第3章才开始进入下ortran程序的介绍。第3一9章介 绍的是Fortran的最基本的功能,第10、11章介绍的是比较高级的功能。建议读者应该完全 掌握第3~9章中的内容,如果时间不足,可以暂时先跳过第10、11这两章。 第12~17章介绍的是下oran的应用,这几个章节并没有关联性,在读完前9章之后 就有足够的基础来阅读其中任何一章。为了减少版面,在书中并没有显示第17章的内容, 这一章的内容做成电子书放在光盘上。 第12章介绍高级编译器的使用方法,示范如何编译链接库、如何使用调试工具。有一 部分在介绍Fortran与其他语言(Visual C/Visual Basic/Delphi)的链接。还有一部分会介绍 如何对程序进行优化处理,加快程序执行速度。 第13章是计算机绘图,从最基本的儿何图形绘制开始,到制作实时动画的方法:最后 会用两个游戏程序来作实例,这两个程序也用来打破一些人士对于Fortran只能用来做数值 计算的错误概念。 第14、16章是数值方法,第14章会详细介绍数值方法中的几种算法,并示范程序写 作的方法:第16章则会示范MSL链接车的使用。 第15章是数据结构及算法,这是在说明编写程序所应该要学习的一些基本方法及概念 第17章会介绍Visual Fortran的扩充功能,包含一些常用的扩充函数介绍及Visual Fortran 所提供的绘图及窗口程序设计功能。这一章的内容以文件的类型放在随书光盘上。 附录A是Fortran的库存函数说明,阅读完3~9章后,建议应该要翻到附录A看看Fortran 有哪些库存函数可以使用。附录B是ASCⅡ表,在第4章介绍过字符类型后,就应该去看 看这个表格
光盘使用说明 在光盘的根日录下有个INDEX.HTM文件,读者用测览器打开它就可以看到光盘内容 的导览。简单地说明一下文件的存旅情况: program chap02~chapl7这些目录下存放每一章的实例程序 ans\chap02-chap11 习题参考解答 Whook 书中没有显示的第17章的电子文件,提供WORD及PDF文件的 格式 document Fortran标准的文件,从Fortran7到最新的Fortran95,还有制订 中的Fortran200X草移 lsgl 笔者提供的SGL绘图链接库 GNUC/Ct+及Fortran7候译器
致谢 能够完成这本书,除了要感谢父母的养育,还要感谢台大造船系及台大信息工程所多 媒体实验室这几年的栽培。特别感谢造船系的蒋德普教授在Fortran方面的启蒙,及信息所 的饮阳明主任、吴家麟教授、陈文进教授等等在我在研究所阶段对我的照顾。另外如果没 有万云龙先生在我写第一本书时所给子的帮助,今天也不可能会有这本书。 当然还要感谢一群热心帮忙校稿的朋友,如果没有他们,我也不能顺利完稿。依校稿 的章节顺序分别是:许美云、张志鸿、黄建桦、陈继峰、蔡明怡,母亲江秋月女士也很辛 苦地帮忙做了整本书的第一次错字校正。 其他还要感谢的有在华硕计算机的彭伟伦,也是我的兄长,在学生时代经常会一起讨 论很多程序问题。还有台大资工所多媒体实验室的全体成员,感谢大家所共同创造出来的 学习环境
目 录 前言 导读 光盘使用说明 致谢 第1章计算机概论……】 1-】计算机简史… 2 12数字化 1-3撤处理器(MiCT0 Process0r) 14计算机基木结构 15操作系统 9 】-6计算机言…10 1-7今天的计算机…11 第2章编译器的使用… …13 2-1编译器简介 14 2-2 Visual F0 ortran的使用…14 2-3 LINUX下使用Fortran …2 第3章Fortran程序设计基础… 25 3字符 3-2书面格式…… **…26 3-3F0ran的数据类型…28 34 Fortran的数学表达式… 35F0 rtran简史… 31 第4章输入输出及声明… .…33 41输入(WRITE)输出(PRNT)命令…34 4-2声明…36 4-3输入命令(READ)47 44格式化输入输出(FORMAT) **…49 4-5声明的其他事项… …59 4-6混合运算…。 …***…63 47F0tran90的自定义数据类型…65 48KIND的使用
第5章流程控制与逻辑运算 …7l 5-】f语句…72 5-2浮点数及学符的逻辑运算…87 5-3 SELECT CASE语句…90 5-4其他流程控制…93 5-5 二进制的逻辑运算 96 第6章循环… …99 6-D0… 100 6-2 DO WHILE循环 63循环的流程控制 107 64循环的应用 111 第7章数组(ARRAY) 119 了-1基木使月 120 7-2数组内容的设置 129 73数组的保存规则 74 可变大小的数组 146 7-5数组的应用: 149 第8章函数 155 8-1子程序(SUBROUTINE)的使用… 156 8-2白定义函数(FUNCTION) 166 8-3全局变壁(COMMON) … 169 8-4函数中的变量… 176 8-5特殊参数的使用方法… 186 8-6特殊的函数类型 194 204 8-8 一些少用的功能 212 8-9使用多个文件 214 8-10 函数的应用 218 第9章文件… 231 91文件读取的概念 232 9-2文件的操作… 233 93顺序文件的操作 241 9.4 直接访问文件的操作 253 9.5 二进制文件的操作 257 9-6 nternal File(内部文件)… 260
9-7 NAMELIST…264 9-8文件的应用…266 第10章指针… 10-1 指针基本概念… 276 10-2指针数组 279 103指针与函数… 282 0-4基本的指针应用… 284 105指针的高级应用……287 第1I章MODULE及面向对象 …31订 11-1结构化与面向对象 3l2 J小-2再论M0DULE…314 Il-3再论INTERFACE 323 114实际应用 336 第12章编译器的高级使用 345 12-1 编泽器的完整功能… 346 12-2编译… 12-3 调试Debug… 347 353 】2.4优化*… 125 358 与其他语言链接 366 12-6其他功能… 385 第13章计算机绘图… 391 13-】绘图基本概念… 392 13-2SGL基本使用… 394 13-3SGL的交互功能 409 134图像与色彩…。 419 135高级应用 432 第14章数值方法 435 14】求解非线性函数 436 4-2线性代数… 444 14-3积分 461 144插值法与曲线近似 464 第15章数据结构与算法 485 l5-1排序 15-2搜索 486 495
15-3堆栈Stack 505 15-4树状结构…511 第16章MSL函数库… 523 16-1线性代数… 524 16-2求解非线性方程… 527 16-3 微积分…533 541 16-5插值与曲线近似…553 附录… 561 附录A Fortran库存函数 …562 附录BASC表…580
Chapter 计算机概论