Qiita Engineer Festa 2024(キータ・エンジニア・フェスタ 2024) - Qiita
において、約1ヶ月で38記事という大量の記事の投稿を要求されることがわかった。
そこで、あまりコストをかけずに記事数を稼ぐ方法を考えた結果、「Welcome to AtCoder を様々な言語で解く」ことを思いついた。
単に解くだけでなく、使用する言語仕様の解説を入れれば、記事として一応成立するだろう。
Welcome to AtCoder
PracticeA - Welcome to AtCoder
Welcome to AtCoder では、以下の形式で整数 $a$, $b$, $c$ および文字列 $s$ が入力として与えられる。
a
b c
s
この入力をもとに、与えられた整数の和 $sum = a + b + c$ および文字列 $s$ を、以下の形式で出力することが求められる。
sum s
今回用いるプロデルの機能
変数宣言
プロデルで始める日本語プログラミング言語入門(#2) 「値を記憶する変数」 - プロデルブログ
変数と代入文 - プロデル言語仕様
プロデルでは、変数名に漢字・ひらがな・カタカナ・英数字(全角・半角)を使用できる。
変数を最初に使う場所でその変数名を 【】
で囲むことで、変数を宣言できる。
【】
を使わずに変数名を書いても変数を使えることもあるが、「てにはへ」を含む変数名などの宣言しないと使えない変数名があるため、宣言はした方が無難である。
変数宣言で 【変数名:型名】
と書くことで、型を指定して変数を宣言できる。
今回は、「整数」型を用いる。
計算と代入
式 - プロデル言語仕様
数値 - プロデル言語仕様
変数と代入文 - プロデル言語仕様
+
、-
、()
などを用いた式を書くことで、計算を行うことができる。
(変数)は、(値)
と書くことで、「変数」に「値」を代入できる。
数値型の変数に文字列型の値を代入すると、自動でその文字列が表す数値に変換される。
標準入出力
コンソールから受け取って(格納先の変数)とする
と書くことで、標準入力から1行読み込み、結果の文字列を指定した変数に代入できる。
代入する文字列に末尾の改行文字は含まれない。
(値)をコンソールへ表示して改行する
と書くことで、「値」を標準出力に出力し、さらに改行を出力できる。
文字列操作
文字列 - プロデルマニュアル
文字列を操作する - プロデル逆引き辞典
文字列関連操作 - プロデルマニュアル
「」
で囲むことで、文字列を表現できる。
「文字列[値]文字列」
のように文字列の中に値 (変数や式など) を []
で囲んで書くことで、その値を文字列中に展開できる。
以下の操作において、文字列の最初の文字は1文字目である。(すなわち、1-origin)
(探される文字列)から(探す文字列)を探して(変数)とする
と書くことで、「探される文字列」の中で最初に「探す文字列」が始まる場所の位置を表す数値を「変数」に格納できる。
JavaScriptでいうと 変数 = 探される文字列.indexOf(探す文字列) + 1;
である。
(文字列)の先頭から(量)文字取り出して(変数)とする
と書くことで、「文字列」の最初の「量」文字の部分を「変数」に格納できる。
JavaScriptでいうと 変数 = 文字列.substring(0, 量 - 1);
である。
(変数)は、(文字列)の(位置)文字目以降
と書くことで、「文字列」の「位置」文字目とそれより後の部分を「変数」に格納できる。
JavaScriptでいうと 変数 = 文字列.substring(位置 - 1);
である。
この「文字目以降」は、今回紹介した他の操作と違って名詞手順というものであり、他の操作とは使い方が異なる。
今回は、代入操作と組み合わせた形で紹介している。
提出コード
コンソールから受け取って【a:整数】とする
コンソールから受け取って【数値2個】とする
コンソールから受け取って【s】とする
数値2個から「 」を探して【空白位置】とする
数値2個の先頭から(空白位置-1)文字取り出して【b:整数】とする
【c:整数】は、数値2個の(空白位置+1)文字目以降
【和】は、a+b+c
「[和] [s]」をコンソールへ表示して改行する