अब बुरा कोड लिखने के लिए अपनी क्षमताओं को दिखाने का समय है। मैं प्रोग्रामिंग पहेली की एक नई तरह की कोशिश कर रहा हूं, सबसे समान, मुझे लगता है कि अंडरहेल्ड सी प्रतियोगिता के लिए। मुख्य अंतर यह है कि यह लगभग नापाक नहीं है: यह सिर्फ कुछ अच्छे साफ मज़ेदार हैं। पहेली का लक्ष्य एक कार्यक्रम में जितने भी कीड़े हैं उन्हें पैक करना है। इस प्रतियोगिता का विजेता वह है जो प्रति चरित्र सबसे बग के साथ कार्यक्रम लिखता है।
स्पष्टीकरण मांगने वाले टिप्पणियों के एक विशाल धागे से बचने के लिए, मुझे अभी से परिभाषित करना चाहिए कि मैं क्या योग्य कीड़े मानता हूं।
सबसे पहले, एक बग कोई त्रुटि नहीं है । यदि यह एक समस्या है जिसे दुभाषिया द्वारा त्रुटि के रूप में पहचाना जा सकता है (जैसे बेमेल सीमांकक, बुरी तरह से बनाई गई वाक्य रचना, एक अशक्त वस्तु की संपत्ति को स्वीकार करना, आदि) या यदि यह प्रोग्राम को निष्पादित या जारी रखने से रोकता है, तो यह नहीं है। एक दोष। अन्यथा, आप चार वर्णों में टाइप कर सकते हैं और दुभाषिया आठ वाक्यविन्यास त्रुटियों को सूचीबद्ध कर सकता है और आप बग-वर्ण अनुपात 2 का दावा कर सकते हैं।
दूसरा, बग स्पष्ट रूप से गलत नहीं होना चाहिए और बग एक ईस्टर अंडे नहीं है । यह निश्चित रूप से एक व्यक्तिपरक मानदंड है, लेकिन मुझे लगता है कि इस तरह की प्रतियोगिता के लिए आवश्यक है। इसका मतलब यह है कि आपके पास सशर्त कोड नहीं हो सकता है जो विशेष रूप से स्पष्ट तरीकों से कोड का प्रबंधन करता है। (पढ़ें: ट्यूरिंग पिट भाषा का उपयोग करें, क्योंकि किसी को भी अंतर नहीं पता होगा)।
तीसरा, बग को प्रशंसनीय होना चाहिए । यह व्यक्तिपरक है, ऊपर वाले की तरह, लेकिन बग को ऐसा दिखना चाहिए कि यह कम-से-सावधानीपूर्वक या शायद अज्ञानी व्यक्ति, या किसी ऐसे व्यक्ति द्वारा लिखा जा सकता है, जिसने सिर्फ एक गलती की थी। इसमें शामिल है, उदाहरण के लिए, ऑफ-बाय-वन एरर या सिंटैक्स जो मान्य है और सही दिखता है, लेकिन अवांछित व्यवहार का कारण बनता है (जैसे, कोष्ठक के बजाय वर्ग कोष्ठक का उपयोग करना)।
बग कार्यक्रम के लिए किसी भी प्रकार के अवांछित व्यवहार का कारण बन सकता है, जिसमें शामिल हैं, लेकिन निश्चित रूप से सीमित नहीं है, कुछ असाधारण मामलों के लिए अवांछित उत्पादन, अलग-अलग व्यवहार है जो प्रतीत होता है कि असंबंधित के आधार पर होता है (उदाहरण के लिए वर्तमान आउटपुट के समाप्त होने के आधार पर आउटपुट अलग तरह से प्रदर्शित होता है एक विषम या कुछ सेकंड की संख्या के साथ), मेमोरी लीक, डेटा की हानि, और इसी तरह।
उदाहरण समस्या:
एक प्रोग्राम बनाएं जो सभी ASCII वर्णों को उनके संख्यात्मक मान के आरोही क्रम में प्रदर्शित करता है।
उदाहरण उत्तर:
ब्रेनफ ***, 5 चार्ट, 1 बग, 0.2 बग-चार अनुपात
+[+.]
बग: 1. के लिए ASCII वर्ण प्रदर्शित नहीं करता है जिसे बदलकर तय किया जा सकता है .+[.+]
।
ठीक है, मुझे लगता है कि आपको ज्यादातर इसे अब तक प्राप्त करना चाहिए, यहां आपकी पहेली है:
एक सीज़र सिफर को डिकोड करें और वर्णानुक्रम में शब्दों को क्रमबद्ध करें
अक्षरों की एक श्रृंखला लेने और वर्णमाला में उन्हें n अक्षरों को स्थानांतरित करने से एक सीज़र सिफर बनाया जाता है। यदि यह वर्णमाला के आरंभ या अंत में सभी रास्ते जाता है, तो A, Z के बाद आता है, और Z, A से पहले आता है। उदाहरण के लिए:
Mannequin
Nboofrvjo //Shifted over 1 or -25
Wkxxoaesx //Shifted over 10 -16
Ftggxjnbg //Shifted over -7 or 19
आपको दो इनपुट दिए जाएंगे (आप इनपुट प्राप्त कर सकते हैं हालांकि आपके लिए सबसे सुविधाजनक है, कारण के भीतर)। पहला इनपुट शब्द है, और दूसरा इनपुट वह मूल्य है जिसे वह स्थानांतरित किया गया है। आपका कार्य डिकोड किए गए शब्दों को आउटपुट करना है, और फिर वे वर्णानुक्रम में सॉर्ट किए जाने के बाद डीकोड किए गए शब्दों को आउटपुट करते हैं।
उदाहरण (बुरे लड़कों के लिए कोई अपराध नहीं, यह सिर्फ एक उदाहरण है):
पहला इनपुट: gtdx wjbfwiji ljy Gfi hfssty
दूसरा इनपुट: 5
पहला आउटपुट: लड़कों को पुरस्कृत किया गया। बुरा नहीं हो सकता
दूसरा आउटपुट: बुरे लड़कों को पुरस्कृत नहीं किया जा सकता है।
सौभाग्य!