Un número racional se define como el cociente de dos números enteros a y b, llamados numerador y denominador, respectivamente, donde b != 0.
El valor absoluto |r| del número racional r = a/b es igual a |a|/|b|.
La suma de dos números racionales r₁ = a₁/b₁ y r₂ = a₂/b₂ es r₁ + r₂ = a₁/b₁ + a₂/b₂ = (a₁ * b₂ + a₂ * b₁) / (b₁ * b₂).
La diferencia de dos números racionales r₁ = a₁/b₁ y r₂ = a₂/b₂ es r₁ - r₂ = a₁/b₁ - a₂/b₂ = (a₁ * b₂ - a₂ * b₁) / (b₁ * b₂).
El producto (multiplicación) de dos números racionales r₁ = a₁/b₁ y r₂ = a₂/b₂ es r₁ * r₂ = (a₁ * a₂) / (b₁ * b₂).
Dividir un número racional r₁ = a₁/b₁ entre otro r₂ = a₂/b₂ es r₁ / r₂ = (a₁ * b₂) / (a₂ * b₁) si a₂ no es cero.
La exponenciación de un número racional r = a/b a una potencia entera no negativa n es r^n = (a^n)/(b^n).
La exponenciación de un número racional r = a/b a una potencia entera negativa n es r^n = (b^m)/(a^m), donde m = |n|.
La exponenciación de un número racional r = a/b a un número real (de punto flotante) x es el cociente (a^x)/(b^x), que es un número real.
La exponenciación de un número real x a un número racional r = a/b es x^(a/b) = root(x^a, b), donde root(p, q) es la raíz q-ésima de p.
Implementa las siguientes operaciones:
Tu implementación de los números racionales siempre debe estar reducida a su mínima expresión. Por ejemplo, 4/4 se debe reducir a 1/1, 30/60 se debe reducir a 1/2, 12/8 se debe reducir a 3/2, etc. Para reducir un número racional r = a/b, divide a y b entre el máximo común divisor (mcd) de a y b. Así, por ejemplo, gcd(12, 8) = 4, así que r = 12/8 se puede reducir a (12/4)/(8/4) = 3/2.
Asume que el lenguaje de programación que usas no tiene una implementación de números racionales.
Regístrate en Exercism para aprender y dominar Delphi Pascal con 76 ejercicios y mentoría humana real, todo gratis.