有关江苏省计算机二级FORTRAN的提纲重点

有关江苏省计算机二级FORTRAN的提纲重点,第1张

FORTRAN语言程序设计

(一)FORTRAN程序的结构、书写规则

1。FORTRAN程序的构成(主程序和子程序)。

2。FORTRAN源程序的书写格式。

(二)、数据类型及其运算

1。常量和变量的类型(整型、实型、双精度型、复型、逻辑型、字符型)

2。定义变量类型的方法(用I——N规则隐式说明和显示说明)。

3。符号常量及其定义方法(PARAMETER语句)。

4。运算符及运算优先级。

5。表达式(算术表达式、关系表达式、逻辑表达式和字符表达式)及其求值规则。不同类型数据的混合运算。

(三)最基本的语句

1。赋值语句(算术、逻辑和字符型赋值语句)。

2。表控格式的输入和输出。

3。格式输入与输出。

(1)格式编辑符(X、H、I、F、E、D、A、L、/),格式的重复作用。

(2)格式语句与输入输出语句(包括READ,WRITE语句)的相互作用。

(3)在输入输出语句中包括含格式说明的方法。

4。暂停语句(STOP)语句,停语句(END语句)。

5。赋初值语句(DATA语句)。

6。转移语句(GOTO语句)。

(四)选择结构程序设计

1。逻辑IF语句。

2。块IF结构。

3。选择结构的嵌套。

(五)循环结构程序设计

1。当型循环与直到型循环。

2。用DO语句实现循环:

(1)用DO语句时循环次数的计算。

(2)循环体的概念。

(3)循环终端语句和CONTINUE语句。

3。用块IF和GOTO语句实现循环。

4。循环的嵌套。

(六)数组的应用

1。定义数组的方法(用DIMENSION语句和类型语句定义一维或多维数组)。

2。数组元素的正确引用。

3。数组在内存中存储顺序(按列存储)。

4。对数组赋初值的方法。

5。数组的输入与输出。

6。可调数组。

(七)函数和子程序

1。内部函数的调用方法。

2。语句函数的定义及引用方法。

3。函数子程序(FUNCTION子程序)的结构及调用方法。

4。子例行程序(SUBROUTINE子程序)的结构及调用方法。

5。模块间的数据传递(虚实结合)。

(八)数据联系

1。公用语句(COMMON语句),无名公用区和有名公用区。

2。数据块子程序。

(九)字符处理

1。字符串、字符型变量和字符型数组。

2。字符型数据的赋值和运算。

3。字符型数据的输入与输出。

(十)文件

1。文件与记录的概念。

2。文件的打开与关闭。

3。顺序文件的存取方法。

4。直接文件的存取方法。

原作者说得没错。

e为原矩阵,f为存放e的逆矩阵,n为矩阵e的维数

你的问题是,主程序里的 e 和 f 的数据类型或精度与子程序不同。

检查一下你对 e 和 f 的定义,是否是单精度?是否是55 ?

我试了一下你的代码,子程序完全没有问题。用一个简单的主程序测试,也没问题。

!下面是我的主程序

integer n

real e(5,5) , f(5,5)

n = 5

e(:,1) = (/1,3,5,6,6/)

e(:,2) = (/3,5,7,8,4/)

e(:,3) = (/6,8,9,4,6/)

e(:,4) = (/3,6,8,9,0/)

e(:,5) = (/5,7,9,4,3/)

call Get_nizhen(e,f,n)

write( , ) f

end

!下面是你的子程序

subroutine Get_nizhen(e,f,n)

integer i,j,k

real::e(n,n),f(n,n),a(n,n)

a=e

do i=1,n

f(i,i)=1

enddo

do i=1,n

f(i,:)=f(i,:)/a(i,i)

a(i,i:n)=a(i,i:5)/a(i,i)

do j=i+1,n

do k=1,n

f(j,k)=f(j,k)-f(i,k)a(j,i)

enddo

a(j,i:n)=a(j,i:n)-a(i,i:n)a(j,i)

enddo

enddo

do i=n,1,-1

do j=i-1,1,-1

do k=1,n

f(j,k)=f(j,k)-f(i,k)a(j,i)

enddo

enddo

enddo

return

end

动态数组允许做为参数传递至子程序,但需要先 allocate,否则会出现错误。

在某些编译器里,也允许未 allocate 的动态数组传递至子程序,但必须声明为 allocatable

且必须先 allocate 后使用。

大致思路就是只要不把他们放在一个主程序内就OK了,放在同一个文件或者不同f文件都是一样的。对于第二个问题,回答也是可以的

比如说这样的程序调用:

PROGRAM MAIN

CALL SUB1

END

SUBROUTINE S

CALL SUB2

END

SUBROUTINE SUB2()

CALL SUB3

END

SUBROUTINE SUB3()

END

这几个子程序和主程序PROGRAM MAIN可以放在同一个f文件里面编译,也可以分别放置不同f文件,编译时效果一样。

Module 

虽然主程序和子程序中的 LA 定义得完全一样,但是编译器依然认为是两种不同的 type。

同样都叫 LA 并不能说明这两种 type 是相同的。而 Type 的成员 A B 是否一样,目前的编译器都不会去检查。

你需要使用一个 module 来定义 Type LA,然后在主程序和子程序里使用这个 module,这样编译器才会认为是同一个 LA

do 10 i=1,25

call pbar(i)

10 continue

end

subroutine pbar(n)

integer n

character1 c

c=''

do 10 i=1,n

write(,100)c

10 continue

write(,)

100 format(A1\)

return

end

以上就是关于有关江苏省计算机二级FORTRAN的提纲重点全部的内容,包括:有关江苏省计算机二级FORTRAN的提纲重点、fortran95子程序命名,大神帮改错高分、求FORTRAN高手帮忙: 我在主程序中调用子程序时,遇到FORRTL SERVER <157> ACCESS VIOLATION的错误等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9689172.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存