एक प्रोग्राम लिखें जो संकलक या दुभाषिया के वाक्यविन्यास त्रुटि संदेश को प्रिंट करता है। त्रुटि संदेश भ्रामक होना चाहिए ताकि कोड अनुरक्षक को यह पता लगाने में दिन लगें कि त्रुटि फ़ेक थी, इसका मतलब है कि, आपको obfuscate करना चाहिए (और अपना इरादा छुपाना चाहिए)। साथ ही, त्रुटि यथासंभव सटीक होनी चाहिए, और कोड का सही संदर्भ होना चाहिए।
compile program.p && ./program
संकलित भाषाओं के लिए, मान लें कि आपका कोड अनुरक्षक प्रोग्राम को संकलित करने और चलाने के लिए कमांड लाइन पर करेगा , अर्थात, यदि कंपाइलर या प्रोग्राम से आउटपुट स्वयं आता है तो वह अंतर नहीं कर सकता है। इसके अलावा, मान लें कि आपका कोड अनुरक्षक सिंटैक्स त्रुटि संदेशों को चालू करेगा।
संदर्भ के लिए, यहां एक उदाहरण मैंने बनाया है: https://gist.github.com/359604
DATA
अनुभाग त्रुटि संदेश की स्ट्रिंग encodes, और हैश %abcdef
डिकोड टेबल है। बैकस्लैश के लिए त्रुटि मुद्रित संदर्भ, जो एक कोड अनुरक्षक बनाता है बैकस्लैश को गिनने की कोशिश करेगा।
प्रविष्टियों को वर्गीकृत किया जाएगा:
- कोड का भ्रामक स्पष्ट इरादा है
/6
- कोड त्रुटि को सही ढंग से पुन: पेश करता है
/16
(आपकी बात 16 से शुरू होती है, और प्रत्येक अशुद्धियों के लिए संबंधित कारकों से विभाजित होती है)- सही पूंजीकरण: 4
- सही लाइन नंबर और कॉलम नंबर: 4
- सही गलत: प्रत्येक गलत शब्दों के लिए 2
- संदर्भित लाइन कोड संख्या को गुमराह करता है
/3
उदाहरण के लिए,
./pythontest1.py: line 7: syntax error near token `('
./pythontest1.py: line 7: ` x=input("Enter a number:") #Number input'
"टोकन" से पहले "अप्रत्याशित" लापता होने के लिए शुद्धता पर 8 (16/2) मिलता है, एक सामान्य अजगर दुभाषिया प्रदर्शित करता है
./pythontest1.py: line 7: syntax error near unexpected token `('
./pythontest1.py: line 7: ` x=input("Enter a number:") #Number input'
यदि आपका "कोड त्रुटि को सही ढंग से पुन: पेश करता है" बिंदु 1 से कम है, तो आपका प्रवेश अयोग्य है।
एक टाई के मामले में, मैं अतिरिक्त ग्रेडिंग कारक लगाऊंगा।