FORTRAN编程语言与C语言

作者&投稿:衅要 (若有异议请与网页底部的电邮联系)
FORTRAN编程语言与C语言的区别是什么?~

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语言的编译更具有弹性。

可以。如 军酷儿所说“Fortran做成DLL动态库格式,在C中直接调用就行了”。
建议看一下彭国伦老师的fortran95程序设计一书

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语言的编译更具有弹性。



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

开始拿本C语音的教材即可,不要一上了就啃等偏硬件的东西,那东西肯定会学的无味多看代码和写代码,一定

复数运算的速度
程序参数与字串
内存的动态管理
多维阵列的处理
函数调用与参数传递


谭浩强版C语言答案
2017-12-15 求谭浩强第四版C语言程序设计 课后习题PDF答案 必采纳 35 2009-12-29 C语言 谭浩强 第三版 课后答案 6 2018-11-17 (C语言)照着谭浩强版的参考答案写,输出不了答案 在网上找了... 1 2009-01-17 急求c语言程序设计 课后习题答案 谭浩强版 9 2018-12-14 求C语言程序设计谭浩强第五版...

C#中的sin cos不用加角度吗?(C语言 编程)
首先要说明,你这个代码不是C#而是C++的,C#不做设置是不可以用指针的。其次,你要注意这个tran函数的定义,其中前两个参数是函数指针,而且是具有一个double参数的函数,返回也是double,即 f(x) 格式的函数。double tran(double (*f1)(double) , double (*f2)(double) ,double x)主函数中,当...

Fortran90编程基础目录
以下是Fortran90编程基础的概要内容,分为多个章节:第一章: Fortran90与VisualFortran的开发环境 1.1 新特性介绍: 探索Fortran90的创新之处。1.2 安装VisualFortran 6.0: 安装步骤详细解说。1.3 初步接触IDE: 从启动DeveloperStudio开始,包括新建、编辑、保存、编译等操作。1.4 DeveloperStudio环境: ...

日语音译
or马吉? 72、我爱你——阿姨洗帖路 73、我喜欢你——死ki打腰 74、真可笑——欧卡洗衣 75、那又怎么样——扫(so)屋洗帖那你 76、果然如此——哑怕里扫屋打(柯南常用语~~嘿嘿~~) 77、气死了——母卡次哭 78、吹牛——活啦不ki 79、没问题——蒙打那依 80、真没用...

编程都有哪些语言?
目前热门的语言有:C、C++、JAVA、VB、VC、FoxPro、Delphi、SQL、PHP、ASP、JSP等等。专门有机构为编程语言进行排名,如下图:

单片机汇编编程 设计一个计时器 用AT89S51 ~~着急啊~谢谢大家啦_百度知 ...
LCALL TRAN ;调转换显示程序 LCALL DISP SJMP ;定时中断子程序 T1_ISR: DJNZ R0,ISR_OUT ;一秒不到退出 MOV R0,#20 ;到了,重赋计数器初值 INC A ;计时值加1 LCALL TRAN ;调转换显示程序 LCALL DISP CJNE A,#99,ISR_OUT ;判断计时值是否大于99,不是退出 MOV A,#00 ...

microsofttranlaor什么意思
microsoft tranlaor什么意思?您是不是要找:microsoft translatormicrosoft translator微软翻译双语例句 1To offer more languages and faster translations, my blog now offers machine translations into many more languages via Microsoft Translator.为了提供更多语言和更为快捷的翻译,我的博客现在提供了机器...

共同探讨下使用三菱PlC的SFC顺序功能图的编程心得
梯形图比较简单,直观,但是对于初学者来说调试的时候比较麻烦;用STL编程的话思路比较清晰,好调试。。用SFC的话比较理解力需要强一些,但是用的人比较少,注意事项比较多。。

高级语言有哪些?
在这种语言下,其语法和结构更类似普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程。高级语言通常按其基本类型、代系、实现方式、应用范围等分类。 程序设计语言的类型: 1.命令式语言。这种语言的语义基础是模拟“数据存储\/数据操作”的图灵机可计算模型,十分符合现代计算机体系结构的自然实现方式...

