इस चुनौती में, उपयोगकर्ता प्रोग्रामिंग भाषाओं में तीन काफी सरल कोडिंग कार्यों को पूरा करेंगे, जिन्हें उत्तरोत्तर पुराने होने की अनुमति है।
पहला उत्तर एक प्रोग्रामिंग भाषा का उपयोग करना चाहिए जो वर्ष 2015 में बनाई गई थी। एक बार 2015 की भाषा में कम से कम एक उत्तर देने के बाद, उत्तर 2014 में बनाई गई प्रोग्रामिंग भाषाओं का उपयोग कर सकते हैं। इसी तरह, 2013 से भाषाओं का उपयोग करने वाले उत्तरों की अनुमति नहीं है। जब तक कम से कम एक 2014 का जवाब नहीं है।
सामान्य तौर पर, वर्ष Y से प्रोग्रामिंग भाषा के उपयोग की अनुमति तब तक नहीं दी जाती है जब तक कि वर्ष Y + 1 से किसी भाषा का उपयोग करने वाला उत्तर प्रस्तुत नहीं किया जाता है। एकमात्र अपवाद Y = 2015 है।
अपनी भाषा का वर्ष ढूँढना
इस प्रश्न का उत्तर देने के लिए, आपको पता होना चाहिए कि आपकी प्रोग्रामिंग भाषा किस वर्ष "इन" बनी थी। यह निश्चित रूप से, एक व्यक्तिपरक शब्द है; कुछ भाषाओं को कई वर्षों के दौरान विकसित किया गया था, और हर साल कई भाषाओं को अभी भी अपग्रेड किया जा रहा है। बता दें कि जिस साल एक भाषा को "बनाया गया" पहले साल में उस भाषा के लिए एक कार्यान्वयन आम जनता में दिखाई दिया।
उदाहरण के लिए, पायथन " 1991 में" बनाया गया था , हालांकि इसका विकास 1989 से प्रगति पर था, और संस्करण 1.0 को 1994 तक जारी नहीं किया गया था।
यदि यह वर्ष अभी भी व्यक्तिपरक है, तो सबसे उपयुक्त वर्ष चुनने के लिए अपने सामान्य ज्ञान का उपयोग करें। साल के विकल्पों के बारे में थोड़ी सी असहमति में मत उलझो। कृपया एक स्रोत का लिंक प्रदान करें जो कहता है कि आपकी भाषा कब बनाई गई थी।
एक प्रोग्रामिंग भाषा के विभिन्न संस्करणों या मानकों (जैसे पायथन 1, 2, 3) को उसी प्रारंभिक वर्ष के साथ एक ही भाषा के रूप में गिना जाता है।
इसलिए, जब तक आपकी भाषा का वर्ष 2015 नहीं है, तब तक आप केवल एक बार उत्तर प्रस्तुत करने के बाद अपना जवाब प्रस्तुत कर सकते हैं, जिसकी भाषा का वर्ष आपके समक्ष वर्ष है।
यदि आपके पास पहले से मौजूद एक ही वर्ष के साथ एक वैध उत्तर है, तो आप जवाब दे सकते हैं। इससे कोई फर्क नहीं पड़ता कि आपकी भाषा वर्ष में पहले या बाद में विकसित हुई थी।
कार्य
आपको टास्क 1 को 3 के माध्यम से पूरा करना होगा। टास्क 0 वैकल्पिक है।
इन कार्यों को प्रोग्रामिंग के तीन महत्वपूर्ण पहलुओं के अनुरूप करने के लिए चुना गया था: आउटपुट प्रदान करना (टास्क 1), लूपिंग (टास्क 2), और रिकर्सन (टास्क 3)।
टास्क 0 - भाषा इतिहास (वैकल्पिक)
अपनी चुनी हुई प्रोग्रामिंग भाषा के इतिहास को समझाने वाला कम से कम एक पैराग्राफ लिखें: जिसने इसे विकसित किया, क्यों, कैसे, आदि। यह विशेष रूप से प्रोत्साहित किया जाता है यदि आप व्यक्तिगत रूप से आसपास थे जब भाषा अस्तित्व में आई थी, और शायद इसके विकास में एक भूमिका निभाई। आप या आपके काम, या इस तरह की किसी भी चीज़ पर भाषा के प्रभाव के बारे में व्यक्तिगत उपाख्यानों से मुक्त महसूस करें।
यदि आप बहुत अधिक शोध के बिना अपनी भाषा के इतिहास के बारे में जानने के लिए बहुत छोटे हैं, तो पुराने उपयोगकर्ताओं को एक नोट छोड़ने पर विचार करें जो कहते हैं कि वे आपके पोस्ट को संपादित कर सकते हैं और कुछ प्रथम-हाथ के इतिहास में जोड़ सकते हैं।
टास्क 1 - "हैलो, वर्ल्ड!" प्रकार
एक प्रोग्राम लिखें जो प्रिंट करता है
[language name] was made in [year made]!
आपकी भाषा के मानक आउटपुट क्षेत्र में (सबसे हाल की भाषाओं के लिए स्टडआउट)।
उदाहरण के लिए, यदि भाषा पायथन थी, तो आउटपुट होगा:
Python was made in 1991!
टास्क 2 - एएससीआईआई कला एन
एक प्रोग्राम लिखें जो उपयोगकर्ता को एक अजीब सकारात्मक पूर्णांक में प्रवेश करने देता है (आप मान सकते हैं कि इनपुट हमेशा मान्य है), और चरित्र का उपयोग करके बनाया गया एक ASCII कला पत्र एन प्रिंट करता है N
।
यदि इनपुट 1 है, तो आउटपुट है:
N
यदि इनपुट 3 है, तो आउटपुट है:
N N
NNN
N N
यदि इनपुट 5 है, तो आउटपुट है:
N N
NN N
N N N
N NN
N N
यदि इनपुट 7 है, तो आउटपुट है:
N N
NN N
N N N
N N N
N N N
N NN
N N
इस तरह पैटर्न जारी है। आउटपुट में अनुगामी स्थान हो सकते हैं।
टास्क 3 - जीसीडी
एक प्रोग्राम लिखें जो उपयोगकर्ता को दो सकारात्मक पूर्णांक में प्रवेश करने देता है (आप मान सकते हैं कि इनपुट हमेशा मान्य है), और उनके सबसे बड़े सामान्य भाजक को प्रिंट करता है । इसे सबसे बड़े धनात्मक पूर्णांक के रूप में परिभाषित किया गया है जो शेष संख्या को छोड़ते हुए दोनों संख्याओं को विभाजित करता है। यह यूक्लिडियन एल्गोरिथ्म का उपयोग करके आसानी से गणना की जा सकती है ।
उदाहरण:
8
, 12
→ 4
12
, 8
→ 4
3
, 30
→ 3
5689
, 2
→ 1
234
, 876
→6
आप एक अंतर्निहित फ़ंक्शन का उपयोग कर सकते हैं, लेकिन यह पता लगाने की कोशिश करें कि क्या यह आपकी भाषा के पहले संस्करण में था। यदि नहीं, तो इसका उपयोग न करने का प्रयास करें।
नियम
- आप कई बार उत्तर दे सकते हैं, लेकिन प्रत्येक नए उत्तर में आपके अंतिम उत्तर में भाषा से कम से कम 5 साल पहले की गई भाषा का उपयोग करना चाहिए। इसलिए यदि आपने २०१५ की भाषा में उत्तर दिया है, तो आप २०१० की भाषाओं की अनुमति नहीं दे सकते। यदि आप 2010 के उत्तर से शुरू करते हैं, तो आप 2015 के उत्तर को अपना दूसरा उत्तर नहीं बना सकते क्योंकि 2015 2010 से पहले नहीं है।
- यदि संभव हो, तो अपना कोड लिखें ताकि यह आपकी भाषा के पहले संस्करण (या यथासंभव पुराने संस्करण) में काम किया हो। (यह कोई आवश्यकता नहीं है क्योंकि कुछ भाषाओं के लिए पुराने संकलक / दुभाषियों को खोजना मुश्किल हो सकता है।)
- जब तक पोस्ट किए गए उत्तर में महत्वपूर्ण त्रुटियां नहीं होती हैं या आपके पास कार्यों को पूरा करने का एक बहुत अलग तरीका होता है, तब तक किसी भाषा को पोस्ट करने से बचना चाहिए।
- अपने कोड को ठीक करना आवश्यक नहीं है।
- किसी भी प्रोग्राम के आउटपुट में एक अनुगामी न्यूलाइन ठीक है।
- कार्य 2 और 3 के लिए, कुछ उचित अधिकतम के नीचे सभी इनपुट मान जैसे 2 16 को काम करना चाहिए (बहुत कम से कम 256)।
- इस प्रश्न को पोस्ट करने से पहले आपकी भाषा मौजूद होनी चाहिए।
- बहुत पुरानी प्रोग्रामिंग भाषाओं में इनपुट और आउटपुट के विभिन्न रूप हो सकते हैं जो हम आज के बारे में सोचते हैं। यह ठीक है। अपनी भाषा के संदर्भ में अपनी क्षमता के अनुसार कार्यों को पूरा करें।
स्कोरिंग
आपके सबमिशन का स्कोर है:
upvotes - downvotes + (2015 - languageYear) / 2
इस प्रकार, पुरानी भाषाओं का लाभ देते हुए, 2015 से पहले हर साल वोट संख्या में 0.5 जोड़ा जाता है। उच्चतम स्कोर जीत के साथ सबमिशन।
उत्तर सूची
नीचे दिए गए स्टैक स्निपेट उनकी भाषा वर्ष के अनुसार सभी मान्य उत्तरों को सूचीबद्ध करता है।
यह सही ढंग से सूचीबद्ध है यह सुनिश्चित करने के लिए आपको अपनी पोस्ट को इस मार्कडाउन लाइन से शुरू करना चाहिए :
#[year] - [language name]
उदाहरण के लिए:
#1991 - Python
भाषा का नाम एक लिंक में हो सकता है (यह उत्तर सूची में एक ही लिंक होगा):
#1991 - [Python](https://www.python.org/)
ऐसे उत्तर जो इस प्रारूप का पालन नहीं करते हैं, या एक वर्ष है जो अभी तक अनुमति नहीं है, या एक उपयोगकर्ता से आता है जो पहले से ही पिछले 5 वर्षों में उत्तर दिया गया है, को अमान्य के रूप में चिह्नित किया गया है।
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>$(function(){function e(e,r){var a="https://api.stackexchange.com/2.2/questions/48476/answers?page="+e.toString()+"&pagesize=100&order=asc&sort=creation&site=codegolf&filter=!YOKGPOBC5Yad160RQxGLP0r4rL";$.get(a,r)}function r(e){if(e.items.forEach(function(e){var r=e.link,a=e.owner.display_name,i=e.body.match(/<h1\b[^>]*>(\d{4}) - (.*?)<\/h1>/);if(i&&i.length>=3)var h=parseInt(i[1]),u=i[2];h&&u&&n>=h&&h>=t&&(!d.hasOwnProperty(e.owner.user_id)||d[e.owner.user_id]-h>=p)?(d[e.owner.user_id]=h,h==t&&--t,o.hasOwnProperty(h)||(o[h]=[]),o[h].push({language:u,user:a,link:r,score:e.score+(n-h)/2})):s.push(' <a href="'+r+'">'+a+"</a>")}),e.has_more)runQuery(++a,r);else{for(var i=n,h=[];o.hasOwnProperty(i);){for(var u=$("<tr>").append($("<td>").text(i.toString())),l=$("<td>"),c=$("<td>"),g=$("<td>"),f=0;f<o[i].length;f++){var v=o[i][f];l.append(v.language),c.append($("<a>").html(v.user).attr("href",v.link)),g.append(v.score),f+1<o[i].length&&(l.append("<br><br>"),c.append("<br><br>"),g.append("<br><br>"))}u.append(l).append(c).append(g),h.push(u),--i}$("#answers").find("tbody").append(h),s.length>0?$("#invalid").append(s):$("#invalid").remove()}}var a=1,n=2015,t=n-1,p=5,o={},s=[],d={};e(1,r)})</script><style>html *{font-family: Helvetica, Arial, sans-serif;}table{border: 4px solid #a4a; border-collapse: collapse;}th{background-color: #a4a; color: white; padding: 8px;}td{border: 1px solid #a4a; padding: 8px;}div{font-size: 75%;}</style><table id='answers'> <tr> <th>Year</th> <th>Language</th> <th>User (answer link)</th> <th>Score</th> </tr></table><div id='invalid'><br>Invalid Answers:</div>