γράψτε ένα πρόγραμμα το οποίο θα κάνει όλες τις αριθμητικές πράξεις με κλάσματα
(πρόσθεση, αφαίρεση, πολλαπλασιασμό, διαίρεση). Το πρόγραμμα αυτό θα πρέπει να:
• Διαβάζει από την πρώτη γραμμή της εισόδου το πλήθος N των πράξεων που πρέπει να γίνουν.
• Διαβάζει από κάθε μία από τις επόμενες Ν γραμμές τα δεδομένα για την εκτέλεση μίας πράξης, δηλαδή:
– το σύμβολο της πράξης (έναν χαρακτήρα από τους +, -, *, /)
– τον αριθμητή και τον παρονομαστή του πρώτου κλάσματος
– τον αριθμητή και τον παρονομαστή του δεύτερου κλάσματος
• Ελέγχει τα δεδομένα που εισάγονται ώστε να εξασφαλίζεται η εγκυρότητά τους, π.χ.
– οι παρονομαστές των κλασμάτων δεν πρέπει να είναι μηδενικοί
– στη διαίρεση, ο αριθμητής του δεύτερου κλάσματος δεν πρέπει να είναι μηδενικός, κ.λπ.
– αν τα δεδομένα δεν είναι έγκυρα, τυπώνει τη λέξη “error” αντί αποτελέσματος της πράξης
• Τυπώνει με τη σειρά το αποτέλεσμα κάθε μίας από τις Ν πράξεις, ένα σε κάθε γραμμή της εξόδου. Το
αποτέλεσμα κάθε πράξης πρέπει να εμφανίζεται σε μορφή μεικτού αριθμού με απλοποιημένο κλάσμα.
Αν το ακέραιο μέρος είναι 0 θα πρέπει να γράφεται. Οι τρεις αριθμοί (το ακέραιο μέρος, ο αριθμητής
και ο παρονομαστής) πρέπει να χωρίζονται μεταξύ τους με ένα κενό διάστημα. Δείτε προσεκτικά όλα
τα παραδείγματα που ακολουθούν.
Για να κάνετε την απλοποίηση μπορείτε να χρησιμοποιήσετε τον αλγόριθμο του Ευκλείδη για την εύρεση
του μέγιστου κοινού διαιρέτη μεταξύ του αριθμητή και του παρονομαστή του αποτελέσματος. Θα πρέπει
επίσης να βρείτε το ακέραιο μέρος του κλάσματος για να εμφανίσετε το μεικτό αριθμό. Μην εμφανίσετε το
αποτέλεσμα σε δεκαδική μορφή!
Παράδειγμα εισόδου:
5 — θα γίνουν συνολικά 5 πράξεις
+ 1 3 1 4 — πρόσθεσε 1/3 και 1/4
* 2 3 12 7 — πολλαπλασίασε 2/3 επί 12/7
/ 3 8 -2 11 — διαίρεσε 3/8 δια –2/11
- 1 3 4 6 — αφαίρεσε από το 1/3 το 4/6
- 2 3 4 6 — αφαίρεσε από το 2/3 το 4/6
Παράδειγμα εξόδου:
0 7 12 — 1/3 + 1/4 = 7/12
1 1 7 — 2/3 × 12/7 = 8/7 = 1 και 1/7
-2 1 16 — 3/8 ÷ (–2/11) = –33/16 = –2 και 1/16
-0 1 3 — 1/3 – 4/6 = –1/3 — προσέξτε το πρόσημο στο 0!
0 0 1 — 2/3 – 4/6 = 0 — προσέξτε το συμβολισμό του 0!
ΠΑΡΑΚΑΛΩ ΝΑ ΜΗΝ ΑΠΑΝΤΗΘΟΥΝ ΑΠΟ ΦΟΙΤΗΤΗ ΚΑΙ ΧΩΡΙΣ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΣΕΙ C ΩΣ ΓΛΩΣΣΑ
Σημείωση: Το μήνυμα αυτό γράφτηκε 13 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.