日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
通過(guò)寫“猜數(shù)字”游戲?qū)W習(xí)Fortran
  • Fortran 是在打孔卡時(shí)代編寫的語(yǔ)言,因此它的語(yǔ)法非常有限。但你仍然可以用它編寫有用和有趣的程序。

Fortran 77 是我學(xué)習(xí)的第一門編譯型編程語(yǔ)言。一開始時(shí),我自學(xué)了如何在 Apple II 上用 BASIC 編寫程序,后來(lái)又學(xué)會(huì)在 DOS 上用 QBasic 編寫程序。但是當(dāng)我去大學(xué)攻讀物理學(xué)時(shí),我又學(xué)習(xí)了 Fortran。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供枝江企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、H5建站、小程序制作等業(yè)務(wù)。10年已為枝江眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

Fortran 曾經(jīng)在科學(xué)計(jì)算中很常見。曾幾何時(shí),所有計(jì)算機(jī)系統(tǒng)都有一個(gè) Fortran 編譯器。Fortran 曾經(jīng)像今天的 Python 一樣無(wú)處不在。因此,如果你是像我這樣的物理學(xué)專業(yè)學(xué)生,在 1990 年代工作,那你肯定學(xué)習(xí)了 Fortran。

我一直認(rèn)為 Fortran 與 BASIC 有點(diǎn)相似,所以每當(dāng)我需要編寫一個(gè)簡(jiǎn)短程序,來(lái)分析實(shí)驗(yàn)室數(shù)據(jù)或執(zhí)行其他一些數(shù)值分析時(shí),我都會(huì)很快想到 Fortran。我在空閑時(shí)用 Fortran 編寫了一個(gè)“猜數(shù)字”游戲,其中計(jì)算機(jī)會(huì)在 1 到 100 之間選擇一個(gè)數(shù)字,并讓我猜這個(gè)數(shù)字。程序會(huì)一直循環(huán),直到我猜對(duì)了為止。

“猜數(shù)字”程序練習(xí)了編程語(yǔ)言中的幾個(gè)概念:如何為變量賦值、如何編寫語(yǔ)句以及如何執(zhí)行條件判斷和循環(huán)。這是學(xué)習(xí)新編程語(yǔ)言時(shí)一個(gè)很好的的實(shí)踐案例。

Fortran 編程基礎(chǔ)

雖然 Fortran 這些年來(lái)一直在更新,但我最熟悉的還是 Fortran 77,這是我多年前學(xué)習(xí)的實(shí)現(xiàn)版本。Fortran 是程序員還在打孔卡上編程的年代創(chuàng)建的,因此“經(jīng)典” Fortran 僅限于處理可以放在打孔卡上的數(shù)據(jù)。這意味著你只能編寫符合以下限制條件的經(jīng)典 Fortran 程序(LCTT 譯注:后來(lái)的 Fortran 95 等版本已經(jīng)對(duì)這些限制做了很大的改進(jìn),如有興趣建議直接學(xué)習(xí)新版):

  • 每張卡只允許一行源代碼。
  • 僅識(shí)別第 1-72 列(最后八列,73-80,保留給卡片分類器)。
  • 行號(hào)(“標(biāo)簽”)位于第 1-5 列。
  • 程序語(yǔ)句在第 7-72 列。
  • 要表示跨行,請(qǐng)?jiān)诘?6 列中輸入一個(gè)連續(xù)字符(通常是 +)。
  • 要?jiǎng)?chuàng)建注釋行,請(qǐng)?jiān)诘?1 列中輸入 C 或 *。
  • 只有字符 A 到Z(大寫字母)、0 到9(數(shù)字)和特殊字符 = + - * / ( ) , . $ ' : 和空格能夠使用。

雖然有這些限制,你仍然可以編寫非常有用和有趣的程序。

在 Fortran 中猜數(shù)字

通過(guò)編寫“猜數(shù)字”游戲來(lái)探索 Fortran。這是我的實(shí)現(xiàn)代碼:

 
 
 
  1. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 
  2. C     PROGRAM TO GUESS A NUMBER 1-100 
  3. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 
  4.       PROGRAM GUESSNUM 
  5.       INTEGER SEED, NUMBER, GUESS 
  6.       PRINT *, 'ENTER A RANDOM NUMBER SEED' 
  7.       READ *, SEED 
  8.       CALL SRAND(SEED) 
  9.       NUMBER = INT( RAND(0) * 100 + 1 ) 
  10.       PRINT *, 'GUESS A NUMBER BETWEEN 1 AND 100' 
  11.  10   READ *, GUESS 
  12.       IF (GUESS.LT.NUMBER) THEN 
  13.          PRINT *, 'TOO LOW' 
  14.       ELSE IF (GUESS.GT.NUMBER) THEN 
  15.          PRINT *, 'TOO HIGH' 
  16.       ENDIF 
  17.       IF (GUESS.NE.NUMBER) GOTO 10 
  18.       PRINT *, 'THATS RIGHT!' 
  19.       END 

