Un numero razionale è definito come il quoziente di due numeri interi a e b, chiamati rispettivamente numeratore e denominatore, dove b != 0.
Il valore assoluto |r| del numero razionale r = a/b è uguale a |a|/|b|.
La somma di due numeri razionali r₁ = a₁/b₁ e r₂ = a₂/b₂ è r₁ + r₂ = a₁/b₁ + a₂/b₂ = (a₁ * b₂ + a₂ * b₁) / (b₁ * b₂).
La differenza di due numeri razionali r₁ = a₁/b₁ e r₂ = a₂/b₂ è r₁ - r₂ = a₁/b₁ - a₂/b₂ = (a₁ * b₂ - a₂ * b₁) / (b₁ * b₂).
Il prodotto (moltiplicazione) di due numeri razionali r₁ = a₁/b₁ e r₂ = a₂/b₂ è r₁ * r₂ = (a₁ * a₂) / (b₁ * b₂).
Dividere un numero razionale r₁ = a₁/b₁ per un altro r₂ = a₂/b₂ è r₁ / r₂ = (a₁ * b₂) / (a₂ * b₁) se a₂ non è zero.
L'elevamento a potenza di un numero razionale r = a/b a una potenza intera non negativa n è r^n = (a^n)/(b^n).
L'elevamento a potenza di un numero razionale r = a/b a una potenza intera negativa n è r^n = (b^m)/(a^m), dove m = |n|.
L'elevamento a potenza di un numero razionale r = a/b a un numero reale (in virgola mobile) x è il quoziente (a^x)/(b^x), che è un numero reale.
L'elevamento a potenza di un numero reale x a un numero razionale r = a/b è x^(a/b) = root(x^a, b), dove root(p, q) è la radice q-esima di p.
Implementa le seguenti operazioni:
L'implementazione dei numeri razionali dovrebbe sempre essere ridotta ai minimi termini. Per esempio, 4/4 dovrebbe ridursi a 1/1, 30/60 dovrebbe ridursi a 1/2, 12/8 dovrebbe ridursi a 3/2, ecc. Per ridurre un numero razionale r = a/b, dividi a e b per il massimo comun divisore (MCD) di a e b. Quindi, per esempio, gcd(12, 8) = 4, quindi r = 12/8 può essere ridotto a (12/4)/(8/4) = 3/2.
Presumi che il linguaggio di programmazione che stai usando non abbia un'implementazione dei numeri razionali.
Iscriviti a Exercism per imparare e padroneggiare Delphi Pascal con 76 esercizi e il mentoring di persone reali, tutto gratis.