Muak dengan keandalan penyimpanan flash, Anda memutuskan untuk menyimpan semua program Anda di salah satu disket 1.440 KiB tua yang bagus itu. Namun, setelah menyalin bahkan tidak 3.000 program, disk penuh. Bagaimana itu mungkin? Terampil dalam seni kode golf seperti Anda, sebagian besar program Anda bahkan tidak sepanjang 100 byte, jadi harus ada banyak ruang tersisa ...
Setelah bertanya tentang hal itu di Super User, Anda menemukan bahwa Anda telah dirugikan oleh ukuran cluster sistem file , plot jahat dari desainer FAT12 yang membuat sebagian besar floppy Anda tidak digunakan dan memaksa Anda untuk membeli lebih dari yang sebenarnya Anda butuhkan.
Beli lebih banyak disket? Tak pernah! Ukuran cluster tidak akan terlalu menjadi masalah jika kita hanya menyimpan banyak program dalam satu file, yang dimungkinkan karena kompiler / juru bahasa yang berbeda akan berperilaku berbeda untuk kode sumber yang sama.
Tugas
Tulis polyglot yang cocok dalam satu cluster (512 byte atau kurang) dan selesaikan sebanyak mungkin tugas berikut.
Baca semua input dan cetak.
Cetak Halo, Dunia! .
Baca baris / argumen ( nama ) sebagai masukan dan cetak Selamat Ulang Tahun, [nama]! .
Baca semua input dan cetak tab I love! jika mengandung satu atau lebih tabulasi (0x09) dan saya benci spasi! jika tidak.
Baca dua baris / argumen dan cetak nilai yang benar jika yang kedua adalah substring yang pertama dan nilai yang salah jika tidak.
Baca baris / argumen dan cetak nilai kebenaran jika karakternya berada dalam urutan yang benar-benar naik dan nilai yang salah jika tidak.
Baca baris / argumen dan karakter dan cetak indeks semua kejadian karakter itu.
Baca baris / argumen dan cetak salah satu karakter dengan jumlah kemunculan tertinggi.
Baca dua bilangan bulat antara 0 dan 255 dan cetak jumlahnya.
Baca bilangan bulat tunggal antara 0 dan 255 dan cetak hasil bagi dan sisa pembagiannya sebesar 7 .
Baca bilangan bulat tunggal antara 1 dan 255 dan cetak nilai kebenaran jika itu adalah angka komposit (bukan 1 atau prima) dan nilai palsu jika tidak.
Baca bilangan bulat tunggal antara 1 dan 255 dan cetak nilai kebenaran jika itu adalah kekuatan 2 dan nilai palsu jika tidak.
Baca dua bilangan bulat antara 0 dan 255 dan cetak yang lebih besar.
Baca bilangan bulat desimal antara 0 dan 255 cetak representasi heksadesimalnya.
Baca bilangan bulat tunggal antara 0 dan 255 dan cetak bobot Hamming-nya (jumlah 1-bit).
Baca satu bilangan bulat n antara 1 dan 13 dan mencetak F n , yang n th nomor Fibonacci .
Misalnya, untuk input
13
, cetak233
.
Baca baris / argumen input dan bingkai itu.
Misalnya, untuk input
Programming Puzzles & Code Golf
, cetak ini:+---------------------------------+ | Programming Puzzles & Code Golf | +---------------------------------+
Baca blok karakter persegi panjang dan putar seperempat putaran searah jarum jam.
Misalnya untuk input
tye xll epb tma id sa s e i r hsn Tiu
cetak ini:
This text is simply unreadable
Baca bilangan bulat antara 1 dan 40 dan cetak berlian dengan panjang sisi itu.
Misalnya, untuk input
3
, cetak ini:/\ / \ / \ \ / \ / \/
Cetak ini:
....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@....
Mencetak gol
Jawaban yang berhasil memasukkan jumlah program terbanyak dalam satu file yang sesuai dengan cluster 512 byte tunggal menang. Dasi dipecah oleh jumlah byte (lebih rendah lebih baik).
Aturan tambahan
Untuk setiap tugas yang Anda klaim untuk skor Anda, file yang sama (byte per byte) harus merupakan program lengkap - dalam bahasa pilihan Anda - yang menyelesaikan tugas khusus ini.
Setiap tugas harus diselesaikan dalam bahasa yang berbeda.
Bahasa dianggap berbeda jika bukan versi yang berbeda dari bahasa yang sama. Misalnya, hanya ada satu JavaScript, satu Python dan satu TI-BASIC, tetapi C, C ++, Octave, dan MATLAB adalah empat bahasa yang berbeda.
Bahasa yang dipilih untuk setiap tugas harus memenuhi definisi bahasa pemrograman kami yang biasa .
Selain itu, bahasa tersebut harus sudah diterbitkan dan diimplementasikan sebelum 9 September 2015.
Kompiler / juru bahasa Anda mungkin tidak memerlukan tanda non-standar untuk menghasilkan perilaku yang diharapkan.
Pengecualian untuk aturan ini mencakup bendera yang diperlukan untuk menentukan bahasa tertentu, untuk membaca program dari file (tunggal) atau untuk menekan banner.
Input untuk setiap tugas terdiri dari karakter ASCII yang dapat dicetak (0x20 hingga 0x7E) dan linefeeds (0x0A), dan panjangnya tidak akan melebihi 255 byte.
Semua bilangan bulat dapat dibaca dalam desimal atau unary, kecuali dinyatakan sebaliknya dalam tugas.
Perilaku untuk input yang tidak valid tidak ditentukan.
Anda dapat membaca input dari STDIN (atau alternatif terdekatnya) atau sebagai argumen baris perintah.
Jika suatu tugas membutuhkan membaca dua potong input, Anda dapat membacanya - dalam urutan apa pun - dipisahkan oleh pembatas satu byte pilihan Anda, sebagai argumen baris perintah yang terpisah atau satu dari STDIN dan yang lainnya sebagai argumen baris perintah.
Jika salah satu dari potongan input adalah satu baris, satu-satunya pembatas yang mungkin adalah linefeed.
Cetak hasilnya ke STDOUT (atau alternatif terdekat). Semua output ke STDERR akan diabaikan.
Untuk setiap tugas, aturan kode-golf standar berlaku.
Secara khusus, ini termasuk celah yang dilarang secara default , dengan pengecualian hard-coding output , yang secara eksplisit diizinkan untuk tantangan ini.
2>/dev/null
dan mendapatkan output yang benar untuk stdout, tidak apa-apa? Hanya untuk memastikan.