FORTRAN语言编程改为C语言有大神吗

2021-02-27 08:22:24 字数 6820 阅读 7384

1楼:

2c 和 p2c 是两抄

个源**

转换程序. f2c 把袭 fortran **转换为 c **, p2c 把 pascal **转换为 c **. 当你安装 gcc 时这两个程序都会被安装上去.

如果有一些用 fortran 或 pascal 写的**要用 c 重写的话, f2c 和 p2c对你非常有用. 这两个程序产生的 c **一般不用修改就直接能被 gcc 编译.如果要转换的 fortran 或 pascal 程序比较小的话可以直接使用 f2c 或 p2c不用加任何选项.

如果要转换的程序比较庞大, 包含很多文件的话可能要用到一些命令行选项.在一个 fortran 程序上使用 f2c , 输入下面的命令:f2c my_fortranprog.

f注意: f2c 要求被转换的程序的扩展名为 .f 或 a .

f .要把一个pascal 程序装换为 c 程序, 输入下面的命令:p2c my_pascalprogram.

pas这两个程序产生的 c 源**的文件名都和原来的文件名相同, 但扩展名由 .f或 .pas 变为 .c.

fortran程序改写成c语言程序

2楼:love雨润万物

最近在将fortran转化成matlab语言,同样有好多问题,

3楼:金色潜鸟

#include

#include

void f(int i, int x, int *n);

if (i>18) goto done;

if (x%q[i]==0) *n= *n+1;

if (x

for (j=0;j<=x/q[i]-1;j++)done:;

}main()

fortran语言转换为c语言的程序

4楼:菲菲大爱

2c 和 p2c 是两个源**转换程序. f2c 把 fortran **转换为 c **, p2c 把 pascal **转换为 c **. 当你安装 gcc 时这两个程序都会被安装上去.

如果有一些用 fortran 或 pascal 写的**要用 c 重写的话, f2c 和 p2c对你非常有用. 这两个程序产生的 c **一般不用修改就直接能被 gcc 编译.

如果要转换的 fortran 或 pascal 程序比较小的话可以直接使用 f2c 或 p2c不用加任何选项. 如果要转换的程序比较庞大, 包含很多文件的话可能要用到一些命令行选项.

在一个 fortran 程序上使用 f2c , 输入下面的命令:

f2c my_fortranprog.f

注意: f2c 要求被转换的程序的扩展名为 .f 或 a .f .

要把一个pascal 程序装换为 c 程序, 输入下面的命令:

p2c my_pascalprogram.pas

这两个程序产生的 c 源**的文件名都和原来的文件名相同, 但扩展名由 .f或 .pas 变为 .c.

fortran语言能无损转成c语言吗?

5楼:匿名用户

看懂fortran程序之后,需要重新写c程序,二者的参数引用方式有差别!

当然你可以利用混合编程手段直接在c程序里调用fortran程序,这样就不需要过多的改变了。

希望可以帮到你,祝好!

6楼:天河流纹石

能否转换,要看自己的水平。只要水平足够,一定能。

没有机械的,自动的方法。就算有,局限性也很大,一定会有疏漏或不足。

7楼:

形式上是可以追求的,但运行效率上c极可能比不上f

