اعداد OCR

اعداد OCR

متوسط

مقدمه

بهترین دوستتان Marta به‌تازگی شغل رؤیایی‌اش را به دست آورده است: کار با مجموعه‌های یک موزه‌ی تاریخ محلی. او از علاقه‌ی شما به برنامه‌نویسی باخبر است و درباره‌ی مشکلی در محل کارش برای نمایشگاهی پیش‌رو در موضوع تاریخ رایانه با شما درد دل می‌کند. دانشکده‌ی ریاضی یکی از دانشگاه‌های محلی چند جعبه خروجی چاپی تاریخی اهدا کرده بود، اما با توجه به وضعیت نامناسب این اسناد، تصمیم گرفته شده است که متن آن‌ها دیجیتالی شود. با این حال، چاپگر قدیمی دانشگاه در نحوه‌ی نمایش متن رفتارهای عجیبی داشت و دوستتان می‌تواند از کمک شما برای استخراج موفقیت‌آمیز داده‌ها بهره ببرد.

دستورالعمل‌ها

تشخیص نویسه نوری یا OCR نرم‌افزاری است که تصاویر متن را به متنی قابل خواندن برای ماشین تبدیل می‌کند. با توجه به شبکه‌ای از نویسه‌ها که چند رقم را نمایش می‌دهد، آن شبکه را به رشته‌ای از ارقام تبدیل کنید. اگر شبکه چند سطر سلول داشته باشد، سطرها باید در خروجی با "," از هم جدا شوند.

  • شبکه از یک یا چند خط سلول تشکیل شده است.
  • هر خط از شبکه از یک یا چند سلول تشکیل شده است.
  • هر سلول سه ستون عرض و چهار سطر ارتفاع دارد (۳×۴) و یک رقم را نمایش می‌دهد.
  • ارقام با خط عمودی ("|")، زیرخط ("_") و فاصله (" ") رسم می‌شوند.

حالت‌های خاص

  • اگر اندازه‌ی ورودی معتبر نباشد، برنامه‌تان باید نشان دهد که خطایی رخ داده است.
  • اگر اندازه‌ی ورودی درست باشد اما سلولی قابل تشخیص نباشد، برنامه‌تان باید برای آن نویسه "?" را خروجی بدهد.

مثال‌ها

ورودی زیر (بدون توضیحات) به "1234567890" تبدیل می‌شود.

      _  _     _  _  _  _  _  _  #
    | _| _||_||_ |_   ||_||_|| | # Decimal numbers.
    ||_  _|  | _||_|  ||_| _||_| #
                                 # The fourth line is always blank,

ورودی زیر به "123,456,789" تبدیل می‌شود.

    _  _ 
  | _| _|
  ||_  _|
         
    _  _ 
|_||_ |_ 
  | _||_|
         
 _  _  _ 
  ||_||_|
  ||_| _|
         
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Uiua Exercism

آماده‌اید اعداد OCR را شروع کنید؟

در Exercism ثبت‌نام کنید تا Uiua را همراه با 100 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.