gpt4 book ai didi

function - 艾达函数 "+" "*" "-" "/"

转载 作者:行者123 更新时间:2023-12-02 09:11:51 25 4
gpt4 key购买 nike

我对 Ada 有一个关于功能的问题。

我看了一段有理数的代码,我不明白程序是如何运行的。

例如:

This is rational.ads

function "+"(R1,R2: Rationnel) return Rationnel;
function "-"(R1,R2: Rationnel) return Rationnel;
function "-"(R : in Rationnel) return Rationnel;
function "*"(R1,R2: Rationnel) return Rationnel;
function "/"(R1,R2: Rationnel) return Rationnel;

这是rational.adb

function "+" (R1,R2: Rationnel) return Rationnel is
N,D : Integer;
begin
N:= R1.num *R2.den + R2.num*R1.den;
D:= R1.den*R2.Den;
return Simplification ((N,D));
end "+";

function "-" (R1,R2: Rationnel) return Rationnel is
N : Integer;
D : Positive;
begin
N:= R1.num *R2.den - R2.num*R1.den;
D:= R1.den*R2.Den;
return Simplification ((N,D));
end "-";

实现对我来说不是问题。我不明白下面这行

R1,R2,R3 : rationnel;
R1 := R2 + R3;

如何使用具有这种参数顺序的函数“+”?

[A+B:参数 1 = A,参数 2 = B]

而不是例如:R1 := +(R2,R3),就像我们通常对函数所做的那样。

我希望我说得足够清楚,而且我的英语也不是太难读;-)

最佳答案

您正在处理的是函数表示法和中缀表示法之间的区别。
鉴于:

Function "+"(Left, Right: Rational) return Rational;

我们知道上面可以这样调用:

some_value:= "+"( Left => R1, Right => R2 );

这实际上与:

-- In infix-notation R1 is on the Left, and R2 is on the Right.
some_value:= R1 + R2;

关于function - 艾达函数 "+" "*" "-" "/",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22121635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com