求fortran语言转化成c语言或者c++的程序实例!!(有文件操作的哈!如一个fortran完整程序,转化成后仍完整

8楼:金色潜鸟

#include

#include

main()

/*character*64 namein, nameout

integer*4 a,b,c,d

write(*,*) char(127),char(7)

write(*,*) 'enter input file name'

read(*,'(a)') namein

write(*,*) 'enter output file name '

read(*,'(a)') nameout

open(unit=1,file=namein,status='old')

open(unit=2,file=nameout,status='unknown')

read(1,'(1i5,1i5,1i5,1i5)') a,b,c,d

write(2,'(1i5,1i5,1i5,1i5)') a,b,c,d

close(1)

close(2)

end*/

fortran编程语言与c语言的区别是什么?

9楼:哈密小狐狸

fortran语言

中可通过定义子抄程序从而返回一bai系列变量值du,而c语言的函数一般只能返zhi回一个变量值dao。

fortran语言的最大特性是接近数学公式的自然描述,在计算机里具有很高的执行效率。易学,语法严谨。可以直接对矩阵和复数进行运算,这一点类似matlab。

自诞生以来广泛地应用于数值计算领域,积累了大量高效而可靠的源程序。很多专用的大型数值运算计算机针对fortran做了优化。广泛地应用于并行计算和高性能计算领域。

c语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。c语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。不同的变量类型可以用结构体(struct)组合在一起。

只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。部份的变量类型可以转换,例如整型和字符型变量。通过指针(pointer),c语言可以容易的对存储器进行低级控制。

预编译处理(preprocessor)让c语言的编译更具有弹性。

10楼:唐拉雅秀啦啦

如果你今后想

复从事的是软制件工程师的工作,做专业的软件开发,那么毫无疑问应该学习c语言。

但如果仅仅是为了你自己的本专业中相关场合的计算问题,可以考虑学习fortran语言,它的计算能力要强于其他编程语言(因为这是专门为科学计算而发明的语言),但通用性很有限,并不适合做其他工作。

fortran编程语言与c语言

11楼:阿冬

如果你今后想从事的是软件工程师的工作,做专业的软件开发,那么毫无疑问应该学习c语言。

但如果仅仅是为了你自己的本专业中相关场合的计算问题,可以考虑学习fortran语言,它的计算能力要强于其他编程语言(因为这是专门为科学计算而发明的语言),但通用性很有限,并不适合做其他工作。

12楼:哈密小狐狸

fortran语言中可通过定义子程序从而返回一系列变量值,而c语言的函数一般只能返回一个变量值。

fortran语言的最大特性是接近数学公式的自然描述,在计算机里具有很高的执行效率。易学,语法严谨。可以直接对矩阵和复数进行运算,这一点类似matlab。

自诞生以来广泛地应用于数值计算领域,积累了大量高效而可靠的源程序。很多专用的大型数值运算计算机针对fortran做了优化。广泛地应用于并行计算和高性能计算领域。

c语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。c语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。不同的变量类型可以用结构体(struct)组合在一起。

只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。部份的变量类型可以转换,例如整型和字符型变量。通过指针(pointer),c语言可以容易的对存储器进行低级控制。

预编译处理(preprocessor)让c语言的编译更具有弹性。

13楼:胜作一书生

为什么选择fortran 到底选择什么样的语言,本身是一类非常具有争议性的问题。曾几何时,在科学计算领域,就沸沸腾腾地讨论过最好使用什么样的语言。也许我们可以说这是一个见仁见智的问题,因为我们作为语言的使用者,总是拣自己已经很熟悉的语言,当然总是自己能够很好驾驭的语言是最好的。

但 是具体地针对科学计算来说,由于科学计算问题具有自身的独特的价值标准,在这个价值标准之下,各种不同的语言还是可以进行客观比较的。 首先我们得把自己面临的任务界定清楚,也就是什么是科学计算问题? 所谓科学计算问题大体上包括如下三个涵义:

● 问题本身以及问题的解答都能够使用数学语言予以精确描述; ● 如果要使用通常的数学方法来给出我们所需要的数值答案,会很麻烦或者根本无法给出; ● 问题以一定的科学与技术知识作为背景。 我们会看到正是科学计算问题的这种内涵决定了它在选择计算语言时所具有的价值标准。 首先,一个科学计算问题总是要以一个数学计算问题的形式出现,因此描述科学计算问题的语言应该能够自然地描述数学问题,即要求编程语言和数学语言在表达方式上具有比较直接自然的对应关系。

然后一个科学计算问题之所以需要使用计算机,那肯定是因为这个问题具有一定的计算量,那么程序的运行效率往往是选择语言时最重要的考量因素。 正是在这两点上,fortran是现在众多语言当中的绝对胜出者。 在描述数学语言的自然性方面, fortran可以说比现在还“活”着的任何语言都强。

当然在历史上曾经出现过象algol那样的相当数学化的语言,可惜的是它缺乏市场生存能力,所以就只剩下fortran独美于今了。fortran擅长描述数学计算,这点应该是几乎没有什么争议的。也正是由于这个缘故,fortran的易学是公认的 。

任何一个科技专业人员,只要对于一个具体问题的数学求解过程有明晰的概念,要把这个求解过程翻译为fortran语言是非常轻松的。 至于执行速度方面,则常常有些似是而非的说法误导初学者。最典型的一个错误观念就是“c**的执行速度最快”。

这个说法**于c语言的特殊性,因为c语言更多的是一种系统编程语言,对硬件的控制能力很强,在高级语言里面无出其右者,于是给人以c程序的速度必定最快的印象。但 是忘记了这个速度快是来自c语言的系统编程特性,而在做科学计算时,并不需要过多地涉及到系统内核,因此c语言的长处在科学计算方面可以说并不能适当地发挥,相反,在数值计算方面,c绝对不是fortran的对手,因为相对于c以系统编程为目的,fortran是以科学计算为目的的,语言 本身在设计之初,就考虑到了针对科学计算而进行优化,因此fortran生成的可执行**是高度优化的。 实际的运行效率方面的比较也表明了fortran在科学计算方面的优越性。

无论是国内还是国外,也无论是经典的串行机还是并行矢量机,大量的经验表明,在执行同一个科学计算任务时,c或c++**的效率都低于fortran**,。 除了常见的对于c有着高效的迷信之外,还常常有着对于fortran是如何如何落后的偏见。当然这种偏见是有**的,那就是曾经功勋卓著的fortran 77在很长一段时间里面,都缺乏进取心,使得迄今很多人提起fortran,想到的就是在当今时代已经显得非常落后的fortran 77。

实质上,fortran标准在进入fortran 90时代之后,特别是现时的fortran 95版本,可以说只要是对于科学计算有用的特性,c和c++有的,现在fortran 95绝对不缺,而反过来fortran 95所具有的很多针对科学计算的特性,却是c和c++所不具有的。哪怕是c++最引以为傲的面向对象性质,fortran 2000也将全面引入。所以说,fortran已经完全赶上了编程语言的潮流。

与程序运行的效能有关的另外一个重要方面,是程序语言能否支持程序的并行运行,在这点上,可以说fortran表现了它的最大优势,因为fortran 95正是着力于获得并行计算的能力的一个版本。 由于现代科学计算的规模越来越大,计算并行化是一条不得不走的路线,现代计算机硬件的发展,也使得并行化具有实际的普及前景,因为不仅专门的大型计算机是并行的,现在的一般pc都可以拥有多个处理器,因此现代的从事科学计算的用户不得不掌握并行化计算的编程能力。 但是进行并行化编程所遇到的一个主要问题,就是任何过程编程语言都内在地使用线性存储模式,也就是一个数组的元素总是被认为按照数组元素的先后顺序而连续地存储在内存单位里面,这样一种模式就决定了这样的过程编程语言无法真正地实现对并行计算的描述。

而fortran 95则完全改观了这种制约,因为在fortran 95里面对于数组以及数组运算建立了全新的面向并行化计算的概念,诸如纯过程的概念,逐元过程的概念,forall结构等等,都有效地摆脱了线性存储模式的制约,使得fortran 95成为描述并行计算的标准语言,特别是那些专用的数据并行化语言都纷纷采用fortran作为基础语言,例如高性能fortran(high performance fortran),fortran d,vienna fortran,以及craft等。这样就使得使用fortran 95编写的程序可以直接在这些数据并行化语言的平台上运行,而反过来使用这些专用语言编写的程序也可以毫不困难地转移到fortran 95平台上运行,这样一种局面使得fortran在并行计算领域独领**。 综上所述,我们完全可以说fortran 95是进行科学计算的最佳语言,作为需要进行科学计算的科学与技术领域的工作人员,掌握fortran 95远比掌握c,c++等语言要重要得多,至于那些计算机符号代数与数值计算软件,例如mathematica,maple,matlab,macsyma,mathcad等等,只能说是进行科学计算的教学模型与辅助工具,由于它们都提供了现成的算法,因此可以使得初学者能够应用于一些简单的场合,真正要用它们来 对付稍微大一点的问题,有经验的用户都知道,那会是一件非常痛苦的强人所难的事情。

因此最终要自由地进行科学计算,则非fortran莫属。采纳哦

C语言编程题,求大神解答,C语言编程题,求助大神

1楼 匿名用户 include int main fclose fp return 0 2楼 匿名用户 include stdio h include string h int main while 1 fclose fp c语言编程题,求助大神 3楼 云南新华电脑学校 int fun int x ...

请大神指教这道c语言的编程题目,一道c语言编程题,求大神指教!

1楼 string h是字符串库函数,当要引用字符串函数时,比如,strlen sizeof等函数时就必须要用string h库函数。 此题是计算现有字符串的长度和总长度,答案是 4,10,第一个4表示只有4个字符 a b c d 后面的10表示数组总长为10。 2楼 匿名用户 去k资讯看看吧!!!...

恩一道c预言编程题,求大神指教,恩 一道c语言编程题,求大神指教

1楼 scanf的格式字符串 应该使用 lf d lf的形式,中间不要加逗号,读入数据时以空格或回车作为分隔。格式字符串中添加逗号是不好的习惯,除非特殊格式需要否则不要使用逗号。 lf表示以double型读入一个数据,而你对应存放数据的变量是float型,类型不匹配。将其改为double型或将 lf...