Cansado da confiabilidade do armazenamento flash, você decidiu armazenar todos os seus programas em um daqueles bons e antigos disquetes de 1.440 KiB. No entanto, depois de copiar nem 3.000 programas, o disco estava cheio. Como isso é possível? Hábil na arte do código golf como você é, a maioria dos seus programas não tem nem 100 bytes de comprimento, portanto, deve haver muito espaço sobrando ...
Depois de perguntar sobre o Superusuário, você descobre que foi prejudicado pelo tamanho do cluster do sistema de arquivos , uma trama maligna dos designers do FAT12 que deixa uma parte significativa do seu disquete sem uso e obriga a comprar mais do que realmente precisa.
Compre mais disquetes? Nunca! O tamanho do cluster será menos problemático se simplesmente salvarmos vários programas em um arquivo, o que é possível porque diferentes compiladores / intérpretes se comportarão de maneira diferente para o mesmo código-fonte.
Tarefa
Escreva uma poliglota que se encaixe em um único cluster (512 bytes ou menos) e resolva o maior número possível de tarefas a seguir.
Leia todas as entradas e imprima-as.
Impressão Olá, mundo! .
Leia uma linha / argumento ( nome ) como entrada e imprima Feliz Aniversário, [nome]! .
Leia todas as entradas e imprima Eu amo guias! se ele contiver um ou mais tabuladores (0x09) e eu odeio espaços! se não
Leia duas linhas / argumentos e imprima um valor verdadeiro se o segundo for uma subcadeia do primeiro e um valor falso se não.
Leia uma linha / argumento e imprima um valor verdadeiro se seus caracteres estiverem em ordem estritamente crescente e um valor falso se não.
Leia uma linha / argumento e um caractere e imprima os índices de todas as ocorrências desse caractere.
Leia uma linha / argumento e imprima qualquer um dos caracteres com o maior número de ocorrências.
Leia dois números inteiros entre 0 e 255 e imprima sua soma.
Leia um número inteiro único entre 0 e 255 e imprima o quociente e o resíduo de sua divisão por 7 .
Leia um número inteiro único entre 1 e 255 e imprima um valor verdadeiro se for um número composto (nem 1 nem primo) e um valor falso se não.
Leia um número inteiro único entre 1 e 255 e imprima um valor verdadeiro, se for uma potência de 2, e um valor falso, se não.
Leia dois números inteiros entre 0 e 255 e imprima o maior.
Leia um número inteiro decimal entre 0 e 255 imprima sua representação hexadecimal.
Leia um número inteiro único entre 0 e 255 e imprima seu peso de Hamming (número de 1 bits).
Leia um número inteiro n entre 1 e 13 e imprima o F n , o n º número de Fibonacci .
Por exemplo, para a entrada
13
, imprima233
.
Leia uma linha / argumento da entrada e enquadre-a.
Por exemplo, para a entrada
Programming Puzzles & Code Golf
, imprima isto:+---------------------------------+ | Programming Puzzles & Code Golf | +---------------------------------+
Leia um bloco retangular de caracteres e gire-o um quarto de volta no sentido horário.
Por exemplo, para a entrada
tye xll epb tma id sa s e i r hsn Tiu
imprima isto:
This text is simply unreadable
Leia um número inteiro entre 1 e 40 e imprima um diamante desse comprimento lateral.
Por exemplo, para a entrada
3
, imprima isto:/\ / \ / \ \ / \ / \/
Imprima isto:
....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@....
Pontuação
A resposta que consegue incorporar o maior número de programas em um único arquivo que se encaixa em um único cluster de 512 bytes ganha. Os laços são quebrados pela contagem de bytes (quanto menor, melhor).
Regras adicionais
Para cada tarefa que você solicita sua pontuação, o mesmo arquivo (byte por byte) deve constituir um programa completo - em um idioma de sua escolha - que resolva essa tarefa específica.
Cada tarefa deve ser resolvida em um idioma diferente.
Os idiomas contam como diferentes se não forem versões diferentes do mesmo idioma. Por exemplo, há apenas um JavaScript, um Python e um TI-BASIC, mas C, C ++, Octave e MATLAB são quatro idiomas diferentes.
O idioma selecionado para cada tarefa deve satisfazer nossa definição usual de linguagem de programação .
Além disso, o idioma deve ter sido publicado e implementado antes de 9 de setembro de 2015.
Seu compilador / intérprete pode não exigir nenhum sinalizador não padrão para produzir o comportamento esperado.
Exceções a esta regra incluem sinalizadores necessários para especificar um idioma específico, ler o programa de um arquivo (único) ou suprimir um banner.
A entrada para cada tarefa consistirá em caracteres ASCII imprimíveis (0x20 a 0x7E) e feeds de linha (0x0A), e não excederá 255 bytes de comprimento.
Todos os números inteiros podem ser lidos em decimal ou unário, a menos que indicado de outra forma na tarefa.
O comportamento para entrada inválida é indefinido.
Você pode ler a entrada do STDIN (ou sua alternativa mais próxima) ou como argumentos da linha de comando.
Se uma tarefa exigir a leitura de duas partes de entrada, você poderá lê-las - em qualquer ordem - separadas por um delimitador de um byte de sua escolha, como argumentos separados da linha de comandos ou um do STDIN e o outro como argumento da linha de comandos.
Se uma das partes de entrada for uma linha, o único delimitador possível é um avanço de linha.
Imprima a saída em STDOUT (ou alternativa mais próxima). Toda a saída para STDERR será ignorada.
Para cada tarefa, aplicam -se regras padrão de código-golfe .
Em particular, isso inclui as brechas proibidas por padrão , com a exceção de codificar a saída , o que é explicitamente permitido para esse desafio.
2>/dev/null
e obtemos a saída correta para o stdout, está tudo bem? Só pra ter certeza.