Ada 程序设计语言(The Ada Programming Language)[第三集]
Ada 程序设计语言(The Ada Programming Language)[第三集]- -
typerecord_name is
record
field name 1: type 1;
field name 2: type 2;
...
field name n: type N;
end record;
typeId_Card is
record
Full_Name : String (1..15);
ID_Number : Positive;
Age : Positive;
Birthday : String (1..15);
Familiy_Address : String (1..15);
Family_telephone : Positive;
Job : String(1..10);
end record;
My_Card :Id_Card;
My_Card.Full_Name := "Jack Welch ";
My_Card := ("Jack Welch ", 19830519,45, "Jan 1st 1976 ",
"China ",8127271,"CEO ");
My_Card := ( Full_Name => "Jack Welch ",
ID_Number => 19830519,
Age => 45,
Birthday => "Jan 1st 1976 ",
Familiy_Address => "China ",
Family_telephone => 8127271;
Job => "CEO ") ;
My_Card := ( "Jack Welch ",
19830519,
Age => 45,
Birthday => "Jan 1st 1976 ",
Familiy_Address => "China ",
Family_telephone => 8127271;
Job => "CEO ");
My_Card := ( Full_Name => "Jack Welch ",
ID_Number => 19830519,
Age => 45,
Birthday => "Jan 1st 1976 ",
Familiy_Address => "China ",
8127271;
"CEO ");
My_Card := ( Full_Name => "Jack Welch ",
ID_Number | Family_telephone => 19830519,
Age => 45,
Birthday => "Jan 1st 1976 ",
Familiy_Address => "China ",
Job => "CEO ");
typeId_Card is
record
Full_Name : String (1..100) := "Jack Welch ",
ID_Number : Positive := 19830519,
Age : Positive := 45,
Birthday: String (1..20) := "Jan 1st 1976 ",
Familiy_Address :String (1..100):= "China ",
Family_telephone :Positive := 8127271;
Job : String(1..10) := "CEO ");
end record;
My_Card :Id_Card;
My_Card :constant Id_Card := ( Full_Name => "Jack Welch ",
ID_Number => 19830519,
Age => 45,
Birthday => "Jan 1st 1976 ",
Familiy_Address => "China ",
Family_telephone => 8127271;
Job => "CEO ";)
typeId_Card (Age : Positive := 1) is
record
Full_Name : String(1..15);
ID_Number : Positive;
Birthday : String(1..15);
Familiy_Address : String(1..15);
Family_telephone : Positive;
Job : String(1..10);
case Age is
when 1 .. 18 => School_Address : String(1..15);
when 19 .. 60 => Monthly_Income : Integer;
Working_Address: String(1..15);
when others => null; -- 如果 Age 的值不属于 1..60,成员不改变
end case;
end record;
My_Card : Id_Card ;
Your_Card: Id_Card (Age => 20);
record
Full_Name : String(1..15);
ID_Number : Positive;
Birthday : String(1..15);
Familiy_Address : String(1..15);
Family_telephone : Positive;
Job : String(1..10);
case Age is
when 1 .. 18 => School_Address : String(1..15);
when 19 .. 60 => Monthly_Income : Integer;
Working_Address: String(1..15);
when others => null;
end case;
end record;
My_Card : Id_Card ;-- 以上和上一节的例子一样
....
begin
...
My_Card := (17, "Jack Welch ", 19830519, "Jan 1st 1976 ", "China ",8127271,
"CEO ","Shanghai ");
My_Card := (17, "Jack Welch ", 19830519, "Jan 1st 1976 ", "China ",8127271,
"CEO ", 78112 ,"Shanghai ");
typeBuffer (Size:Integer) is
record
High_Buffer(1..Size);
Low_Buffer(1..Size);
end record;
ifcondition then
statements
end if;
ifcondition then
statements
else
other statements
end if;
ifcondition then
statements
elsif condition then
other statements
elsif condition then
more other statements
else
even more other statements
end if;
001 with Ada.Text_IO; use Ada.Text_IO;
002 with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
003 procedure testrange is
004 Var : Integer;
005 begin
006 Put ("Enter an Integer number to confirm its range:");
007 Get (Var);
008 if Var in Integer'First .. -1 then
009 Put_Line ("It is a negative number");
010 elsif Var in 1 .. Integer'Last then
011 Put_Line ("It is a positive number");
012 else
013 Put_Line ("It is 0");
014 end if;
015 end testrange;
[007] 输入值 Var;[008]-[014]的语句都是测试 Var 的范围,如是负数则输出"It is a negative number",正数输出"It is a positive number",为0则输出"It is 0",以上3种情况如果都没产生,则是因为输入值非 Integer 类型或输入值过大,从而产生异常。
caseexpression is
when choice1 => statements
when choice2 => statements
. . .
when others => statements
end case;
001 with Ada.Text_IO; use Ada.Text_IO;
002 with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
003 procedure testrange is
004 Var : Integer;
005 begin
006 Put ("Enter an Integer number to confirm its range:");
007 Get(Var);
008 case Var is
009 when Integer'First .. -1 =>
010 Put_Line ("It is a negative number");
011 when 1 .. Integer'Last =>
012 Put_Line ("It is a positive number");
013 when others =>
014 Put_Line ("It is 0");
015 end case;
016 end testrange;
loop
statements
end loop;
001 with Ada.Text_IO; use Ada.Text_IO;
002 with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
003 procedure testrange is
004 Var : Integer;
005 begin
006 loop
007 Put ("Enter an Integer number to confirm its range:");
008 Get(Var);
009 case Var is
010 when Integer'First .. -1 =>
011 Put_Line ("It is a negative number");
012 when 1 .. Integer'Last =>
013 Put_Line ("It is a positive number");
014 when others =>
015 Put_Line ("It is 0");
016 end case;
017 exit when Var = 0;
018 end loop;
019 end testrange;
forindex in [reverse] range loop
statements;
end loop;
*reverse 是可选的.
whilecondition loop
statements
end loop;
001 with Ada.Text_IO; use Ada.Text_IO;
002 with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
003 procedure testrange is
004 Var : Integer;
005 begin
006 while Var /= 0 loop
007 Put ("Enter an Integer number to confirm its range:");
008 Get(Var);
009 case Var is
010 when Integer'First .. -1 =>
011 Put_Line ("It is a negative number");
012 when 1 .. Integer'Last =>
013 Put_Line ("It is a positive number");
014 when others =>
015 Put_Line ("It is 0");
016 end case;
017 end loop;
018 end testrange;这里取消了exit when语句,由while语句来检测Var的值。当Var值为0时,循环结束。
identifier:
[declare]
begin
statements
end indentifier;
Swap:
declare
Temp :Integer;
begin
Temp := V; V:=U; U:=Temp;
end Swap;
001 with Ada.Text_IO; use Ada.Text_IO;
002 with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
003 procedure Swap is
004 V:Integer := 1;
005 U:Integer := 2;
006 begin
007 PutVU1:
008 begin
009 Put("V is:"); Put(V); New_Line;
010 Put("U is:"); Put(U); New_Line;
011 end PutVU1;
012 Swap:
013 declare
014 Temp :Integer;
015 begin
016 Temp := V; V:=U; U:=Temp;
017 end Swap;
018 Put_Line ("After swap");
019 PutVU2:
020 begin
021 Put("V is:"); Put(V); New_Line;
022 Put("U is:"); Put(U); New_Line;
023 end PutVU3;
024 end Swap;
通过上面的例子,大家可能感觉没什么意思,块结构可有可无---反正还是按语句的先后顺序执行。但如果它用在循环结构中,则还有点用处:
begin
loop
statements;
loop
statements;
exit Main_Circle when Found;--* 如果 Found 为 True,则跳出 Main_Circle,而不是该句所在的小循环
statements;
end loop;
statements;
end loop;
end Main_Circlel;这样就能跳出一堆嵌套循环,接下去执行的语句都在跳出的循环后面。
<<Label>>
statements;
goto Label;
001 with Ada.Text_IO; use Ada.Text_IO;
002 with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
003 procedure Swap is
004 V:Integer := 1;
005 U:Integer := 2;
006 begin
007 <<restart>>
008 PutVU1:
009 begin
010 Put("V is:"); Put(V); New_Line;
011 Put("U is:"); Put(U); New_Line;
012 end PutVU1;
013 Swap:
014 declare
015 Temp :Integer;
016 begin
017 Temp := V; V:=U; U:=Temp;
018 end Swap;
019 Put_Line ("After swap");
020 PutVU2:
021 begin
022 Put("V is:"); Put(V); New_Line;
023 Put("U is:"); Put(U); New_Line;
024 end PutVU2;
025 goto restart;
026 end swap;
001 with Ada.Text_IO; use Ada.Text_IO;
002 with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
003 procedure testrange is
004 Var : Integer;
005 begin
006 for i in 1..10 loop
007 Put ("Enter an Integer number to confirm its range:");
008 Get(Var);
009 case Var is
010 when Integer'First .. -1 =>
011 Put_Line ("It is a negative number");
012 when 1 .. Integer'Last =>
013 Put_Line ("It is a positive number");
014 when others =>
015 Put_Line ("It is 0");
016 end case;
017 exit when Var = 0;
018 end loop;
019 end testrange;
这样 Buffer 两个成员的大小就取决于 Size 值,在文本处理中这种用法还是挺好的。; 是记录类型的名称,一大堆 filed name 是记录的成员名称,紧跟其后的是该成员的数据类型。
0
分享
收藏
44篇文章,35W+人气,1粉丝
Ctrl+Enter 发布
发布
取消
推荐专栏更多
大数据时代的微服务之路
共18章 | 纯洁微笑
¥51.00 669人订阅
自动化运维开发新概念
共20章 | 抚琴煮酒
¥51.00 431人订阅
猜你喜欢
扫一扫,领取大礼包
0
hagejid
转载于:https://blog.51cto.com/hagejid/74843
Ada 程序设计语言(The Ada Programming Language)[第三集]相关推荐
- Ada 程序设计语言(The Ada Programming Language)[第二集]
Ada 程序设计语言(The Ada Programming Language)[第二集]- - 2.5.2 通用离散类型属性 离散类型包括整型和枚举型,除了上述的属性外,还有: S'Pos ...
- Ada 程序设计语言(The Ada Programming Language)[第一集]
Ada 程序设计语言(The Ada Programming Language)[第一集]- - 版权(Copyright) <Ada 程序设计语言>的版权隶属于网站 VenusIC,允许 ...
- Ada 程序设计语言(The Ada Programming Language)[第四集]
Ada 程序设计语言(The Ada Programming Language)[第四集]- - 第6章 子程序(Subprogram) 6.1 概述 (Overview) 一个程序是由一个或更多的子 ...
- C程序设计语言(The C Programming Language)读书笔记
文章目录 C程序设计语言 笔记 1 导言 1.1 入门 1.2 变量与算术表达式 1.3 for语句 1.4 符号常量 1.5 字符输入/输出 1.5.1 文本复制 1.5.2 字符计数 1.5.3 ...
- Ada程序设计语言初识
Ada曾是美国国防部指定的唯一一款可用于军用系统开发的语言,旨在整合美军事系统中运行着450多种不同的程序设计语言,她是迄今为止最复杂.最完备的软件工具.开发始于1975年,最早是针对嵌入式和实时系统 ...
- 真封神引擎技术篇之易语言GM工具开发教程第三集
真封神引擎技术篇之易语言GM工具开发教程第三集www.52fengshen.com 下载地址 http://pan.baidu.com/s/1uyTBG
- 经典高清C语言 The C Programming Language
https://pan.baidu.com/s/11QrfGXJ1gn65aogi5hF8bg bdc5
- 计算机程序设计语言是英文翻译,程序设计英语怎么说
程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分.随着硬件技术的飞速发展和软件规模的日益庞大,程序的结构.可维护性.复用性.可扩展性等因素日益重要.那么你知道程序设计用英语怎么说吗 ...
- R语言(The R Programming Language)
R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支. ...
最新文章
- BREW 计费模式概览
- oracle地址已被占用,Listener Tns-12542:Tns:地址已被占用
- ZOJ-2366 Weird Dissimilarity 动态规划+贪心
- python 2.7 简单模拟登陆网站
- HTML语言中checkbox的行为
- 转载、Python的编码处理(二)
- et al、e.g.、i.e.读音及释义
- 查看进程占用内存cpu信息,Linux命令—TOP
- leip与mysql数据库_性能分析方法 - osc_xm8bu282的个人空间 - OSCHINA - 中文开源技术交流社区...
- 替换换行符:回车换行CR/LF
- C#实现微信扫码支付
- 卡巴斯基和Endtab.org开设新课程教授用户如何防范人肉搜索
- 猫咪藏在哪个房间python_盘点:猫咪玩“躲猫猫”喜欢藏的几个地方,这下再也不愁找不到了...
- Nginx/Apache恶意User-Agent过滤列表 屏蔽蜘蛛爬虫
- ffmpeg 安装bzlib_centos6中yum安装ffmpeg
- 4大Excel文本合并技巧,这几个公式轻松帮你搞定
- 完美卸载SQL Server 2008 R2 的方法,适合所有问题
- Helen Of Troy 海伦特洛伊(新木马屠城记)
- Python将两个列表合并成一个列表
- 高手处理事情的十二个方法,普通人学到三招就很厉害了
热门文章
- [攻略] 球会6 特殊战术(FORMATION COMBO)一览
- javascript文章_我从2019年开始的十大JavaScript文章
- 如何查看windows server2016硬件的使用状况,比如磁盘、GPU等
- 微信小程序开发工具介绍及安装(中)
- 至强w系列可以用服务器内存吗,至强能用服务器内存吗
- SHELL脚本之编写脚本实现调整屏幕亮度的脚本
- 尺取法(日志统计和锻造兵器)
- Wannafly挑战赛26: B. 冥土追魂(思维题)
- 简书android,简书 - 一个基于内容分享的社区 - Android 应用 - 【最美应用】
- vpc经典网络区别_vpc经典网络区别