问题标签 [ada]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4164 浏览

file-io - 在 Ada 中打开、写入和附加的过程

这个问题是帖子的后续内容

Ada 文件操作:实例化和异常

关于在 Ada 中写入文件。

我选择将这个问题放在单独的帖子中,以便更多人看到它,因为我已经在上述帖子中接受了一个稍微不同的问题(文件处理中的异常)的答案。

在编译上面我得到一个错误如下:

  1. X_File : Seq_Float_IO.File_Type;
    1. 文件名:字符串;|

      不允许不受约束的子类型(需要初始化)提供初始值或显式数组边界

我不知道两件事:

  1. 我有 File_Name : String; 因为我希望能够写入不同的文件。所以我想要一个通用字符串,而不是类似:

文件名:常量字符串:=“one_File_Only.dat”

  1. 将过程 Open_Data 保存在单独的 ads 和 adb(用于正文)文件中会更好吗?

非常感谢...


新的...

我已将代码修改如下:

如你所见,我有

我已将 Name_X 作为 Name 所采用的参数,但这不正确,因为我应该能够传入一个通用名称,它可以是 Name_X 或 Name_Y。对不起,伙计们,我不知道该放什么。

非常感谢您的帮助。谢谢

0 投票
2 回答
5759 浏览

declaration - Ada 中的常量声明

作为 Ada 的新手,我正在探索它的语法和规则,我想提请注意接下来给出的代码。在这里,我试图设置一个变量 Actual_Stiffness 来保持一个恒定值。它的值由产品给出:

其中 Stiffness_Total 已在规范文件 Material_Data.ads 中定义为常量 Long_Float,而 Stiffness_Total 的值已在广告文件中设置。

编译时我收到警告消息

警告:“Stiffness_Ratio”可能在它有值之前被引用

在运行程序时,Actual_Stiffness 没有得到正确的值。我可以将 Actual_Stiffness 定义为只是一个 Long_Float(不添加 CONSTANT),然后在我的程序中 BEGIN 之后从产品 Actual_Stiffness := Stiffness_Ratio * Stiffness_Total 中获取其值,此时 Stiffness_Ratio 已经获得了一个值。这将是正确的做法。

我的问题是:

我已将 Stiffness_Total 定义为具有规定值的常量 Long_Float。如何将 Actual_Stiffness 定义为常量(因为它不会在程序中更改),同时保持用户能够在终端以交互方式输入 Stiffness_Ratio 的能力?这甚至可能吗?

非常感谢..

0 投票
1 回答
2092 浏览

floating-point - Ada:常量声明

我正在阅读 Norman Cohen 的 Ada 95 书,在第 129 页我们有不断的声明:

据说第二个声明被解释为,我引用:“具有适当范围的定点类型的任何浮点”。我的问题是说一个人正在使用 Long_Float 精度,然后例如声明一个常数说 2*PI 做一个人必须特别声明像

或者更好:

(第二个声明利用小数点后更多的数字)?

或者更好

与本书声称的一样好,以便 Ada 编译器知道,例如,如果我在 Long_Float 计算中使用 Two_Pi,那么编译器会提供所需的精度位数吗?由于 Pi 值 3.1415926536 不是 Long_Float 类型(因为它的精度位数较少),我猜最后一个声明即

如果我在 Long_Float 计算中需要 Two_Pi,这就是我所需要的。我理解对了吗?有了类似的理解,那么

在浮点类型计算中也将相关,编译器将仅提供所需的精度位数。

非常感谢...

0 投票
3 回答
2232 浏览

matrix - Ada矩阵包

我正在寻找一个可以进行大多数矩阵/向量运算的免费包。我可以自己编写一些基本函数,但对于计算特征值和特征向量等高级函数,我更喜欢健壮的代码,我想知道这些包是否可以免费获得。如果我理解正确的话,Ada 2005 有更多的矩阵运算工具,但它具有计算对称矩阵和厄米特矩阵的特征值的功能。我需要一个更通用的包来处理任何类型的矩阵。

来自 Drexel Fusion Laboratory 的 Ada95 矩阵包(54KB tar.gz 文件)有链接:http ://dflwww.ece.drexel.edu/research/ada/ ,但这种墨水的页面今天不存在。

非常感谢...

0 投票
2 回答
182 浏览

ada - Ada 手册:注释和合并之间的区别

Springer 的 Consolidated Ada Reference Manual 2005 Edition (ISO/IEC 8652:2007(E), Ed. 3) 和 Annotated Ada Reference Manual (ISO/IEC 8652:1995(E)) 2005 Edition 有什么区别?Annotated Ada Reference Manual 标记为 Draft 16。如果我理解正确,合并版是注释版的最终版本。我对吗?

非常感谢...

0 投票
4 回答
1833 浏览

graph - Ada:绘制二维图

能够在 Ada 代码中绘制 2D 图形而不是必须将值保存到文件并在之后使用外部绘图软件会很有趣。在网上搜索后,我找到了两个包:Win_IO 和 JEWL。虽然我已经能够使用 WIN_IO 但是文档很差并且刚刚开始使用它,似乎无法调整画布的大小。我使用 GPS 编辑器,但在运行 Win_IO 时我收到抱怨,有些字体在我的系统上不可用并且输出会很难看。最后,情节本身并没有在屏幕上弹出;必须单击正在编译和链接的文件的 exe 文件才能得到图形。

我也看过 JEWL,但它似乎无法绘制图表。

是否有更多的 Ada 软件包可用于绘制 2D 图形。

非常感谢...


我对 GNAVI 的体验:

安装说明位于

http://www.gnavi.org/index.php?Command=Class&ClassID=Start&CID=381