如果你熟悉其他編程語(yǔ)言,你大概可以通過(guò)閱讀源代碼來(lái)弄清楚這個(gè)程序在做什么。前三行是注釋塊,表示程序的功能。第四行 PROGRAM GUESSNUM 將其標(biāo)識(shí)為一個(gè) 程序program,并由最后一行的 END 語(yǔ)句關(guān)閉。

定義變量后,程序會(huì)提示用戶輸入隨機(jī)數(shù)種子。Fortran 程序無(wú)法從操作系統(tǒng)初始化隨機(jī)數(shù)生成器,因此你必須始終使用“種子”值和 SRAND 子程序subroutine 啟動(dòng)隨機(jī)數(shù)生成器。

Fortran 使用 RAND(0) 函數(shù)生成 0 到 0.999…… 之間的隨機(jī)數(shù)。參數(shù) 0 告訴 RAND 函數(shù)生成一個(gè)隨機(jī)數(shù)。將此隨機(jī)數(shù)乘以 100 以生成 0 到 99.999…… 之間的數(shù)字,然后加 1 得到 1 到 100.999…… 之間的值。INT 函數(shù)將結(jié)果截?cái)酁檎麛?shù);因此,變量 NUMBER 就是一個(gè)介于 1 到 100 之間的隨機(jī)數(shù)。

程序會(huì)給出提示,然后進(jìn)入一個(gè)循環(huán)。Fortran 不支持更現(xiàn)代的編程語(yǔ)言中可用的 while 或 do-while 循環(huán)(LCTT 譯注:Fortran 95 等新版支持,也因此在一定程度上減少了 GOTO 的使用)。相反,你必須使用標(biāo)簽(行號(hào))和 GOTO 語(yǔ)句來(lái)構(gòu)建自己的循環(huán)。這就是 READ 語(yǔ)句有一個(gè)行號(hào)的原因:你可以在循環(huán)末尾使用 GOTO 跳轉(zhuǎn)到此標(biāo)簽。

穿孔卡片沒有 <(小于)和 >(大于)符號(hào),因此 Fortran 采用了另一種語(yǔ)法來(lái)進(jìn)行值比較。要測(cè)試一個(gè)值是否小于另一個(gè)值,請(qǐng)使用 .LT.(小于)。要測(cè)試一個(gè)值是否大于另一個(gè)值,請(qǐng)使用 .GT.(大于)。等于和不等于分別是 .EQ. 和 .NE.。

在每次循環(huán)中,程序都會(huì)驗(yàn)證用戶的猜測(cè)值。如果用戶的猜測(cè)值小于隨機(jī)數(shù),程序打印 TOO LOW,如果猜測(cè)大于隨機(jī)數(shù),程序打印 TOO HIGH。循環(huán)會(huì)一直持續(xù),直到用戶的猜測(cè)值等于目標(biāo)隨機(jī)數(shù)為止。

當(dāng)循環(huán)退出時(shí),程序打印 THATS RIGHT! 并立即結(jié)束運(yùn)行。

 
 
 
  1. $ gfortran -Wall -o guess guess.f 
  2. $ ./guess 
  3.  ENTER A RANDOM NUMBER SEED 
  4. 93759 
  5.  GUESS A NUMBER BETWEEN 1 AND 100 
  6. 50 
  7.  TOO LOW 
  8. 80 
  9.  TOO HIGH 
  10. 60 
  11.  TOO LOW 
  12. 70 
  13.  TOO LOW 
  14. 75 
  15.  TOO HIGH 
  16. 73 
  17.  TOO LOW 
  18. 74 
  19.  THATS RIGHT! 

每次運(yùn)行程序時(shí),用戶都需要輸入不同的隨機(jī)數(shù)種子。如果你總是輸入相同的種子,程序給出的隨機(jī)數(shù)也會(huì)一直不變。

在其他語(yǔ)言中嘗試

在學(xué)習(xí)一門新的編程語(yǔ)言時(shí),這個(gè)“猜數(shù)字”游戲是一個(gè)很好的入門程序,因?yàn)樗苑浅:?jiǎn)單的方式練習(xí)了幾個(gè)常見的編程概念。通過(guò)用不同的編程語(yǔ)言實(shí)現(xiàn)這個(gè)簡(jiǎn)單的游戲,你可以弄清一些核心概念以及比較每種語(yǔ)言的細(xì)節(jié)。

你有最喜歡的編程語(yǔ)言嗎?如何用你最喜歡的語(yǔ)言來(lái)編寫“猜數(shù)字”游戲?跟隨本系列文章來(lái)查看你可能感興趣的其他編程語(yǔ)言示例吧。


分享題目:通過(guò)寫“猜數(shù)字”游戲?qū)W習(xí)Fortran
本文URL:http://www.dlmjj.cn/article/coejddg.html