මෙම අභියෝගයේදී, ක්රමයෙන් වයස්ගත වීමට ඉඩ ඇති ක්රමලේඛන භාෂාවලින් තරමක් සරල කේතීකරණ කාර්යයන් තුනක් සම්පූර්ණ කිරීමට පරිශීලකයින් පියවර ගනු ඇත.
පළමු පිළිතුර 2015 වර්ෂයේ සාදන ලද ක්රමලේඛන භාෂාවක් භාවිතා කළ යුතුය. 2015 භාෂාවෙන් අවම වශයෙන් එක් පිළිතුරක් ලැබුණු පසු, පිළිතුරු 2014 දී සාදන ලද ක්රමලේඛන භාෂාවන් භාවිතා කළ හැකිය. ඒ හා සමානව, 2013 සිට භාෂා භාවිතා කරන පිළිතුරු සඳහා අවසර නැත. අවම වශයෙන් 2014 පිළිතුරක් ලැබෙන තුරු.
පොදුවේ ගත් කල, Y + 1 වර්ෂයේ සිට භාෂාවක් භාවිතා කරමින් පිළිතුරක් ඉදිරිපත් කරන තුරු Y වර්ෂයේ සිට ක්රමලේඛන භාෂාවක් භාවිතා කිරීමට අවසර නැත. එකම ව්යතිරේකය 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]!
ඔබගේ භාෂාවේ සම්මත නිමැවුම් ප්රදේශයට (නවතම භාෂා සඳහා stdout).
උදාහරණයක් ලෙස, භාෂාව පයිතන් නම්, ප්රතිදානය වනුයේ:
Python was made in 1991!
කාර්යය 2 - ASCII Art N.
අමුතු ධනාත්මක නිඛිලයකින් පරිශීලකයාට ඇතුළු වීමට ඉඩ සලසන වැඩසටහනක් ලියන්න (ආදානය සැමවිටම වලංගු යැයි ඔබ සිතිය හැකිය), සහ අක්ෂර භාවිතා කරමින් සාදන ලද 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 කට පෙර සාදන ලද භාෂාවක් භාවිතා කළ යුතුය. එබැවින් ඔබ 2015 භාෂාවෙන් පිළිතුරු දුන්නේ නම්, 2010 භාෂා වලට ඉඩ දෙන තෙක් ඔබට නැවත පිළිතුරු දිය නොහැක. ඔබ 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>