《FORTRAN 95程式設計》章节试读

出版社:�峰資訊
出版日期:2001年11月28日
ISBN:9789575669591
作者:彭國倫

《FORTRAN 95程式設計》的笔记-第36页

3-1字元集
FORTRAN标准中规定,编译器只需要识得大写的英文字母,而如果程式码中有使用小写英文字母,则会把他们视为大写字母相同。
特殊符号除了用来做数学计算符号外,还有其他用法,后面章节会慢慢的介绍他们。
3-2书面格式
FORTRAN程式码的写作格式有两种,Free Format 以及Fixed Format.
前者属于旧式的写法,他在写法版面上有很多限制。
后者是FORTRAN90之后的新写法,取消了许多旧的限制。
FORTRAN程式码附加档名为*.F 或 *.FOR的档案,就是指以Fixed Format来写作的程式;以*.F90为档名的档案,就是以Free Format来写作的程式。建议现在都应该改用Free Format来写作程式。
3-2-1Fixed Format
固定格式肿,规定了程式码每一行肿每个字元栏位的一样。第7到第72个字元,是可以用来写作程式的栏位。每一行的前5个字元只能是空白或是数字,数字用来作为‘行代码’。每一行的第6个字元只能是空白或是‘0’以外的字元。
第一个字元:如果是C、c或是星号*,这一行文字会被当成说明注解,不会被编译。
第1-5个字元:如果这边是放数字,那是用来给这一行程式码取个代号。不然只能是空白。
第6个字元:如果是“0”以外的任何字元,表示这一行程式会接续上一行。
第7-72个字元:FORTRAN程式码的写作区域
第73个字元之后:不使用,超过的部分会被忽略,有的编译器会发出错误信息。
……
Fixed Format 是为了配合早起需要使用打洞卡来输入程式才发明出来的格式。现在都应该使用Free Format来写作程式。早起的电脑,还没有使用显示器作为输入装置,不能像现在一样直接利用键盘来修改程式。早起的程式是利用打洞卡一张一张记录下来……
Fixed Format随着打洞卡的淘汰淘汰了…….。
3-2-2Free Format
Free Format基本上允许非常自由的写作格式,它没有再去规定每一行的第几个字元有什么作用。需要注意的事项有:
1.惊叹号“!”后面的文字都是注解。
2.每行可以写作132个字元。
3.行号放在每行程式的最前面。
4.一行程式的最后如果是符号&,代表下一行程式会和这一行连接。如果一行程式码得开头是符号&,代表他会和上一行程式连接。
P36
3-3FORTRAN资料形态
资料形态是指使用FORTRAN在电脑记忆体中记录文字、数值等等资料的最小单位及方法。
1.整数INTEGER
整数的形态又分两种,长整数跟短整数。在个人电脑上长整数占用32bits(4bytes)的空间,长整数可以储存的数值范围在-2147483648~+2147483647间(也就是-2^31 +1到2^31间),而短整数占用16bits(2bytes)的空间,储存的数值范围在-32768~+32767间(就是-2^15 +1到2^15之间)有的编译器还可提供一种更短的整数形态,只占8bits(1bytes)的空间,可以储存-128到+127之间的整数。
2.浮点数REAL
两种形态:单精确度及双精确度。单精确度在个人电脑上占用32bits(4bytes)的空间,有效位数为6~7位。可记录的最大数值为+-3.4*10^38,最小数值为+-1.18*10^-38。双精确度会占用64bits(8bytes),有效位数为15~16位。可记录的最大数值为+-1.79*10^308,最小数值为+-2.23*10^-308。
3.复数COMPLEX
就是以a+bi形式来表示的数值。复数中的a\b值其实是由两个浮点数yig来做记录,所以复数同样也有两种形态,单精确度复数及双精确度复数。
4.字元CHARACTER
……广。附录的ASCII字元表就是这种心态所能记录的所有字元。只记录一个字母、符号时的资料形态称为‘字元’,记录一连串的字元时,就称为‘字串’。记录一个字元需要一个位元组的记忆空间,记录n个字元长度的字串则需要n个位元组的记忆空间。
5.逻辑判断LOGICAL
逻辑判断只能储存两种逻辑结果,分别是“是”(TRUE)以及“否”(FALSE)。也可以翻译成“对”、“错”,或是“真”、“假”等等。在二进位中,通常以1代表TRUE,0代表FALSE。
程式码中要清楚地制定出每种资料所要春粗的格式。不同种类的资料需要经过转换才能互通,因为它们可能是使用不同方法来储存的。就以整数和浮点数来说,整数是很单纯的以二进位来储存数字。浮点数和整数的不同之处,在于浮点数可以储存带有小数的实数,浮点数会把数字转换成以二进位的指数方法来表示,并把数字分成指数部分跟小数部分来做记录。
0.5=5.0*10^-1(10进位的指数方法)=1.0*2^-1(2进位的指数方法)
0.5这个数值会被分成2进位的数值部分1.0,跟指数部分-1来记录。
……
再举例,现在要记录15243这个数字,使用整数来记录的话,会把15243转换成2进位的10111110011储存在记忆体中,它可以用短整数(2bytes)或长整数(4bytes)来记录。使用字串来记录的话,需要分别去记录“1”、“5”、“2”、“4”、“3”,这5个字元,需要5bytes来记录。而每个byte会存放的内容以10进位数字来表示,分别是49、53、50、52、51,也就是这5个字元的ASCII码。……使用字串来记录数字时,不能直接把它们拿来做加减乘除的运算,要把字串先转换成整数或浮点等的数值型态后才能拿来计算。
如何配置记忆体的空间,来存放不同种类的资料,是程式设计师的责任。
P39
3-4FORTRAN的数学运算式
优先序:
+加法 -减法
*乘法 /除法
**乘幂(两个星号要连续)
() 括号(表示括弧起来的部分优先计算)
愈下面的符号优先权愈高,所以算式中会先计算乘除,后计算加减。
乘号不能省略。
e.g. ((A+B)*(C+D))/(2*(E+F))

