Parcours
/
Prolog
Prolog
/
Exercices
/
Nombres OCR
Nombres OCR

Nombres OCR

Moyen

Introduction

Ta meilleure amie Marta vient de décrocher le poste de ses rêves : elle travaille sur les collections d'un musée d'histoire local. Sachant que la programmation t'intéresse, elle se confie à toi au sujet d'un problème rencontré au travail, pour une prochaine exposition sur l'histoire de l'informatique. Le département de mathématiques d'une université locale avait fait don de plusieurs cartons d'impressions historiques, mais vu le mauvais état des documents, il a été décidé de numériser le texte. Cependant, la vieille imprimante de l'université avait quelques bizarreries dans sa façon de représenter le texte, et ton amie aurait bien besoin de ton aide pour réussir à extraire les données.

Instructions

La reconnaissance optique de caractères, ou OCR, est un logiciel qui convertit des images de texte en texte lisible par une machine. Étant donné une grille de caractères représentant des chiffres, convertis la grille en une chaîne de chiffres. Si la grille comporte plusieurs lignes de cellules, les lignes doivent être séparées dans la sortie par ",".

  • La grille est constituée d'une ou plusieurs lignes de cellules.
  • Chaque ligne de la grille est constituée d'une ou plusieurs cellules.
  • Chaque cellule fait trois colonnes de large et quatre lignes de haut (3x4) et représente un chiffre.
  • Les chiffres sont dessinés à l'aide de barres verticales ("|"), de tirets bas ("_") et d'espaces (" ").

Cas limites

  • Si l'entrée n'a pas une taille valide, ton programme doit signaler qu'il y a une erreur.
  • Si l'entrée a la bonne taille, mais qu'une cellule n'est pas reconnaissable, ton programme doit produire un "?" pour ce caractère.

Exemples

L'entrée suivante (sans les commentaires) est convertie en "1234567890".

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

L'entrée suivante est convertie en "123,456,789".

    _  _ 
  | _| _|
  ||_  _|
         
    _  _ 
|_||_ |_ 
  | _||_|
         
 _  _  _ 
  ||_||_|
  ||_| _|
         
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Prolog Exercism

Prêt à commencer Nombres OCR ?

Inscris-toi sur Exercism pour apprendre et maîtriser Prolog avec 109 exercices, et un vrai mentorat humain, le tout gratuitement.