如何在字符中存储ASCII值(仅限Ada 83)

如何将整数(例如33)的ascii值存储在字符中。我想在Ada83中有这样的东西,而不是95 C:代码 char c = 10; char *k = &c; strncat (des, k, 1); printf("%s",des); 谢谢 C : Character := Character'Val(10); 或 第一个在Ada的所有版本中都有效。第二种是Ada 83中的标准方法;它现在已经过时了。较新的方法是 C : Character := Ada.Characters.Lat

Ada SPARK:gnatprove带有-gnat13选项无法识别?

我对Ada/SPARK很陌生。我试着从这里学习一些教程-- 假设我正在运行这里给出的ISQRT示例()。所有代码(*.ads和*.adb)都绑定为一个名为isqrt.gpr的项目,我正在运行的命令是-- :~$gnatprove-gnat13-p isqrt.gpr 我得到的结果是-- 本教程说,我需要向校准仪提供一个名为-gnat13的开关,这样校准仪就可以跳过一些溢出检查,但显然这个开关是不可接受的 有什么想法吗?gnatprove命令提供的“帮助”非常有用: $ gnatprove --

在Ada中,如何将数组传递给过程?

我似乎找不到任何关于如何做到这一点的信息。有人知道我如何像传递字符或整数一样将数组传递给过程吗 这个例子将是惊人的。首先,您必须有一个命名的数组类型。匿名类型不起作用匿名类型在任何情况下都是个坏主意 例如,包标准中有一个名为String的数组类型声明为: type String is array (Positive range <>) of Character; 首先,必须有一个命名的数组类型。匿名类型不起作用匿名类型在任何情况下都是个坏主意 例如,包标准中有一个名为String的

Ada 从文件的行中获取变量

我想知道你们中是否有人能帮我回答一个简短的问题。我现在正在处理记录,在我的程序中,我需要它来理解我导入的文件的行包含什么。我的问题在于,我不知道如何将行“拆分”为实际变量。例如,该行是 22134.09 Kia Bernice 我如何让程序知道第一部分22134.09是可变价格,起亚是可变公司,伯尼斯是可变模型,然后将它们全部排序到一个记录中 比如 type PriceCompModel is record price : Float range 1.0..99999.99; company

在macOS Sierra上构建Ada Web服务器(AWS)时出错

我已经从AdaCore将gnat更新为最新版本,并尝试重建同样从AdaCore下载的最新AWS(Ada Web服务器)。我在构建时遇到了一些错误: aws-services-web_block-context.ads:106:21: argument of pragma "SUPPRESS" is not valid check name aws-services-web_block-context.ads:106:21: argument of pragma "SUPPRESS" is

在SPARK Ada中实例化非库级包

如何在SPARK Ada中实例化非库级包 假设我有这样的东西: subtype Die is Integer range 1..6; package Random_Die is new Ada.Numerics.Discrete_Random(Die); 这给了我一些错误: instantiation error at a-nudira.ads.45 incorrect placement of "Spark_Mode" Random_Die is not a libray level p

Ada`Gprbuild`较短的文件名,按目录组织

在过去的几周里,出于各种不同的原因,我进入了美国残疾人协会。但毫无疑问,关于我使用Ada的个人原因的信息超出了这个问题的范围 从前几天开始,我开始使用Windows版本的随附的gprbuild命令,以获得以项目相关方式管理应用程序的系统的好处。也就是说,能够在每个项目的基础上定义某些属性,而不是自己手动设置编译阶段 目前,在命名我的文件时,它们的名称似乎是基于grpbuild的标准,尽管我可能大错特错。对于句点(在包结构中),在文件名中放置一个-,对于下划线,相应地放置一个。因此,名为App.T

Ada 使用GNAT使用静态库编译

为了了解编译Ada程序背后的过程(不必使用gpr),我决定手动编译我的一个项目。为了编译一个程序,我对其中的每个.adb文件运行以下命令(但不是手动): $gcc-csrc/.adb-o obj/.o 编译所有文件并将其放入obj目录 或者更确切地说,它会。这有一个小问题。我有一个从另一个项目生成的存档(静态库),名为libapples.a,其中包含包Apples。Apples包由您看到我在上面编译的文件使用 由于libapples.a不再有源文件(给定其存档格式),因此无法(甚至不可能)使用-

