WIP Nim入門AtCoder Programming Guide for beginners (APG4b) 偉大なる本家様
参考にしたサイト様
何か問題があれば即削除します。
第1章について
第1章では、プログラムの基本的な文法について説明します。
第1章をマスターすれば、理論上は全ての「計算処理」を行うプログラムを書ける程の知識が身につきます。
プログラミング言語
このページではNim言語を用います。
プログラムの実行方法
問題
提出練習
まず、提出欄の言語で「Nim (Nim 1.6.14)」を選択します。
変更したら次のコードをコピー&ペーストします
code:nim
echo "Hello, world!"
出来たら、提出ボタンを押してください。
ACと表示された場合、提出成功です。
キーポイント
よく使うライブラリはimportしておくと便利。
import algorithm,sequtils,tables,math,sets,strutils,sugar,heapqueue,deques,bitops
↑これくらい入れておくと基本的には大丈夫。
{.warning[UnusedImport]: off.}を書くと、使っていなくても警告が出なくなる。
Nimはmain関数を書かなくても動作する。
echo "文字列"で文字列を出力できる。
#や#[]#でコメントを書ける。
出力
最初に提出したプログラムを見てみましょう。
このプログラムは「Hello, world!」という文字列を出力するプログラムです。
code:nim
echo "Hello, world!"
code:実行結果
Hello, world!
echo
Nimで文字列を出力するには、echoを使います。
出力する文字列を指定している部分は"Hello, world!"の部分です。
文字列を扱うときは、" "で囲う必要があります。また、改行は自動で行われます。
セミコロン
C++では行の最後にセミコロンが必要ですが、Nimでは必要ありません。
複数行の処理を一行に書きたいときにセミコロンを用いることができますが、ここでは扱いません。
別の文字列を出力
別の文字列を出力したい場合、次のように" "の中身を変えます
code:nim
echo "こんにちは世界"
code:実行結果
こんにちは世界
複数の出力
出力を複数行うこともできます。
code:nim
echo "a"
echo "b"
echo "c","d"
code:実行結果
a
b
cd
echoでは自動で改行が行われます。
また、複数の文字列を与えるとつながってcdと出力されます。
数値の出力
数値を出力するときは、" "を使わずに、直接書くことでも出力できます。
code:nim
echo 2525
code:実行結果
2525
コメント
コメントは人間が「プログラムがどういう動作をしているか」等のメモ書きをプログラム中に残しておくための機能です。
プログラムとしての意味はないので、書いても動作に影響はありません。
例を見てみてみましょう。
code:nim
echo "Hello, world!" # Hello, world!と表示
コメント]#
code:実行結果
Hello, world!
コメントには二種類の書き方があります。
table:コメントの書き方
書き方 コメントになる場所
# 同じ行の#を書いた場所よりも後
# # #[ と ]#の間
問題文
次の出力をするプログラムを書いてください。
code:実行結果
こんにちは
AtCoder
回答プログラムの作成方法
回答プログラムは、次のサンプルプログラムを改変して作成することを推奨します。
プログラムをコピーし、コードテストのページに貼り付けましょう。
code:nim
echo "Hello, world!"
echo "Hello, AtCoder!"
echo "Hello, Nim!"
このサンプルプログラムを実行すると次のように出力されます
code:実行結果
Hello, world!
Hello, AtCoder!
Hello, Nim!
これを次の出力を行うようにプログラムを書き換え、正しく動作することが確認できたら提出しましょう。
code:正しい実行結果
こんにちは
AtCoder
キーポイント
NimはPythonと同じく、スペース・改行・インデントに意味がある
NimはC++と同じく、コンパイルエラーが発生する
-d:debugを付けてコンパイルをすると、エラーがわかりやすくなる
プログラムの書き方
NimはPythonと同じく、インデントでブロックを表現します。
なお、pythonと使ってTABを使うとコンパイルエラーになるので注意してください。(一般的なエディタを使っていればスペースが入ると思いますが...)
プログラムのエラー
ここの章はNimに関する事項でないため省略します。本家をご覧ください。
問題文
A君は次の出力をするプログラムを作ろうとしました。
code:実行結果
いつも2525
AtCoderくん
しかし、書いたプログラムを実行してみるとエラーが発生しました。
A君が書いたプログラムのエラーを修正し、正しく動作するようにしてください。
A君が書いたプログラム
code:nim
echo "いつも,252
echo "AtCoderくん"
code:標準エラー出力
Main.nim(1, 6) Error: closing " expected
この問題の取り組み方
Aくんのプログラムには複数のエラーが含まれています。
表示されているエラーを直し、再度コンパイルしてみて、別のエラーが出てきたらまた直すことを繰り返してみましょう。