Fortran源自于“公式翻译”(英语:FormulaTranslation)的缩写,是一种编程语言。
它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。FORTRAN语言以其特有的功能在数值、科学和工程计算领域发挥着重要作用。
随着FORTRAN语言版本的不断更新和变化,语言不兼容性问题日益突出,语言标准化工作被提上了日程。
1962年5月:美国标准化协会(简称ANSI)着手进行FORTRAN语言标准化的研究工作。
1966年:ANSI正式公布了两个标准文本:美国国家标准FORTRAN(ANSI X3.9-1966)和美国国家标准基本FORTRAN(ANSI X3.10-1966),前者相当于FORTRAN Ⅳ,后者相当于FORTRANⅡ。基本FORTRAN是美国国家标准FORTRAN的一个子集,从而实现了语言的向下兼容,初步解决了语言的兼容性问题。
求n元一次方程组的解现在已经有很好用的链接库可以用了,很多fortran编译器厂商现在都提供了IMSL(数学与统计链接库),IMSL是一套在数值方法上经常用到的商业链接库,visual fortran 专业版的编译器就内置IMSL。下面是一个求解三元一次方程组的例子(n元也一样)program linearuse imsl
implicit none real::a(3,3)=(/1,3,2,&
1,2,1,&
2,1,3/)
real::b(3,1)=(/4,6,6/)
real::x(3,1) call lin_so_gen(a,b,x)!用于求解a*x=b这样一个三元一次方程组
write(*,'(3f5.2)')xend program linear运行程序前确认你的编译器上已经装了IMSL(有的编译器有内置的)要想自己编程来求,最简单的可以用高斯消去法,还有很多求解这类问题的方法,可以参见“数值计算原理”这类书籍,自己编出来的可能没有用IMSL里面的数值计算过程函数的执行效率高,练习一下对熟悉一门计算机语言还是很有提高的。 对于你的第二个问题可以用一个递归程序做,也可以用循环做下面是一个用递归来演示任意整数阶乘的程序PROGRAM SHOWIMPLICIT NONEINTEGER::N,MINTEGER,EXTERNAL::FACTORIAL PRINT *,'输入要计算的阶乘的阶数'READ(*,*)NM=FACTORIAL(N)PRINT * ,N,'!=',M END !FACTORIAL函数用于计算N!RECURSIVE INTEGER FUNCTION FACTORIAL(N) RESULT(B)
IMPLICIT NONE !INTEGER,SAVE::MUL=0
INTEGER::N
!INTEGER::I,J IF(N<0)THEN
B=-1
RETURN
ELSE IF(N==0)THEN
B=1
RETURN
END IF
B=N*INITIALIZE(N-1)
!RETURN
END FUNCTION INITIALIZE
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)