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.
D'un point de vue mathématique, le dénominateur ne peut pas être nul. Cependant, dans de nombreuses implémentations des nombres rationnels, on constate que le dénominateur peut être nul, avec un comportement semblable à celui de l'infini positif ou négatif des nombres à virgule flottante. Dans ces cas, le dénominateur et le numérateur ne peuvent généralement toujours pas être nuls en même temps.
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 donne le quotient (a^x)/(b^x), qui est un nombre réel.
L'élévation d'un nombre réel x à un nombre rationnel 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 :
Ton implémentation des nombres rationnels doit toujours être réduite sous forme irréductible.
Par exemple, 4/4 doit se simplifier en 1/1, 30/60 doit se simplifier en 1/2, 12/8 doit se simplifier en 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 en (12/4)/(8/4) = 3/2.
La forme réduite d'un nombre rationnel doit être sous « forme standard » (le dénominateur doit toujours être un entier positif).
Si le dénominateur est un entier négatif, multiplie le numérateur et le dénominateur par -1 pour obtenir la forme standard.
Par exemple, 3/-4 doit être réduit en -3/4
Pars du principe que le langage de programmation que tu utilises n'a pas d'implémentation des nombres rationnels.
Inscris-toi sur Exercism pour apprendre et maîtriser Free Pascal avec 100 exercices, et un vrai mentorat humain, le tout gratuitement.