首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ada函数"+“*”"-“/”

Ada函数"+“*”"-“/”
EN

Stack Overflow用户
提问于 2014-03-01 23:09:12
回答 1查看 520关注 0票数 2

我和艾达有个关于功能的问题。

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

例如:

代码语言:javascript
复制
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

代码语言:javascript
复制
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 "-";

这种认识对我来说不是个问题。我不明白下面这句话

代码语言:javascript
复制
R1,R2,R3 : rationnel;
R1 := R2 + R3;

如何使用函数"+",使用这种顺序的参数?

A+B : Argument1 = A,Argument2 =B

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

我希望我讲得够清楚,我的英语也不太难读;-)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-01 23:31:46

你要处理的是函数表示法和内插法表示法之间的区别。

给予:

代码语言:javascript
复制
Function "+"(Left, Right: Rational) return Rational;

我们知道,上述情况可以这样称呼:

代码语言:javascript
复制
some_value:= "+"( Left => R1, Right => R2 );

这实际上与以下几点相同:

代码语言:javascript
复制
-- In infix-notation R1 is on the Left, and R2 is on the Right.
some_value:= R1 + R2;
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22121635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档