이 과제에서 사용자는 점차 더 오래된 프로그래밍 언어로 세 가지 매우 간단한 코딩 작업을 차례대로 완료하게됩니다.
첫 번째 답변은 2015 년에 작성된 프로그래밍 언어를 사용해야합니다. 2015 년 언어에서 하나 이상의 답변이 있으면 2014 년에 작성된 프로그래밍 언어를 사용할 수 있습니다. 마찬가지로 2013 년의 언어를 사용하는 답변은 허용되지 않습니다. 적어도 2014 년 답변이 될 때까지
일반적으로 Y + 1 년의 언어를 사용한 답변이 제출 될 때까지 Y 년의 프로그래밍 언어를 사용할 수 없습니다. 유일한 예외는 Y = 2015입니다.
언어의 해 찾기
이 질문에 대답하려면 프로그래밍 언어가 "제조 된"연도를 알아야합니다. 물론 이것은 주관적인 용어입니다. 일부 언어는 여러 해에 걸쳐 개발되었으며 매년 많은 언어가 계속 업그레이드되고 있습니다. 언어가 "만들어진"연도가 일반 대중에게 해당 언어의 구현이 처음으로 등장하게하십시오.
예를 들어, 파이썬은 "만들어"한 1991 개발은 1989 년부터 진행되고 있었고, 버전 1.0 1994 년까지 발표되지 않았다 불구하고.
올해가 여전히 주관적이라면, 상식을 사용하여 가장 적합한 연도를 선택하십시오. 연도 선택에 대한 약간의 의견 차이에 얽매이지 마십시오. 귀하의 언어가 언제 만들어 졌는지를 알려주는 링크를 제공하십시오.
프로그래밍 언어 (예 : Python 1, 2, 3)의 다른 버전 또는 표준은 동일한 초기 연도를 가진 동일한 언어로 계산됩니다.
따라서 귀하의 언어 연도가 2015 년이 아닌 한, 귀하의 언어 연도가 귀하의 직전 연도 인 답변이 제출 된 후에 만 답변을 제출할 수 있습니다.
귀하와 같은 연도의 유효한 답변이 이미 존재하는 경우 답변 할 수 있습니다. 귀하의 언어가 그해 초에 개발되었는지는 중요하지 않습니다.
작업
작업 1-3을 완료해야합니다. 작업 0은 선택 사항입니다.
이러한 작업은 프로그래밍의 세 가지 중요한 측면 인 출력 제공 (작업 1), 반복 (작업 2) 및 재귀 (작업 3)에 해당하도록 다소 선택되었습니다.
작업 0-언어 기록 (선택 사항)
선택한 프로그래밍 언어의 역사를 설명하는 단락을 작성하십시오. 언어를 개발 한 사람, 이유, 방법 등. 언어가 등장했을 때 개인적으로 주변에 있었고 심지어 개발에 참여한 경우 특히 권장됩니다. 언어가 당신이나 당신의 직업 또는 그와 유사한 것에 미치는 영향에 대한 개인적인 일화를 자유롭게 느끼십시오.
많은 연구를하지 않고 언어의 역사에 대해 많이 알기에는 너무 어리다면, 나이 많은 사용자에게 게시물을 편집하고 직접 역사에 추가 할 수 있다는 메모를 남기십시오.
작업 1- "Hello, World!" 다른
인쇄하는 프로그램 작성
[language name] was made in [year made]!
언어의 표준 출력 영역 (가장 최근의 언어에 대해서는 표준)으로
예를 들어, 언어가 Python 인 경우 출력은 다음과 같습니다.
Python was made in 1991!
작업 2-ASCII Art N
사용자가 홀수 양의 정수로 입력 할 수있는 프로그램을 작성하고 (입력이 항상 유효하다고 가정 할 수 있음) 문자를 사용하여 작성된 ASCII 아트 문자 N을 인쇄합니다 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- GCD
사용자가 두 개의 양의 정수를 입력 할 수있게하는 프로그램을 작성하고 (입력이 항상 유효하다고 가정 할 수 있음) 최대 공약수를 인쇄합니다 . 이것은 나머지를 남기지 않고 두 숫자를 나누는 가장 큰 양의 정수로 정의됩니다. 유클리드 알고리즘을 사용하여 쉽게 계산할 수 있습니다 .
예 :
8
, 12
→ 4
12
, 8
→ 4
3
, 30
→ 3
5689
, 2
→ 1
234
, 876
→6
내장 함수를 사용할 수 있지만 언어의 첫 번째 버전에 있는지 확인하십시오. 그렇지 않으면 사용하지 마십시오.
규칙
- 여러 번 답변 할 수 있지만, 각각의 새 답변은 마지막 답변에서 해당 언어보다 5 년 이상 전에 작성된 언어를 사용해야합니다. 따라서 2015 년 언어로 답변 한 경우 2010 년 언어가 허용 될 때까지 다시 답변 할 수 없습니다. 2010 년 답변으로 시작하면 2015 년이 2010 년 이전이 아니므로 2015 년 답변을 두 번째 답변으로 만들 수 없습니다.
- 가능하면 언어의 첫 번째 버전 (또는 가능한 한 오래된 버전)에서 작동하도록 코드를 작성하십시오. (일부 언어의 오래된 컴파일러 / 통역사를 찾는 것이 어려울 수 있으므로 이것은 필수 사항이 아닙니다.)
- 게시 된 답변에 중대한 오류가 있거나 작업을 수행하는 방법이 매우 다른 경우가 아니면 이미 게시 된 언어를 게시하지 마십시오.
- 코드를 골퍼하는 것은 좋지만 필수는 아닙니다.
- 모든 프로그램의 출력에서 후행 줄 바꿈이 좋습니다.
- 작업 2와 3의 경우 2 16 과 같이 합리적인 최대 값 이하의 모든 입력 값 이 작동해야합니다 (최소한 256).
- 이 질문을 게시하기 전에 귀하의 언어가 존재해야합니다.
- 아주 오래된 프로그래밍 언어는 오늘날 우리가 생각하는 것과 다른 형태의 입력 및 출력을 가질 수 있습니다. 이건 괜찮아. 귀하의 언어 상황에서 귀하의 능력을 최대한 발휘하기 위해 과제를 완료하십시오.
채점
제출 점수는 다음과 같습니다.
upvotes - downvotes + (2015 - languageYear) / 2
따라서 2015 년 이전 매년 투표 수에 0.5가 추가되어 이전 언어에 유리합니다. 가장 높은 점수를받은 제출이 승리합니다.
답변 목록
아래의 스택 스 니펫은 언어 연도에 따라 유효한 모든 답변을 나열합니다.
이 마크 다운 줄로 게시물을 시작해야 올바로 표시됩니다.
#[year] - [language name]
예를 들면 다음과 같습니다.
#1991 - Python
언어 이름은 링크에있을 수 있습니다 (답변 목록에서 동일한 링크가 됨).
#1991 - [Python](https://www.python.org/)
이 형식을 따르지 않거나 아직 허용되지 않은 1 년이 있거나 지난 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>