Switch branches/tags
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
README.md
__dojo.rb
corredor.rb
lampada.rb
lampadas_no_corredor_spec.rb

README.md

Dojo UENF [3]

Problema: Lâmpadas no corredor

Um homem chamado José é o responsável por ligar e desligar as luzes do corredor em nossa universidade. Cada lâmpadas tem seu próprio interruptor que troca o estado da luz. Se a luz esta apagada, apertando o interruptor ela passa a estar ligada. Apertando novamente ela erá desligar. Inicialmente todas as lâmpadas estão desligadas.

José faz uma coisa peculiar, Se tem n lâmpadas no corredor, ele caminha até o fim do corredor e volta n vezes. Na iésima caminhada, ele aperta apenas os interruptores aos quais sua posição é divisível por i. Ele não aperta nenhum interruptor na volta à sua posição inicial, apenas na ida. A iésima caminhada é definida como ir ao fim do corredor e voltar.

Determine qual é o estado final de cada lâmpada. Está ligada ou desligada?

Entrada

A entrada será um inteiro indicando o número de lâmpadas no corredor. Zero indica o fim da entrada e não deve ser processado.

Saída

A saída deve indicar o estado, ligada ou desligada, das lâmpadas.

Exemplo de entrada

3

Exemplo de saída

[on, off, off]

Obs.: Este problema foi baseado no problema "Ligth, More Ligth" do livro Programming Challenges de Steven S. Skiena e Miguel A. Revilla.

Participantes

  • Eduardo Hertz
  • Herond Salles
  • Hugo Maia Vieira
  • Mayra Santana
  • Rodrigo Manhães
  • Sânya Carvalho

Observação

O arquivo __dojo.rb deriva de uma discussão que tivemos, levantada por Rodrigo, de como os testes deveriam se escritos. Ele levantou um questionamento sobre como escrevíamos os testes no Dojo; como eles eram escritos de forma TDD e não BDD, ferindo o conceito de que o teste não é apenas um teste, mas sim uma especificação. Para entender a diferença, compare o arquivo __dojo.rb com o lampadas_no_corredor_spec.rb, exceto pelos testes da classe Lampada que já foram escritos seguindo essa ideia.