理性数字计算器

时间:2009-03-18 10:40:07

标签: calculator rational-numbers

我想制作一个有理数的计算器,但我不知道如何忽略一些字符。例如,如果程序必须计算表达式“2/9 + 9/3”并且答案应该是未简化的形式,那么在接受输入时如何忽略上述表达式中的“/”?

1 个答案:

答案 0 :(得分:4)

我认为您需要定义一个了解有理数的语法/解析器。对于您的示例输入,您最终会得到一个包含以下内容的解析树:

   add(rational(2, 9)
       rational(9, 3))

然后你编写的代码知道在使用有理数计算时使用的各种技巧,以便实现add操作的代码可以检查其输入参数的greatest common divisor ,并将数字转换为可添加的。

在这种情况下,它可能会将参数重写为rational(2, 9)rational(27, 9),然后进行添加,最后得到rational(29, 9)

你可以有一个单独的功能来简化,可以简化为3+rational(2, 9)