fortran语言复习总结

合集下载

Fortran程序总结

Fortran程序总结

1.行的书写(行的长度、分行、续行)一行可以是0~132个字符,空格有意义,语句最长不超过2640个字符一行可以有多个语句,用“;”分隔一个语句可分行写,读行标记为&(放在尾部),但如为关键字,首尾均加&。

最多可有511个续行。

2.说明语句必须出现在可执行语句之前,格式说明语句(FORMAT语句)除外。

3.注释标志符:自由格式:!固定格式:C *语句分隔符:分号;(仅自由格式可以使用)续行符:自由格式:&申明标号:1到5位无符号整数空格:关键字、变量、常量内部不能用空格,但相邻两者之间须用空格4.信息处理的分类:数值处理和信息处理现代计算机工作原理:程序存储和程序控制(冯·诺依曼)1、运算器——算术运算、逻辑运算2、控制器——根据指令控制计算机工作运算器、控制器和寄存器称为中央处理器CPU3、I/O设备——提供数据传输服务4、总线——数据传输的公共通道1.机器语言:二进制代码形式,可以被计算机直接执行,不可移植2.汇编语言:用助记符来代替机器指令,容易记忆,不可移植3.高级语言:接近自然语言(英语)的程序设计语言,又称算法语言,易学、易用、易维护,可移植性好例:FORTRAN、BASIC、PASCAL、C、LISP、PROLOG等5.FORTRAN90程序是一种分块结构,由若干个程序单元块组成:主程序、外部子程序、模块、块数据单元无论是主程序单元,还是子程序单元,都是独立的程序单位,应该独立编写,它们的形式相似。

非语句行:注释语句:!后的所有字符都被编译器忽略。

可独占一行,也可在其它语句之后,空行为注释行(固定格式用C和*)6.常量的定义:常量是程序执行过程中不能变化的量。

基本数据类型有五种:整型、实型、复型、字符型和逻辑型前三种属于数值类型,后两种为非数值类型,主要用于文字处理和控制。

FORTRAN 90通过KIND值确定整数的存储开销、最大位数和取值范围,如表所示。

Fortran学习总结

Fortran学习总结

Fortran学习总结1、⽤结构体读取⼆进制⽂件存在的问题及解决⽅案在讲这个问题之前,我们先看⼀段代码:01 program fcode_cn02 integer(4)::i=1,j=2,k=303 character::ch*2='cn'04 type head05 !sequence06 character*2ch07 integer(4)i,j,k08 end type09 type(head)he1011 open(11,file='11.txt',access='stream')12 write(11)ch,i,j,k13 close(11)14 ! ⽅法115 open(11,file='11.txt',access='stream')16 read(11)he.ch,he.i,he.j,he.k17 close(11)18 print*,he19 ! ⽅法220 open(11,file='11.txt',access='stream')21 read(11)he22 close(11)23 print*,he24 pause25 end代码开头先向⽂件11.txt中写⼊⼀个字符串”cn”和3个4字节整数1, 2, 3 ,然后分别使⽤⽅法1和⽅法2读取并输出数据。

从代码本⾝分析,我们向⽂件中写⼊了14个字节的信息,⽅法1和⽅法2均⽤结构体去读取这个14字节信息。

理论上说,这不存在问题,但是在执⾏时,我们遇到下⾯的错误(图1):读取同样的数据为什么⽅法1能够正确执⾏,⽽⽅法2却遇到⽂件尾呢?这跟结构体元素的对齐⽅式有关。

打开项⽬属性-Fortran-data,点开structure member alignment选项(如图2),查看对齐⽅式,有1字节、2字节、4字节、8字节和16字节,win32系统缺省为4字节。

FORTRAN期末复习要点_new

FORTRAN期末复习要点_new

FORTRAN程序设计期末复习一、基础知识:1.Fortran程序的组成:a)一个main程序(以program开头,可省略),若干子程序(以function或subroutine开头),以end 结束。

b)可执行语句,非执行语句。

了解哪些语句是可执行语句?哪些是非执行语句?它们在程序中放置的位置有什么要求?c)语句标号。

小于5位的正整数,可以加在可执行语句前面。

d)Fortran程序的书写格式。

固定格式、自由格式2.数据类型a)常量和变量(五种):integer,real,character,logical,complex要求掌握:对于常量,给定一个数据,能分辨出该常量的类型。

符号常量如何定义?符号常量不能修改其值。

例如:5,2.5,1.23e2,1.23d-2,’abc’,”xyz”,.true.,.false.,(2.5,3.6)。

对于变量,要会定义,注意变量名的命名规则。

b)表达式的书写:四种表达式:算术表达式、关系表达式、逻辑表达式、字符表达式要求掌握:各种算符的运算规则和优先级别。

考查方式:给出一个算术式子能写出正确的表达式,或者给出表达式能计算出其结果。

注意:整数相除结果还是整数;逻辑运算符的两端都必须是逻辑量;>=不能写成≥;==不能写成=;表达式0≤x≤5的正确写法?.and.,.not.,.or.两端的小圆点不能漏掉。

c)常用函数:数学函数:sqrt(实数),abs(),sin(弧度)等三角函数,int(),real(),mod(m,n)字符串函数:char(),ichar(),len_trim(),index()二、程序的三种基本结构:1.顺序结构:赋值语句、表控输入、输出语句(注意:*的含义)、格式输出(主要掌握I,F,A,x,重复系数,编辑符的用法)2.选择结构:掌握块IF语句的三种形式,逻辑IF语句和IF语句的嵌y套的书写格式、执行过程。

需掌握的算法:分段函数的计算3.循环结构:重点掌握do循环和do while循环需掌握的算法:求n!;判断一个数是否是素数;如例8.3的类似累加问题。

FORTRAN知识点总结

FORTRAN知识点总结

F O R T R A N第2章FORTRAN90基础知识:程序单元的概念:fortran90程序是一种分块形式的程序,整个程序由若干程序单元块组成。

每个程序只有一个主程序单元。

各单元体的程序体形式上相同。

程序单元可以是主程序、子程序(外部过程或内部过程)、模块MODULE (供其他程序单元引用即把该程序单元内的全部语句复制到程序单元中)或块数据程序单元BLOCK 。

语言元素:指在程序设计中用到的基本成分,如字符集、常量、变量、记号(标号、关键字、名字、常数、运算符和定界符)以及其他的基本结构等。

字符集:英文字母、阿拉伯数字、下划线、21个特殊字符($和?没有规定用法)。

数据结构:整型INTEGER (34-2下划线后面是种别参数),n 位字长的计算机的数据表示范围一般为12~211-+---n n ,种别参数由内在询问函数KIND 送回,种别值提供的最小范围由内在函数SELECTED-INT-KIND 送回,表示十进制幂的范围由内在函数RANGE 送回;实型REAL ,小数形式和指数形式;复型COMPLEX (种别类型参数值取实部与虚部中较大者);字符型CHARACTER,由一对单撇号或双撇号之间的字符序列组成;逻辑型LOGICAL。

