Contexte
Le echo
programme est tellement soigné. Vous pouvez tout dire, et il répète vos mots à la perfection! À quel point cela est cool! De manière décevante, il répète l'entrée en une seule fois, quelle que soit votre vitesse de frappe, ce qui n'est pas très réaliste. Nous devrons résoudre ce problème.
La tâche
Votre programme utilisera STDIN ou son équivalent le plus proche. Il doit lire les lignes de l’utilisateur une à une, en affichant éventuellement une invite, jusqu’à ce qu’il entre une ligne vide. Après cela, il imprimera les lignes sur STDOUT ou son équivalent le plus proche, dans le même ordre que celles qui ont été données. La dernière ligne (vide) n'est pas imprimée et la dernière ligne imprimée n'a pas besoin de nouvelle ligne.
De plus, le programme doit conserver les intervalles de temps entre chaque ligne: s'il a fallu x
quelques secondes à l'utilisateur pour entrer une ligne, x
le programme n'a pris que quelques secondes pour l'imprimer. Ceci s’applique aussi aux première et dernière lignes; la ligne vide n'est pas imprimée, mais le programme attend quand même avant de se terminer.
Exemple
Voici un exemple de session avec le programme. Toutes les actions qui ne produisent pas de texte sont décrites entre crochets et l’invite (facultatif) s’affiche sous la forme >
.
[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]
Sans les actions, la session ressemble à ceci:
> fhtagn
> yum yum
> so cool!
>
fhtagn
yum yum
so cool!
Règles et notation
Les temps d'attente doivent être précis à 0,01 seconde près (en pratique, si un humain moyen ne peut pas faire la différence, tout va bien). Le nombre d'octets le plus faible gagne et les failles standard sont interdites. Si votre langue dispose d'une fonction intégrée pour cette tâche, vous ne pouvez pas l'utiliser.
yum yum
, ce qui était plutôt encombrant.