Esta inquietud se puede abordar de variadas maneras, sin embargo te compartimos la resolución más completa en nuestra opinión.
Solución:
J, 78 × 0,75 = 58,5
'w p'=:_".1!:1]3
1!:2&4('%',~":100*p)([email protected][-<[email protected]:@-)}'[]'0 _1}' |'{~(w*p)>i.w
$ echo -n 79 0.15 | jconsole test.ijs [||||||||||| 15% ] $ echo -n 25 0.76 | jconsole test.ijs [||||||||||76%||||| ] $ echo -n 39 -0.12 [ _12% ] $ echo -n 25 7.6 | jconsole test.ijs [|||||||||760%||||||||||]
(Los números negativos en J tienen el prefijo _
no -
. Por suerte, diádico ".
puede analizar ambos formatos).
perlas, 96×¾ = 72
#!/usr/bin/perl -ap
formline'[@'.'|'x($F[0]-3).']',100*$F[1].'%';
$_=$^A;s# |(.)#$1//($-[0]<$F[0]*$F[1]?'|':$&)#eg
Eso es según las reglas de golf tradicionales de Perl (#!
línea no contada, a excepción de la -
e interruptores si los hay).
$ echo 79 0.15 | perl test.pl [||||||||||| 15% ] $ echo 25 0.76 | perl test.pl [||||||||||76%||||| ] $ echo 39 -0.12 | perl test.pl [ -12% ] $ echo 25 7.6 | perl test.pl [|||||||||760%||||||||||]
PHP 84 x 0,75 = 63
Editar: una versión menos 'bonita', pero debería ser válida de acuerdo con las reglas:
[=str_pad(!fscanf(STDIN,~Ú›Ú™,$a,$b),$a*min(1,$b),~ß)|str_pad(100*$b.~Ú,$a,_,2)?>]
Producción:
$ echo 79 0.15 | php progress-bar.php
[⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂___________________________15%______________________________________]
$ echo 25 0.76 | php progress-bar.php
[⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂76%⌂⌂⌂⌂⌂______]
$ echo 39 -0.12 | php progress-bar.php
[_________________-12%__________________]
$ echo 25 7.6 | php progress-bar.php
[⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂760%⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂]
original (98 x 0,75 = 73,5)
[=strtr(str_pad(!fscanf(STDIN,~Ú›Ú™,$a,$b),$a*min(1,$b),~ß)|str_pad(100*$b.~Ú,$a,~ü,2),~ü,~ß)?>]
Producción:
$ echo 79 0.15 | php progress-bar.php
[########### 15% ]
$ echo 25 0.76 | php progress-bar.php
[###########76%##### ]
$ echo 39 -0.12 | php progress-bar.php
[ -12% ]
$ echo 25 7.6 | php progress-bar.php
[##########760%###########]
Si crees que ha sido de utilidad nuestro artículo, sería de mucha ayuda si lo compartieras con otros programadores de esta forma contrubuyes a difundir esta información.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)