派生数据类型TYPE;数组INTEGER,DIMENSION(1,50)::A,可直接对数组元素进行运算如3*A,SQRT(A);字符子串,在字符串CHARACTER(LEN=80)::ROW中,ROW(1:3)就表示字符串ROW中第1到第3个元素组成的子串。

变量名的命名规则:不能超过31个字符;组成成分是字母、数字、下划线;第一个字符必须是字母。

第3章基本语句:类型说明语句:类型说明(种别说明),属性说明::变量名表尽量避免把两个实数作相等或不相等的比较。

淘汰隐式说明IMPLICIT NONE种别说明:种别参数即对可移植数据精度和范围进行选择的机制KIND(X) 返回变元X的种别参数值SELECTED-REAL-KIND(n,m) 产生一个种别值,它表示某一精度和范围。

fortran用法总结

fortran用法总结

我的Fortran基本用法小结周日, 10/14/2007 - 21:00 — gator一、说明二、概述三、数据类型及基本输入输出四、流程控制五、循环六、数组七、函数八、文件一、说明本文多数内容是我读彭国伦《Fortran 95 程序设计》的笔记。

只读到第九章,主要是3~9章,都是最基本的用法(原书共16章)。

这里主要摘录了我看书过程中总结的一些Fortran和C不同的地方,主要是语法方面。

希望这份笔记能够给学过C但没有接触过Fortran的同学带去一些帮助。

要想得更清楚些,推荐看一下原书,觉得作者真的写得很好,很清楚;如果有C语言的基础,看完前九应该很快的,花一两天就行了。

觉得如果耐心看完本文,基本功能应该也可以顺利用起来了。

外,由于我之前没有用过Fortran,这次为了赶文档看书又看得很粗浅,大多数东西看过之后都没得及仔细想,只是按着作者的意思去理解。

所以这份笔记还处于纸上谈兵的层次。

如果有不妥的方,希望大家指正。

谢谢!文中蓝色的部分是程序代码,!后面的内容为注释。

二、概述1、名词解释Fortran=For mula Tran slator/Translation一看就知道有什么特色了:可以把接近数学语言的文本翻译成机械语言。

的确,从一开始,IBM设计的时候就是为了方便数值计算和科学数据处理。

设计强大的数组操作就是为了实现这一目标。

ortran奠定了高级语言发展的基础。

现在Fortran在科研和机械方面应用很广。

2、Fortran的主要版本及差别按其发展历史,Fortran编译器的版本其实很多。

现在在广泛使用的是Fortran 77和Fortran90。

ortran 90在Fortran 77基础上添加了不少使用的功能,并且改良了77编程的版面格式,所以编程时推荐使用90。

鉴于很多现成的程序只有77版本,有必要知道77的一些基本常识,至少保证能够看77程序。

以下是77和90的一些格式上的区别。

Fortran学习总结 我不是企鹅的日志 网易博客

Fortran学习总结  我不是企鹅的日志  网易博客

Fortran学习总结我不是企鹅的日志网易博客fortran学习总结-我不是企鹅的日志-网易博客FORTRAN学习总结-我不是企鹅日志-网易博客fortran学习总结目录:一、说明二、概述三、数据类型和基本输入输出4。

过程控制5。

第六周期。

阵列7。

功能8。

文件1。

描述本文多数内容是读彭国伦《fortran95程序设计》的笔记。

二、概述1、名词解释fortran=公式翻译/翻译一看就知道有什么特色了:可以把接近数学语言的文本翻译成机械语言。

的确,从一开始,ibm设计的时候就是为了方便数值计算和科学数据处理。

设计强大的数组操作就是为了实现这一目标。

fortran奠定了高级语言发展的基础。

现在FORTRAN广泛应用于科学研究和机械领域。

2.FORTRAN的主要版本和差异按其发展历史,fortran编译器的版本其实很多。

现在在广泛使用的是fortran77和fortran90。

ortran90在fortran77基础上添加了不少使用的功能,并且改良了77编程的版面格式,所以编程时推荐使用90。

鉴于很多现成的程序只有77版本,有必要知道77的一些基本常识,至少保证能够看77程序。

以下是77和90的一些格式上的区别。

fortran77:固定格式(fixedformat),程序代码扩展名:.f或.for(1)若某行以c,c 或*开头,则该行被当成注释;(2)每行前六个字符不能写程序代码,可空着,或者1~5字符以数字表明行代码(用作格式化输入出等);7~72为程序代码编写区;73往后被忽略;(3)如果太长,你可以继续排队。

续行的第六个字符必须是除\以外的任何字符。

fortran90:自由格式(freeformat),扩展名:.f90(1)以\引导注释;(2)每行可包含132个字符,行号放在每行的前面;(3)用&继续这一行,并把它放在这一行的末尾或开头。

下面是对Fortran 90的讨论。

3、fortran的一些特点,和c的一些不同事实上,有很多,当提到下面的具体方面时可以看到。

fortran语言程序设计知识点

fortran语言程序设计知识点

fortran语言程序设计知识点Fortran语言是一种面向科学与工程计算的编程语言,因其在数值计算和科学应用方面的高效性而受到广泛使用。

本文将重点介绍Fortran语言程序设计的一些重要知识点。

一、基础语法1.1 变量与数据类型在Fortran中,变量是用于存储数据的容器。

常见的数据类型包括整型(INTEGER)、实型(REAL/DOUBLE PRECISION)、复数型(COMPLEX)、逻辑型(LOGICAL)等。

变量的命名需遵循一定规则,如以字母开头,长度不超过31个字符等。

1.2 运算符与表达式Fortran支持常见的算术运算符(如+、-、*、/)以及逻辑运算符(如. AND.、. OR.、. NOT.)等。

表达式由变量、常数和运算符组成,可以进行数值运算和逻辑判断。

1.3 控制结构Fortran提供循环结构(DO)、条件结构(IF-THEN-ELSE)和选择结构(SELECT CASE)等控制语句,用于控制程序的流程。

二、数组与数据处理2.1 数组定义与操作Fortran中数组是由相同类型的数据元素组成的集合。

可以使用DIMENSION语句定义数组的维度和大小,通过下标访问和修改数组元素。

2.2 数组运算与函数Fortran提供了许多对数组进行运算和处理的函数,如数组求和(SUM)、最大最小值(MAX、MIN)、数组重排(RESHAPE)等,方便对数据进行统计和处理。

2.3 文件读写操作Fortran支持对文件进行读写操作,可以通过OPEN语句打开文件,使用READ和WRITE语句读取和写入数据。

可以根据需要设置文件的访问模式和格式。

三、过程与模块3.1 过程(Subroutine/Function)过程是一段独立的代码块,可接受传入参数并返回值。

在Fortran中,过程可以是子程序(Subroutine)或函数(Function)。

子程序用于完成一系列操作,而函数则返回一个值。

3.2 模块(Module)Fortran中的模块是一个编译单元,用于组织和管理相关的过程和变量。

Fortran语言编程小结(五篇材料)

Fortran语言编程小结(五篇材料)