基本上安装包括: 使用:

  1. 将此目录放在您的路径上
  2. cd 到 gnatcom 并运行:make install
  3. cd 到 gwindows 并运行:make UNICODE=1 all
  4. 运行:gnavi_ide 并享受 :-)

但是安装时遇到错误:

C:\gnavi\gnatcom>install 安装 GNATCOM ..... MAKE 版本 5.2 版权所有 (c) 1987, 2000 Borland 错误 makefile 2: 命令语法错误 * 1 错误在 make * 安装完成

C:\gnavi\gwindows>make UNICODE=1 all MAKE Version 5.2 Copyright (c) 1987, 2000 Borland Error makefile 2: 命令语法错误 * 1 make during make *

虽然 C:GNAVI 在我的路径上,但 IDE 仍然抱怨在 C:GNAVI 中找到的 icg.exe 不在路径上。`这是没有完全测试的软件的问题!我很失望人们可以编写不负责任和不完整的安装说明。开发人员是否发现普通用户是否可以安装他们的软件?

我还尝试在https://gna.org/projects/adadesigner上查看 AdaDesigner

在这里,FireFox 抱怨:此连接不受信任

gna.org 使用了无效的安全证书。

该证书不受信任,因为颁发者证书未知。

我决定不访问这样的网站。

0 投票
1 回答
2170 浏览

graph - Ada:在 Windows 上安装 cmake 和 PLplot

这是 Ada 的帖子的后续内容:绘制 2d 图表。我决定创建一个新帖子,因为这是一个单独的问题。PLplot for Windows 的安装位于:http ://www.miscdebris.net/plplot_wiki/index.php?title=Specifics_for_various_platforms#Windows 。安装如下:

我决定通过从http://sourceforge.net/projects/mingw/files/下载 exe 文件来进行 MinGW 灌输。我还在这里获得了适用于 Windows 的 cmake:http ://www.cmake.org/cmake/resources/software.html 。

现在,在运行安装 PLplot 的第四条指令(见上文)时,我得到:

我在安装选项中选择让 cmake 创建必要的系统路径。我想知道为什么在安装过程中没有创建环境变量 CMAKE_C_COMPILER_ENV_VAR 和 CMAKE_C_COMPILER。有什么建议吗?

非常感谢..

0 投票
3 回答
3065 浏览

compilation - 使用 Ada 进行软件工程:存根;独立和编译单元

我具有机械工程背景,但我有兴趣与 Ada 一起学习良好的软件工程实践。我有几个疑问。

Q1。如果我理解正确,那么有人可以编写一个包规范(广告)文件,编译它,然后编译使用该包的主程序。稍后,当一个人知道要在包体中包含什么时,就可以编写和编译后者。之后,现在可以运行主程序。我已经尝试过了,我想确认这是一个很好的做法。

Q2。我的第二个问题是关于存根(子单元)和 SEPARATE 的使用。假设我有一个主程序如下:

然后我将过程 INPUT 放在一个单独的文件中:

我的问题:

a) AdaGIDE 建议我将 INPUT 过程文件保存为 input.adb。但是在编译主程序 test2 时,我收到警告:

对于 AdaGIDE 来说,这更像是一个错误,因为上述警告出现在消息之前:

所以我将 input.adb 文件重命名为 test2-input.adb,正如 AdaGIDE 在编译时向我建议的那样。现在在编译主文件时,我没有任何警告。我现在的问题是可以写吗

就像我在子单元文件 test2-input.adb 中所做的那样,还是写一个更具描述性的术语更好

强调程序输入有一个父程序 test2 ?这个想法来自 AdaGIDE 提示我关于 test2-input.adb ,正如我上面提到的。

b)我的下一个问题:

如果我理解编译顺序,那么我应该先编译主文件 test2.adb ,然后编译存根 test2-input.adb 。在编译存根时,我收到错误消息:

但是,我现在可以为 test2.adb 进行绑定和链接并运行程序。

我想知道我尝试编译存根 test2-input.adb 是否做错了,还是不应该编译?

Q3。有子单位有什么用?只是将一个大程序分解成更小的部分吗?我知道如果没有在子单元中的 BEGIN 和 END 之间放置任何语句,则会出现错误。所以这意味着人们总是必须在那里发表声明。如果以后想写语句,总是可以在子单元中的 BEGIN 和 END 之间放置一个 NULL 语句,稍后再回到后者。这就是软件工程在实践中的完成方式吗?

非常感谢...

0 投票
1 回答
4979 浏览

variables - Ada:如何访问这个变量?

我有一个修改过的教科书示例如下(这本书是Understanding Ada——Bray和Pokrass的软件工程方法):

现在要访问一些变量及其内容,

我可以毫无问题地访问 NUMBER_OF_MOONS(土星),但我很难访问 DISTANCE_TO_SUN(土星)。如何访问它?

多谢...

这就是我在编译时得到的声明

列表文件:

问题是 DISTANCE_TO_SUN(Saturn) 是 MILES 类型,它是浮点类型之一。所以仅仅使用 Ada.Float_Text_IO.Put 是行不通的。

0 投票
1 回答
747 浏览

floating-point - Ada:来自另一个包的浮动实例化

我正在尝试创建一个具有 6 位精度的新浮点类型。但似乎我无法使用它。这是 MyFloat_IO.ads 包中的代码

和主要代码:

在编译时,我收到错误消息:

我究竟做错了什么?

非常感谢...


更新:根据 TED 的建议的新代码:

  1. 包 MyFloat_I0.ads :

    /li>
  2. 和主要代码:

    /li>

在编译时我得到: