前天是程序员节,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.

Ada语言基础的更多相关文章

  1. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...

  2. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...

  3. C#语言基础

    第一部分 了解C# C#是微软公司在2000年7月发布的一种全新且简单.安全.面向对象的程序设计语言,是专门为.NET的应用而开发的.体现了当今最新的程序设计技术的功能和精华..NET框架为C#提供了 ...

  4. C语言基础回顾

    第一章 C语言基础 1.  C语言编译过程 预处理:宏替换.条件编译.头文件包含.特殊符号 编译.优化:翻译并优化成等价的中间代码表示或汇编代码 汇编:生成目标文件,及与源程序等效的目标的机器语言代码 ...

  5. 黑马程序员_ C语言基础(二)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 今天基础知识分为以下几点内容(注意:循环.条件语句在此不再赘述):   1.Hello W ...

  6. C#语言基础— 输入与输出

    C#语言基础— 输入与输出 1.1函数的四要素:名称.输入.输出.加工 1.2主函数:输出语句.输入语句: Static viod Main(string[] stgs)//下划线部分可以自己指定 { ...

  7. 【GoLang】GO语言系列--002.GO语言基础

    002.GO语言基础 1 参考资料 1.1 http://www.cnblogs.com/vimsk/archive/2012/11/03/2736179.html 1.2 https://githu ...

  8. R语言基础:数组&列表&向量&矩阵&因子&数据框

    R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...

  9. OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

随机推荐

  1. lucene搜索方式(query类型)

    Lucene有多种搜索方式,可以根据需要选择不同的方式. 1.词条搜索(单个关键字查找) 主要对象是TermQuery 调用方式如下: Term term=new Term(字段名,搜索关键字);Qu ...

  2. [POJ1157]LITTLE SHOP OF FLOWERS

    [POJ1157]LITTLE SHOP OF FLOWERS 试题描述 You want to arrange the window of your flower shop in a most pl ...

  3. ios7技巧:你需要掌握的19个iOS7使用技巧

    从右往左滑动屏幕,可看到信息收到的时间. 指南针应用还可以用作水平仪,滑动屏幕即可. 被苹果称作Spotlight的搜索功能有所改变.在屏幕中间向下滑动即可打开该项功能,你可以搜索文本.邮件.应用.歌 ...

  4. SSHPASS支持从命令行输入密码

    参考:http://www.2cto.com/os/201307/227911.html 手动下载地址:http://sourceforge.net/projects/sshpass/ 安装示例: w ...

  5. 【转】Python 代码调试技巧

    转载自:http://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/ Debug 对于任何开发人员都是一项非常重要的技能,它能够帮助我 ...

  6. cocos2dx之lua派生类和方法重新

    记得把extern.lua拷贝到你的资源目录,这里要用到 require "extern" MyLayer = class("MyLayer", functio ...

  7. 现在, Delphi 的多线程已经非常易用了!

    先看一个非多线程的例子, 代码执行时不能进行其它操作(譬如拖动窗体): {自定义方法: 在窗体上绘制...} procedure MyMethod; var   i: Integer; begin   ...

  8. hdu 1425 sort 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1425 常规的方法是对输入的数从大到小进行排序(可以用sort或qsort),然后输出前m大的数. 不过 ...

  9. HDU 5514 Frogs (容斥原理+因子分解)

    题目链接 题意:有n只青蛙,m个石头(围成圆圈).第i只青蛙每次只能条ai个石头,问最后所有青蛙跳过的石头的下标总和是多少? 题解:暴力肯定会超时,首先分解出m的因子,自己本身不用分,因为石头编号是0 ...

  10. [MAC] Mac下的SVN命令行

    转载自: http://www.cnblogs.com/snandy/p/4072857.html Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.1 ...