В этой задаче пользователи по очереди выполняют три довольно простых задачи кодирования на языках программирования, которые могут быть постепенно стареющими.
В первом ответе должен использоваться язык программирования, созданный в 2015 году. Если есть хотя бы один ответ из языка 2015 года, в ответах могут использоваться языки программирования, сделанные в 2014 году. Аналогичным образом, ответы, использующие языки 2013 года, не допускаются. пока не будет хотя бы одного ответа 2014 года.
Как правило, использование языка программирования года Y не допускается до тех пор, пока не будет представлен ответ с использованием языка года Y + 1. Единственное исключение - Y = 2015.
Нахождение года вашего языка
Чтобы ответить на этот вопрос, вы должны знать год, в который ваш язык программирования был «сделан». Это, конечно, субъективный термин; некоторые языки были разработаны в течение нескольких лет, и многие языки продолжают обновляться каждый год. Пусть год, в который был «сделан язык», станет первым годом, когда внедрение этого языка появилось в широкой публике.
Например, Python был «сделан в 1991 году» , хотя его разработка продолжалась с 1989 года, а версия 1.0 не была выпущена до 1994 года.
Если этот год все еще субъективен, просто используйте свой здравый смысл, чтобы выбрать наиболее подходящий год. Не увязайте в небольших разногласиях по поводу выбора года. Пожалуйста, предоставьте ссылку на источник, который говорит, когда ваш язык был сделан.
Различные версии или стандарты языка программирования (например, Python 1, 2, 3) считаются одним и тем же языком с одним и тем же начальным годом.
Таким образом, если ваш язык не является 2015 годом, вы можете отправить свой ответ только после того, как будет представлен ответ, языком которого является год, предшествующий вашему.
Если действительный ответ того же года, что и ваш, уже существует, вы можете ответить. Неважно, был ли ваш язык разработан ранее или позже в этом году.
Задачи
Вы должны выполнить Задачи с 1 по 3. Задача 0 не является обязательной.
Эти задачи были более или менее выбраны, чтобы соответствовать трем важным аспектам программирования: обеспечение вывода (Задача 1), циклическое выполнение (Задача 2) и рекурсия (Задача 3).
Задача 0 - История языков (необязательно)
Напишите хотя бы параграф, объясняющий историю выбранного вами языка программирования: кто его разработал, почему, как и т. Д. Это особенно рекомендуется, если вы лично были рядом, когда появился этот язык, и, возможно, даже сыграли свою роль в его разработке. Не стесняйтесь рассказывать личные анекдоты о влиянии языка на вас или вашу работу, или что-то в этом роде.
Если вы слишком молоды, чтобы много знать об истории своего языка без особых исследований, рассмотрите возможность оставить заметку для пожилых пользователей, в которой говорится, что они могут отредактировать ваше сообщение и добавить его в историю из первых рук.
Задача 1 - «Привет, мир!» Вариант
Напишите программу, которая печатает
[language name] was made in [year made]!
в стандартную область вывода вашего языка (стандартный вывод для самых последних языков).
Например, если бы язык был Python, вывод был бы:
Python was made in 1991!
Задача 2 - ASCII Art N
Напишите программу, которая позволяет пользователю вводить нечетное положительное целое число (вы можете предположить, что ввод всегда действителен) и печатает букву 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 - GCD
Напишите программу, которая позволяет пользователю вводить два положительных целых числа (вы можете предполагать, что ввод всегда действителен) и печатает их наибольший общий делитель . Это определяется как наибольшее положительное целое число, которое делит оба числа без остатка. Его можно легко рассчитать с помощью евклидова алгоритма .
Примеры:
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
Таким образом, 0,5 добавляется к подсчету голосов за каждый год до 2015 года, что дает преимущество старым языкам. Представление с самым высоким счетом выигрывает.
Список ответов
В приведенном ниже фрагменте стека перечислены все действительные ответы в зависимости от их языкового года.
Вы должны начать свой пост с этой строки Markdown, чтобы убедиться, что она указана правильно:
#[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>