Ada语言基础
前天是程序员节,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语言基础的更多相关文章
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...
- C#语言基础
第一部分 了解C# C#是微软公司在2000年7月发布的一种全新且简单.安全.面向对象的程序设计语言,是专门为.NET的应用而开发的.体现了当今最新的程序设计技术的功能和精华..NET框架为C#提供了 ...
- C语言基础回顾
第一章 C语言基础 1. C语言编译过程 预处理:宏替换.条件编译.头文件包含.特殊符号 编译.优化:翻译并优化成等价的中间代码表示或汇编代码 汇编:生成目标文件,及与源程序等效的目标的机器语言代码 ...
- 黑马程序员_ C语言基础(二)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 今天基础知识分为以下几点内容(注意:循环.条件语句在此不再赘述): 1.Hello W ...
- C#语言基础— 输入与输出
C#语言基础— 输入与输出 1.1函数的四要素:名称.输入.输出.加工 1.2主函数:输出语句.输入语句: Static viod Main(string[] stgs)//下划线部分可以自己指定 { ...
- 【GoLang】GO语言系列--002.GO语言基础
002.GO语言基础 1 参考资料 1.1 http://www.cnblogs.com/vimsk/archive/2012/11/03/2736179.html 1.2 https://githu ...
- R语言基础:数组&列表&向量&矩阵&因子&数据框
R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...
- OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
随机推荐
- IOS APP的所有图标尺寸规范
转自: http://blog.csdn.net/chonbj/article/details/25133247 像我一样记不住iOS应用图标像素尺寸的开发者不在少数,我经常需要查询不同设备上的应用尺 ...
- search in 2d matrix and serach minimum in rotated array
import java.io.*; import java.lang.reflect.Array; import java.util.Arrays; import java.util.Collecti ...
- hiho一下第91周《Events Arrangement》(前半部分)
题目大意 现在有一场持续时间为M的游乐会,在游乐会上有N种不同的表演节目,同一时间只能有一个节目进行表演. 每种节目最多可以表演K次,且每种节目具有自己的三个属性值a[i],b[i],c[i]. 当一 ...
- 【Hibernate】Hibernate系列2之Session详解
Session详解 2.1.概述-一级缓存 2.2.操作session缓存方法 2.3.数据库隔离级别 2.4.持久化状态 2.5.状态转换 2.6.存储过程与触发器
- jstack命令详解
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使 ...
- Python egg
http://blog.csdn.net/turkeyzhou/article/details/8876658
- javascript动态添加form表单元素
2014年11月7日 17:10:40 之前写过几篇类似的文章,现在看来比较初级,弄一个高级的简单的 情景: 后台要上传游戏截图,截图数量不确定,因此使用动态添加input节点的方法去实现这个效果 主 ...
- java获取tomcat路径
获取tomcat路径 String savePath3 = System.getProperty("catalina.home"); E:\apache-tomcat-7.0.63 ...
- 【python】捕获所有异常
如下所示,在不知道异常名的情况下可以捕获所有异常 try: a=b b=c except Exception,ex: print Exception,":",ex
- openGL纹理映射参数解析
GLuinttexture[1]; AUX_RGBImageRec *TextureImage[1]; Status=TRUE; // Set The Status To TRUE glGenText ...