Track
/
Delphi Pascal
Delphi Pascal
/
Esercizi
/
Numeri razionali
Numeri razionali

Numeri razionali

Medio

Istruzioni

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:

  • addizione, sottrazione, moltiplicazione e divisione di due numeri razionali,
  • valore assoluto, elevamento a potenza di un dato numero razionale a una potenza intera, elevamento a potenza di un dato numero razionale a una potenza reale (in virgola mobile), elevamento a potenza di un numero reale a un numero razionale.

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.

Istruzioni specifiche del track

  • In questo esercizio introdurremo l'overloading degli operatori. La docwiki di Embarcadero su questo argomento ti sarà molto utile per capire come sia possibile fare l'override degli operatori di classe, insieme al casting con Implicit ed Explicit.

Fonte

WikipediaIl link si apre in una nuova finestra o scheda
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Delphi Pascal Exercism

Vuoi iniziare Numeri razionali?

Iscriviti a Exercism per imparare e padroneggiare Delphi Pascal con 76 esercizi e il mentoring di persone reali, tutto gratis.