Parcours
/
Delphi Pascal
Delphi Pascal
/
Exercices
/
Nombres rationnels
Nombres rationnels

Nombres rationnels

Moyen

Instructions

Un nombre rationnel est défini comme le quotient de deux entiers a et b, appelés respectivement numérateur et dénominateur, où b != 0.

La valeur absolue |r| du nombre rationnel r = a/b est égale à |a|/|b|.

La somme de deux nombres rationnels r₁ = a₁/b₁ et r₂ = a₂/b₂ est r₁ + r₂ = a₁/b₁ + a₂/b₂ = (a₁ * b₂ + a₂ * b₁) / (b₁ * b₂).

La différence de deux nombres rationnels r₁ = a₁/b₁ et r₂ = a₂/b₂ est r₁ - r₂ = a₁/b₁ - a₂/b₂ = (a₁ * b₂ - a₂ * b₁) / (b₁ * b₂).

Le produit (la multiplication) de deux nombres rationnels r₁ = a₁/b₁ et r₂ = a₂/b₂ est r₁ * r₂ = (a₁ * a₂) / (b₁ * b₂).

Diviser un nombre rationnel r₁ = a₁/b₁ par un autre r₂ = a₂/b₂ donne r₁ / r₂ = (a₁ * b₂) / (a₂ * b₁) si a₂ n'est pas nul.

L'élévation d'un nombre rationnel r = a/b à une puissance entière non négative n donne r^n = (a^n)/(b^n).

L'élévation d'un nombre rationnel r = a/b à une puissance entière négative n donne r^n = (b^m)/(a^m), où m = |n|.

L'élévation d'un nombre rationnel r = a/b à un nombre réel (à virgule flottante) x est le quotient (a^x)/(b^x), qui est un nombre réel.

L'élévation d'un nombre réel x à une puissance rationnelle r = a/b donne x^(a/b) = root(x^a, b), où root(p, q) est la racine q-ième de p.

Implémente les opérations suivantes :

  • l'addition, la soustraction, la multiplication et la division de deux nombres rationnels,
  • la valeur absolue, l'élévation d'un nombre rationnel donné à une puissance entière, l'élévation d'un nombre rationnel donné à une puissance réelle (à virgule flottante), l'élévation d'un nombre réel à une puissance rationnelle.

Ton implémentation des nombres rationnels doit toujours être réduite sous forme irréductible. Par exemple, 4/4 doit se réduire à 1/1, 30/60 doit se réduire à 1/2, 12/8 doit se réduire à 3/2, etc. Pour réduire un nombre rationnel r = a/b, divise a et b par le plus grand commun diviseur (PGCD) de a et b. Ainsi, par exemple, gcd(12, 8) = 4, donc r = 12/8 peut être réduit à (12/4)/(8/4) = 3/2.

Suppose que le langage de programmation que tu utilises n'a pas d'implémentation de nombres rationnels.

Instructions spécifiques au parcours

  • La surcharge d'opérateurs est introduite dans cet exercice. Le docwiki Embarcadero sur le sujet t'aidera beaucoup à comprendre comment il est possible de redéfinir les opérateurs d'une classe, ainsi que le transtypage Implicit et Explicit.

Source

WikipediaLe lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Delphi Pascal Exercism

Prêt à commencer Nombres rationnels ?

Inscris-toi sur Exercism pour apprendre et maîtriser Delphi Pascal avec 76 exercices, et un vrai mentorat humain, le tout gratuitement.