Fortran语言编程小结(五篇材料)第一篇:Fortran语言编程小结1.单双精度Program ex01 implicit none real(kind=4):: a real(kind=8):: b a=3.***66666666_4!确定这个数字是使用单精度 b=3.***66666666_8!确定这个数字是使用双精度 write(*,*)a,b End program ex012.判断kind值 program ex02 Implicit none!判断可以记录9个位数的整数kind值integer, parameter :: long_int = selected_int_kind(9)!判断可以记录3个位数的整数kind值integer, parameter :: short_int = selected_int_kind(3)!判断可以有3个有效位数, 指数可以记录到3的浮点数kind值integer, parameter :: long_real = selected_real_kind(10, 50)!判断可以有10个有效位数, 指数可以记录到50的浮点数kind值integer, parameter :: short_real= selected_real_kind(3, 3)integer(kind=long_int):: a = 123456 integer(kind=short_int):: b = 123 real(kind=long_real):: c = +1.23456789D45 real(kind=short_real):: d =+1230 write(*, “(I3,1X,I10)”)long_int,a write(*, “(I3,1X,I10)”)short_int, b write(*, “(I3,1X,E10.5)”)long_real, c write(*, “(I3,1X,E10.5)”)short_real, d END3.TYPE program ex0434 implicit none Type :: person!开始建立person这个类型character(len=30):: name!人名integer :: age!年龄integer :: height!身高INTEGER :: weight!体重character(len=80):: address!地址End type person type(person):: a!声明一个person类型的变量write(*,*)“NAME:” read(*,*)a%name write(*,*)“AGE:” read(*,*)a%age write(*,*)“HEIGHT:” read(*,*)a%height write(*,*)“WEIGHT:” read(*,*)a%weight write(*,*)“ADDRESS:” read(*,*)a%address write(*,100)a%name,a%age,a%height,a%weight 100 format(“Name:”,A10/,“Age:”,I3/,“Height:”,I3/,“Weight:”,I 3/,&“Addres:”,A80)End4.REAL 与 INTEGER Program ex0431 implicit noneinteger :: a=1integer :: b=2real:: cc=a/b!c=1/2=0, 虽然c是浮点数,但因为a,b是整数,计算a/b时会用整数去计算.write(*,“(F5.2)”)c End5.DATA 变量表/初值表/,变量表/初值表/,… PROGRAM ex0430 IMPLICIT NONE INTEGER A REALB COMPLEXC CHARACTER(20)STR DATA A,B,C,STR /1,2.0,(1.0,2.0), 'FORTRAN 77'/ WRITE(*,*)A,B,C,STR END6.复数实虚部Program ex0430 complex :: c =(1,2)write(*,100)real(c),'+',aimag(c),'i' 100 format(f5.1,a1,f5.1,a1)End7.逻辑输出 Program ex0416logical a,ba=.true.b=.false.write(*,100)a,bformat(L5,L4)End8.Program ex0415character(len=20)stringcharacter(len=5)substringstring = “Have a nice day.”substring = “nice”write(*,*)ichar('A')!输出字符A的ASCII码write(*,*)char(65)!输出ASCII码65所代表的字符,也就是Awrite(*,*)len(string)!输出字符串string声明时的长度write(*,*)len_trim(string)!输出字符串string内容的长度write(*,*)index(string, substring)!nice在Have a nice day的第8个位置 End9.Program ex0414character(len= 6)firstcharacter(len=10)secondcharacter(len=20)addfirst=“Happy ”second=“Birthday”add = first//second!经由两个连续的除号可以连接两个字符串write(*,100)addFORMAT('生日快乐',/,A)End10.带精度计算 Program ex0408real(kind=8):: a,ba=1b=0.1write(*,*)a,“+”,b,“=”,a+b End11.逻辑if语句 Program ex0504 implicit noneinteger rain, windspeedlogical r,wwrite(*,*)“Rain:”read(*,*)rainwrite(*,*)“Wind:”read(*,*)windspeedr =(rain>=500)!如果rain>=150, r=.true, 不然r=.false.w =(windspeed>=10)!如果windspeed>=10, w=.true, 不然w=.false.if(r.or.w)then !只要r或w有一个值是true就成立write(*,*)“停止上班上课”elsewrite(*,*)“照常上班上课” End if End12.Select Case用法 Program ex0512 implicit noneinteger :: scorecharacter gradewr ite(*,*)“Score:”read(*,*)scoreselect case(score)case(90:100)grade='A'case(80:89)grade='B'case defaultgrade='?'End selectwrite(*,“('Grade:',A1)”)grade End13.IF GOTO语句PROGRAM ex0514 IMPLICIT NONE REAL heightREAL weightWRITE(*,*)“height:” READ(*,*)heightWRITE(*,*)“weight:” READ(*,*)weightIF(weight > height-100)GOTO 200 100 WRITE(*,*)“Under control.”GOTO 300200WRITE(*,*)“Too fat!” 300 STOP END14.DO WHILE 循环 Program ex0604 implicit noneinteger, parameter :: limit=10integer counterinteger :: ans = 0counter = 2do while(counter <= limit)ans = ans + countercounter = counter + 2end dowrite(*,*)ans END15.CYCLE,EXIT 语句 Program ex0609 implicit noneinteger :: i,jloop1: do i=1,3loop2: do j=1,3if(i==3)exit loop1!跳离loop1循环if(j==2)cycle loop2!重做loop2循环write(*, “('(',i2,',',i2,')')”)i, jend do loop2end do loop1 End16.大小写字符 Program ex0612 implicit noneinteger iinteger strlencharacter(len=20):: stringwrite(*,*)“String:”read(*,*)stringstrlen = LEN_TRIM(string)do i = 1, strlenstring(i:i)= char(ichar(string(i:i))+32)end dowrite(*,“('encoded:',A20)”)string End17.循环计算 Program ex0614 implicit nonereal a,b,anscharacter :: key = 'y'!为了至少循环一次do while(key=='y'.or.key=='Y')read(*,*)a read(*,“(A1)”)key read(*,*)b select case(key)case('+')ans = a+b case('-')ans = a-b case('*')ans = a*bcase('/')ans = a/b case defaultwrite(*,“('Unknown operator ',A1)”)keystop end selectwrite(*,“(F6.2,A1,F6.2,'=',F6.2)”)a,key,b,answrite(*,*)“(Y/y)to do again.(Other)to exit.” read(*,“(A1)”)key end do End18.矩阵相加 pogram ex implicit noneinteger, parameter :: row = 2integer, parameter :: col = 2integer :: matrixA(row,col)integer :: matrixB(row,col)integer :: matrixC(row,col)integer rinteger cwrite(*,*)“Matrix A”do r=1, rowdo c=1, colwrite(*,“('A(',I1,',',I1,')=')”)r,cread(*,*)matrixA(r,c)end doend dowrite(*,*)“Matrix B”do r=1, rowdo c=1, colwrite(*,“('B(',I1,',',I1,')=')”)r,cread(*,*)matrixB(r,c)end doend dowrite(*,*)“Matrix A+B=”do r=1, rowdo c=1, colmatrixC(r,c)= matrixB(r,c)+matrixA(r,c)write(*,“('(',I1,',',I1,')=',I3)”)r,c,matrixC(r,c)end do end do end pogram ex[ write(*,“(I3,I3,/,I3,I3)”)((mc(i,j), i=1,2),j=1,2)] 19.program eximplicit noneinteger, parameter :: row = 2integer, parameter :: col = 2integer :: a(2,2)=(/ 1,2,3,4 /)!a(1,1)=1, a(2,1)=2, a(1,2)=3, a(2,2)=4integer :: b(4)=(/ 5,6,7,8 /)integer :: c(2)write(*,*)a,2)write(*,*)a(:,1)c = a(:,1)!c(1)=a(1,1), c(2)=a(2,1)write(*,*)c!c(1), c(2)c = a(2,:)!c(1)=a(2,1), c(2)=a(2,2)write(*,*)c!c(1), c(2)write(*,*)c(2:1:-1)!c(2), c(1)c = b(1:4:2)!c(1)=b(1), c(2)=b(3)write(*,*)c!c(1), c(2)End20.FORALL语句 Program ex Implicit none integer :: I,Jinteger, parameter :: size = 5integer :: a(size,size)forall(I=1:size, J=1:size, I>J)a(I,J)=1!上半部分forall(I=1:size, J=1:size, I==J)a(I,J)=2!对角线forall(I=1:size, J=1:size, I!下半部分write(*,“(5(5I5,/))”)a End21.Allocatable Program EX Implicit none integer :: size, error=0integer, parameter :: one_mb=1024*1024 !1MBcharacter, allocatable :: a(:)Dosize=size+one_mb!allocate(a(size), stat=error)if(error/=0)exitwrite(*,“('Allocate ',I10, ' bytes')”)size write(*,“(F10.2,' MB used')”)real(size)/real(one_mb)deallocate(a)End do End22.Function 函数 Program ex implicit nonereal :: a=10real :: b=20real :: addwrite(*,“(f6.2)”)add(a,b)End Function add(a,b)implicit none real :: a,breal :: addadd = a*b End23.SAVE语句 Program ex Implicit nonecall sub()call sub()call sub()End program Subroutine sub()Implicit noneInteger :: count = 1Save count!指定save变量永远活着,不会忘记它的内容Write(*,*)countcount = count+1 End[运行结果:1 2 3 ]24.生成随机数 program ex implicit noneinterface!定义函数的接口function random10(lbound, ubound)implicit none real :: lbound, ubound real :: random10(10)end functionend interfacereal :: a(10)CALL RANDOM_SEED()!系统根据日期和时间随机地提供种子a = random10(1.0, 10.0)write(*,“(10F6.2)”)aend function random10(lbound, ubound)implicit nonereal :: lbound, uboundreal :: lenreal :: random10(10)realtinteger ilen = ubound-lbound!计算范围大小do i=1,10call random_number(t)!t会是0~1之间的随机数random10(i)= lbound + len * t!把t转换成lbound~ubound 间的随机数end do End25.MODULE语句 Module globalimplicit noneinteger a,bcommon a,b End module Program ex0834use globalimplicit nonea=1b=2call sub()End program Subroutine sub()use globalimplicit nonewrite(*,*)a,breturn End subroutine26.写文件到text program ex0902implicit nonecharacter(len=20):: stringopen(unit=10, file=“test.txt”)write(10,“(A20)”)“I LOVE YOU.”!写到文件中rewind(10)read(10,“(A20)”)string!从文件中读出来write(*,“(A20)”)string!写到屏幕上 end27.随机成绩 program gendataimplicit noneinteger studentsinteger irealr(3)write(*,“(4A5)”)“座位”,“语文”,“数学”,“英语”call random_seed()write(*,*)“How many students?”read(*,*)studentsdo i=1,studentscall random_number(r)write(*,“(6I5)”)i,int(r*50+50)end do end program第二篇:Fortran语言复习大纲复习内容提纲1.FORTRAN程序的结构、书写规则FORTRAN程序的构成(主程序和子程序);FORTRAN77源程序的书写格式。

