Percursos
/
Delphi Pascal
Delphi Pascal
/
Exercícios
/
Números racionais
Números racionais

Números racionais

Médio

Instruções

Um número racional é definido como o quociente de dois números inteiros a e b, chamados numerador e denominador, respetivamente, em que b != 0.

O valor absoluto |r| do número racional r = a/b é igual a |a|/|b|.

A soma de dois números racionais r₁ = a₁/b₁ e r₂ = a₂/b₂ é r₁ + r₂ = a₁/b₁ + a₂/b₂ = (a₁ * b₂ + a₂ * b₁) / (b₁ * b₂).

A diferença de dois números racionais r₁ = a₁/b₁ e r₂ = a₂/b₂ é r₁ - r₂ = a₁/b₁ - a₂/b₂ = (a₁ * b₂ - a₂ * b₁) / (b₁ * b₂).

O produto (multiplicação) de dois números racionais r₁ = a₁/b₁ e r₂ = a₂/b₂ é r₁ * r₂ = (a₁ * a₂) / (b₁ * b₂).

Dividir um número racional r₁ = a₁/b₁ por outro r₂ = a₂/b₂ é r₁ / r₂ = (a₁ * b₂) / (a₂ * b₁) se a₂ não for zero.

A potenciação de um número racional r = a/b a um expoente inteiro não negativo n é r^n = (a^n)/(b^n).

A potenciação de um número racional r = a/b a um expoente inteiro negativo n é r^n = (b^m)/(a^m), em que m = |n|.

A potenciação de um número racional r = a/b a um número real (de vírgula flutuante) x é o quociente (a^x)/(b^x), que é um número real.

A potenciação de um número real x a um número racional r = a/b é x^(a/b) = root(x^a, b), em que root(p, q) é a raiz de ordem q de p.

Implementa as seguintes operações:

  • adição, subtração, multiplicação e divisão de dois números racionais,
  • valor absoluto, potenciação de um determinado número racional a uma potência inteira, potenciação de um determinado número racional a uma potência real (de vírgula flutuante), potenciação de um número real a um número racional.

A tua implementação de números racionais deve estar sempre reduzida à forma irredutível. Por exemplo, 4/4 deve ser reduzido a 1/1, 30/60 deve ser reduzido a 1/2, 12/8 deve ser reduzido a 3/2, etc. Para reduzir um número racional r = a/b, divide a e b pelo máximo divisor comum (mdc) de a e b. Assim, por exemplo, gcd(12, 8) = 4, pelo que r = 12/8 pode ser reduzido a (12/4)/(8/4) = 3/2.

Assume que a linguagem de programação que estás a usar não tem uma implementação de números racionais.

Instruções específicas da track

  • Neste exercício é introduzida a sobrecarga de operadores. A Embarcadero docwiki sobre o tema vai ser muito útil para perceberes como é possível redefinir os operadores de uma classe, bem como recorrer às conversões Implicit e Explicit.

Fonte

WikipediaO link abre numa nova janela ou separador
Editar via GitHub A ligação abre numa nova janela ou separador
Delphi Pascal Exercism

Estás pronto para começar Números racionais?

Inscreve-te no Exercism para aprenderes e dominares Delphi Pascal com 76 exercícios, e mentoria humana real, tudo grátis.