1樓:阿冬
如果你今後想從事的是軟體工程師的工作,做專業的軟體開發,那麼毫無疑問應該學習c語言。
但如果僅僅是為了你自己的本專業中相關場合的計算問題,可以考慮學習fortran語言,它的計算能力要強於其他程式語言(因為這是專門為科學計算而發明的語言),但通用性很有限,並不適合做其他工作。
2樓:哈密小狐狸
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語言的編譯更具有彈性。
3樓:勝作一書生
為什麼選擇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莫屬。採納哦
4樓:匿名使用者
開始拿本c語音的教材即可,不要一上了就啃等偏硬體的東西,那東西肯定會學的無味多看**和寫**,一定
5樓:杜揚遲沛
複數運算的速度
程式引數與字串
記憶體的動態管理
多維陣列的處理
函式呼叫與引數傳遞
fortran程式語言與c語言的區別是什麼?
6樓:哈密小狐狸
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語言的編譯更具有彈性。
7樓:唐拉雅秀啦啦
如果你今後想
復從事的是軟製件工程師的工作,做專業的軟體開發,那麼毫無疑問應該學習c語言。
但如果僅僅是為了你自己的本專業中相關場合的計算問題,可以考慮學習fortran語言,它的計算能力要強於其他程式語言(因為這是專門為科學計算而發明的語言),但通用性很有限,並不適合做其他工作。
fortran語言程式設計改為c語言有大神嗎
8樓:
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.
C語言程式設計,c語言程式設計。
判斷 字串 s是否和 相等 strcmp s,表示s字元陣列是否是等於號加上字串結束符,其實單單比較是否為等於號 改為 c語言程式設計 int mian 應該是int main 你要輸入一個數才行,建議你加一個提示輸入的語句 c語言程式設計。else 非字母 switch read buf brea...
c語言問題程式設計,C語言程式設計問題
程式修改輸出加個 元 後面執行結果可看到 編譯執行結果 如果輸入50 如果輸入90 如果輸入100 如果輸入110 include int main if x 50 y 80 x printf f n y return 0 c語言程式設計問題 解題思bai路 完全跟百錢買百雞的問題是du一樣的 設大...
c語言程式設計題,C語言程式設計題
首先分析問題 bai重複du輸出同一類語句肯定要用迴圈,zhi有關判斷肯dao定要用分支回。所以解決這個問題就是在一個答迴圈 用於重複讀取資料和輸出 裡面套一個分支語句 判斷密碼是數字還是字母 具體 include include include main else printf error n s...