Şimdi kötü kod yazma yeteneklerinizi gösterme zamanı. Bence el yapımı C yarışmasına benzeyen yeni bir tür programlama bulmacası deniyorum. Temel fark, bunun neredeyse hain olmadığıdır: sadece iyi bir temiz eğlence. Bulmacanın amacı, bir programa olabildiğince çok hata toplamaktır. Bu yarışmanın galibi, programı karakter başına en fazla hata ile yazan kişidir.
Açıklama isteyen büyük bir yorum dizisinden kaçınmak için, şu anda niteleyici hatalar olarak düşündüğüm şeyi tanımlamalıyım.
İlk olarak, hata bir hata değildir . Yorumlayıcı tarafından bir hata olarak algılanabilen bir sorunsa (örneğin, eşleşmeyen sınırlayıcılar, hatalı biçimlendirilmiş sözdizimi, boş bir nesnenin özelliğine erişim, vb.) Veya programın yürütülmesini veya devam etmesini önlüyorsa, bir böcek. Aksi takdirde, dört karakter yazabilirsiniz ve yorumlayıcı sekiz sözdizimi hatası listeleyebilir ve hata karakter oranı 2 olabilir.
İkincisi, böcek açıkça yanlış olmamalı ve böcek bir paskalya yumurtası değildir . Bu kesinlikle öznel bir kriter ama bence bu tür bir yarışma için gerekli. Bu, kodu belirgin şekilde yöneten koşullu kodlara sahip olamayacağınız anlamına gelir. (Oku: bir turing çukuru dili kullanın, çünkü kimse farkı bilmeyecek).
Üçüncüsü, hatanın makul olması gerekir . Bu, yukarıdaki gibi özneldir, ancak hata, daha az titiz veya belki de cahil bir kişi veya sadece bir hata yapan biri tarafından yazılmış gibi görünmelidir. Bu, örneğin, geçerli olan ve doğru görünen ancak istenmeyen davranışlara neden olan tek tek hataları veya sözdizimini içerir (örneğin, parantez yerine köşeli parantez kullanarak).
Hata, bazı istisnai durumlar için istenmeyen çıktılar da dahil olmak üzere, ancak bunlarla sınırlı olmamak üzere, programda istenmeyen davranışlara neden olabilir, görünüşte ilgisiz görünen bir şeye göre farklı davranışlara sahiptir (örneğin, mevcut zamanın sona ermesine bağlı olarak çıktı farklı görüntüler. tek veya çift saniye ile), bellek sızıntıları, veri kaybı vb.
Örnek Problem:
Tüm ASCII karakterlerini sayısal değerlerine göre artan sırada görüntüleyen bir program yapın.
Örnek cevap:
Brainf ***, 5 karakter, 1 hata, 0.2 hata oranı oranı
+[+.]
Hata: 1 için ASCII karakteri görüntülenmiyor .+[.+]
. Olarak değiştirilerek düzeltilebilir .
Tamam, sanırım şimdi şimdiye kadar almış olmalısınız, işte bulmacanız:
Bir Sezar Şifresini Çözün ve Kelimeleri Alfabetik Olarak Sıralayın
Bir Sezar şifreleme harflerin bir dizi alıp onları kaydırarak oluşturulur n alfabesinde üzerinde harfleri. Alfabenin başına veya sonuna kadar giderse, A Z'den sonra gelir ve Z A'dan önce gelir. Örneğin:
Mannequin
Nboofrvjo //Shifted over 1 or -25
Wkxxoaesx //Shifted over 10 -16
Ftggxjnbg //Shifted over -7 or 19
Size iki giriş verilecektir (giriş alabilirsiniz, ancak sizin için en uygun olanıdır). İlk girdi kelimelerdir, ikinci girdi ise kaydırıldığı değerdir. Göreviniz kodu çözülen sözcükleri ve sonra da alfabetik olarak sıralandıktan sonra kodu çözülen sözcükleri çıktılamaktır.
Örnek (kötü çocuklara suç yok, bu sadece bir örnek):
İlk girdi: gtdx wjbfwiji. ljy Gfi Instagram Hesabındaki Resim ve Videoları hfssty
İkinci giriş: 5
İlk çıktı: erkekler ödüllendirildi. kötüye gidemem
İkinci çıktı: Kötü çocuklar ödüllendirilemez.
İyi şanslar!