المسارات
/
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 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.