《FORTRAN 95程式設計》的笔记-第15页

P9
微处理机(Micro Processor)
把一块电路板上的所有IC\电阻、电路,都使用半导体方法结合起来,所生产出来的一小块硅晶片,就是一个微处理机。外观上除了一个小小的扁方块之外,其他部分就只有从方块里伸出来的金属针脚。有的针脚是负责输入电源让晶片运作,功能类似插头。有的针脚则是扮演类似开关的功能,用来读取外界的控制指令。有的针脚则是用来根据所得到的指令来做输出。
如果针对负责输入工作的那几双针脚,把控制他们是否通电,用来操作晶片的方法以二进位法来表示,就是这个晶片的指令集。控制晶片操作的一连串指令集,就叫做程式。
指令集 也称机器语言(Machine Code),把每个机器语言的二进位数字另外取一个字词来表示,就是组合语言(Assembly)。简单说,微处理机因为功能太多,无法利用按钮来控制,就使用指令集的方法来发出操作指令。(即写作程式)
写作程式有几种方法,第一种是直接用二进位数字来写程式,这是使用机器语言的写法,非常不直觉。第二种是把每个机器语言用文字来表达,每个机器码都会和一个特定的字词来相对应,这就是组合语言(Assembly)。这种组合语言写好后,再经由一个事先写好的编译程式把文字转换成机器码。这两种方法都被称为“低阶”的写法,低阶并不是比较低级的意思,它指的是比较接近机器原本的表示方法。每种晶片都会有自己的饿低阶语言,不同的晶片的低阶语言不能互通。
第三种写法是可以一次把一段机器语言用一句文字来代替,这就是高阶语言高阶语言需要比较复杂的编译过程才能再把它转换成机器语言,eg. FORTRAN \C .
高阶语言的语法在字面上比较容易让人类思考,而且只需要透过编译器的翻译,同样的城市码可以被转换到各种不同的晶片上面执行,不像低阶语言会被限制住。
高阶语言及组合语言的程式码,在没有翻译成机器码前,都无法让电脑使用。经由编译器翻译出来的机器码,就是所谓的执行档。每种晶片都会有自己的指令集,所以不同晶片间的执行党不能互通。高阶语言的程式码,必须分别经由设计给不同晶片的编译器翻译过后,才能再不同的晶片上面执行,这就是所谓的跨平台。
个人电脑中最重要的微处理器是中央处理机(Central Process Unit),简称CPU。现在普遍使用的X86系列CPU总共大约有200个指令可以使用。……
P11 1-4电脑基本架构
1.输入装置:键盘鼠标等
2.运算单元:CPU
3.储存装置
一般分成两种,永久储存装置及暂时储存装置。随机记忆体RAM就是暂时储存装置,BIOS、光碟、硬碟等都是永久储存装置。电脑在执行时,会先把程式及资料先从光碟或是硬碟中取出,放到随机记忆体RAM中,才开始执行程式。因为CPU直接存取记忆体会比直接存取硬碟快速。
4.输出装置:荧幕、音效卡等
典型电脑程式的运作过程,使用者要先把想处理的资料经由输入装备输入电脑,电脑会经由程式设定好的程序来处理这些资料。处理完毕后,再把所得到的结果经由输出装备来展示。存储装备则可以储存程式执行中所得到的或是所产生的任何资料。
1-5作业系统
电脑知识一部接受程式指令执行的工具,没有程式就失去任何工作能力。刚打开电影的个人电脑,第一个步骤会自动去找一个程式来执行。BIOS里会存放开机后第一个执行的程式,这段程式通常会检查电脑本身的硬体状态是否正常,确认记忆体和硬碟是否正常地安装在主机板上等等。完成检查工作后,BIOS会把硬碟启动磁区中的程式拿出来执行,通常这个程式就是作业系统。
简单地说,作业系统是帮忙配置电脑资源的工具。举例,没有作业系统提供的档案功能,一颗硬碟对使用者来说只是一大块有好几GB空间可以存放资料的硬碟,使用者要自己决定硬碟上哪个辞去要存放什么资料,而且还要自己写程式去控制硬碟机的磁头移动,到指定的位置读写资料。作业系统所提供的档案系统,可以让使用者利用档案或是资料夹的方式来使用硬碟。
作业系统还有另外一个重要的功能,就死提供比较简单的方法,让程式设计师及使用者来使用各种硬体。除了上一段提到的硬碟的例子之外,还有像音效卡、3D加速卡等等各种周边硬体,硬体厂商只要遵循作业系统指定的规则来写作驱动程式,就可以保证新开发的硬体可以让消费者使用。例如,在Windows作业系统下,只要依照DirectXhuoshi OpenGL的标准来设计音效卡或3D加速卡的驱动程式,这些硬碟就可以执行市面上所有的PC游戏。
有效利用电脑资源的例子,还有作业系统所提供的多工执行功能。……作业系统可以把CPU的休息时间,拿去执行其他不适出于等待状态的程式,这便是所谓的多工。
每个作业系统使用电脑资源的方法不同,所以就算是针对同一个CPU设计的不同作业系统,彼此间的程式不一定共用。例如硬体的驱动程式,程式执行档等等。每个作业系统规定的驱动程式写法会有所不同,另外例如执行档的档案格式,以及作业系统所提供的系统功能呼叫也会不同。
1-6电脑语言
电脑语言是用来控制电脑的语言。低阶语言(机器语言,组合语言)使用起来很辛苦,他们的程式码在字面上看起来都非常不直觉。而且每当程式设计师要改用另一颗拥有全新指令集的CPU时,要重新学习他的组合语言。除此之外,旧有的程式也要完全改写,才能移植到新的CPU上面来使用。
P13
高阶语言主要是为了解决这个问题才发展出来的。只要编译器能产生新型CPU的机器码,旧有的程式只需要重新翻译,或许再稍作修改,就可以在新的CPU上面使用。现在的厂商在推出新的CPU时,一定会想办法提供编译器给程式设计师使用,不然一定不会有软体厂商以新的CPU为平台来写作程式。
高阶语言所造成的另外影响是,犹豫它的写作方法比较直觉,可读性高,所以程式设计师可以用比较抽象、跟机器无关的方法来解决问题。这也导致硬体制造跟软体开发分区成不同的专业领域。在目前,研究软体的写作方法已经是好几门专业的学问,例如数值计算、人工智慧、电脑视觉、语音辨识、电脑图学等等。这些不同的专业领域都有各自的演算法需要学习。在学术方面之外,业界经常会应用到的像是资料库、Windows作业系统、Linux作业系统、网路通讯、驱动程式、游戏等等,也都有不同的专业领域。
学习电脑语言,事实上主要是学习如何去做到上面所提到的其中几项应用……
P14
1-7今天的电脑
…………
P15
随着个人电脑能力的增强,工作中电脑和个人电脑间的执行效率差别在不断的缩短。目前最新的趋势已经不再流行使用一台昂贵的大型电脑来执行大程式,而是使用多台个人电脑,利用网路或是特殊硬体把它们串联起来,组合成一个大业集来做平行处理。这个方法已经广泛在学界及业界中应用。

