Harto de la fiabilidad del almacenamiento flash, decidió almacenar todos sus programas en uno de esos viejos y flexibles disquetes de 1,440 KiB. Sin embargo, después de copiar ni siquiera 3.000 programas, el disco estaba lleno. ¿Cómo es eso posible? Experto en el arte del código de golf como eres, la mayoría de tus programas no tienen ni siquiera 100 bytes de longitud, por lo que debería quedar mucho espacio ...
Después de preguntar sobre eso en Super User, descubres que te ha perjudicado el tamaño del clúster del sistema de archivos , una trama malvada de los diseñadores de FAT12 que deja una porción significativa de tu disquete sin usar y te obliga a comprar más de lo que realmente necesitas.
¿Comprar más disquetes? ¡Nunca! El tamaño del clúster será un problema menor si simplemente guardamos varios programas en un archivo, lo cual es posible porque diferentes compiladores / intérpretes se comportarán de manera diferente para el mismo código fuente.
Tarea
Escriba un políglota que se ajuste a un solo clúster (512 bytes o menos) y resuelva la mayor cantidad posible de las siguientes tareas.
Lea todas las entradas e imprímalo.
Imprimir Hola, mundo! .
¡Lea una línea / argumento ( nombre ) como entrada e imprima Feliz cumpleaños, [nombre]! .
Lea todas las entradas e imprima ¡ Me encantan las pestañas! si contiene uno o más tabuladores (0x09) y odio los espacios! si no es así
Lea dos líneas / argumentos e imprima un valor verdadero si el segundo es una subcadena del primero y un valor falso si no.
Lea una línea / argumento e imprima un valor verdadero si sus caracteres están en orden estrictamente ascendente y un valor falso si no.
Lea una línea / argumento y un carácter e imprima los índices de todas las apariciones de ese carácter.
Lea una línea / argumento e imprima cualquiera de los caracteres con el mayor número de ocurrencias.
Lea dos enteros entre 0 y 255 e imprima su suma.
Lea un número entero entre 0 y 255 e imprima el cociente y el residuo de su división entre 7 .
Lea un número entero entre 1 y 255 e imprima un valor verdadero si es un número compuesto (ni 1 ni primo) y un valor falso si no.
Lea un número entero entre 1 y 255 e imprima un valor verdadero si es una potencia de 2 y un valor falso si no.
Lea dos enteros entre 0 y 255 e imprima el más grande.
Leer un entero decimal entre 0 y 255 imprime su representación hexadecimal.
Lea un número entero entre 0 y 255 e imprima su peso de Hamming (número de 1 bits).
Leer un solo número entero n entre 1 y 13 e imprimir el F n , el n ésimo número de Fibonacci .
Por ejemplo, para la entrada
13
, imprimir233
.
Leer una línea / argumento de entrada y enmarcarlo.
Por ejemplo, para la entrada
Programming Puzzles & Code Golf
, imprima esto:+---------------------------------+ | Programming Puzzles & Code Golf | +---------------------------------+
Lea un bloque rectangular de caracteres y gírelo un cuarto de vuelta en el sentido de las agujas del reloj.
Por ejemplo, para la entrada
tye xll epb tma id sa s e i r hsn Tiu
imprime esto:
This text is simply unreadable
Leer un número entero entre 1 y 40 e imprima un diamante de esa longitud lateral.
Por ejemplo, para la entrada
3
, imprima esto:/\ / \ / \ \ / \ / \/
Imprime esto:
....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@....
Tanteo
La respuesta que logra incorporar la mayor cantidad de programas en un solo archivo que cabe en un solo clúster de 512 bytes gana. Los empates se rompen por recuento de bytes (menor es mejor).
Reglas adicionales
Para cada tarea que reclame para su puntaje, el mismo archivo (byte por byte) debe constituir un programa completo, en el idioma que elija, que resuelva esta tarea en particular.
Cada tarea debe resolverse en un idioma diferente.
Los idiomas cuentan como diferentes si no son versiones diferentes del mismo idioma. Por ejemplo, solo hay un JavaScript, un Python y un TI-BASIC, pero C, C ++, Octave y MATLAB son cuatro lenguajes diferentes.
El lenguaje seleccionado para cada tarea debe satisfacer nuestra definición habitual de lenguaje de programación .
Además, el idioma debe haber sido publicado e implementado antes del 9 de septiembre de 2015.
Es posible que su compilador / intérprete no requiera ningún indicador no estándar para producir el comportamiento esperado.
Las excepciones a esta regla incluyen los indicadores necesarios para especificar un idioma en particular, para leer el programa desde un archivo (único) o para suprimir un banner.
La entrada para cada tarea consistirá en caracteres ASCII imprimibles (0x20 a 0x7E) y avances de línea (0x0A), y no excederá los 255 bytes de longitud.
Todos los enteros se pueden leer en decimal o unario, a menos que se indique lo contrario en la tarea.
El comportamiento de la entrada no válida no está definido.
Puede leer la entrada de STDIN (o su alternativa más cercana) o como argumentos de línea de comandos.
Si una tarea requiere leer dos entradas, puede leerlas, en cualquier orden, separadas por un delimitador de un byte de su elección, como argumentos de línea de comandos separados o uno de STDIN y el otro como argumento de línea de comandos.
Si una de las piezas de entrada es una línea, el único delimitador posible es un salto de línea.
Imprima el resultado en STDOUT (o la alternativa más cercana). Toda la salida a STDERR será ignorada.
Para cada tarea, se aplican las reglas estándar de código de golf .
En particular, esto incluye las lagunas que están prohibidas por defecto , con la excepción de la codificación de la salida , que está explícitamente permitida para este desafío.
2>/dev/null
y obtenemos la salida correcta a stdout, está bien? Sólo para estar seguro.