fortran90-知识点整理

fortran90-知识点整理

U(部件)
*:
系统约定设备
某个值: 指定通道号(设备逻辑号、文件号)
f(格式)
表控格式 I/O(*): 系统约定的格式。 基本格式(自定格式)I/O:按用户要求的格式组织 I/0。 带控制信息表的 I/O:
I:碰到回车(ENTER)为一个记录。 O:一行为一个记录。
程序执行过程中按表控格式输入数据 各数据间有分隔符: ,或空格 类型匹配:整型:带小数点只取整数部分;
1、计算条件表达式的值
2、真
右边语句
IF 的下一个语句
3、假
IF 的下一个语句
注意:
1.右边通常为一条且只一条可执行语句。
错例:IF (A<B) T=A;A=B;B=T
2.不能为以下语句:
END、另一个逻辑 IF、 块 IF、ELSIF、ENDIF、DO
错例:IF(X<2)END
3.常应用于简单的条件赋值或条件转移(在循环结构中)
USE 模块 1,模块 2,…
基本语句概述 程序的最基本的语句主要有四种:类型说明语句、赋值语句、输入语句、输出语句。运用 这些基本的语句,就可以编写一些简单的程序。 内在函数 FORTRAN 90 配置的函数称为内在函数。内在函数分为三种: 基本函数 :
SIGN 符号 函数值:|A1|(若 A2>0)
整型→实型→ 双精度 →复型 例: 8/5+2.0*5/2=6.0(逐步转化)
赋值语句
1、类型要求 逻辑型、字符型的赋值语句要求“=”两边类型相同 数值型赋值,不区别整型、实型和复型 2、种别方面 字符型要求种别相同 其余类型的 e、V 种别允许不同 输入输出语句 1、I/O 的对象 ——列在<I/O 表>中

FORTRAN90复习

FORTRAN90复习

第三章 FORTRAN 90 基础知识基本知识,如:字符集、名称、关键字、程序单元、书写格式、数据类型。

名称:①名称只能由英文字母、数字、下划线符“_”和美元符号“$”组成。

②名称第一个字符必须是英文字母。

③名称不能超过31个字符。

合法名称: Number,Max, PrOgRaM, FIND_IT, read, x, a3b7, china, total, x$y$z 。

非法名称:X-Y-Z, 8q, a.5, _wrong,U.S.A., DR.WANG,$abcd,r a t e 。

书写格式:自由格式,固定格式3个通用标志符:注释标志符“!”、语句分隔标志符“;”和续行标志符“&”。

数据类型第四章 内部数据类型与表控输入输出常量和变量:语法描述; 精度(kind 值)和取值范围整型。

实型。

复型。

字符型。

CH(1:5)是什么?逻辑型。

变量的申明(几种声明方式,谁优先)。

表达式 (会写正确的表达式,表达式计算结果)如:e算术表达式:算术运算符的优先级和结合规则;操作数的类型转换不同优先级运算符,“先高后低”结合先乘方、后乘除、再加减,括号最优先相同优先级运算符,“从左向右”结合,如9-4+12/3*2**3 = ?乘方算符,“从右向左”结合,如2**3**2 = ?尽量多地使用( ),以使意义明确,避免出现歧义和产生错误转换规则“由低级向高级转换”①数据类型和KIND相同的两个算术操作数,计算时不转换,运算结果的类型和KIND与原数据相同。

