前天是程序員節 ,CodeForces 上舉辦了一場比賽 , 要求必須使用 ADA 語言提交 . 頓時虐爆了我這個只知道 pascal,C,BASIC 這 3 種 語系的菜 . 今天閑著看 了 看這種語言 , 一看才知道竟然是美國軍方專用計算機語言 . 總體感覺 : 什么 JB 玩意兒 , 比 C 語言差的遠了 . 主要是寫代碼時感覺幾乎沒啥自由度 , 讓人十分不爽 , 操作還那么麻煩 .
????第一個程序照例是那最經典的 HW.
????然而 , 我將程序寫到源文件之后卻始終無法 build, 最后我放棄了最常用的直接新建一個 .adb 文件的方法而采用 GPS.exe 的新建 , 終于編譯出了可執行文件 .
????程序如下 :
with?Ada.Text_IO;
procedure?Main?is
begin
???Ada.Text_IO.Put("Hello?World!");
???Ada.Text_IO.New_Line;
???null;
end?Main;
在 ADA 語言中采用 ”--” 作為注釋的標志 ,”--” 之后知道行末的內容將被編譯器忽略 .
with?Ada.Text_IO; 差不多相當于 C 里的 #include<stdio.h>, 先這么理解 .
程序框架 :
Procedure?procedure_name?is
Statement1;
Begin
Statement2;
End?procedure_name;
其中 ,statement1 是對變量或函數的聲明部分 ,statement2 是程序的語句 .
為了方便 , 可以使用 use 語句 : 如 use? Ada.Text_IO; 這樣 , 在以后調用 Put 或者 New_Line 時就不用再加上 ” Ada.Text_IO. ” 了 . 有點類似于 C++ 中最常用的 using?namespace?std;
變量的聲明方法 : 變量名 : 變量類型 := 初始化值
改進版的 HW 程序 :
with?Ada.Text_IO;
use?Ada.Text_IO;
procedure?Main?is
???Str:String:="Hello?World!";
begin
???Ada.Text_IO.Put("Hello?World!");
???Ada.Text_IO.New_Line;
???Put("Hello?World!");
???New_Line;
???Put(Str);
???New_Line;
end?Main;
在 Ada 語言中數字字面值中間可以加入下劃線以幫助閱讀 , 如 454548456484 與 454_548_456_484 就沒有什么區別 . 不過要注意的一點是兩個下劃線不能連用 , 下劃線也不能加在數字末尾 .
除此之外 ,Ada 語言中可以直接采用 2~16 進制數來編寫字面值 , 格式為 Base?#?Number?#. 如 5?#?1234?#, 表示 5 進制下的 1234.
變量賦值操作符 :? ” := ”
循環格式 :
循環名 :
Loop
代碼 ...
End?loop? 循環名
Get_Line(String,Natural): 讀入一行 Natural 返回字符串長度 .
Get(val): 讀入 val 的值 .
下標訪問 :A(5) 表示 A 的索引為 5 的元素 .
Exit?Name?:? 從 Name 的代碼段里退出 , 類比 break,return, 等
If 語句格式 :
If?( 表達式 )?then
代碼段 ;
End?if;
邏輯運算符 :
’ = ’ : 返回是否相等 .( “ >= ” , ” <= ” 類似 ).
字面值類型轉換 :Float(100), 類比 C 語言中的 (double)100.
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
