十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
當(dāng)你想 ??學(xué)習(xí)一種新的編程語言?? 時,把注意力放在編程語言的共同點(diǎn)上是很好的:

這些概念是大多數(shù)編程語言的基礎(chǔ)。一旦你理解了它們,你就可以開始琢磨其他的東西了。因?yàn)榫幊陶Z言通常有相似之處,一旦你知道一種語言,你就可以通過了解其差異來學(xué)習(xí)另一種語言的基礎(chǔ)知識。
學(xué)習(xí)新語言的一個好方法是用一個標(biāo)準(zhǔn)程序進(jìn)行練習(xí)。這使你能夠?qū)W⒂谡Z言,而不是程序的邏輯。在這個系列文章中,我使用了一個“猜數(shù)字”的程序,在這個程序中,計(jì)算機(jī)在 1 到 100 之間挑選一個數(shù)字,并要求你猜出來。程序循環(huán)進(jìn)行,直到你猜對數(shù)字為止。
這個程序鍛煉了編程語言中的幾個概念:
這是一個學(xué)習(xí)新的編程語言的很好的實(shí)踐實(shí)驗(yàn)。
??Ada 編程語言?? 是一種獨(dú)特的、高度結(jié)構(gòu)化的語言,有專門一群開發(fā)者使用它。Ada 的工具鏈?zhǔn)?GNU Ada 開發(fā)環(huán)境,多被稱為 GNAT。
你可以使用你的發(fā)行版的包管理器在 Linux 上安裝 GNAT。在 Fedora、CentOS 或類似系統(tǒng)上:
$ sudo dnf install gcc-gnat
在 Debian、Linux Mint 及衍生版上:
$ sudo apt install gnat
在 macOS 和 Windows 上,你可以從 ??Adacore 網(wǎng)站?? 下載一個安裝程序(從下拉菜單中選擇你的平臺)。
創(chuàng)建一個名為 ??game.adb?? 的文件。
這個程序使用的兩個內(nèi)置 Ada 庫:??Text_IO??? 和 ??Numerics.Discrete_Random??:
with Ada.Text_IO;use Ada.Text_IO;with Ada.Numerics.Discrete_Random;
過程procedure
注意,??discrete_random?? 是專門針對特定范圍的。在這里,允許數(shù)字范圍:
procedure Game is type randRange is range 1..100; package Rand_Int is new ada.numerics.discrete_random(randRange); use Rand_Int; gen : Generator; num : randRange; incorrect: Boolean := True; guess: randRange;
該邏輯從 ??reset(gen)??? 開始。這將初始化隨機(jī)數(shù)發(fā)生器,確保每次運(yùn)行程序時,用 ??random(gen)?? 初始化的數(shù)字將是不同的。
下一步是運(yùn)行循環(huán):
?randRange??。如果數(shù)字匹配,??incorrect??? 被設(shè)置為 ??False??,導(dǎo)致循環(huán)的下一次迭代退出。
最后,程序在退出前會打印出對猜測正確性的確認(rèn):
begin reset(gen); num := random(gen); while incorrect loop Put_Line ("Guess a number between 1 and 100"); declare guess_str : String := Get_Line (Current_Input); begin guess := randRange'Value (guess_str); end; if guess < num then Put_line("Too low"); elsif guess > num then Put_line("Too high"); else incorrect := False; end if; end loop; Put_line("That's right");end Game;編譯 Ada 程序的最簡單方法是使用 ??gnatmake??:
$ gnatmake game.adbaarch64-linux-gnu-gcc-10 -c game.adbaarch64-linux-gnu-gnatbind-10 -x game.aliaarch64-linux-gnu-gnatlink-10 game.ali
這將生成一個名為 ??game?? 的二進(jìn)制文件。
程序的每次運(yùn)行都會有一些不同。這是一個例子:
$ ./game Guess a number between 1 and 10050Too lowGuess a number between 1 and 10075Too lowGuess a number between 1 and 10082Too lowGuess a number between 1 and 10090Too highGuess a number between 1 and 10087Too lowGuess a number between 1 and 10088That's right
這個“猜數(shù)字”游戲是學(xué)習(xí)新的編程語言的一個很好的入門程序,因?yàn)樗砸环N相當(dāng)直接的方式鍛煉了幾個常見的編程概念。通過在不同的編程語言中實(shí)現(xiàn)這個簡單的游戲,你可以展示這些語言的一些核心概念,并比較它們的細(xì)節(jié)。
你有喜歡的編程語言嗎?你會如何用它來寫“猜數(shù)字”的游戲?請關(guān)注本系列文章,看看你可能感興趣的其他編程語言的例子吧!