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语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
随机推荐
- UIDatePicker的简单用法
// 初始化UIDatePicker UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(, , , ) ...
- MYSQL注入天书之HTTP头部介绍
Background-5 HTTP头部介绍 在利用抓包工具进行抓包的时候,我们能看到很多的项,下面详细讲解每一项. HTTP头部详解 1. Accept:告诉WEB服务器自己接受什么介质类型,*/* ...
- ZeroMQ(java)中对IO的封装(StreamEngine)
哎,各种各样杂七杂八的事情...好久没有看代码了,其实要搞明白一个与IO相关的框架,最好的办法就是把它的I/0的读写两个过程搞清楚...例如在netty中,如果能将eventLoop的运行原理搞清楚, ...
- 重新编译安装gcc-4.1.2(gcc版本降级)之TFS安装
wget http://gcc.parentingamerica.com/releases/gcc-4.1.2/gcc-4.1.2.tar.gz tar -zxfv gcc-4.1.2.tar.gz ...
- PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
PHP面向对象三大特点学习 学习目标:充分理解抽象.封装.继承.多态 面象对向的三大特点:封装性.继承性.多态性 首先简单理解一下抽象:我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和 ...
- 【GoLang】GoLang fmt 占位符详解
golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. # 定义示例类型和变量 type Human struct { Name string } var peo ...
- 【leetcode】3Sum Closest
3Sum Closest Given an array S of n integers, find three integers in S such that the sum is closest t ...
- ECharts2.2.0 兼容IE8
IE 8,ECharts2.2.0 版本,demo的各个功能均正常显示在IE8上面, 但是我在真正做的时候,我的html却不能显示,画面乱了,而且function也不能用, 都准备用1.4.1版本了, ...
- 利用cocostudio库函数 实现左右滑动的背包栏UI (cocos2d-x 2.2.0)
.h #ifndef __COMMON_COMPONENTS__ #define __COMMON_COMPONENTS__ #include "cocos2d.h" #inclu ...
- 29.调整数组顺序使奇数位于偶数前面[ReOrderArray]
[题目] 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分.要求时间复杂度为O(n). [分析] 如果不考虑时间复杂度,最简单的思路应该是从头扫描这个 ...