- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Ada数组的设置
Ada数组的设置
访问和设置数组(Access and Set Arrays)
访问数组时,只需在添加在 index specification 范围内的下标,如 3.2 中的数组Unit 1:
Unit1 (1) := 190; -- 赋予Unit(1)值 190;
Unit1 (7) := 210;
Unit1 (7) Unit (1) -- 返回 True;
数组的值虽然可以单个元素分别赋 ,但这样做明显是开玩笑的⿇烦。以上例中的
Var:Enrollment 为例,⼀般情况下可以如下赋值:
Var := (15,14,13);
结果为 Var (Bill) = 15, Var (Jac ) = 14 , Var (Tom) = 13 ,( ) 中的值,按顺序赋给数组⾥
的元素,因此数量也不能少:
Var := (15,14) -- 不合法
当数组元素有名称时,例如元素下标是⽤枚举类型表⽰,也可以这样赋值:
Var := (Bill = 15, Jac = 14, Tom = 13);
结果与上等同。但如果同时⽤以上两种表⽰法是不合法的,如:
Var := (Bill = 15, Jac = 14, 13); -- 不合法
如希望相邻的⼀些元素都是相同值,如 Var (Bill)、 Var(Jac )、Var(Tom)都等于 15 ,
则可以如下:
Var := (Bill .. Tom = 15);
注意是 Bill 和 Tom (包括它们本⾝)之间的所有元素值为 15 。
⽽希望 Var (Bill) 等于 15 ,其余都等于14 时,也可以如下:
Var := (Bill = 15, others = 14);
这样 Var (Jac ) = Var(Tom) = 14 。others 在有很多元素都要赋 相同值时是相当有⽤。
如果将 Var 作为常量数组,则在声明该数组时就赋 初使值:
Var :constant Enrollment := (Bill = 15, others = 14);
最后看⼀下以下三种情况:
type Vector is array (Integer range ) of Float;
V : Vector(1 .. 5) := (3 .. 5 = 1.0, 6 | 7 = 2.0);-- [1]
V := (3 .. 5 = 1.0, others = 2.0); -- [2]
V := (1.0, 1.0, 1.0, others = 2.0); -- [3]
对于 [3] ,我们已经学过:V(1)=V(2)=V(3)= 1.0 ,V(4)=V(5)=2.0 。 但 [1] 和 [2] 却很特
殊,在 [1] 中:V(1)=V(2)=V(3)= 1.0 ,V(4)=V(5)=2.0;在[2] 中V(3)=V(4)=V(5)= 1.0 ,
V(1)=V(2)=2.0 。[1]和[2] 的情况是 Ada95 新增的。像 [1] 的话,Ada83 会认为它是超
过了数组的下标,产⽣异常 Constraint_Error ,⽽在 Ada95 则是合法的,并且( )⾥⾯的
值按顺序赋给数组的元素;[2] 在 Ada83 ⾥也是不允许的,Ada95 允许先赋值给
V(3),V(4),V(5) ,others 就默认是指 V(1) 和 V(2) 。这3种情况很容易引起混淆,请读者
注意⼀下。
数组运算符(Array Operations)
赋值
整个数组的值可以赋给另⼀个数组,但这两个数组需要是同1种数组类型,如果是⽆
约束数组,数组的元素的个数要相等。如:
My_Name : String (1..10) := Dale ;
Your_Name : String (1..10) := Russell ;
Her_Name : String (21..30) := Liz ;
His_Name : String (1..5) := Tim ;
Your_Name := My_Name;
Your_Name := Her_Name; -- 合法的,它们的元素个数和类型相同
His_name := Your_name; -- 会产⽣错误,类型虽然相同,但⻓ 不同
等式与不等式
数组也可以使⽤运算符 = ,/=,=,=,, ,但意义与单个元素使⽤这些运算符不⼀
样。如:
Your_Name = His_Name -
文档评论(0)