Fortran复习
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程序设计_05

20XX年复习资料大学复习资料专业:班级:科目老师:日期:一、选择题(每题2分,共30分)1. 下列数据中,不符合FORTRAN 90常量表示法的是__________。
A. -23.4B. 2.758D+3C. (3, 4)D. TRUE2. 数学表达式()()27log t b a e t -•+•在FORTRAN 中的正确的表达式为__________。
A. E**T*LOG*(A+B)*(-7*SQR(T))B. EXP(T)*LOG20XXXX(A+B)*(-7*T**2)C. EXP(T)*LN(A+B)*(-7*SQR(T))D. E**T*LOG(A*B)*(-7*T**2)3. 下列名称中,符合FORTRAN90/95命名规则的是__________。
A. a3_bB. “Pi ”C. 2XYD. .false.4. 下列循环语句执行后,输出k 的值分别是__________。
DO K=2,20XXXX ,4IF(MOD(K,20XXXX)= =0) WRITE(*,*) K+1WRITE(*,*) KEND DOWRITE(*,*) KA. 2 6 20XXXX 20XXXX 20XXXXB. 2 6 20XXXX 20XXXX 20XXXXC. 2 6 20XXXX 20XXXX 20XXXXD. 2 6 20XXXX 20XXXX 20XXXX 20XXXX5. 阅读下列程序PROGRAM AREAD(*,20XXXX0)X,Y20XXXX0 FORMAT(1X,2F3.1)S=MOD(Y,X)WRITE(*,200)S20XX0 FORMAT(F3.1)END在执行上述程序后,由键盘输入20XXXX3446889,最后输出的S 值为__________。
A. 0.0B. 8.1C. 21.0D. 1.06. 判别英语成绩E 和FORTRAN 成绩F 都必须大于60分的正确的表达式是__________。
FORTRAN90复习资料(2)

FORTRAN90 程序设计复习资料(2)一、选择题1.FORTRAN 90规定,变量类型声明的优先顺序是。
A.隐含约定(I-N规则)、IMPLICIT声明、类型声明B.类型声明、隐含约定(I-N规则)、IMPLICIT声明C.类型声明、IMPLICIT声明、隐含约定(I-N规则)D.IMPLICIT声明、类型声明、隐含约定(I-N规则)2.表达式15/4/2.0的值是。
A.整数2 B.实数1.5 C.实数2.25 D.实数1. 33.数组声明语句为:INTEGER,DIMENSION(-5:-1,-3:3,11:15) ::num ,数组共有个元素。
A.175 B.150 C.120 D.174.下列语句函数声明中,正确的是。
A.F1(I,I)=5*I-10*I**2 B. F2(MAT(5),A)=5*A+MAT(5)C. F3(X,Y,5.0)=X**2+Y**2+5.0**2D.F4(X,Y)=SQRT(X**2+Y**2+5.0**2)5.下列关于子程序的有关说法中,不正确的是。
A.对于无参子例行程序,调用时子例行程序名后的括号可取消B.对于无参函数子程序,调用时函数名后括号可取消C.对于有参子程序,形式参数可以是子程序名对于有参子程序,形式参数可以是星号“*”6.以下不是算法的特征。
(A) 灵活性(B)确定性(C)可行性(D)有穷性7.以下是FORTRAN 90源程序的扩展名。
(A)MDP (B)MAK (C)OBJ (D)F908.下列是正确的变量名。
(A)3SI (B)SI—3 (C)SI 3 (D)SI#39.若S为整型变量,且有S=1.25+11/4,则S的值为。
(A)3(B)3.25 (C)4 (D)4..2510.表达式MOD(5,6)+9/2**3/2的值为。
(A)37 (B)1 (C)5 (D)3211.已知a=3.0,b=9.0,c=5.0,d=7.0,逻辑表达式a+b/=c. and .a>=d的值为。
FORTRAN知识要点及笔试试卷分析

29、以下关于内部函数过程说法中正确 的是 29 。
A. 内部函数过程可以放在程序单位中的 任何地方 B. 内部函数过程必须通过执行它的END FUNCTION语句才能完成引用 C. 内部函数过程不能递归定义 D. 内部函数过程可以作为函数引用而出 现在该程序单位内任何表达式内
17
30、以下关于FORTRAN文件系统中操 作的叙述中,错误的是 30 。
23
例3:填空题5、以下程序执行后,输出的第一行 是 n=2 ,第二行是 2 3 。数组函数
Array的值: PROGRAM main 7 -2 3 IMPLICIT NONE 9 5 6 INTEGER::i,n,maxl(1),array(3,3) -1 0 9 INTEGER, ALLOCATABLE :: ar1(:) array=RESHAPE((/7,9,-1,-2,5,0,3,6,9/),(/3,3/)) n=SIZE(SHAPE(array)) PRINT '(A,I2)','n=',n ALLOCATE(ar1(n)) ar1=MAXLOC(array,MASK=array .LT. 7) PRINT '(4I3)',(ar1(i),i=1,n) 24 END PROGRAM main
。
6 8 4
A. B. C. D.
2 2 4 4
4 2 4 4
6 2 6 4
8 9 8 4
9
9 9
A数组的值:2
12
25、关于动态数组(假定数组名为a) 的以下说法中,错误的是 25 。
A. 要说明标识符a为动态数组,必须在数组说 明中标明ALLOCATABLE属性 B. 动态数组既可以作过程的哑元,也可以在 调用过程时作实元 C. 动态数组a用执行ALLOCATE(a(10))语句 获得内存空间 D. 动态数组a用执行DEALLOCATE(a)语句释 放已占内存空间
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语言复习大纲复习内容提纲1.FORTRAN程序的结构、书写规则FORTRAN程序的构成(主程序和子程序);FORTRAN77源程序的书写格式。
2.数据类型及其运算常量和变量的类型(整型、实型、双精度型、复型、逻辑型、字符型);定义变量类型的方法(用I-N规则隐式说明和显式说明);符号常量及其定义方法(PARAMETER语句);运算符及运算优先级;表达式(算术表达式、关系表达式、逻辑表达式和字符表达式)及其求值规则;不同类型数据的混合运算。
3.基本语句赋值语句(算术、逻辑和字符型赋值语句);表控格式的输入和输出;格式输出:格式编辑符(X、I、F、E、A、/),格式的重复作用,格式语句与输出语句(WRITE语句)的相互作用,在输出语句中包含格式说明的方法;停止语句(STOP语句);结束语句(END语句);赋初值语句(DATA语句);转移语句(GO TO语句);程序举例。
4.选择结构程序设计逻辑IF语句;块IF结构;选择结构的嵌套;程序举例。
5.循环结构程序设计当型循环与直到型循环;用DO语句实现循环:DO语句时循环次数的计算,循环体的概念,循环终端语句和CONTINUE语句;DO WHILE 循环语句;用块IF和GOTO语句实现循环;循环的嵌套;程序举例。
6.数组的使用定义数组的方法(用DIMENSION语句和类型语句定义一维或多维数组);数组元素的正确引用;数组在内存中存储顺序(按列存储);对数组赋初值的方法;数组的输入与输出;可调数组;程序举例。
7.函数和子程序内部函数的调用方法;语句函数的定义及引用方法;函数子程序(FUNCTION子程序)的结构及调用方法;子例行程序(SUBROUTINE子程序)的结构及调用方法;模块间的数据传递(虚实结合);程序举例。
8.数据联系及文件公用语句(COMMON语句),无名公用区和有名公用区。
第二篇: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,wwri te(*,*)“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 E nd12.Select Case用法 Program ex0512 implicit noneinteger :: scorecharacter gradewrite(*,*)“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 doend 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)=4 integer :: 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 noneinteger :: 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第三篇:C语言复习大纲1、C语言程序常见的书写格式;2、printf()和scanf()函数常用的方法,主要包括格式控制符;3、常见的基本类型(现学过3种)以及表示数据的范围(大致的)。
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 90 添加
¾real*8 a
! Fortran 77 传统方法
字符及字符串(CHARACTER)
赋值方法: ① = 设置:
② 改变字符串的一部分内容
③ 两个至多个字符串的合并(//)
3 输入命令(READ)
输入格式和输出格式的命令,是通用的 程序中的变量赋值方法:
¾程序代码设定(=,data) ¾使用Read:键盘输入、数据文件读入
2.编译器(Compiler)
编译器:把程序代码转换成目的文件(*.OBJ)或执行文件〔*.EXE) 的工具。 它有很多编译选项,不同设置,编译出不同的机器码。
最常见的两种编译格式(Windows):
―– Debug调试功能强,但编译文件执行效率较差。(适合调试阶段) ―– ReIease编译文件的执行效率好。(适合执行阶段)
– UNIT:输出位置(当该值为6和*时,输出到默认位置:屏幕;其他为 输出到文件)(完整功能参见P236) – FMT:输出格式(当该值为*时, 输出默认格式)
简写: – write (*,*) “String” (以默认格式输出屏幕) – write (10,200) “String”(以行号200的format
A~Z 及 a~z (英文字母大小写不区分)
0~9
+加号 - 减号 *星号 /斜线 =等号 .小数点 (左括号 ) 右括号 <小于 > 大于 :冒号 ” 引号 ’单引号?问号 ,逗号 ;分号 !叹号 $ 货币符号 &英语and % 百分号 _下划线 空格
2. 书面格式
Fortran程序编写格式有两种:
把大程序拆解成许多小文件来编写,使程序设计模块化, 不仅节约程序编译调试时间,也利于程序发展和升级。 不同语言程序代码所生成的OBJ文件链接成一个执行文件, 利于不同语言的综合应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.链接器(Link)
¾ 把Compiler所生成的目的文件(*.OBJ)链接成执 行文件(*.EXE)、或是链接库(*.LIB、*.DLL)。
¾ 链接目的文件,生成执行文件的优点:
《Fortran程序设计》考核
¾成绩考核:
期末理论闭卷考试(70%)+ 上机考试(20%)+ 平时作业(10%)
期末考试题型结构
1. 单选 15 X 2 = 30分 2. 填空 20 X 1 = 20分 3. 读程序写结果4 X 5 = 20分 4. 编写程序2 X 15 =30分
目录
第1章 计算机概论 第2章 编译器的使用 第3章 Fortran程序设计基础 第4章 输入输出及声明 第5章 流程控制与逻辑运算 第6章 循 环 第7章 数组(ARRAY) 第8章 函 数
5 种 数据类型(记录文本、数值的方法):
1. 整数(INTEGER)
长整型:-231+1~231
短整型:-215+1
215
~
,( -32768
~
+32767)
2. 浮点数(REAL)
单精度:有效位数 6 ~ 7位,最大 ±3.4*1038,最小
±1.18*10-38
3.复数(COMPLEX) 复数由两个浮点数(a+bi)来表示的数值。
cos(x) sin(x) tan(x)
arcos(x) arsin(x) artan(x) ex ln(x) (以e为底对数) lg(x) (以10为底对数)
x (x的平方根)
备注
反三角函数
x为弧度
x—Biblioteka π=Ѳ 3—60为防计算溢出, 应确保x为正
第四章知识点
1.输出命令WRITE的基本用法
最严谨的写法: write (UNIT=6,FMT=*) “String”
复数分为单精度复数和双精度复数两种。
3 Fortran的数据类型
5 种 数据类型(记录文本、数值的方法) 4. 字符型(CHARACTER)
可记录数字、文本或任何特殊符号 记录一连串字符时称“字符串” 5. 逻辑判断(LOGICAL) 只有两种逻辑结果:“是” TRUE 和 “否” FALSE
数学表达式写法:
¾乘幂要连用两个星号**,如:
⇒ Y X
Y **X
¾乘号不能省略
⇒ ¾除法用/ (A+B)×(C+D) 2×(E+ F)
((A+ B)*(C + D))/(2*(E + F))
5 Fortran的常用数学库函数
1. 常用的数值运算函数
函数原型
ABS(x) CMPLX(a,b) INT(x) NINT(a) MAX(a,b,..) MIN( a,b,.. ) MOD( a,b ) REAL (i) SIGN (a,b)
Write 和Read使用格式format的写法相同。
format格式语句的两种写法:
¾完整写法、简写(程序简洁清楚,不适合复杂、重复格式)
最常用格式符:
Aw
BN
GSw.d[Ee] Iw[.m]
I、F、E、A、X 、/
Dw.d
Lw
ENw.d[Ee]
nX
Fw.d
输出格式的编写技巧
1.重复格式的简洁表示方法: 2.字符串可直接写在格式设置中 3.通过字符串设置,动态改变输出格式 4.用“,”隔开不同格式控制符 5.print 与write的输出格式类似 6. 读入格式和输出格式命令,是通用的。
输出格式,输出到通道为10 的文件。)
z文件对应的通道由open 语句设置,参见P233 EX0901.f90 zformat语句行号和格式可自定义,参见P49 EX0402.f90
① 每执行一次WRITE,会自动换到下一行 ② 输出字符串需用英文的双引号或单引号(f77)封装 ③ 输出双引号,则连续使用两个双引号 ④ PRINT与WRITE的比较:
Read 基本功能的写法: z 最严谨写法:Read(unit=5,fmt=*) a
¾Unit=* 或5 :代表使用键盘输入 ¾Unit=3:代表从通道为3的文件中读入数据 ¾Fmt=*:代表默认读入格式 ¾Fmt=100 :代表以行号100的format格式读入
z简写: Read(3,100) a
2.编译器(Compiler)
编译器:把程序代码转换成目的文件(*.OBJ)或执行文件〔*.EXE) 的工具。 它有很多编译选项,不同设置,编译出不同的机器码。
最常见的两种编译格式(Windows):
―– Debug调试功能强,但编译文件执行效率较差。(适合调试阶段) ―– ReIease编译文件的执行效率好。(适合执行阶段)
① 固定格式(Fixed Format)如: [ex0301.for]
Fortran77的旧式写法,编写格式有很多限制 往往以.for , .f 为扩展名
② 自由格式(Free Format)如:[ex0302.f90]
Fortran90后的新写法,取消很多的旧限制。 往往以.f90, .f95为扩展名
第五章知识点
1 IF语句
功能:能够在程序执行当中自动选择转向、 跳过某些程序模块来执行程序代码。
在声明的同时,赋初值
5.3 设置变量的初值 DATA命令,赋初值 (F77)
代码执行中, 赋初值 ¾读入、= 赋值
5.4 声明在程序中的结构
声明的位置:必须放在程序代码的可执行描述之前,在 Program 或implicit 之后。 多个常量和变量的声明:必需连续成一个模块,并在程序 最前面完成。 DATA的位置:习惯上常紧接在声明部分的后面
– UNIT:输出位置(当该值为6和*时,输出到默认位置:屏幕;其他为 输出到文件)(完整功能参见P236) – FMT:输出格式(当该值为*时, 输出默认格式)
简写: – write (*,*) “String” (以默认格式输出屏幕) – write (10,200) “String”(以行号200的format
单精度的声明方法:(有效位数7位)
¾real a
! Fortran 77 默认
¾real (kind=4) a
! Fortran 90添加
¾real*4 a
! Fortran 77传统写法
¾real(4) a
! Fortran 77传统写法
双精度的声明方法:(有效位数15位)
¾real (kind=8) a
! Fortran 90 添加
¾real*8 a
! Fortran 77 传统方法
字符及字符串(CHARACTER)
赋值方法: ① = 设置:
② 改变字符串的一部分内容
③ 两个至多个字符串的合并(//)
3 输入命令(READ)
输入格式和输出格式的命令,是通用的 程序中的变量赋值方法:
¾程序代码设定(=,data) ¾使用Read:键盘输入、数据文件读入
(也译为:对-错, 真-假) 不同类型的数据必需经过转换才能互通互用 因为使用不同方法来存储,可用BITVIEWER查看二进制码。
4 Fortran的数学表达式
数学运算符号优先级(上高下低排序)
¾( ) 括号(表示括号起来的部分优先计算)
¾ ** 乘幂(两星号要连续)
¾ * 乘法 / 除法
¾ + 加法 - 减法
2 声明
声明:在程序代码中,向编译器要求预 留存放数据的内存空间。
声明变量的原则: ¾1.变量的名称:使用英文字母,可用下划线或数 字,但前缀必须是英文 ¾2.变量名称的长度:F77是1-6之间,Fortran90 是1-31之间。 ¾3.变量禁止同名:变量名不能和fortran执行命 令、主程序的名称和前面声明过的变量同名。 ¾4.变量不分大小写
6 Fortran 90的自定义数据类型
自定义数据类型:自由组合一些基本的数据类型(整数、 浮点数和字符型),创造出一个更复杂类型组合的功能 “TYPE”。 例:应用TYPE,建立一个记录人信息的变量A为例:
z变量A的各个元素赋值:
¾键盘输入: ex0434.f90
¾赋值语句:
A=person(“Peter”,20,170,60,“Taipei,Taiwan”)
声明的方法(一个整型变量):
¾Integer a ¾Integer : : a ¾Integer (kind=4) a ¾INTEGER*4 b ¾INTEGER(4) c
! Fortran 77 默认长整型 ! Fortran 90添加 ! Fortran 90添加
! Fortran 77传统写法 ! Fortran 77传统写法
2.1固定格式(Fixed Format)
规定了程序代码每—行中每个字段的意义
第1列 第1-5列 第6列 第7-72列 第73列以后
如果是字母C、c或星号*,这一行文本被 当成说明,不编译。(注解区)
如果是数字,代表这一行程序的代号。不 然只能是空格。(代号区)
如果是除0外的字符,表示这一行接上一 行。(续写区)
把大程序拆解成许多小文件来编写,使程序设计模块化, 不仅节约程序编译调试时间,也利于程序发展和升级。 不同语言程序代码所生成的OBJ文件链接成一个执行文件, 利于不同语言的综合应用。
第三章知识点
1 . 字符集
“字符集”:编写Fortran程序所能使用的所有字符及符号。
字符集有
英文26个字母 数字 22个特殊符号
A~Z 及 a~z (英文字母大小写不区分)
0~9