Nimについてのソースコードの解説を書こうと思ったのですが、競技プログラミングの練習(いつ実際に競技プログラミングのコンテスト参加するのかは未定…)のために競技プログラミングの鉄則 演習問題集の問題をNimで解いて解説いこうと思います。
ブログの記事にもなりますし私の競技プログラミングの練習にもなりますので一石二鳥。 ちなみに私は競技プログラミングをしたこともないですのでソースコードについては暖かい目で見ていただければと思います。
A01 - The First Problem
整数値を受け取り二乗して表示させる問題ですね。
ソースコードの全文
import std/strutils proca01() = let n = stdin.readLine().parseInt() echo n * n a01()``` ### ソースコードの解説
import std/strutils
- この行は、Nimの標準ライブラリ`strutils`をインポートしています。`strutils`は文字列を操作するための様々な関数を提供します。今回は、文字列を整数に変換するために使用します。
proc a01() = let n = stdin.readLine().parseInt() echo n * n
- `proc a01() =` は、`a01`という名前のプロシージャ(関数)を定義しています。pythonでいうこところの `def ` に相当します。 - このプロシージャには引数がなく、戻り値の型も指定されていません(デフォルトで`void`、つまり戻り値なし)。 - `let n = stdin.readLine().parseInt()` は、以下の処理を行います: - `stdin.readLine()` は、標準入力から1行の文字列を読み込みます。 - `parseInt()` は、その文字列を整数に変換します。 - `let n =` は、変数`n`を定義し、上記の整数をその変数に代入します。 - `echo n * n` は、`n`の値の二乗を計算し、その結果を標準出力に表示します。
a01()
- 最後の行は、定義したプロシージャ`a01`を呼び出しています。これにより、プログラムが実行され、標準入力から読み込んだ整数の二乗が計算されて出力されます。