②数据类型相同但KIND值不同的两个算术操作数,计算时,将KIND值低的操作数转换为高KIND值,运算结果为高KIND值的原类型。

③数据类型不同的两个算术操作数,将低级别类型的操作数高级别类型,运算结果的类型及KIND值与高级别类型操作数相同。

字符表达式字符串连接操作符//“I” // ‘ ‘ // “Love” // ‘ ‘ // “Fortran 90” I Love Fortran 90逻辑变量逻辑与逻辑或逻辑非逻辑等于逻辑不等逻辑异或X Y X.AND.Y X.OR.Y.NOT.X X.EQV.Y X.NEQV.Y X.XOR.Y T T T T F T F FT F F T F F T TF T F T T F T TF F F F T T F F逻辑运算的优先级:.NOT. →.AND.→.OR.→.EQV.、.NEQV.、.XOR、相同优先级时,运算按从左到右的顺序进行(“左结合”)(3>5).and.(4>1))的计算结果是什么?赋值语句 (能写出正确的赋值语句)第五章数据的有格式输入输出I编辑符F编辑符E编辑符D编辑符A编辑符READ(*,*)a,bWRITE(*,*)a,bWRITE(1,"(1X,I5)")WRITE(1,100)100 FORMAT(1X,I5)Open(10, FILE=“FILE1.txt” ,STATUS=“new”)WRITE( * , '(1X, A, "=", I2)') '2+3', 2+3第六章选择结构程序设计逻辑IF语句块IF语句多支块IF语句会写多支块IF程序,块CASE语句第七章循环结构程序设计EXIT语句的功能是:在循环体执行过程中强制性终止整个循环语句的执行,转循环语句后的第一条语句执行。

fortran知识点总结

fortran知识点总结

fortran知识点总结一、语法结构Fortran语言的语法结构遵循一套严格的规则。

下面是一些常见的语法结构:1. 程序单元:Fortran程序由一个或多个程序单元组成。

每个程序单元由一个或多个声明和执行语句组成。

2. 注释:在Fortran中,注释可以用来提高代码的可读性。

注释以感叹号(!)开头,直到行末为止。

3. 标识符:Fortran中的标识符由字母、数字和下划线组成,且区分大小写。

标识符用于表示变量、函数、子程序等。

4. 变量声明:在Fortran中,变量声明使用关键字“REAL”、“INTEGER”、“LOGICAL”等来指定变量的数据类型。

例如,REAL :: x 表示声明了一个实数类型的变量x。

5. 程序控制结构:Fortran提供了多种控制结构,包括顺序结构、条件结构和循环结构。

这些结构提供了程序的流程控制和逻辑控制。

6. 函数和子程序:Fortran支持函数和子程序的定义和调用。

函数和子程序可以帮助程序员组织和重用代码。

7. 模块和接口:Fortran中的模块和接口提供了一种组织代码的方式。

模块可以包含多个子程序和全局变量,接口可以用来定义子程序的接口。

二、数据类型在Fortran中,数据类型用于表示数据的类型和大小。

Fortran提供了多种数据类型,包括整数、实数、逻辑值、字符、复数等。

下面是一些常见的数据类型:1. 整数:整数类型用于表示整数值。

在Fortran中,整数类型包括“INTEGER”、“LOGICAL” 和“CHARACTER”类型。

2. 实数:实数类型用于表示实数值。

在Fortran中,实数类型包括“REAL”和“COMPLEX”类型。

REAL类型用于表示实数,COMPLEX类型用于表示复数。

3. 字符:字符类型用于表示字符值。

在Fortran中,字符类型使用CHARACTER关键字进行声明。

字符类型可以表示单个字符或者字符数组。

4. 数组:数组类型用于表示多个相同类型的数据。

FORTRAN知识点总结

FORTRAN知识点总结

F O R T R A N第2章FORTRAN90基础知识:程序单元的概念:fortran90程序是一种分块形式的程序,整个程序由若干程序单元块组成。

每个程序只有一个主程序单元。

各单元体的程序体形式上相同。

程序单元可以是主程序、子程序(外部过程或内部过程)、模块MODULE (供其他程序单元引用即把该程序单元内的全部语句复制到程序单元中)或块数据程序单元BLOCK 。

语言元素:指在程序设计中用到的基本成分,如字符集、常量、变量、记号(标号、关键字、名字、常数、运算符和定界符)以及其他的基本结构等。

字符集:英文字母、阿拉伯数字、下划线、21个特殊字符($和?没有规定用法)。

数据结构:整型INTEGER (34-2下划线后面是种别参数),n 位字长的计算机的数据表示范围一般为12~211-+---n n ,种别参数由内在询问函数KIND 送回,种别值提供的最小范围由内在函数SELECTED-INT-KIND 送回,表示十进制幂的范围由内在函数RANGE 送回;实型REAL ,小数形式和指数形式;复型COMPLEX (种别类型参数值取实部与虚部中较大者);字符型CHARACTER,由一对单撇号或双撇号之间的字符序列组成;逻辑型LOGICAL。

派生数据类型TYPE;数组INTEGER,DIMENSION(1,50)::A,可直接对数组元素进行运算如3*A,SQRT(A);字符子串,在字符串CHARACTER(LEN=80)::ROW中,ROW(1:3)就表示字符串ROW中第1到第3个元素组成的子串。

变量名的命名规则:不能超过31个字符;组成成分是字母、数字、下划线;第一个字符必须是字母。

第3章基本语句:类型说明语句:类型说明(种别说明),属性说明::变量名表尽量避免把两个实数作相等或不相等的比较。

淘汰隐式说明IMPLICIT NONE种别说明:种别参数即对可移植数据精度和范围进行选择的机制KIND(X) 返回变元X的种别参数值SELECTED-REAL-KIND(n,m) 产生一个种别值,它表示某一精度和范围。

fortran用法小结

fortran用法小结

Fortran用法小结目录:一、说明二、概述三、数据类型及基本输入输出四、流程控制五、循环六、数组七、函数八、文件一、说明本文多数内容是我读彭国伦《Fortran 95 程序设计》的笔记。

只读到第九章,主要是3~9 章,都是最基本的用法(原书共16章)。

这里主要摘录了我看书过程中总结的一些Fortran 和C不同的地方,主要是语法方面。

希望这份笔记能够给学过C但没有接触过Fortran的同学带去一些帮助。

要想得更清楚些,推荐看一下原书,觉得作者真的写得很好,很清楚;如果有C语言的基础,看完前九应该很快的,花一两天就行了。

觉得如果耐心看完本文,基本功能应该也可以顺利用起来了。

外,由于我之前没有用过Fortran,这次为了赶文档看书又看得很粗浅,大多数东西看过之后都没得及仔细想,只是按着作者的意思去理解。

