Ρητοί αριθμοί

Ρητοί αριθμοί

Μέτριο

Οδηγίες

Ένας ρητός αριθμός ορίζεται ως το πηλίκο δύο ακεραίων a και b, που ονομάζονται αριθμητής και παρονομαστής αντίστοιχα, όπου b != 0.

Η απόλυτη τιμή |r| του ρητού αριθμού r = a/b είναι ίση με |a|/|b|.

Το άθροισμα δύο ρητών αριθμών r₁ = a₁/b₁ και r₂ = a₂/b₂ είναι r₁ + r₂ = a₁/b₁ + a₂/b₂ = (a₁ * b₂ + a₂ * b₁) / (b₁ * b₂).

Η διαφορά δύο ρητών αριθμών r₁ = a₁/b₁ και r₂ = a₂/b₂ είναι r₁ - r₂ = a₁/b₁ - a₂/b₂ = (a₁ * b₂ - a₂ * b₁) / (b₁ * b₂).

Το γινόμενο (πολλαπλασιασμός) δύο ρητών αριθμών r₁ = a₁/b₁ και r₂ = a₂/b₂ είναι r₁ * r₂ = (a₁ * a₂) / (b₁ * b₂).

Η διαίρεση ενός ρητού αριθμού r₁ = a₁/b₁ με έναν άλλον r₂ = a₂/b₂ είναι r₁ / r₂ = (a₁ * b₂) / (a₂ * b₁) αν το a₂ δεν είναι μηδέν.

Η ύψωση ενός ρητού αριθμού r = a/b σε μη αρνητική ακέραια δύναμη n είναι r^n = (a^n)/(b^n).

Η ύψωση ενός ρητού αριθμού r = a/b σε αρνητική ακέραια δύναμη n είναι r^n = (b^m)/(a^m), όπου m = |n|.

Η ύψωση ενός ρητού αριθμού r = a/b σε πραγματικό αριθμό (κινητής υποδιαστολής) x είναι το πηλίκο (a^x)/(b^x), που είναι πραγματικός αριθμός.

Η ύψωση ενός πραγματικού αριθμού x σε ρητό αριθμό r = a/b είναι x^(a/b) = root(x^a, b), όπου root(p, q) είναι η q-οστή ρίζα του p.

Υλοποίησε τις παρακάτω πράξεις:

  • πρόσθεση, αφαίρεση, πολλαπλασιασμό και διαίρεση δύο ρητών αριθμών,
  • απόλυτη τιμή, ύψωση ενός δεδομένου ρητού αριθμού σε ακέραια δύναμη, ύψωση ενός δεδομένου ρητού αριθμού σε πραγματική δύναμη (κινητής υποδιαστολής), ύψωση ενός πραγματικού αριθμού σε ρητό αριθμό.

Οι ρητοί αριθμοί στην υλοποίησή σου θα πρέπει πάντα να ανάγονται σε ελάχιστους όρους. Για παράδειγμα, το 4/4 θα πρέπει να ανάγεται σε 1/1, το 30/60 θα πρέπει να ανάγεται σε 1/2, το 12/8 θα πρέπει να ανάγεται σε 3/2, κ.λπ. Για να ανάγεις έναν ρητό αριθμό r = a/b, διαίρεσε το a και το b με τον μέγιστο κοινό διαιρέτη (ΜΚΔ) των a και b. Έτσι, για παράδειγμα, gcd(12, 8) = 4, άρα το r = 12/8 μπορεί να αναχθεί σε (12/4)/(8/4) = 3/2.

Υπόθεσε ότι η γλώσσα προγραμματισμού που χρησιμοποιείς δεν έχει υλοποίηση ρητών αριθμών.

Ειδικές οδηγίες για τη διαδρομή

  • Σε αυτή την άσκηση εισάγεται η υπερφόρτωση τελεστών. Το Embarcadero docwiki για το θέμα θα σου είναι πολύ χρήσιμο για να καταλάβεις πώς είναι δυνατή η υπερκάλυψη τελεστών κλάσης, μαζί με τις μετατροπές τύπου Implicit και Explicit.

Πηγή

WikipediaΟ σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Delphi Pascal Exercism

Έτοιμος να ξεκινήσεις την άσκηση Ρητοί αριθμοί;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Delphi Pascal με 76 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.