Διαδρομές
/
Standard ML
Standard ML
/
Ασκήσεις
/
Χρονόμετρο ακριβείας
Χρονόμετρο ακριβείας

Χρονόμετρο ακριβείας

Μέτριο

Εισαγωγή

Έτρεχες πάντα για την αδρεναλίνη: χωρίς προγράμματα, χωρίς χρονόμετρα, με μόνη συντροφιά τον ήχο των βημάτων σου στο πεζοδρόμιο. Μα τώρα που μπήκες σε μια ομάδα αγωνιστικού τρεξίματος, τα πράγματα σοβαρεύουν. Οι προπονήσεις χρονομετρούνται με ακρίβεια δευτερολέπτου και κάθε κλάσμα του δευτερολέπτου μετράει. Για να κρατήσεις τον ρυθμό, πήρες το Χρονόμετρο του Κλάσματος του Δευτερολέπτου, ένα κομψό γκάτζετ υψηλής τεχνολογίας που ετοιμάζεται να γίνει ο νέος σου καλύτερος φίλος.

Οδηγίες

Ο στόχος σου είναι να φτιάξεις ένα χρονόμετρο που να παρακολουθεί με ακρίβεια τους χρόνους των γύρων.

Το χρονόμετρο χρησιμοποιεί τέσσερις εντολές (start, stop, lap και reset) για να παρακολουθεί:

  1. Τον μετρούμενο χρόνο του τρέχοντος γύρου
  2. Τους χρόνους των γύρων που έχουν καταγραφεί προηγουμένως

Ποιες εντολές μπορείς να χρησιμοποιήσεις εξαρτάται από την κατάσταση στην οποία βρίσκεται το χρονόμετρο:

  1. Ready: αρχική κατάσταση
  2. Running: μετράει τον χρόνο
  3. Stopped: δεν μετράει τον χρόνο
Εντολή Αρχική κατάσταση Τελική κατάσταση Αποτέλεσμα
Start Ready Running Ξεκινάει τη μέτρηση του χρόνου
Start Stopped Running Συνεχίζει τη μέτρηση του χρόνου
Stop Running Stopped Σταματάει τη μέτρηση του χρόνου
Lap Running Running Προσθέτει τον τρέχοντα γύρο στους προηγούμενους γύρους και μετά μηδενίζει τον τρέχοντα γύρο
Reset Stopped Ready Μηδενίζει τον τρέχοντα γύρο και διαγράφει τους προηγούμενους γύρους

Υλοποίηση

Για να ολοκληρώσεις αυτή την άσκηση, πρέπει να ορίσεις τον τύπο δεδομένων stopwatch και να υλοποιήσεις τις συναρτήσεις:

  • newStopwatch
  • start
  • stop
  • lap
  • reset
  • advanceTime
  • getState
  • currentLap
  • total
  • previousLaps

Θα βρεις ήδη έναν εικονικό ορισμό τύπου στη θέση του, αλλά από εσένα εξαρτάται να ορίσεις τις συναρτήσεις και να δημιουργήσεις έναν τύπο δεδομένων με νόημα.


Πηγή

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

Έτοιμος να ξεκινήσεις την άσκηση Χρονόμετρο ακριβείας;

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