TL;DR
AtCoderで頻出のフレーズをプロデルで実装するときのコード例です。
文法は Mopepe51さんの記事が丁寧で詳しいです。
整数Nを受け取る
【N:整数】
コンソールから受け取ってNとする
A1 A2 ⋯ AN
コンソールから受け取って「 」で区切って【A:整数の配列】とする
標準出力する
1を出力して改行する
代入と加減算
「増やす」「減らす」「代入する」を使うよりも数式の代入文を使う方が高速です。
【V:整数】=0
V=V+1
V=V-1
繰り返し
カウンタはi, j, kでもよいですが、木, 林, 森も見やすいと思います。
【木:整数】をLからRまで増やしながら繰り返す
繰り返し終わり
Q個与えられるので
【Q:整数】
コンソールから受け取ってQとする
Q回繰り返す
コンソールから受け取って「 」で区切って【引数:整数の配列】とする
繰り返し終わり
二次元配列の初期化
//100×100の二次元配列の要素を確保する
【木:整数】を1から100まで増やしながら繰り返す
平面(木,100)=0
繰り返し終わり
デバッグについて
AtCoderの判定システムやコードテストでは、コンパイル版が採用されています。コンパイル版の仕様によりコンパイルエラーや実行時エラーのエラーメッセージが理解しづらい場合があります。原因が特定できない場合には、文法に互換性があるスミレ畑でデバッグすることをお勧めします。スミレ畑でもコードテストと同様の機能が利用できます。
注意点
未サポートの文法
AtCoderで導入されているプロデルは、1.9.1182は、大幅改良した1.9.1210以降でサポートした次の文法をサポートしていません。
-
そして
句 -
もし
の省略 - 0を基にする添字
#
パフォーマンス
AtCoderで導入されているプロデルは、次のパフォーマンス上の懸念があります。
- 配列アクセスのパフォーマンスが悪いです。一般的な問題を解く場合には支障ありませんが、計算量が重要になる問題は注意しないとTLEで通過しない可能性があります
- プラグインの読み込みのために実行時にも初期化におそらく100~200msほど掛かっています
既知のバグ
AtCoderで導入されているバージョンでは、次の機能がフルコンパイルに対応していため、実行できません。
文字列の~文字目
代わりに、取り出す手順を使います。
内容は「こんにちは プロデル」
内容の3文字目から1文字取り出して出力する
データ型の異なる数値の比較演算
データ型の異なる数値の比較が正しくできない場合があります。
「整数」名詞手順で型変換する必要がある場合があります。
【I:整数】=0
【F:浮動小数】=0
//もしI=Fなら「同じ」を出力する
もしI=Fの整数なら「同じ」を出力する
フィードバックについて
プロデルは、コミュニティが小さいので、バグフィックスが活発ではありません。バグなどお気づきの際は、具体的で建設的なフィードバックをお願いします。できる範囲で対応します。
またプロデルは、コンパイラ・開発環境・ドキュメント・ブログ記事をすべてワンオペで作業しています。また、一般のプログラミング言語にあるような、書籍の印税や記事執筆の報酬、アフィリエイト、スポンサーなどの収入は現在一切得ていません。ご利用はセルフサービスの精神でお願いいたします。
終わりに
パフォーマンスの懸念点などは、公式サイトで公開中の最新版で、改善しています。アップデートが適用されることを待つばかりです。
気がついたことがあれば加筆していきます。