Ada 如何获取当前日期?

有没有办法在Ada中获取当前日期 我正在寻找一个与C#DateTime.Now()等价的返回持续时间的函数 我有一个事件T,我想测量T是否在30秒前开始。在Ada中执行此操作的方法是使用Ada.Calendar,它提供了一个时钟函数,返回当前时间: 声明 使用Ada.Calendar.Time类型; 现在:常量Ada.Calendar.Time:=Ada.Calendar.Clock; 间隔:恒定持续时间:=30.0; 开始 如果现在>T+间隔的开始时间,则 Ada.Text_IO.Put_Li

Ada 是否有一个;供XXX使用“;子句对空记录有意义吗?

我的任务是为所有记录类型添加表示(rep)子句,这些记录类型将以消息形式发送给另一个处理器。这是一个不同的CPU制造商、编译器和编程语言,因此存在错位/误解的危险 显然,type XXX is record需要一个用于XXX使用,并为每个字段提供适当的字节和位数据 关于类型空记录是空记录 for null_record use null; end record; 不编译,而且似乎没有真正意义 boss正在推动100%重复条款,包括'size,'alignment'Object\u siz

Ada 编译错误-a-textio.ads上的声明不可见

我是Ada的新手,不幸的是我遇到了一个问题。这是我的密码: with Ada.Text_Io; with Ada.Integer_Text_Io; --use Ada.Text_Io; --use Ada.Integer_Text_Io; procedure life is type Plansza is array (Integer range <>, Integer range <>) of Integer; File : Ada.Text_IO.File_Ty

Ada程序挂起异常,gnatmake

我遇到了一个ADA程序挂起异常的问题。下面是我正在编译的一个测试程序 $ gnatmake divide_by_zero.adb gcc -c divide_by_zero.adb divide_by_zero.adb:6:19: warning: division by zero divide_by_zero.adb:6:19: warning: "Constraint_Error" will be raised at run time gnatbind -x divide_by_zero.a

Ada 引发的约束_错误:polynom.adb:85索引检查失败

我创建了这样一个数组: 类型coef_list是整数的数组(整数范围0..50) 但当我调用此函数时,会显示以下消息: t:=次(r,q)--乘以两个多项式 为什么??我需要一个动态数组?使用Ada.Vectors,但如何使用它?如果有任何简单的例子来指导我,请分享?ThxAda程序(以及类似的功能)需要以下结构: procedure Foo is -- declarations goes here begin -- code goes here end Foo; 在代码中,多项式

Ada函数参数是否为访问类型

