المسارات
/
Haskell
Haskell
/
التمارين
/
أرقام التعرّف الضوئي (OCR)
أرقام التعرّف الضوئي (OCR)

أرقام التعرّف الضوئي (OCR)

متوسط

التعليمات

بالنظر إلى شبكة بحجم 3 × 4 مكوّنة من الخطوط العمودية والشرطات السفلية والمسافات، حدّد الرقم الذي تمثّله، أو ما إذا كانت مشوّهة.

الخطوة الأولى

في البداية، حوّل خطًا ثنائيًا بسيطًا إلى سلسلة نصية تحتوي على 0 أو 1.

يستخدم الخط الثنائي الخطوط العمودية والشرطات السفلية، وهو بارتفاع أربعة صفوف وعرض ثلاثة أعمدة.

     _   #
    | |  # zero.
    |_|  #
         # the fourth row is always blank

يُحوَّل إلى "0"

         #
      |  # one.
      |  #
         # (blank fourth row)

يُحوَّل إلى "1"

إذا كان حجم المدخل صحيحًا لكنه غير قابل للتعرّف عليه، فينبغي أن يُرجع برنامجك '?'

إذا كان حجم المدخل غير صحيح، فينبغي أن يُرجع برنامجك خطأً.

الخطوة الثانية

حدّث برنامجك ليتعرّف على السلاسل النصية الثنائية متعددة المحارف، مع استبدال الأرقام المشوّهة بـ ?

الخطوة الثالثة

حدّث برنامجك ليتعرّف على جميع الأرقام من 0 إلى 9، سواء بشكل منفرد أو كجزء من سلسلة نصية أكبر.

 _
 _|
|_

يُحوَّل إلى "2"

      _  _     _  _  _  _  _  _  #
    | _| _||_||_ |_   ||_||_|| | # decimal numbers.
    ||_  _|  | _||_|  ||_| _||_| #
                                 # fourth line is always blank

يُحوَّل إلى "1234567890"

الخطوة الرابعة

حدّث برنامجك للتعامل مع عدة أرقام، رقم واحد في كل سطر. عند تحويل عدة أسطر، ادمج الأسطر بفواصل.

    _  _
  | _| _|
  ||_  _|

    _  _
|_||_ |_
  | _||_|

 _  _  _
  ||_||_|
  ||_| _|

يُحوَّل إلى "123,456,789".

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Haskell Exercism

مستعد لبدء أرقام التعرّف الضوئي (OCR)؟

سجّل في Exercism لتتعلّم وتتقن Haskell عبر 107 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.