对于工科学生来说学习一种语言主要是用来编制程序进行科学运算的。Fortran语法简明且严谨,易学,最大特性是接近数学公式的自然描述,可以直接对矩阵和复数进行运算,在计算机里具有很高的执行效率。因此Fortran非常适合科学计算,至今仍然是最主要的科学计算语言,你由它的全称:Formula Translator就可以看出它最初本身就是针对科学计算开发的。现在很多的商用工程软件,如著名的有限元软件MSC.Nastran就是用Fortran编制的核心算法。
所以作为工科学生学好Fortran很有用,而C语言语法过于复杂(它实际是中级语言,更接近于底层,而Fortran是高级语言),不易掌握,运算效率不如Fortran,不如Fortran适于科学计算。
其实各种语言的语法都大同小异,只要掌握了一种,再学习其它语言就很容易了,而且语言只是一种工具,更重要的是算法,对于你来说就是你的专业知识。
同时,在科学计算时具体使用哪一种语言也没有规定,应根据需要和问题的特点选取合适的语言,经常会多种语言混编。C和C++,或者C#都是很好的语言,掌握好也很有用处。
现在还有一种更为高级的语言(有人甚至将其成为软件)MATLAB,非常方便好用(几乎是傻瓜式的),是专门针对科学计算开发的,目前在学术界运用非常广,只是运行速度相对慢一些。建议你也学学,非常有用。
PS:我学机械的,主要使用MATLAB和Fortran,偶尔使用C++。
首先,Fortran 适合做计算,特别是矩阵数组计算。
比如数组复制,A =B,而同样的复制,C语言必须通过 for 循环来实现。
正如此,Fortran长久一来,聚集了一大批高效,严格的,经过考验的成熟的函数库,软件包,这是一笔巨大的财富。
其次,Fortran严谨,数组越界,参数不匹配会出现错误。而这些错误如果放过,则可能对科学计算造成极大的错误结果。因此不适合使用像 C/C++ 那样灵活的语言。
同样的道理,Fortran 的指针也不如 C/C++ 那样灵活,事实上,这样的约束对严谨的科学来说,是至关重要的。
另外,Intel 等成熟的 Fortran 编译器,有助于将 Fortran 代码在计算机上高效的优化编译,产生比同样的 C/C++ 更快的执行代码。
最后,现在主流的高性能计算和并行库,大多是基于 Fortran 的。Fortran2003 新语法充分考虑了并行计算的要求,它专门为并行计算设计了若干语法要求,而 C/C++ 需要借助单独的函数库实现。
当然,区别还有很多,我总结的只是一少部分。
有许多模型都是用fortran写的,并且有很多已经成型的库文件与程序。如果要学C语言的话,这些模型就都要重新写过,这是十分不现实的……