我正在重构一些最初使用访问类型编写但尚未测试的代码。我发现访问类型在Ada中很麻烦,因为它们只能引用动态分配的项,并且显然不允许引用在编译时定义的项。(这是Ada83。) 但现在我来讨论这样一个函数: function Get_Next(stateInfo : State_Info_Access_Type) return integer; 我知道我可以很容易地传递访问类型的参数“contents”,而不是访问指针本身,因此我考虑将其编写为 function Get_Next(stateInfo

Ada 不同环境下的不同标量范围

如何在第一个状态下表示具有完整标量范围的数据,然后在使用相同内存空间的情况下在下一个状态中将其表示为0到1 任何解决问题的方法都是值得赞赏的,如果解决方案需要更改示例程序,则示例程序不必如此 例子 从文件中读取值,然后对其进行规范化Float_数组用于直接来自文件的任意范围的原始值。 功能\u数组用于标准化值 type Float\u数组是Float的数组(整数范围); 类型特征是新的浮动范围0.0。。1.0; 类型特征_数组是特征的数组(整数范围); 第一步是将浮点读入Float\u数组,并

为Ada记录数组循环生成了什么代码?

例如: type PERSONCV is record name: String ( 1..4 ); age: Integer; cvtext: String ( 1..2000 ); end record; N: constant := 40000; persons : array ( 1..N ) of PERSONCV; function jobcandidate return Boolean is iscandidate: Boo

Gcc赢得';t识别带有'的Ada;d单元

我试图编译一个Ada单元,它的规范声明为三级包名,比如包A.B.C,但编译失败,抱怨没有单元A.B 也就是说,它似乎只搜索名为A-B.ads的文件,而不搜索A-B-C.ads。 如何让gcc查找正确的文件? 感谢您的帮助。与A.B.C表示与A和A.B以及A.B.C的。 所以它确实在寻找正确的文件,但它也需要另外两个。 确保搜索路径中的所有依赖项都可用 另外,确保文件名是小写的(a.ads,a-b.ads,a-b-c.ads),这是GNAT/gcc所期望的。点运算符对Ada包之间的关系有特殊意义与

在Ada中描述字符串类型

我有一种类似于: 类型ID是新字符串(1..7); --示例:123-456 如何在代码中指定该格式(使用Ada或SPARK) 我考虑的是静态谓词,但是字符串必须以3个正整数开头,后跟一个破折号,后跟另一组3个正整数的条件不能用静态谓词表达式来描述。必须使用动态谓词: 类型ID是新字符串(1..7) 使用动态_谓词=>(对于ID'范围内的所有I=> (第一种情况是: 当1..3 | 5..7=>ID(I)在'0'..'9'中时, 当4=>ID(I)位于“-”)时; 我自己也经常使用它,但我主

Ada 使用LCM函数时出现约束错误

我正在尝试用ada语言为Cheddar编写一个用户定义的任务调度策略。但当我编写以下代码时: mul:=1.0; for i in tasks_range loop if tasks.ready(i)=true then mul:=lcm(tasks.capacity(i),mul); end if; end loop; 它给出一个错误:引发异常:约束错误:表达式。adb:1876访问检查失败 我尝试将mul定义为整数,但也失败了 请帮助。我们需要很多信

如何检测在Ada语言中按下的任何键盘按钮

我是Ada编程的初学者。我正在尝试使用Ada制作一个“2048”游戏。我在C++中做了“2048”,我用“KBHIT()”来检测是否有键盘按钮被按下。我想知道,在艾达中有类似的函数“KBHIT()”,或者如何写一个函数来检测是否有任何键盘按钮被按下,或者我应该只使用C++中的接口函数。< /P> < P>是的,你可以使用任何代码的重载版本:艾达。声明如下(摘自2012版《美国残疾人法案》标准): 从中读取下一个字符(控件或图形) 指定的文件或默认输入文件。如果 文件的模式不在\u文件中。如果在

Ada 何时使用Pragma Pure/Preelaborate

是否有一套通用规则/指导原则可以帮助您理解何时更喜欢纯布拉格语、布拉格语或其他完全不同的语言?本文中给出的规则和定义有点繁重,如果能阅读一些更清晰、更适合一般情况的内容,我将不胜感激 如果我想彻底而不完全理解它的“原因”,我可以简单地尝试: 用pragma Pure标记包装规格 如果无法编译,请尝试使用pragma preeloarate 如果失败,那么我已经做了一些棘手的事情,或者需要在的基础上用-by-重新设计单元,或者重新考虑包的布局 虽然这可能会起作用(是吗?),因为建议尽可能将包装

Ada&x2B;POlyORB:在命名服务器中查找失败

我正在尝试使用DSA在Ada中构建一个分布式应用程序,经过数小时的反复试验,我终于成功地将其正确编译。但是,现在命名服务器出现了问题 我的应用程序由两个分区组成:一个托管一个简单的RCI单元,另一个是调用RCI单元的客户端。编译完成后,我通过调用po\u con\u naming来启动名称服务器,并且它显示正确 然后启动与我的RCI分区对应的可执行文件,这里就是问题出现的地方。在名称服务器控制台上,大约每秒显示一行: cosnaming.namingcontext: look for "AAAA

Ada for循环中缺少操作数

我有这样一个冒泡的说法 procedure Bubble_Sort (Data: in out List) is sorted: Boolean := false; last : Integer := Data'LAST; temp : Integer; begin while (not (sorted)) loop sorted := true; for check in range Dat

Ada 艾达:为什么我的队列只容纳它;循环中的s值?

所以我用Gnat编译器编译Ada。我有一个队列,它保存着一条记录,其中一个记录变量是一个名为name的无界_字符串。这就是我现在正在测试的,尽管所有记录变量都应该可以在循环之外访问。我遇到问题的代码是 with ada.text_io, stacks, queues, ada.Strings.Unbounded, ada.Strings.Unbounded.Text_IO, ada.Integer_Text_IO; use ada.Text_IO, ada.Strings.Unbounded,

Ada中的字符数组赋值

在具有简单字符数组(Interfaces.C.char array)声明的Ada程序中 package C renames Interfaces.C; Msg : C.Char_Array(1..50) := (others => C.To_C(Item=>ASCII.NUL)); 在以下分配中获得运行时异常“长度检查失败”: Msg := C.To_C(Item => "UNKNOWN ERROR",Append_Nul => True)); 引发异常的上述作业中有

Ada 让GPS显示我的软件包子文件夹

我的GPS不显示“src”下的子文件夹,尽管它们存在且不为空。当我尝试从GPS中创建新的子文件夹时,它会被创建,但不会显示在“src”下。我正在Windows 10上使用(社区)GPS版本20180523 我试过以下方法。 (1) 我在项目选项卡右上角摆弄文件夹显示选项,但没有成功。 (2) 我猛击刷新按钮。 (3) 我在Windows资源管理器中创建了所需的子文件夹 如何让文件夹组织代码在GPS中正确显示 谢谢。在您的项目属性GUI中,在“源代码->目录”下选中“包含子目录”复选框。要手动将其

Ada是否有任何惯用的规则来规定何时使用函数,何时使用带有输出参数的过程?

通过让函数向变量返回值,可以为变量赋值: My_Int:Integer:=My_Math_Func[(可选参数)] 或者,您可以通过一个过程(假设已经声明了My_Int)这样做: My_Math_Proc([optional params;][in]out My_Int) 显然,一个过程不能像第一个例子中的函数那样初始化变量,但我希望能有一些具体的、实用的规则,说明何时以及为什么选择一个变量而不是另一个。Two让您开始 当要返回多个结果时,具有多个OUT参数的过程通常是一个不错的选择 如果在子程

Ada中的嵌套选择

我在ADA中解决有界缓冲区问题时遇到了一个问题(我在ADA编程中是非常新的) 我有两个任务(我们称之为A和B)可以写入缓冲区,还有一个任务可以从缓冲区(C)读取。此时任务A将两个整数插入缓冲区,而任务B仅插入一个整数。在从缓冲区读取数据之前,任务C需要确定哪个任务(A或B)最后一次将数据插入缓冲区,如果是A,则读取两个最后插入的整数,否则只读取一个 这就是我试图实现缓冲区任务的方式,我想知道这样做是否正确: task bbuffer is N : constant Integer :=

Adacore提供的LWIP堆栈

我想知道1)。将LWIP协议栈移植到ada或2)。使用C中的协议栈(按原样),并将接口写入其中,然后用Ada编写以太网驱动程序(工作量较小),但后来我发现存在一个用于裸板的TCP/IP栈: 有人尝试过堆栈或者知道如何获取源代码吗 提前谢谢 我还没有尝试过这个堆栈,但我非常确定,与AdaCore签订支持合同是获得源代码的唯一切实可行的方法。-与AdaCore签订的支持合同大约每年15千欧元 如果您选择选项1并在开源许可下发布结果,我会非常高兴,但如果您的预算受到限制,并且您不必正式记录源代码质量

