From 45ebb5a12e9a0aebc09abffd3489898ac5de4c43 Mon Sep 17 00:00:00 2001 From: yas-ako <105139975+yas-ako@users.noreply.github.com> Date: Thu, 30 Apr 2026 08:06:26 +0900 Subject: [PATCH] =?UTF-8?q?=E6=9C=80=E4=BD=8E=E9=99=90=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E3=81=99=E3=81=B9=E3=81=8D=E5=86=85=E5=AE=B9=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cpp/chapter-3/1.md | 57 ++++++++----------- docs/cpp/chapter-3/2.md | 10 ++-- docs/cpp/chapter-3/3.md | 6 +- docs/cpp/chapter-3/hello-world.cpp | 7 +++ docs/cpp/chapter-3/index.md | 4 +- docs/cpp/chapter-3/problems/4bit.md | 2 +- docs/cpp/chapter-3/problems/index.md | 8 +-- docs/cpp/chapter-3/problems/multiplication.md | 2 +- docs/cpp/chapter-3/problems/sum.md | 4 +- 9 files changed, 50 insertions(+), 50 deletions(-) create mode 100644 docs/cpp/chapter-3/hello-world.cpp diff --git a/docs/cpp/chapter-3/1.md b/docs/cpp/chapter-3/1.md index 528f0142..69bac847 100644 --- a/docs/cpp/chapter-3/1.md +++ b/docs/cpp/chapter-3/1.md @@ -1,11 +1,11 @@ -# [WIP] 3.1 Hello, traP! の解説 +# 3.1 Hello, traP! の解説 おさらい:第1章のコード -<<<@/text/chapter-2/hello-world.cpp{cpp:line-numbers} +<<<@/cpp/chapter-3/hello-world.cpp{cpp:line-numbers} 1行目から順に、まずは「用語」を説明していく。 -新しい単語がどんどん出てくるが、単語の説明は 2.1.1. 以降で行う。今は単語を頭の片隅に入れておくレベルで良いだろう。 +新しい単語がどんどん出てくるが、単語の説明は 3.1.1. 以降で行う。今は単語を頭の片隅に入れておくレベルで良いだろう。 ```cpp:no-line-numbers #include @@ -32,7 +32,7 @@ int main() { コンソールに `Hello traP!` を出力する。 `"` で囲うのは、これが文字列なのか、命令なのかを区別するため。(`VSCode`を使っていれば `"Hello traP!"` -の部分だけ色分けされているはず。) `endl` についても 2.1.1. で解説する。 +の部分だけ色分けされているはず。) `endl` についても 3.1.2. で解説する。 ```cpp:no-line-numbers // Hello, traP を出力する @@ -46,9 +46,11 @@ int main() { 波括弧を閉じている。 -## 2.1.0. コメント +## 3.1.1. コメント -`//` と書くと、その行の `//` 以降の部分はコメントになり、ブログラム実行時には無視される。 +<<<@/cpp/chapter-3/hello-world.cpp{6 cpp:line-numbers} + +`//` と書くと、その行の `//` 以降の部分はコメントになり、プログラム実行時には無視される。 ::: tip プログラムの先頭に `//` を付けてコメントにする事をコメントアウトする、と呼ぶことがある。 @@ -56,15 +58,11 @@ int main() { プログラムがどのような動作をするのか、どういう目的のプログラムなのか、を簡易的に記述すると良い。見たら分かるというレベルになれば、コメントを書く必要はない。 -```cpp:no-line-numbers - // Hello, traP を出力する -``` - -## 2.1.1. cout +## 3.1.2. cout -<<<@/text/chapter-2/hello-world.cpp{5} +<<<@/cpp/chapter-3/hello-world.cpp{5} -`cout` はコンソール(画面)に文字列を出力する命令である。C++ 特有の記法で、 `<<` が ← みたいなものだと考えると良い。`cout` +`cout` はコンソール(画面)に文字列を出力する命令である。C++特有の記法で、 `<<` が ← みたいなものだと考えると良い。`cout` に向かって文字列を送信しているイメージ。複数つなげることもできる。(以下の例を参照) ```cpp:no-line-numbers @@ -73,7 +71,7 @@ int main() { また、`endl` は改行の命令を意味する。 -### 2.1.1.1. エスケープシーケンス +:::: tip エスケープシーケンス 出力に `"` を含めたい場合、 `cout << "Hello, "traP"!" << endl;` と記述してもコンパイルができない。これは `"Hello, "` で文字列が区切られてしまっているためである。 これを回避するために、(Windows: ¥ キー, Mac: Option (⌥) キーを推しながら ¥ キー) `\` という文字を使って `\"` と書くことで、 `"` を出力することができる。 @@ -110,19 +108,21 @@ traP! 文字列中では `//` を書いてもコメントアウトされない。 ::: +:::: -## 2.1.2. セミコロン -C++ では、`;` を多用する。`;` は「命令の区切り」を示す。C++ +## 3.1.3. セミコロン + +C++では、`;` を多用する。`;` は「命令の区切り」を示す。C++ においては、関数を呼び出すときや、次に出てくる「変数」の宣言時など、各命令の終わりには `;` を記述しなければならない。 ::: tip 最終的にはコンピューターが機械語に変換する必要があり、その際に命令の区切りをはっきりさせるために `;`を使うと考えると良い。 ::: -## 2.1.3. include 命令 +## 3.1.4. include命令 -<<<@/text/chapter-2/hello-world.cpp{1 cpp:line-numbers} +<<<@/cpp/chapter-3/hello-world.cpp{1 cpp:line-numbers} `#include` は、外部の関数(やその他もろもろ)が実装されているファイルを取り込んで、使えるようにする命令である。 @@ -132,26 +132,19 @@ C++ では、`;` を多用する。`;` は「命令の区切り」を示す。C+ 自分一人で一から作る事は非常に難しいので、予め用意されたソースコードを適宜用いてプログラミングをするのである。 -## 2.1.4. using namespace std +## 3.1.5. using namespace std -<<<@/text/chapter-2/hello-world.cpp{2 cpp:line-numbers} +<<<@/cpp/chapter-3/hello-world.cpp{2 cpp:line-numbers} `cout` と記述しているが、本来ならば `std::cout` と書く必要がある。 `std::` が何を意味しているかは深くは解説しないが(std = -standard くらいは知っても良いだろう)、毎回`std::` と書くのは少し不便なので、これを書かない(省略する)という宣言をしている。 - -## 2.1.5. コメント - -<<<@/text/chapter-2/hello-world.cpp{6 cpp:line-numbers} - -行の先頭に `//` と書く事でその行をコメントにすることができる。コメントはコンパイル時には無視される。 -メモに使うと良い。 +standard くらいは知っても良いだろう)、毎回`std::`と書くのは少し不便なので、これを書かない(省略する)という宣言をしている。 -## 2.1.6. main 関数 +## 3.1.6. main関数 -<<<@/text/chapter-2/hello-world.cpp{4 cpp:line-numbers} +<<<@/cpp/chapter-3/hello-world.cpp{4 cpp:line-numbers} -コンピューターは main 関数 を実行する。main 関数の中身がプログラムのメインの部分と捉えても良い。 -「関数」についての詳細は V 章で扱う。 +コンピューターはmain関数を実行する。main関数の中身がプログラムのメインの部分と捉えても良い。 +「関数」についての詳細は5章で扱う。 ソースコードの中で `int main()` の後の `{` と、最終行の `}` は対応していて、 `{ }` の内側が main 関数の内容である。 diff --git a/docs/cpp/chapter-3/2.md b/docs/cpp/chapter-3/2.md index 97ce8c90..62d1351b 100644 --- a/docs/cpp/chapter-3/2.md +++ b/docs/cpp/chapter-3/2.md @@ -1,4 +1,4 @@ -# [WIP] 3.2 int型変数 +# 3.2 int型変数 ```cpp #include @@ -56,7 +56,7 @@ cout << x << endl; `C++`では、「型」が異なる値と変数について一部の場合を除き、値をそのまま変数に代入することはできない。例えば、`int`型の変数に文字列(=`string`型とよばれている)を入れるような命令はエラーとなる。 ::: -## 2.2.1. int型 の計算 +## 3.2.1. int型の計算 パソコンは計算機なので、当然計算ができる。 @@ -92,7 +92,7 @@ cout << x % y << endl; である。 `+`, `-`, `*`, `/`, `%` 等のような記号を **演算子** と呼ぶ。 ここで、**`int`型同士の割り算について、結果は`int`型となる**。(文字通り「商」を取る) -小数は第3章で扱う。 +小数は後の章で扱う。 また、値を代入することもできる。 @@ -136,7 +136,7 @@ cout << x << endl; 他にも `-=`, `*=`, `/=`, `%=` が使える。 -## 2.2.2. オーバーフロー +## 3.2.2. オーバーフロー オタクというのはでかい数字が大好きなので、 @@ -155,6 +155,6 @@ cout << yen << endl; ::: tip オーバーフローに関連して、ゲーム「パズル&ドラゴンズ」において 2021 年まで各キャラクターが出せる最大ダメージは2,147,483,647ダメージであったという話がある。これはゲームが `int` 型を用いていたためについていた制限である。 -なお、2021年のアップデートでダメージ上限が変更された。これはより大きい整数を扱える型 (C++ で言うところの `long long`型 )に変えられたからだそうだ。 +なお、2021年のアップデートでダメージ上限が変更された。これはより大きい整数を扱える型 (C++で言うところの `long long`型 )に変えられたからだそうだ。 ::: diff --git a/docs/cpp/chapter-3/3.md b/docs/cpp/chapter-3/3.md index 1cdf9e93..18662f5f 100644 --- a/docs/cpp/chapter-3/3.md +++ b/docs/cpp/chapter-3/3.md @@ -1,6 +1,6 @@ -# [WIP] 3.3 標準入出力 +# 3.3 標準入出力 -cin 命令を用いると、コンソールから入力し、変数に代入することができる。例えば、与えられた値を10倍するコードは以下の様になる。 +cin命令を用いると、コンソールから入力し、変数に代入することができる。例えば、与えられた値を10倍するコードは以下の様になる。 ```cpp:line-numbers #include @@ -14,7 +14,7 @@ int main() { } ``` -::: tip II 章のまとめ +::: tip 3章のまとめ ```cpp:line-numbers #include diff --git a/docs/cpp/chapter-3/hello-world.cpp b/docs/cpp/chapter-3/hello-world.cpp new file mode 100644 index 00000000..47998551 --- /dev/null +++ b/docs/cpp/chapter-3/hello-world.cpp @@ -0,0 +1,7 @@ +#include +using namespace std; + +int main() { + cout << "Hello, traP!" << endl; + // Hello, traP を出力する +} \ No newline at end of file diff --git a/docs/cpp/chapter-3/index.md b/docs/cpp/chapter-3/index.md index 152cca04..bc71e4bf 100644 --- a/docs/cpp/chapter-3/index.md +++ b/docs/cpp/chapter-3/index.md @@ -1,5 +1,5 @@ -# [WIP] 3. 変数と入出力 +# 3. 変数と入出力 -第二章では、第一章の最後に登場したソースコードを見ながらプログラミングの基本的な構造・用語について解説します。 +第三章では、第一章の最後に登場したソースコードを見ながらプログラミングの基本的な構造・用語について解説します。 また、後半では「変数」「入出力」を扱います。 diff --git a/docs/cpp/chapter-3/problems/4bit.md b/docs/cpp/chapter-3/problems/4bit.md index 98639f33..836b8e3d 100644 --- a/docs/cpp/chapter-3/problems/4bit.md +++ b/docs/cpp/chapter-3/problems/4bit.md @@ -1,4 +1,4 @@ -# 2-B1. 4bit +# 3-B1. 4bit 入力から$0 <= n < 16$の整数値を受け取り、2進数で表記しよう。 diff --git a/docs/cpp/chapter-3/problems/index.md b/docs/cpp/chapter-3/problems/index.md index 71db58f5..563748ef 100644 --- a/docs/cpp/chapter-3/problems/index.md +++ b/docs/cpp/chapter-3/problems/index.md @@ -1,5 +1,5 @@ -# [WIP] 練習問題 - Chapter 3 +# 練習問題 - Chapter 3 -- [2-A1. Multiplication](multiplication) -- [2-B1. 4bit](4bit) -- [2-B2. Sum](sum) +- [3-A1. Multiplication](multiplication) +- [3-B1. 4bit](4bit) +- [3-B2. Sum](sum) diff --git a/docs/cpp/chapter-3/problems/multiplication.md b/docs/cpp/chapter-3/problems/multiplication.md index dc3d3f64..ffeeb141 100644 --- a/docs/cpp/chapter-3/problems/multiplication.md +++ b/docs/cpp/chapter-3/problems/multiplication.md @@ -1,4 +1,4 @@ -# 2-A1. Multiplication +# 3-A1. Multiplication cinでint型の整数を2つ受け取って、その積をターミナルに出力しよう。 diff --git a/docs/cpp/chapter-3/problems/sum.md b/docs/cpp/chapter-3/problems/sum.md index 0b82538e..5a845b19 100644 --- a/docs/cpp/chapter-3/problems/sum.md +++ b/docs/cpp/chapter-3/problems/sum.md @@ -1,6 +1,6 @@ -# 2-A2. Sum of n +# 3-B2. Sum of n -cin で自然数 $n$ を受け取って、$1$ から $n$ までの和を出力するプログラムを作成してください。 +cinで自然数 $n$ を受け取って、$1$ から $n$ までの和を出力するプログラムを作成してください。 ### 入力/出力例