日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
通過(guò)編寫(xiě)“猜數(shù)字”游戲來(lái)學(xué)習(xí) Ada 編程語(yǔ)言

當(dāng)你想 ??學(xué)習(xí)一種新的編程語(yǔ)言?? 時(shí),把注意力放在編程語(yǔ)言的共同點(diǎn)上是很好的:

  • 變量
  • 表達(dá)式
  • 語(yǔ)句

這些概念是大多數(shù)編程語(yǔ)言的基礎(chǔ)。一旦你理解了它們,你就可以開(kāi)始琢磨其他的東西了。因?yàn)榫幊陶Z(yǔ)言通常有相似之處,一旦你知道一種語(yǔ)言,你就可以通過(guò)了解其差異來(lái)學(xué)習(xí)另一種語(yǔ)言的基礎(chǔ)知識(shí)。

學(xué)習(xí)新語(yǔ)言的一個(gè)好方法是用一個(gè)標(biāo)準(zhǔn)程序進(jìn)行練習(xí)。這使你能夠?qū)W⒂谡Z(yǔ)言,而不是程序的邏輯。在這個(gè)系列文章中,我使用了一個(gè)“猜數(shù)字”的程序,在這個(gè)程序中,計(jì)算機(jī)在 1 到 100 之間挑選一個(gè)數(shù)字,并要求你猜出來(lái)。程序循環(huán)進(jìn)行,直到你猜對(duì)數(shù)字為止。

這個(gè)程序鍛煉了編程語(yǔ)言中的幾個(gè)概念:

  • 變量
  • 輸入
  • 輸出
  • 條件判斷
  • 循環(huán)

這是一個(gè)學(xué)習(xí)新的編程語(yǔ)言的很好的實(shí)踐實(shí)驗(yàn)。

安裝 Ada

??Ada 編程語(yǔ)言?? 是一種獨(dú)特的、高度結(jié)構(gòu)化的語(yǔ)言,有專(zhuān)門(mén)一群開(kāi)發(fā)者使用它。Ada 的工具鏈?zhǔn)?GNU Ada 開(kāi)發(fā)環(huán)境,多被稱(chēng)為 GNAT。

你可以使用你的發(fā)行版的包管理器在 Linux 上安裝 GNAT。在 Fedora、CentOS 或類(lèi)似系統(tǒng)上:

$ sudo dnf install gcc-gnat

在 Debian、Linux Mint 及衍生版上:

$ sudo apt install gnat

在 macOS 和 Windows 上,你可以從 ??Adacore 網(wǎng)站?? 下載一個(gè)安裝程序(從下拉菜單中選擇你的平臺(tái))。

在 Ada 中猜數(shù)字

創(chuàng)建一個(gè)名為 ??game.adb?? 的文件。

這個(gè)程序使用的兩個(gè)內(nèi)置 Ada 庫(kù):??Text_IO??? 和 ??Numerics.Discrete_Random??:

with Ada.Text_IO;use Ada.Text_IO;with Ada.Numerics.Discrete_Random;

過(guò)程頭

過(guò)程procedure

注意,??discrete_random?? 是專(zhuān)門(mén)針對(duì)特定范圍的。在這里,允許數(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;

過(guò)程邏輯

該邏輯從 ??reset(gen)??? 開(kāi)始。這將初始化隨機(jī)數(shù)發(fā)生器,確保每次運(yùn)行程序時(shí),用 ??random(gen)?? 初始化的數(shù)字將是不同的。

下一步是運(yùn)行循環(huán):

  • 輸出猜測(cè)的指令
  • 讀取該行
  • 將其轉(zhuǎn)換為??randRange??。
  • 將其與數(shù)字進(jìn)行核對(duì)

如果數(shù)字匹配,??incorrect??? 被設(shè)置為 ??False??,導(dǎo)致循環(huán)的下一次迭代退出。

最后,程序在退出前會(huì)打印出對(duì)猜測(cè)正確性的確認(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 程序的最簡(jiǎn)單方法是使用 ??gnatmake??:

$ gnatmake game.adbaarch64-linux-gnu-gcc-10 -c game.adbaarch64-linux-gnu-gnatbind-10 -x game.aliaarch64-linux-gnu-gnatlink-10 game.ali

這將生成一個(gè)名為 ??game?? 的二進(jìn)制文件。

運(yùn)行程序

程序的每次運(yùn)行都會(huì)有一些不同。這是一個(gè)例子:

$ ./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

學(xué)習(xí) Ada

這個(gè)“猜數(shù)字”游戲是學(xué)習(xí)新的編程語(yǔ)言的一個(gè)很好的入門(mén)程序,因?yàn)樗砸环N相當(dāng)直接的方式鍛煉了幾個(gè)常見(jiàn)的編程概念。通過(guò)在不同的編程語(yǔ)言中實(shí)現(xiàn)這個(gè)簡(jiǎn)單的游戲,你可以展示這些語(yǔ)言的一些核心概念,并比較它們的細(xì)節(jié)。

你有喜歡的編程語(yǔ)言嗎?你會(huì)如何用它來(lái)寫(xiě)“猜數(shù)字”的游戲?請(qǐng)關(guān)注本系列文章,看看你可能感興趣的其他編程語(yǔ)言的例子吧!


分享題目:通過(guò)編寫(xiě)“猜數(shù)字”游戲來(lái)學(xué)習(xí) Ada 編程語(yǔ)言
當(dāng)前路徑:http://m.5511xx.com/article/dhgejsc.html