Ada 如何在我的程序中停止执行

如果不在这里复制粘贴代码,如果ADA程序将某个值计算为“X”,如何在运行时停止执行更多的代码行 比如: variable_name := variable_name +4; if variable_name >1 then // END program here and dont execute any lines under this one end if 我对编程并不陌生,但对ADA来说是个新手,所以找到正确的语法是一件痛苦的事情。有什么帮助吗 if variable_na

在Ada中将值分配给其他关键字

我对使用ADA有疑问 others := (others := -1) 这句话有效吗。如果无效,为什么无效?首先,others是保留的Ada关键字,因此不能将其用作变量名`others’关键字定义选项列表中的其余选项 假设这是一个意外的错误,你想做的是: other := (other := -1) 这不起作用,赋值运算符不返回值,因此other:=-1不是值,因此无法赋值 但另一方面,如果other的类型为boolean,则以下类似内容是有效的: other := (other = fal

Ada 用SPARK证明选择排序算法

我试图证明我在Ada中实现的选择排序是正确的。我尝试了一些循环不变量,但使用gnatprove只能证明内部循环的不变量: package body Selection with SPARK_Mode is procedure Sort (A : in out Arr) is I: Integer := A'First; J: Integer; Min_Idx: Integer; Tmp: Integer; begin while I < A'Las

如何在Ada中打印Ada.Calendar.Time变量?

需要知道如何在Ada中打印时间变量。我假设没有可移植的方法,因为时间是由实现定义的。我已经看过GNAT下可用的GNAT.Calendar.Formatting包,我还对VME的GHS感兴趣 当然,时间输出是可移植的,Ada。Calendar包含提取时间值组件的标准函数,因此很容易将您自己的转换包组合在一起 举个例子,这里是。您只需创建一个次要的添加项,为给定的时间值创建一个“格式化的时间”记录(请参阅软件包的Get_Time()函数以获取指导),或者在软件包规范中使Main_Formatter(

Ada 这两个文件有什么不同吗?

我有两个ada文件,如下所示 A1.ada 下面显示的是B1.ada 这两个文件之间有什么区别吗?在B1中,Null\u Proc没有内联。它不在最低\u级别内。在B1中,空\u进程未内联。它不在最低\u级别内。在A1中,过程Null\u Proc未嵌套在过程最低\u级别中;在B1中,它嵌套在程序的最低_级别。关于pragma Inline,实现可以自由遵循或忽略。我希望嵌套子程序的内嵌依赖于实现 在A1中,过程Null\u Proc未嵌套在过程最低\u级别中;在B1中,它嵌套在程序的最低_级别

关于ADA中受保护的数据对象

我是Ada的新手,但对编程并不陌生。我对受保护的数据对象有问题。我从示例和书籍中了解到,您可以像处理任务一样调用受保护数据对象中的成员 这是我的密码: procedure ass4 is protected type Signal_Object is entry Wait; procedure Signal; function Is_Open return Boolean; private Open : Boolean := Fals

Ada与Cobol接口

我正在研究Ada->Cobol接口,我想知道是否有任何方法可以将文件写入Cobol default,而不必编写Cobol代码,因为我想使用Cobol的一些规则编写文件,但我想知道如何直接在Ada中这样做 例如,要读取具有cobol结构的文件,我可以使用这种方式: with Interfaces.COBOL; with COBOL_Sequential_IO; -- Assumed to be supplied by implementation procedure Test_External_F

在Ada中立即开始循环的下一次迭代

我希望有一个无止境的循环,循环几乎贯穿整个程序,并且在任何时候,基于一个条件语句,我希望它退出循环的特定迭代,返回顶部并执行 有没有办法做到这一点 它不一定是一个无止境的循环;它可以是一个for循环。我只想让它转到该循环的下一个迭代。您可以使用goto语句引发一个在循环体中处理的异常: procedure Main is Try_Again: exception; begin while Keep_Going loop begin -- l

Ada 增加整数大小/避免整数溢出?

在FORTRAN中,我可以将整数的声明更改为integer(kind=8),并且它可以工作 我如何在Ada中做类似的事情 我的程序处理的是非常大的数字,当它变得非常大时,它会给我一些负数 我试过: with ada.text_io; use ada.text_io; with ada.integer_text_io; use ada.integer_text_io; with multiplication_io; use multiplication_io; procedure multipl

Ada:读取文件问题

所以我必须从文本文件中读取关系,才能对它们进行拓扑排序。问题在于关系中的数据是异构的。大约有3种不同的枚举数据类型,混合中还有整数和浮点。从文件中读取此数据时,据我所知,它将被读取并作为字符串存储,直到执行未经检查的_转换。最终我的问题是,如果我阅读任意混合这些类型的文本文件,我是否需要在转换之前扫描我遇到的每一个文本文件,看看它是什么类型?比如,我需要扫描每个元素检查一个句点“.”,以确定是将其转换为整数还是浮点?谢谢 更新: 每个文件中的数据将是由我生成的纯文本,而不是另一个程序。至于结构和

Ada 在编译时生成函数

在Ada中有没有办法在编译时生成函数?我想生成一个存储函数指针的操作码表。我目前的解决方案是存储包含可以执行的过程的对象,但如果可能的话,我宁愿不分配 但是有一种特定于领域的语言(DSL)来生成Ada并没有什么错。这种情况经常发生。不 但是有一种特定于领域的语言(DSL)来生成Ada并没有什么错。这是经常发生的。您可以使用泛型过程来创建泛型体,只需为其提供所需的唯一参数即可 带有Ada.Text\u IO;使用Ada.Text\u IO; 你好 通用的 --某种参数 值:整数; 程序执行; 操作

Ada 如何得到一个整数的10个对数?

我想让用户输入一个整数(N),然后显示他/她输入的整数的10对数。我已经成功地计算了10个对数,但不知道如何像下面的例子那样显示它: Write in an Integer: 455666 455666 / 10 = 45566 45566 / 10 = 4556 4556 / 10 = 455 455 / 10 = 45 45 / 10 = 4 Answer: 10-logarithm of 455666 is 5. 这是我的密码: with Ada.Text_IO;

Ada 如何从标准输入循环多个数据集

我从标准输入(一个文本文件)中读取数据,并使用如下排列的数据进行计算: 2 --This states the amount of following sets of info 150 -- this is the first set of data 250 -- this is the second set of data 0 -- this is supposed to tell my program that this is the end of the two sets but

ada中变量的数据类型

如何在Ada中找到变量的数据类型 例如,给定 INT : integer; 如何打印此变量的“数据类型为整数” 在Python中,type()可用于查找类型。Ada中是否有类似的函数来查找变量的数据类型?Ada是一种强类型语言,当您声明变量时,您可以指定其类型。因此,函数返回变量的类型是没有用的,因为在使用非类型化变量的语言中会出现这种情况。程序已经知道了类型 如果变量X用类型T'Class声明,则实际值的类型可以是T或从T派生的任何类型。在这种情况下,可以使用X'Tag获取值的实际类型的标记

Ada 将字符串数据转换为二进制流

我有一个简单的Ada应用程序,用于通过套接字发送和接收数据。我现在需要修改它,使用从文件读取的字符串创建一个包/流。字符串是消息体的二进制表示形式 因此,111100001110000的字符串应作为2个字节F0 F0发送。数据大小是已知和固定的 我正在努力以正确的方式解析和转换字符串,每8个字符是1个字符的二进制表示 在Ada中,解析字符串或从文件中以不同格式读取字符串(当前使用读取字符串的Get_行)的正确方法是什么?您可以使用Ada.Text\u IO.Integer\u IO的适当实例重新

移植到安腾和Gnat Ada

使用OpenVMS平台在Ada 83中开发的应用程序将使用GNAT Ada编译器迁移到安腾 这个港口有什么风险 是否有一个通用的迁移验收计划 知道GNAT Ada和DEC Ada之间的浮点值存在管理差异,如何验证此应用程序 浮点类型的问题将在编译时检测到。我不记得DEC Ada有什么限制,但我在英特尔体系结构上使用GNAT的经验是,最多可以有18位有效数字,这比我在DEC Alpha上使用GNAT时的有效数字还要多 我曾经处理过一个应用程序,它是从DEC Ada移植到GNAT的。据我所知,所有移

“Ada”的实际错误;元素“U型”;当向量包含字符串时,必须是确定的子类型

我的目标是以括号表示法打印具有N个节点的所有形式的树,可以根据上下文无关语法定义如下: T→ 树是空的 T→ (T.T)具有左右子节点的节点 例如,具有3个节点的所有树将如下所示: () ()(()) ().() (.(.) ()(()) 我用Ada编写了以下代码 with Ada.Containers; use Ada.Containers; with Ada.Containers.Vectors; with Ada.Text_IO; use Ada.Text_IO; with Ada.C

GNAT工作室-不能使用非核心Ada库

我是Ada编程新手,我正在尝试使用GNATStudio IDE学习它 使用诸如Ada.Text\u IO或Ada.Numerics之类的核心库没有问题,但是当我尝试使用Libadalang作为示例时,编译器找不到规范文件“Libadalang.ads” 我的代码: with Ada.Text_IO; with Libadalang.Analysis; procedure Main is begin -- Insert code here. null; end Main; 当我点

ADA文件名与包名

我继承了一个ADA程序,其中源文件名和包文件名不遵循默认命名约定。ADA对我来说是新的,所以我可能遗漏了一些简单的东西,但在GNAT Pro用户指南中我看不到。(没有帮我。) 以下是几个例子: File Name: C_Comm_Config_S.Ada Package Name: Comm_Configuration File Name: D_Bus_Buffers_S.Ada Package Name: Bus_Buffers 我想我已经整理好了_S.Ada和_B.Ada,但

  1    2   3   4   5   6  ... 下一页 最后一页 共 7 页