4º Coding DoJo do PoliGNU

Convidamos você a participar do 4º Coding DoJo do PoliGNU - o penúltimo deste semestre!

Data: 14/06/2012 (quinta-feira)

Horário: das 11h às 13h

Local: C1-05, prédio do Biênio, Poli-USP

O que é um "Dojo"?

Dojo é o local onde se treinam artes marciais japonesas. Mas não é deste dojo que estamos falando aqui. Esta atividade será um Dojo de programação - ou Coding Dojo.

Segundo o http://codingdojo.org/: “Um Coding Dojo é um encontro onde um grupo de programadores se reúne para trabalhar em conjunto em um desafio de programação. Eles estão lá para se divertir, e, através de uma metodologia pragmática, melhorar suas habilidades de programação e de trabalho em grupo.”[1]

Ele é feito baseado em alguns princípios e regras bem simples.

Princípios

  • Você não precisa saber programar para participar;
  • Você só precisa de vontade de aprender (e um pouquinho de calma);

Regras

  • Pair programming: A programação é feita em duplas. Cada dupla tem um piloto e um co-piloto. Ambos pensam juntos, mas só o piloto digita. Cada par tem um tempo fixo no seu turno (definido no começo do dojo, mas são alguns minutos). Quando esse tempo acaba:
        * O piloto volta para a platéia

        * O co-piloto assume o lugar do piloto
        * Um novo co-piloto vem da platéia
  • Todos devem entender: O piloto e o co-piloto devem sempre explicar em voz alta o que estão tentando fazer para solucionar o problema. Qualquer um na platéia pode pedir explicações se não entender algum raciocínio.

Não é preciso trazer computador (mas é preciso se inscrever previamente!).

Neste dojo utilizaremos a linguagem de programação C.

O problema - OCR bancário [2]

Você trabalha para um banco, que recentemente comprou uma máquina muito engenhosa para auxiliar na leitura de cartas e faxes enviados para o escritório-central. Esta máquina escaneia os documentos em papel e produz um arquivo com um grande número de entradas, sendo que cada uma tem este formato:

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

 

Cada entrada possui 4 linhas, e cada linha possui 27 caracteres. As 3 primeiras linhas contém o número da conta, utilizando pipes e underscores, e a quarta linha é vazia. Cada número de conta possui nove dígitos (entre 0 e 9). Cada arquivo pode conter até 500 registros. Sua tarefa é desenvolver um programa que obtenha esse arquivo e devolva a lista de contas.

Tradução livre de http://www.codingdojo.org/cgi-bin/wiki.pl?KataBankOCR

Exemplo:

    Entrada -> Saída

     _  _       _   _  _   _   _
  |  _| _| |_| |_  |_   | |_| |_|
  | |_  _|   |  _| |_|  | |_|  _|  ->  123456789

 

A seguir estão disponíveis os arquivos:

  • dojo_ocr_bancario.pdf que contém o enunciado
  • dojo_ocr_bancario.c que contém o que foi desenvolvido no DoJo, em C
  • ocr_dojo.c que contém uma resolução que nos foi enviada por email por um colaborador.

Caso você tenha alguma sugestão nos envie pelo email contato@polignu.org.

 

Referências

[1] http://pet.inf.ufsc.br/dojo/o-que-eh-dojo/

[2] dojopuzzles.com/problemas/exibe/ocr-bancario

 

Português, Brasil
Atividade: 

Não há comentários.

Comentar