A racionális szám két egész szám, a és b hányadosaként definiálható; a a számláló, b pedig a nevező, és b != 0.
Vedd figyelembe, hogy matematikailag a nevező nem lehet nulla. A racionális számok számos implementációjában azonban azt tapasztalhatod, hogy a nevező lehet nulla, viselkedése pedig hasonló a lebegőpontos számok pozitív vagy negatív végtelenéhez. Ezekben az esetekben a nevező és a számláló általában továbbra sem lehet egyszerre nulla.
Az r = a/b racionális szám abszolútértéke, |r|, egyenlő |a|/|b|-vel.
Két racionális szám, r₁ = a₁/b₁ és r₂ = a₂/b₂ összege r₁ + r₂ = a₁/b₁ + a₂/b₂ = (a₁ * b₂ + a₂ * b₁) / (b₁ * b₂).
Két racionális szám, r₁ = a₁/b₁ és r₂ = a₂/b₂ különbsége r₁ - r₂ = a₁/b₁ - a₂/b₂ = (a₁ * b₂ - a₂ * b₁) / (b₁ * b₂).
Két racionális szám, r₁ = a₁/b₁ és r₂ = a₂/b₂ szorzata r₁ * r₂ = (a₁ * a₂) / (b₁ * b₂).
Az r₁ = a₁/b₁ racionális számot egy másik r₂ = a₂/b₂ racionális számmal elosztva r₁ / r₂ = (a₁ * b₂) / (a₂ * b₁) adódik, ha a₂ nem nulla.
Egy r = a/b racionális számot nemnegatív egész n kitevőre hatványozva r^n = (a^n)/(b^n) adódik.
Egy r = a/b racionális számot negatív egész n kitevőre hatványozva r^n = (b^m)/(a^m) adódik, ahol m = |n|.
Egy r = a/b racionális számot egy valós (lebegőpontos) x számra hatványozva a (a^x)/(b^x) hányadost kapjuk, ami valós szám.
Egy valós x számot egy r = a/b racionális számra hatványozva x^(a/b) = root(x^a, b) adódik, ahol root(p, q) a p q-adik gyöke.
Valósítsd meg a következő műveleteket:
A racionális számok implementációjában a számokat mindig a lehető legegyszerűbb alakra kell egyszerűsíteni.
Például a 4/4 1/1-re, a 30/60 1/2-re, a 12/8 3/2-re egyszerűsödik, stb.
Egy r = a/b racionális szám egyszerűsítéséhez oszd el a-t és b-t a és b legnagyobb közös osztójával (gcd).
Tehát például gcd(12, 8) = 4, így az r = 12/8 egyszerűsíthető (12/4)/(8/4) = 3/2-re.
A racionális szám egyszerűsített alakjának „standard alakban” kell lennie (a nevezőnek mindig pozitív egész számnak kell lennie).
Ha a nevező negatív egész számot tartalmaz, szorozd meg a számlálót és a nevezőt is -1-gyel, hogy elérd a standard alakot.
Például a 3/-4 -3/4-re egyszerűsödik.
Feltételezzük, hogy a programozási nyelv, amit használsz, nem tartalmaz racionális számokra vonatkozó implementációt.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Free Pascal nyelvet 100 feladat segítségével, valódi emberi mentorálással, mindez ingyen.