Το έτος είναι 2525 και μόλις ξεκίνησες ένα ταξίδι για να επισκεφτείς όλους τους πλανήτες του Ηλιακού Συστήματος (Ερμή, Αφροδίτη, Γη, Άρη, Δία, Κρόνο, Ουρανό και Ποσειδώνα). Η πρώτη στάση είναι ο Ερμής, όπου το τελωνείο απαιτεί να συμπληρώσεις ένα έντυπο (η γραφειοκρατία προφανώς δεν είναι γήινη υπόθεση). Καθώς παραδίδεις το έντυπο στον τελωνειακό υπάλληλο, εκείνος το εξετάζει σχολαστικά και συνοφρυώνεται. "Περιμένεις πραγματικά να πιστέψω ότι είσαι μόλις 50 χρονών; Πρέπει να είσαι κοντά στα 200!"
Διασκεδάζοντας, περιμένεις να αρχίσει να γελάει ο τελωνειακός υπάλληλος, αλλά δείχνει απόλυτα σοβαρός. Συνειδητοποιείς ότι έγραψες την ηλικία σου σε γήινα χρόνια, αλλά ο υπάλληλος την περίμενε σε χρόνια του Ερμή! Καθώς η τροχιακή περίοδος του Ερμή γύρω από τον ήλιο είναι σημαντικά μικρότερη από αυτή της Γης, είσαι στην πραγματικότητα πολύ μεγαλύτερος σε χρόνια του Ερμή. Έπειτα από μερικούς γρήγορους υπολογισμούς, καταφέρνεις να δηλώσεις την ηλικία σου σε χρόνια του Ερμή. Ο τελωνειακός υπάλληλος χαμογελάει ικανοποιημένος και σου κάνει νόημα να περάσεις. Σημειώνεις νοερά να προϋπολογίζεις την ηλικία σου για κάθε πλανήτη πριν από τους μελλοντικούς τελωνειακούς ελέγχους, για να αποφεύγεις τέτοιες παρεξηγήσεις.
Αν αναρωτιέσαι γιατί ο Πλούτωνας έμεινε εκτός, δες αυτό το βίντεο στο YouTube.
Με δεδομένη μια ηλικία σε δευτερόλεπτα, υπολόγισε πόσο χρονών θα ήταν κάποιος σε έναν πλανήτη του Ηλιακού μας Συστήματος.
Ένα έτος της Γης ισούται με 365.25 ημέρες της Γης, ή 31,557,600 δευτερόλεπτα. Αν σου έλεγαν ότι κάποιος είναι 1,000,000,000 δευτερόλεπτα, η ηλικία του θα ήταν 31.69 έτη της Γης.
Για τους άλλους πλανήτες, πρέπει να λάβεις υπόψη την τροχιακή τους περίοδο σε έτη της Γης:
| Πλανήτης | Τροχιακή περίοδος σε έτη της Γης |
|---|---|
| Ερμής | 0.2408467 |
| Αφροδίτη | 0.61519726 |
| Γη | 1.0 |
| Άρης | 1.8808158 |
| Δίας | 11.862615 |
| Κρόνος | 29.447498 |
| Ουρανός | 84.016846 |
| Ποσειδώνας | 164.79132 |
Το πραγματικό μήκος μιας πλήρους περιφοράς της Γης γύρω από τον ήλιο είναι πιο κοντά στις 365.256 ημέρες (1 αστρικό έτος). Το Γρηγοριανό ημερολόγιο έχει, κατά μέσο όρο, 365.2425 ημέρες. Αν και όχι απολύτως ακριβής, το 365.25 είναι η τιμή που χρησιμοποιείται σε αυτή την άσκηση. Δες το Έτος στη Βικιπαίδεια για περισσότερους τρόπους μέτρησης ενός έτους.
Σε αυτή την άσκηση, θα πρέπει να επιστρέψεις τις ηλικίες χρησιμοποιώντας ένα φυσικό μέγεθος με προσαρμοσμένη μονάδα που αντιπροσωπεύει τη διάρκεια ενός έτους σε αυτόν τον πλανήτη. Στην Arturo, ένα μέγεθος αποτελείται από έναν αριθμητικό ποσό και μια σχετιζόμενη μονάδα μέτρησης.
length: 10`m
units length ; `m
scalar length ; 10
10`m * 10`m ; 100 m²
Η ενσωματωμένη μονάδα `yr της Arturo μετατρέπεται σε 31556952 δευτερόλεπτα. Επομένως, θα χρειαστεί να ορίσεις και να χρησιμοποιήσεις τη δική σου μονάδα έτους με βάση τον αριθμό των δευτερολέπτων που αναφέρεται πιο πάνω στις οδηγίες.
Τα μεγέθη μπορούν να μετατραπούν σε μια άλλη συμβατή μονάδα.
convert 1`m `ft ; 1250/381 ft
convert 100`m2 `ft2 ; 156250000/145161 ft²
property `m ; length
property `m2 ; area
convert 1`m `m2 ; conversion error results
Εξαιτίας των περιορισμών ακρίβειας των αριθμών κινητής υποδιαστολής, η Arturo αποθηκεύει μερικές φορές το βαθμωτό μέγεθος ως ρητό αριθμό.
Η συνάρτηση to μπορεί να χρησιμοποιηθεί για να πάρεις το ποσό ως έναν κατά προσέγγιση αριθμό κινητής υποδιαστολής.
length: convert 1`m `ft ; 1250/381 ft
to :floating length ; 3.280839895013123
Η Arturo μάς επιτρέπει επίσης να καθορίσουμε τις δικές μας μονάδες για τα μεγέθη.
specify 'nauMile 1.151`mi
property `nauMile length
specify 'lea 3.00579`nauMile
property `lea ; length
depth: 20000`lea
convert depth `km ; 111355.7993425152 km
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Arturo με 79 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.