如何在ada中表示复数?

如何在ada中表示复数?,ada,complex-numbers,Ada,Complex Numbers,我想弄清楚如何用ada编程语言来表示复数。通过研究,我找到了关于Ada.Numerics.Complex_类型的软件包,而看着这个软件包,我看不出虚数“I”是如何表示的。有人能解释一下吗?Ada参考手册的附录G.1.1解释了Ada复合类型。Ada参考手册的附录G.1.1解释了Ada复合类型。你可以将2+6i表示为(2.0,6.0) 您可以将2+6i表示为(2.0,6.0) 是的,我已经阅读了附录,但是我需要澄清其中的一些事情,如果你同意的话,我看到有一个数据类型是虚构的。包定义包括以下内容:私有

我想弄清楚如何用ada编程语言来表示复数。通过研究,我找到了关于Ada.Numerics.Complex_类型的软件包,而看着这个软件包,我看不出虚数“I”是如何表示的。有人能解释一下吗?

Ada参考手册的附录G.1.1解释了Ada复合类型。

Ada参考手册的附录G.1.1解释了Ada复合类型。

你可以将2+6i表示为(2.0,6.0)

您可以将2+6i表示为(2.0,6.0)


是的,我已经阅读了附录,但是我需要澄清其中的一些事情,如果你同意的话,我看到有一个数据类型是虚构的。包定义包括以下内容:私有类型虚的是新的实的“基”;i:常数虚值:=1.0;j:常数虚值:=1.0;end Ada.Numerics.Generic_Complex_类型;虚数表示为实数类型。如果我想表示(2+6i)。我会做什么:A:复杂;a、 re:=2;a、 im:=6;我建议您使用函数“function Compose_From_Cartesian(Re,Im:Real'Base)return Complex”;此函数将按照您的建议创建一个复数。是的,我已经阅读了附录,但我需要对其中的一些内容进行澄清,如果您不介意的话,我看到有一个数据类型。包定义包括以下内容:私有类型虚的是新的实的“基”;i:常数虚值:=1.0;j:常数虚值:=1.0;end Ada.Numerics.Generic_Complex_类型;虚数表示为实数类型。如果我想表示(2+6i)。我会做什么:A:复杂;a、 re:=2;a、 im:=6;我建议您使用函数“function Compose_From_Cartesian(Re,Im:Real'Base)return Complex;”该函数将按照您的建议创建一个复数。什么是:Ada.Numerics.Generic_Complex_Types(My_Real)?Ada.Numerics.Generic_Complex__Types是一个通用单位,在这里用My_Real类型实例化,以15位数字作为相对精度的实型。什么是:Ada.Numerics.Generic_Complex_Types(My_real)?Ada.Numerics.Generic_Complex_Types是一个通用单位,在这里用My_real类型实例化,My_real是一个以15位数字作为相对精度的实型。
with Ada.Numerics.Generic_Complex_Types;

procedure Cplx is

  type My_Real is digits 15;  --  Double precision

  package RC is new Ada.Numerics.Generic_Complex_Types (My_Real);
  use RC;

  c: Complex;

begin
  c.Re := 2.0;
  c.Im := 6.0;
  --  More compact:
  c := (Re => 2.0, Im => 6.0);
  --  Even more compact:
  c := (2.0, 6.0);
end;