所以这份笔记还处于纸上谈兵的层次。

如果有不妥的方,希望大家指正。

谢谢!文中蓝色的部分是程序代码,!后面的内容为注释。

二、概述1、名词解释Fortran=Formula Translator/Translation一看就知道有什么特色了:可以把接近数学语言的文本翻译成机械语言。

的确,从一开始,IBM设计的时候就是为了方便数值计算和科学数据处理。

设计强大的数组操作就是为了实现这一目标。

Fortran奠定了高级语言发展的基础。

现在Fortran在科研和机械方面应用很广。

2、Fortran的主要版本及差别按其发展历史,Fortran编译器的版本其实很多。

现在在广泛使用的是Fortran 77和Fortr an90。

Fortran 90在Fortran 77基础上添加了不少使用的功能,并且改良了77编程的版面格式,所以编程时推荐使用90。

鉴于很多现成的程序只有77版本,有必要知道77的一些基本常识,至少保证能够看77程序。

以下是77和90的一些格式上的区别。

Fortran 77:固定格式(fixed format),程序代码扩展名:.f或.for(1)若某行以C,c或*开头,则该行被当成注释;(2)每行前六个字符不能写程序代码,可空着,或者1~5字符以数字表明行代码(用作格式化输入出等);7~72为程序代码编写区;73往后被忽略;(3)太长的话可以续行,所续行的第六个字符必须是"0"以外的任何字符。

FORTRAN复习(2011年)[1]

FORTRAN复习(2011年)[1]

FORTRAN复习要点2011年6月1.隐含规则,注意整数相除,商为整数,注意表达式运算的优先级,赋值时两端类型不一致的情况。

2.逻辑表达式的运算结果,运算顺序:非、与、或3.哑元与实元的对应关系,哑元是数组名时,实元可以是什么;哑元的种类。

4.FORTRAN中的常量形式,包括数值型的指数形式、字符型、逻辑型。

5.格式描述符的使用形式。

6.定义数组的方法,注意:用类型语句和dimension语句定义数组的一般形式;数组元素个数的计算。

7.数组的初始化形式。

8.结构化程序的三种基本结构;程序设计的准则。

9.Open语句的形式,注意缺省项的含义。

10.注意“//“(字符串连接)、char和ichar的功能,“A”和“a”的ASCII 编码及关系。

11.do循环的控制变量怎样变化,注意循环正常结束和中途退出时控制变量的取值。

(共30分)12.函数子程序的递归调用。

13.利用循环控制变量的值形成二维数组,注意用隐循环输出二维数组、输出格式。

14.子例行子程序的调用,注意哑实结合时的数据传递。

(仔细)15.子例行子程序和函数子程序的调用,注意地址结合、值的结合,公用语句传递数据。

(共20分)16.42页第二题,可以处理多个数,注意中途退出循环的方法。

17.冒泡排序子程序。

18.以若干个数为一个记录写入顺序文件(注意open语句的写法),并求每个记录中的最大(小)数。

(课堂讲过的)19.输出杨辉三角形,注意,杨辉三角形的形成方法。

20.用子例行子程序求矩阵中某一列最小(大)元素及其行号。

(共32分)21.二叉树的顺序存储结构;二叉树的先序、中序和后序遍历。

(共8分)22.牛顿迭代法求方程的根。

注意,一阶导数用人工求,迭代法函数求值导数求值要编函数子程序,通过子程序调用求解。

(共10分)注意I F、DO、DOWHILE及输入输出等基本语句的掌握。

(完整)Fortran经典编程语言笔记(你值得拥有)

(完整)Fortran经典编程语言笔记(你值得拥有)

(完整)Fortran经典编程语言笔记(你值得拥有)FORTRAN笔记2014.10.07目录第七讲_FORTRAN的基本知识.ppt (2)FORTRAN语言程序设计初步 (2)FORTRAN源程序的书写格式(以77为例) (2)变量 (2)变量类型 (2)算术运算符和运算优先级 (3)赋值语句 (3)参数语句(PARAMETER语句) (3)END语句 (3)PAUSE语句 (3)逻辑运算和选择结构 (4)关系表达式 (4)FORTRAN中数组的定义及使用 (4)其他 (5)1. fortran语言定义CHARACTER*6 TTL(14,3),CNAM(400)是什么意思? (5)2. fortran里character*10 是什么意思 (5)3. Fortran中kind是什么函数? (5)第七讲_FORTRAN的基本知识.pptFORTRAN语言程序设计初步FORTRAN是Formula Translation的缩写,意为“公式翻译”,它是为科学、工程问题或企事业管理中的那些能够用数学公式表达的问题而设计的,其数值计算的功能较强。

常用的是FORTRAN77和FORTRAN90两种标准。

1、一个程序由若干个程序单位组成。

主程序和每一个子程序分别是一个独立的程序单位。

2、每一个程序单位都是以“END”结束的。

3、一个程序单位包括若干行。

1)语句行。

由一个FORTRAN语句组成。

2)非语句行,即注释行。

4、FORTRAN程序中的语句可以没有标号,也可以有标号,根据需要而定。

标号的作用是标志一个语句以便被其他语句引用。

5、一个程序单位中各类语句的位置是有一定规定的。

6、FORTRAN源程序必须按一定的格式书写。

FORTRAN源程序的书写格式(以77为例)每一行有80列,分别如下:1、第1-5列为标号区。

一行中第一列为“C”或“*”,该行即被认为是注释行。

2、第6列为“续行标志区”,如果在一行的第6列上写一个非空格和非零的字符,则该行作为其上一行的续行。

Fortran复习

Fortran复习

格式输出编辑符的写法与含义1.整型编辑符Iw.m W 数据总宽度M 当数据宽度不够M位,则用0补齐例如I5.3当数据宽度小于m时,则用0补齐A=12 :▋▋012 当数据宽度大于或等于m时,m不起作用A=1234 :▋1234 当数据宽度不够W位,则右对齐输出A=123 :▋▋123当数据宽度大于W位,则显示W个星号A=123456 : ***** 2.实型编辑符F w.d w为数据总宽度;d为小数位数;例如F6.3w宽度包含小数点和d以及整数部分的宽度A=1.1234 :▋1.123A=1.1235 :▋1.124当整数部分的宽度大于规定的宽度时,输出W个星号A=112.123 :******当整数部分宽度大于或等于W时,输出W个星号A=123456.12 :******A=12345.123 :******3.逻辑编辑符Lw w表示数据将占用的宽度逻辑值仅显示T、F,在整个宽度范围中,右对齐,左边补空格4.字符编辑符A 自动采用字符型变量的长度作为它的宽度,即W=LENAw w表示指定的宽度例如A5字符串长度小于w,右对齐,左边补空格STR=‘ABC’:▋▋ABC字符串长度大于w,显示左边W个字符STR=‘ABCDEFG’:ABCDE5.输出时执行过程:编辑符的个数与变量个数不一致时的处理方法例如:fmt=’(f4.2,f6.2)’Print ’(f4.2,f6.2)’,a 多余的编辑符不起作用Print ’(f4.2,f6.2)’,a,b,c 重复使用格式串,且变量c换行输出Print ’(f4.2,2(f6.2,f5.2),f4.1)’,a,b,c,d,e,f,g 变量g对应编辑符F6.2,并换行输出格式输入编辑符写法及含义:Iw Fw.d Lw A Aw 按宽度w截取后,赋值1.实型编辑符:Fw.dRead ’(f4.2,f6.2)’,a,b✧对f允许输入整型数据——加工小数点后赋值(不带小数点输入)1234567890123456 :a=12.34 b=5678.9✧对f有自带小数点优先原则(带小数点输入,d不起作用)12.34.56789.789 :a=12.3 b=4.5678✧输入数据串中包含逗号(截取过程中,如果遇到逗号,表示数据截取结束)1.2,3.56,6.3 : a=1.2 b=3.561.23,4.56,7.89 : a=1.23 b=0✧对f允许输入指数形式的实数——加工小数点、化小数形式赋值12345126e3 :a=12.34 b=51260.0✧短区输入法(表控格式输入)注意:何时F编辑符中的D起作用一、选择题1.以下FORTRAN90变量名中正确的是:______(多选)。

fortran复习

fortran复习

Chap.2 Fortran 95 基础知识基本知识,如:字符集、名称、关键字、程序单元 、书写格式、数据类型。

名称:①名称只能由英文字母、数字、下划线符“_”和美元符号“$”组成。

②名称第一个字符必须是英文字母。

③名称不能超过31个字符。

书写格式:自由格式,固定格式3个通用标志符:注释标志符“!”、语句分隔标志符“;”和续行标志符“&”。

chap.3 内部数据类型与顺序结构程序设计常量和变量:语法描述;精度和取值范围(整型,实型,逻辑型,字符型,复数)如常量的写法;变量的申明,什么时候取消IN 规则数据类型表达式 (级别)算术表达式:算术运算符的优先级和结合规则;操作数的类型转换 字符表达式 关系表达式逻辑表达式 关系表达式和逻辑表达式联合结算结果chap.4 数据有格式输入输出I 编辑符F 编辑符E 编辑符A 编辑符 FORMAT 语句,READ 语句,WRITE 语句chap.5 选择结构程序设计chap.6 循环结构程序设计EXIT语句的功能是:在循环体执行过程中强制性终止整个循环语句的执行,转循环语句后的第一条语句执行。

只能在DO和DO WHILE循环语句内使用EXIT语句。

CYCLE语句的功能是:在循环体执行过程中强制性终止本次循环体的执行,转循环语句后的开始语句(DO语句)执行。

只能在DO和DO WHILE循环语句内使用CYCLE语句。

循环嵌套是指在一个循环结构或循环语句的循环体中又含有循环结构或循环语句。

chap.7 数组1 数组声明用类型声明语句进行数组声明INTEGER N(4),M(5,8)用DIMENSION语句进行数组声明DIMENSION num(3),day(12)用类型声明和DIMENSION属性进行数组声明INTEGER,DIMENSION(3):: num,total 维数及元素计算2 数组元素引用3 数组的逻辑结构和存储结构4 数组的输入输出1) 使用DO循环语句输入输出数组DO i=1,MREAD *,A(i)ENDDO2) 使用隐含DO循环子句输入输出数组READ *,(score(i),i=1,N)3) 使用数组名或数组片段输入输出数组READ *,score5 给数组赋初值1) 通过数组构造器给数组赋初值num1=(/2,4,6,8,10/) num1=(/(i,I=2,10,2)/)num1=(/2,4,(i,I=6,10,2)/)RESHAPEINTEGER B(2,3), C(8)B= RESHAPE((/1, 2, 3, 4, 5, 6/),(/2,3/))2) 通过DATA语句给数组赋初值6 动态数组INTEGER,DIMENSION(:),ALLOCATABLE :: numREAL,DIMENSION(:,:),ALLOCATABLE :: arrn=4;m=5ALLOCATE(num(5),arr(n,m))查找(折半查找)和排序chap.8 函数与子程序函数和子例行程序的区别1.语句函数的定义和使用F(x1,x2,x3)=3.14159*(x1+x2/60.0+x3/3600.0)/180.0●一个语句函数只能用一个语句定义完。

fortran语言知识点总结

fortran语言知识点总结

fortran语言知识点总结Fortran语言知识点总结:1. 基本语法和数据类型Fortran的基本语法和数据类型与其他编程语言类似,包括变量声明、赋值、条件语句、循环语句等。

在Fortran中,变量可以使用不同的数据类型进行声明,包括整数、实数、逻辑型和字符串型。

此外,Fortran还支持数组类型,可以方便地处理多维数组数据。

2. 过程和函数Fortran支持模块化编程,可以将代码模块化为过程和函数。

过程是一系列执行指令的代码块,可以在程序中被多次调用。

函数是一个具有返回值的过程,可以被其他代码调用,并返回一个值。

通过过程和函数的使用,可以提高代码的重用性和可维护性。

3. 指针和动态内存分配Fortran支持指针和动态内存分配,可以在程序中灵活地操作内存。

通过指针,可以获得变量的地址,并在程序中直接操作内存。

同时,动态内存分配允许程序在运行时分配或释放内存,可用于处理不确定大小的数据。

4. 文件操作Fortran提供了丰富的文件操作功能,可以进行文件的打开、写入、读取和关闭等操作。

通过文件操作,可以将程序的输入和输出与外部文件进行交互,从而扩展程序的功能和应用范围。

5. 并行计算Fortran具有强大的并行计算能力,可以利用多核处理器和分布式计算环境实现并行计算。

通过并行计算,可以加速程序的执行速度,提高计算效率。

6. 编译和调试Fortran程序需要通过编译器进行编译,生成可执行文件。

Fortran编译器通常会检查程序的语法和语义错误,并生成可执行文件。

同时,Fortran还提供了丰富的调试工具,可以帮助程序员发现和修复程序中的错误。

7. 数值计算和科学工程计算Fortran是一种专门用于数值计算和科学工程计算的语言,提供了丰富的数学库和科学计算库。

通过这些库,可以方便地进行复杂的数值计算和科学工程计算。

总结:Fortran是一种专门用于数值计算和科学工程计算的编程语言,具有丰富的数学库和科学计算库。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2 表控输入 READ 语句:
类似 cin>>
READ * ,变量 1,变量 2,„
表控输出 PRINT 语句: 类似 cout<<
PRINT * ,表达式 1,表达式 2,„
3 PARAMETER 语句:给常数命名 位于类型声明后,可执行语句前
PARAMETER(名称 1=表达式 1,名称 2=表达式 2,„)
输入:
↙。
输出:

第六章 选择结构 同 C++,只是除逻辑 IF 语句,其他都需要有 END IF 对应
1 逻辑 IF 语句
IF(<逻辑表达式 e>) <语句 S>
e 为逻辑表达式或关系表达式,S 为可执行语句。
2 基本块 IF 语句
(1)IF(<逻辑表达式 e>)THEN
[<THEN 语句体>]
END IF
5 两种书写格式:固定格式和自由格式
6 数据类型:有内部数据类型、派生数据类型、数组和指针类型等
预定义内部数据类型
INTEGER→int、
REAL→float/double、
COMPLEX、
CHARACTER→char、
LOGICAL→bool
第四章 表控输入输出
1 三种类型输入输出:表控格式、二进制形式(无格式)、有格式
式不正确会致错
输出:例: PRINT 10,i,j,k
10 FORMAT(1X,'i=',I4,3x,'j=',I4,3x,'k=',I4)
w>实际长度,前补空格。
w<实际长度,输出 w 个“*”。
m>实际长度,补前导 0 至 m 位,否则按照实际位数输出
3 小数型实数的有格式输入输出,F 编辑符:
1 计数型 DO 循环
类似 for(v=e1;v<=e2;v+=e3)
DO <v>=<e1>,<e2>[,<e3>]
<语句 1>
<语句 2>
„„
<语句 n>
ENDDO
v 为循环变量(一般为整型),e1 初值,e2 终值,e3 步长,缺省为 1
循环次数:[(e2-e1)/e3 ]+ 1
循环中可引用 v,但不能修改 v, 只可修改 e1,e2,e3,但不影响结果
CHARACTER*20 num
3)DIMENSION 属性:
<类型>,DIMENSION(<维说明表>)::<数组声明表>
::必须出现。
例:INTEGER,DIMENSION(-5:-1,5:9)::num,total
允许在数组声明表中对数组进行特定维说明。
例:INTEGER,DIMENSION(2)::t1,t2(10:15),t3(2,2)
输出:
w 用法同整数
d>实际长度,左对齐输出,后补 0。
d<实际长度,左对齐输出,小数部分四舍五入保留 d 位
4 指数型实数有格式输入输出,E 编辑符:
[r]Ew.d[Ee]
r 重复次数,w 域宽(含符号小数点和 E),d 小数位数,e 指数位数,缺省为 2(不含 E
和符号),缺省指数域宽为 e+2
(2)IF(<逻辑表达式 e>)THEN
[<THEN 语句体>]
[ELSE
[<ELSE 语句体>]]
END IF
3 多支块 IF 语句语法
IF(<逻辑表达式 e1>)THEN
[<语句体 1>]
ELSE IF(<逻辑表达式 e2>)THEN
[<语句体 2>]
ELSE IF(<逻辑表达式 e3>)THEN
允许从循环体内转移到循环体外,反之编译警告。
循环结束后,v 为最后一次循环增加步长后得到的值。
2 条件型 DO WHILE 循环
DO WHILE (<循环条件>)
<语句 1>
<语句 2>
„„
<语句 n>
ENDDO [<名字>]
强制终止循环:EXIT、CYCLE (但只能在 DO 和 DO WHILE 循环语句内使用)
DIMENSION <数组声明表>
DIMENSION num1(3),count1(-3:6,0:6)
数组类型由 I-N 规则确定。
类型可以通过类型声明语句改变,且声明语句可位于 DIMENSION 的前面或后面。
例: INTEGER day
DIMENSION num(3),day(12),count(-3:3)
数组构造器也可用于给数组片段赋初值
同 F,只是有效位数增加到 15 位
6 字符型 A 编辑符
[r]A[w]
缺省域宽 w 取对应字符型变量声明长度。
输入:输入中的引号、逗号和空格按一般字符对待
输出:
W<实际长度, 左截取
W>实际长度,左补空
可在输出数据中插入提示信息。
例: READ*, I,J
PRINT 25,I,J
25 FORMAT(1X,’I=‘,I3,’J=‘,I3)
第三章 基础知识 1 字符集 由四部分字符组成:
英文字母(不区分大小写)、阿拉伯数字、下划线、特殊字符(各种符号) 2 标识符 <字母>{<字母>∣<数字>∣“_”}(不区分大小写) 3 对关键字不予保留,但应避免使用关键字作为实体名称 4 语句:说明语句必须放在可执行语句之前
任何语句前可设置语句标号 3 个通用标志符:注释标志符“!” 语句分隔标志符“;” 续行标志符“&”
<数组初值>→(/<初值 1>,<初值 2>,„,<初值 n>/)
数组元素个数:从 1 开始到 n
区别于 C++的从 0 开始到 n-1
要求:上界≥下界,否则数组大小为 0。
数组和变量可同一语句混合声明. 例:INTEGER max,count(10)
数组声明语句必须出现在所有可执行语句之前
2)DIMENSION 语句
第一章 概述 FORTRAN:FORmula TRANslator 算法有五个基本特征:有穷性、确定性、必要的输入输出、可行性 评价算法质量的四个基本标准:正确性、可读性、通用性、高效率 程序设计方法:面向过程(模块化、结构化)、面向对象。 面向过程两大特征:使用三种基本控制结构;采用自顶向下和逐步求精方法 F90 采用模块化和结构化相结合的程序组织结构
例:Real pi; Parameter(pi=3.14)
第五章 有格式输入输出
1 输入输出形式
类似#define
1)语句标号指定 例:READ 100,M,N
100 FORMAT(I3,I3)
2)直接书写
例:READ “(I3,I3)”,M,N
3)数据源+标号 例:READ (*,100)M,N
2 数组声明:类型声明语句、DIMENSION 语句、DIMENSION 属性
1)类型声明语句
<类型> [::] <数组声明表>
<数组声明表>→<数组名>(<维说明表>)[=<数组初值>]
{,<数组名>(<维说明表>)[=<数组初值>]}
<维说明表>→<维说明符>{,<维说明符>}
<维说明符>→[<下界>:]<上界>
可以给数组赋初值。
例:INTEGER,DIMENSION(5):: S=(/45,78,85,55,95/)
3 数组引用
格式:<数组名>[(<数组下标>{,<数组下标>})]
<数组下标>→[<算术表达式>]:[<算术表达式>]
引用一个元素:下标为一个算术表达式。
引用部分元素(数组片断引用):下标为:号间隔的两个算术表达式。
[r]Fw.d
r 重复次数,w 域宽(含符号和小数点),d 小数位数。
程序示例:
REAL a,b,c
READ 10,a, b, c
10 FORMAT(2F5.2,F8.3)
PRINT"(1X,'a+b+c=',F8.3)",a+b+c
END
输入:
不带小数点时,按域宽读取,根据 d 值自动加小数点。
带小数点,按域宽读取,自带小数点优先
END
7 X 编辑符:用于设置输入输出数据的起始位置。
nX
输入:从当前位置右移 n 个字符。
输出:从当前位置插入 n 空格。
例: READ 11,i,j,k
11 FORMAT(2X,I3,3X,I3,3X,I3)
PRINT 21,i,j,k
21 FORMAT(1X,'i=',I3,4X,'j=',I3,4X,'k=',I3)
[<语句体 3>]
„„
ELSE IF(<逻辑表达式 en>)THEN
[<语句体 n>]
[ELSE
[<语句体 n+1>]]
END IF
内外转移的情况:
不允许从块 IF 语句外控制转移到块 IF 语句体内,
相关文档
最新文档