《FORTRAN 95程式設計》的笔记-第18页

Chapter 2
P18
编译器(compiler),可以把FORTRAN\C等高阶语言翻译成机器码,也就是常常可以看到的附加档名为EXE\COM的档案。也有一些程式语言不需要经过编译就可以直接执行,如:Visual Basic\Delphi等,这些语言被称为直译语言,早起的直译语言要放在直译器下才能执行。现在的直译语言通常提供两种执行模式,第一种模式必须在直译器下面才能执行,另一种模式就跟FORTRAN\C一样,可以编译成执行档并独立执行。

《FORTRAN 95程式設計》的笔记-第9页

P2 电脑的原文(computer)是[计算机]的意思,广义上,用来帮助认为做数学计算的机器以及工具都可以叫做[计算机]。
电脑跟单纯的计算机之间,最大的不同在于电脑不只是能做加减乘除的数学计算。
P5 二进位中只有0跟1这两个数字,正好可以用来形容一个开关的情形,0代表关,1代表开。记录一个二进位数字所需要的容量大小,称为一个位元bit。通常在使用时,不是以一个位元为最小的单位来使用。电脑一般是组合8个位元成为一个位元组byte来使用。其他数量单位还有1024个位元组叫做1KB,1024KB个位元组叫做1MB……
1byte=8bits
1KB=1024byte=2^10bytes
1MB=1024KB=1024*1024bytes=2^20bytes
1GB=1024MB=1024*1024* BBBBBBG1024bytes=2^30bytes
10进位和2进位的转换(简介)
十进位的100=1*10^2, 因为10进位的基地为10
二进位的100=1*2^2, 因为 2进位的基底为2,把上一行的1*10^2的10改成用2来计算就行了。
还有用windows自带的计算器(转成科学型)来换算的。
……
P9
文字数位化的方法很简单,附录肿有ASCII表,就是定义英文字母、阿拉伯数字以及一些愿幸福好在电脑中是用什么数字来做对应的。当某一段数字资料被定义为要当文字来显示时,就会根据ASCII表来做数字对文字的转换。
ASCII表主要定义的是欧美语系的拼音文字字母,使用256=2^8个栏位就已经存放所有的英文字母及数字和一些图形符号了。所以一个位元组就足以记录一个英文字母。 中文有上万个文字,ASCII表中当然没有定义中文文字的数位化代码,目前经常使用的中文字码表为BIG-5码,总共有上万个栏位,每个字码要用2个位元组来记录。
电脑本身不知道现在它要处理的二进位资料,原本是用来记录什么东西。就以65这个数字来说,电脑可以把它当成一个整数来做计算,也可以把它当成英文字母A来显示(请参考ASCII表)。二进位资料要先说明清楚它所储存的是什么资料,电脑才会知道该如何去解释他。
列入,一个档案的附加名是JPG,那作业系统就会知道它里面存放的是以JPEG方式压缩的图档,需要使用秀图软件来解读它;如果一个档案的附加档名是TXT,那么它的原始资料就应该是记录一堆数位化过后的文字,经由ASCII或BIG-5表对照后可以转换成英文或是中文来显示。


 FORTRAN 95程式設計下载


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024