Rutas
/
Delphi Pascal
Delphi Pascal
/
Ejercicios
/
Números racionales
Números racionales

Números racionales

Media

Instrucciones

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 potenciación de un número racional r = a/b a una potencia entera no negativa n es r^n = (a^n)/(b^n).

La potenciació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 potenciación de un número racional r = a/b a un número real (de coma flotante) x es el cociente (a^x)/(b^x), que es un número real.

La potenciació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:

  • suma, resta, multiplicación y división de dos números racionales,
  • valor absoluto, potenciación de un número racional dado a una potencia entera, potenciación de un número racional dado a una potencia real (de coma flotante), potenciación de un número real a un número racional.

Tu implementación de los números racionales debe estar siempre reducida a su mínima expresión. Por ejemplo, 4/4 debe reducirse a 1/1, 30/60 debe reducirse a 1/2, 12/8 debe reducirse a 3/2, etc. Para reducir un número racional r = a/b, divide a y b por el máximo común divisor (MCD) de a y b. Así, por ejemplo, gcd(12, 8) = 4, por lo que r = 12/8 puede reducirse a (12/4)/(8/4) = 3/2.

Supón que el lenguaje de programación que utilizas no tiene una implementación de números racionales.

Instrucciones específicas del track

  • En este ejercicio se introduce la sobrecarga de operadores. El docwiki de Embarcadero sobre este tema te resultará muy útil para entender cómo es posible sobrescribir los operadores de una clase, así como la conversión implícita y explícita.

Fuente

WikipediaEl enlace se abre en una nueva ventana o pestaña
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Delphi Pascal Exercism

¿Listo para empezar Números racionales?

Regístrate en Exercism para aprender y dominar Delphi Pascal con 76 ejercicios y mentoría humana real, todo gratis.