什么是java关键字
if Java编程语言的一个关键字,用来生成一个条件测试,如果条件为真,就执行if下的语句。 implements Java(TM)编程语言的一个关键字,在类的声明中是可选的,用来指明当前类实现的接口。 import Java(TM)编程语言的一个关键字,在源文件的开始部分指明后面将要引用的一个类或整个包,这样就不必在使用...

玉泉区18495342646: 关于FORTRAN 和 C 这两种电脑语言先学哪种 初学者 -
唱婵帅克: Fortran跟dos有点像,c语言相比更直观点,先学直观点的好,我先学的vb然后自学的c,后来又学了fortran,计算机语言都差不多,具体到细节有所不同,先学直观点的建立起整体概念后在学那些都很容易的..

玉泉区18495342646: FORTRAN语言和C语言相比哪个更简单? -
唱婵帅克: 学习编程呢,主要有两部分.第一是语法规则 第二是编程思想前者来说,是差不多的,Fortran 和 C 的语法规则都比较简单,也就一本书的内容.而后者是更复杂,更应该侧重学习的,这方面,两种语言是相通的.个人认为,学编程,不应该局限于对语法的了解,更应该深刻的学习数据,过程,逻辑之间的关系.抛出语法规则之外的东西,才是最重要的

玉泉区18495342646: fortran和c++哪个运算速度快 -
唱婵帅克: 现成的 fortran 程序是源代码还是编译后的 exe ?如果是源代码,无论如何你都需要一个 fortran 的编译器,可以用动态链接库混编.这方面涉及比较多,你可以和我单独探讨.(可以看我的空间) 如果是 exe 的话,用 c++ 的 api 函数,createprocess 等就可以调用 exe 运行了.

玉泉区18495342646: 求教:fortran 与 C语言 的大概区别 -
唱婵帅克: 复数运算的速度程序参数与字串内存的动态管理多维阵列的处理函数调用与参数传递

玉泉区18495342646: c语言和fortran语言可以结合编程吗? -
唱婵帅克: 可以.如 军酷儿所说“Fortran做成DLL动态库格式,在C中直接调用就行了”. 建议看一下彭国伦老师的fortran95程序设计一书

玉泉区18495342646: 最近在学习fortran语言,有的程序看不明白,求高手将下面两个fortran语言写的程序翻译成c语言或者c++! -
唱婵帅克: 文件打开和读写Fotran 和 C 不能直接翻译和读写,特别是2进制文件.Fotran 有“记录”的概念.(另外也可能有大小端编码问题).需要知道文件的详细结构,另辟思路去读写.文本文件内容可见,好办点,2进制文件,难办.(1) void Fopen...

玉泉区18495342646: 我是工科学生,想知道为什么让我们学fortran,而不学其他的c或c++之类的语言,他们各自有什么特点? -
唱婵帅克: 对于工科学生来说学习一种语言主要是用来编制程序进行科学运算的.Fortran语法简明且严谨,易学,最大特性是接近数学公式的自然描述,可以直接对矩阵和复数进行运算,在计算机里具有很高的执行效率.因此Fortran非常适合科学计算,...

玉泉区18495342646: C++和fortran编程语言哪个好 -
唱婵帅克: 建议:如果做图形界面,可以用C++,配合GDI+(或者DirectX等);否则,用C++纯粹是给自己找麻烦.据说,当初推出C++,是因为C语言程序员抱怨自己的工作不受重视,工资也比较低,因此,故意把简单的问题复杂化,面向对象什么的,弄得很神秘.

玉泉区18495342646: C语言有什么特点和其他语言如BASIC、FORTRAN等相比有何不同 -
唱婵帅克: 1. 简洁紧凑、灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示.它把高级语言的基本结构和语句与低级语言的实用性结合起来. C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算...

玉泉区18495342646: fortran和c语言里do while语句是否有区别? -
唱婵帅克: 【C语言】while只有条件成立才执行循环体 do while无论条件成立与否,都至少要执行一次循环体! 【fortran】里面貌似只有do while,从使用上说,可以肯算是c语言的while,因为fortran要首先判断条件.关于FORTRAN中的循环结构可以参考:至于C中的循环结构:(个人推荐一份不错的博文)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网