Dans ce défi, les utilisateurs effectueront à tour de rôle trois tâches de codage assez simples dans des langages de programmation dont l’ancienneté est autorisée.
La première réponse doit utiliser un langage de programmation créé en 2015. Une fois qu'il existe au moins une réponse d'un langage de 2015, les réponses peuvent utiliser des langages de programmation créés en 2014. De même, les réponses utilisant des langages à partir de 2013 ne sont pas autorisées. jusqu'à ce qu'il y ait au moins une réponse en 2014.
En général, l'utilisation d'un langage de programmation à partir de l'année Y n'est pas autorisée tant qu'une réponse utilisant un langage à partir de l'année Y + 1 n'a pas été soumise. La seule exception est Y = 2015.
Trouver l'année de votre langue
Pour répondre à cette question, vous devez connaître l'année de fabrication de votre langage de programmation. Ceci est, bien sûr, un terme subjectif; certaines langues ont été développées au cours de plusieurs années et de nombreuses langues font encore l’objet d’une mise à niveau chaque année. Que l’année de fabrication d’une langue soit la première année d’application de cette langue par le grand public.
Par exemple, Python a été "fabriqué en" 1991 , bien que son développement soit en cours depuis 1989 et que la version 1.0 ne soit sortie qu'en 1994.
Si cette année est encore subjective, utilisez votre bon sens pour choisir l’année la plus appropriée. Ne vous perdez pas dans de légers désaccords sur les choix d’année. Veuillez fournir un lien vers une source indiquant à quelle date votre langue a été créée.
Différentes versions ou normes d'un langage de programmation (par exemple, Python 1, 2, 3) sont considérées comme le même langage avec la même année initiale.
Ainsi, à moins que l'année de votre langue soit 2015, vous ne pouvez soumettre votre réponse qu'une fois qu'une réponse a été soumise, l'année de la langue étant l'année précédant la vôtre.
Si une réponse valide avec la même année que la votre existe déjà, vous pouvez répondre. Peu importe que votre langue ait été développée plus tôt ou plus tard dans l'année.
les tâches
Vous devez exécuter les tâches 1 à 3. La tâche 0 est facultative.
Ces tâches ont été plus ou moins choisies pour correspondre à trois aspects importants de la programmation: fournir une sortie (tâche 1), une boucle (tâche 2) et une récursion (tâche 3).
Tâche 0 - Histoire de la langue (facultatif)
Rédigez au moins un paragraphe expliquant l’historique du langage de programmation que vous avez choisi: qui l’a développé, pourquoi, comment, etc. Ceci est particulièrement encourageant si vous étiez personnellement présent au moment de la création du langage et avez peut-être même joué un rôle dans son développement. N'hésitez pas à raconter des anecdotes personnelles sur l'effet de la langue sur vous ou sur votre travail, ou quelque chose du genre.
Si vous êtes trop jeune pour en savoir plus sur l'histoire de votre langue sans faire beaucoup de recherches, pensez à laisser une note aux utilisateurs plus âgés, leur indiquant qu'ils peuvent modifier votre message et ajouter un historique de première main.
Tâche 1 - "Bonjour le monde!" Une variante
Ecrivez un programme qui imprime
[language name] was made in [year made]!
dans la zone de sortie standard de votre langue (stdout pour les langues les plus récentes).
Par exemple, si le langage était Python, le résultat serait:
Python was made in 1991!
Tâche 2 - Art ASCII N
Ecrivez un programme qui permet à l’utilisateur de saisir un nombre entier positif impair (vous pouvez supposer que la saisie est toujours valide) et d’imprimer une lettre N ASCII créée à l’aide du caractère N
.
Si l'entrée est 1, la sortie est:
N
Si l'entrée est 3, la sortie est:
N N
NNN
N N
Si l'entrée est 5, la sortie est:
N N
NN N
N N N
N NN
N N
Si l'entrée est 7, la sortie est:
N N
NN N
N N N
N N N
N N N
N NN
N N
Le motif continue comme ça. La sortie peut contenir des espaces de fin.
Tâche 3 - GCD
Ecrivez un programme qui permet à l'utilisateur d'entrer deux nombres entiers positifs (vous pouvez en déduire que l'entrée est toujours valide) et affiche son plus grand diviseur commun . Ceci est défini comme le plus grand entier positif qui divise les deux nombres sans laisser de reste. Il peut être facilement calculé en utilisant l' algorithme d'Euclidean .
Exemples:
8
, 12
→ 4
12
, 8
→ 4
3
, 30
→ 3
5689
, 2
→ 1
234
, 876
→6
Vous pouvez utiliser une fonction intégrée, mais essayez de savoir si elle était dans la première version de votre langue. Sinon, essayez de ne pas l'utiliser.
Règles
- Vous pouvez répondre plusieurs fois, mais chaque nouvelle réponse doit utiliser une langue définie au moins 5 ans avant la langue de votre dernière réponse. Donc, si vous avez répondu avec une langue 2015, vous ne pourrez pas répondre jusqu'à ce que 2010 langues soient autorisées. Si vous commencez avec une réponse en 2010, vous ne pouvez pas faire une réponse en 2015 votre deuxième réponse car 2015 n'est pas avant 2010.
- Si possible, écrivez votre code pour qu'il fonctionne dans la toute première version de votre langue (ou dans une version aussi ancienne que possible). (Ce n'est pas une obligation car il peut être difficile de trouver d'anciens compilateurs / interprètes pour certaines langues.)
- Abstenez-vous de publier une langue qui a déjà été publiée, sauf si la réponse affichée contient des erreurs importantes ou si vous avez une façon très différente d'accomplir les tâches.
- Golfer votre code est correct mais pas obligatoire.
- Un retour à la ligne dans la sortie de tout programme convient.
- Pour les tâches 2 et 3, toutes les valeurs d'entrée inférieures à un maximum raisonnable comme 2 16 doivent fonctionner (256 au minimum).
- Votre langue doit avoir existé avant que cette question ne soit posée.
- Les très vieux langages de programmation peuvent avoir des formes d’entrée et de sortie différentes de celles que nous pensons aujourd’hui. C'est bon. Remplissez les tâches au mieux de vos capacités dans le contexte de votre langue.
Notation
Le score de votre soumission est:
upvotes - downvotes + (2015 - languageYear) / 2
Ainsi, 0,5 est ajouté au nombre de votes pour chaque année avant 2015, ce qui donne un avantage aux langues plus anciennes. La soumission avec le score le plus élevé gagne.
Liste de réponses
L'extrait de pile ci-dessous répertorie toutes les réponses valides selon leur année linguistique.
Vous devez commencer votre publication avec cette ligne Markdown pour vous assurer qu'elle est correctement répertoriée:
#[year] - [language name]
Par exemple:
#1991 - Python
Le nom de la langue peut être dans un lien (ce sera le même lien dans la liste de réponses):
#1991 - [Python](https://www.python.org/)
Les réponses qui ne suivent pas ce format, ou qui ont une année qui n’est pas encore autorisée, ou qui proviennent d’un utilisateur qui a déjà répondu au cours des 5 dernières années sont marquées comme non valides.
<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>