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语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
随机推荐
- 第8章 Iptables与Firewalld防火墙
章节简述: 红帽RHEL7系统已经用firewalld服务替代了iptables服务,新的防火墙管理命令firewall-cmd与图形化工具firewall-config. 本章节基于数十个防火墙需求 ...
- POJ 1308&&HDU 1272 并查集判断图
HDU 1272 I - 小希的迷宫 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ...
- django动态表格总结
应用场景: A与B之间存在一对多关系. CBV实现方案: CreateView/UpdateView + inlineformset + jquery 具体: view方面:重写post/get方法, ...
- shell实现trim函数-去除字符串两侧的空格(包括tab,space键)
shell实现trim函数效果去除字符串两侧的空格,以下三个命令等价,都能实现 sed 's/^\s*//' totrim.txt |sed 's/\s*$//'>trimed.txtsed ' ...
- AWS AutoScaling
origin_from: http://blog.csdn.net/libing_thinking/article/details/48327189 AutoScaling 是 AWS 比较核心的一个 ...
- 《C#高级编程》学习笔记------C#中的事件和委托
本文转载自张子阳 目录 委托的作用 将方法绑定到委托 事件的来由 Observer设计模式 .Net Framework中的委托与事件 引言 委托 和 事件在 .Net Framework中的应用 ...
- Light OJ 1393 Crazy Calendar (尼姆博弈)
C - Crazy Calendar Time Limit:4000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Su ...
- LeetCode - 413. Arithmetic Slices - 含中文题意解释 - O(n) - ( C++ ) - 解题报告
1.题目大意 A sequence of number is called arithmetic if it consists of at least three elements and if th ...
- Hadoop 2.x HDFS新特性
Hadoop 2.x HDFS新特性 1.HDFS联邦 2. HDFS HA(要用到zookeeper等,留在后面再讲) 3.HDFS快照 回顾: HDFS两层模型 Namespa ...
- iptables 无法连外网
[root@v01-svn-test-server ~]# service iptables status Table: filter Chain INPUT (policy DROP) num ta ...