当你想 学习一种新的编程语言 时,把注意力放在编程语言的共同点上是很好的:
这些概念是大多数编程语言的基础。一旦你理解了它们,你就可以开始琢磨其他的东西了。因为编程语言通常有相似之处,一旦你知道一种语言,你就可以通过了解其差异来学习另一种语言的基础知识。
学习新语言的一个好方法是用一个标准程序进行练习。这使你能够专注于语言,而不是程序的逻辑。在这个系列文章中,我使用了一个“猜数字”的程序,在这个程序中,计算机在 1 到 100 之间挑选一个数字,并要求你猜出来。程序循环进行,直到你猜对数字为止。
这个程序锻炼了编程语言中的几个概念:
这是一个学习新的编程语言的很好的实践实验。
Ada 编程语言 是一种独特的、高度结构化的语言,有专门一群开发者使用它。Ada 的工具链是 GNU Ada 开发环境,多被称为 GNAT。
你可以使用你的发行版的包管理器在 Linux 上安装 GNAT。在 Fedora、CentOS 或类似系统上:
$ sudo dnf install gcc-gnat
在 Debian、Linux Mint 及衍生版上:
$ sudo apt install gnat
在 macOS 和 Windows 上,你可以从 Adacore 网站 下载一个安装程序(从下拉菜单中选择你的平台)。
创建一个名为 game.adb
的文件。
这个程序使用的两个内置 Ada 库:Text_IO
和 Numerics.Discrete_Random
:
with Ada.Text_IO;use Ada.Text_IO;with Ada.Numerics.Discrete_Random;
过程procedure
注意,discrete_random
是专门针对特定范围的。在这里,允许数字范围:
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)
开始。这将初始化随机数发生器,确保每次运行程序时,用 random(gen)
初始化的数字将是不同的。
下一步是运行循环:
randRange
。如果数字匹配,incorrect
被设置为 False
,导致循环的下一次迭代退出。
最后,程序在退出前会打印出对猜测正确性的确认:
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
的二进制文件。
程序的每次运行都会有一些不同。这是一个例子:
$ ./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
这个“猜数字”游戏是学习新的编程语言的一个很好的入门程序,因为它以一种相当直接的方式锻炼了几个常见的编程概念。通过在不同的编程语言中实现这个简单的游戏,你可以展示这些语言的一些核心概念,并比较它们的细节。
你有喜欢的编程语言吗?你会如何用它来写“猜数字”的游戏?请关注本系列文章,看看你可能感兴趣的其他编程语言的例子吧!
名称栏目:通过编写“猜数字”游戏来学习 Ada 编程语言
浏览地址:http://www.mswzjz.cn/qtweb/news20/444770.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能