fundo
O echo
programa é tão legal. Você pode dizer qualquer coisa, e ele repete suas palavras perfeitamente, sempre! Quão legal é isso! Desapontador, ele repete a entrada de uma só vez, independentemente da sua velocidade de digitação, o que não é muito realista. Nós vamos ter que consertar isso.
A tarefa
Seu programa deve receber sua contribuição do STDIN ou equivalente mais próximo. Ele deve ler as linhas do usuário, uma a uma, possivelmente exibindo algum prompt, até que elas entrem em uma linha vazia. Depois disso, imprimirá as linhas em STDOUT ou equivalente mais próximo, na mesma ordem em que foram dadas. A última linha (vazia) não é impressa e a última linha impressa não precisa ter uma nova linha à direita.
Além disso, o programa deve preservar os intervalos de tempo entre cada linha: se o usuário x
levar alguns segundos para inserir uma linha, levará x
alguns segundos para o programa imprimi-la. Isso se aplica também à primeira e à última linha; a linha vazia não é impressa, mas o programa espera mesmo assim antes de terminar.
Exemplo
Aqui está uma sessão de exemplo com o programa. Todas as ações que não produzem texto são descritas entre colchetes, e o prompt (opcional) é exibido como >
.
[begin program]
> fhtagn[enter; 1.48s passed since starting program]
> yum yum[enter; 3.33s passed since previous enter]
> so cool![enter; 2.24s passed since previous enter]
> [enter; 0.23s passed since previous enter]
[wait 1.48s]fhtagn
[wait 3.33s]yum yum
[wait 2.24s]so cool!
[wait 0.23s, then end program]
Sem as ações, a sessão fica assim:
> fhtagn
> yum yum
> so cool!
>
fhtagn
yum yum
so cool!
Regras e Pontuação
Os tempos de espera devem ser precisos em 0,01 segundos (na prática, se o ser humano médio não pode dizer a diferença, você está bem). A menor contagem de bytes vence e as brechas padrão não são permitidas. Se o seu idioma tiver uma função interna precisamente para esta tarefa, você não poderá usá-lo.
yum yum
, o que foi bastante complicado.