From 5bb5b68794cabedb2bf1e6a95c7b1c17d7d5011c Mon Sep 17 00:00:00 2001 From: rurun Date: Tue, 5 May 2026 23:31:04 +0900 Subject: [PATCH 01/15] =?UTF-8?q?=E3=82=B5=E3=82=A4=E3=83=89=E3=83=90?= =?UTF-8?q?=E3=83=BC=E3=81=AE=E8=A8=AD=E5=AE=9A=E3=81=AE=E8=BB=BD=E5=BE=AE?= =?UTF-8?q?=E3=81=AA=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/.vitepress/config.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 9d2cdf42..e5e19105 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -31,10 +31,6 @@ export default withMermaid({ sidebar: { "/cpp/": [ - { - text: "2025年度版テキスト", - link: "/text/chapter-0/", - }, { text: "はじめに", link: "/cpp/preface/", @@ -47,8 +43,8 @@ export default withMermaid({ text: "1. 環境構築", link: "/cpp/chapter-1/", items: [ - { text: "1-A. Macの環境構築", link: "/cpp/chapter-1/1-A" }, - { text: "1-B. Windowsの環境構築", link: "/cpp/chapter-1/1-B" }, + { text: "1.1-A. Macの環境構築", link: "/cpp/chapter-1/1-A" }, + { text: "1.1-B. Windowsの環境構築", link: "/cpp/chapter-1/1-B" }, ], }, { @@ -75,7 +71,7 @@ export default withMermaid({ text: "3. 変数と入出力", link: "/cpp/chapter-3/", items: [ - { text: "3.1 Hello, traP! の解説", link: "/cpp/chapter-3/1" }, + { text: "3.1 Hello, traP!の解説", link: "/cpp/chapter-3/1" }, { text: "3.2 int型変数", link: "/cpp/chapter-3/2" }, { text: "3.3 標準入出力", link: "/cpp/chapter-3/3" }, { @@ -93,6 +89,10 @@ export default withMermaid({ }, ], }, + { + text: "2025年度版テキスト", + link: "/text/chapter-0/", + }, ], "/text/": [ { From a25c6c3d080ec69daa728c875e0af2f7ff5ed085 Mon Sep 17 00:00:00 2001 From: rurun Date: Tue, 5 May 2026 23:31:55 +0900 Subject: [PATCH 02/15] =?UTF-8?q?chapter-2=20index.md=E3=81=AE=E6=96=87?= =?UTF-8?q?=E7=AB=A0=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cpp/chapter-2/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cpp/chapter-2/index.md b/docs/cpp/chapter-2/index.md index 9971d5a1..5baefc4f 100644 --- a/docs/cpp/chapter-2/index.md +++ b/docs/cpp/chapter-2/index.md @@ -11,4 +11,4 @@ prev: 講習後に環境構築の続きをするようにお願いします。 ::: -この章ではまず、「プログラミングとは何か」という話をした後に、第1章で作成した環境を使って、 +この章ではまず、「プログラミングとは何か」という話をした後に、第1章で作成した環境を使って、プログラムを動かしてみよう。 From 5e042578dcd80c4b0f6ccc100635b44dc5090559 Mon Sep 17 00:00:00 2001 From: rurun Date: Tue, 5 May 2026 23:39:08 +0900 Subject: [PATCH 03/15] =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=83=A9=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=82=B3=E3=83=BC=E3=83=89=E3=83=96=E3=83=AD=E3=83=83?= =?UTF-8?q?=E3=82=AF=E5=89=8D=E5=BE=8C=E3=81=AB=E3=82=B9=E3=83=9A=E3=83=BC?= =?UTF-8?q?=E3=82=B9=E3=82=92=E7=A9=BA=E3=81=91=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?css=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/.vitepress/theme/custom.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css index 983393cf..b9fa8b38 100644 --- a/docs/.vitepress/theme/custom.css +++ b/docs/.vitepress/theme/custom.css @@ -12,3 +12,8 @@ mjx-container.MathJax svg { summary { list-style-type: revert; } + +p code { + margin-right: 2px; + margin-left: 2px; +} From 13c22ca4f486c55f8e46b7734a9cba96c245a95c Mon Sep 17 00:00:00 2001 From: rurun Date: Wed, 6 May 2026 00:51:40 +0900 Subject: [PATCH 04/15] =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=83=A9=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=82=B3=E3=83=BC=E3=83=89=E3=83=96=E3=83=AD=E3=83=83?= =?UTF-8?q?=E3=82=AF=E3=81=AEcss=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/.vitepress/theme/custom.css | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css index b9fa8b38..f2459228 100644 --- a/docs/.vitepress/theme/custom.css +++ b/docs/.vitepress/theme/custom.css @@ -13,7 +13,6 @@ summary { list-style-type: revert; } -p code { - margin-right: 2px; - margin-left: 2px; +.vp-doc :not(pre) > code { + margin: 0 3px; } From 58387ff1dccb8482a8f6d3583ec1a9cea968b729 Mon Sep 17 00:00:00 2001 From: rurun Date: Wed, 6 May 2026 00:52:04 +0900 Subject: [PATCH 05/15] =?UTF-8?q?=E3=82=B9=E3=83=8B=E3=83=9A=E3=83=83?= =?UTF-8?q?=E3=83=88=E3=82=B3=E3=83=BC=E3=83=89=E3=81=AE=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E5=90=8D=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cpp/chapter-3/{hello-world.cpp => Hello-traP.cpp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/cpp/chapter-3/{hello-world.cpp => Hello-traP.cpp} (100%) diff --git a/docs/cpp/chapter-3/hello-world.cpp b/docs/cpp/chapter-3/Hello-traP.cpp similarity index 100% rename from docs/cpp/chapter-3/hello-world.cpp rename to docs/cpp/chapter-3/Hello-traP.cpp From bcbbead204c0e64cad1fbb37712d1583ab556b7e Mon Sep 17 00:00:00 2001 From: rurun Date: Wed, 6 May 2026 01:11:33 +0900 Subject: [PATCH 06/15] =?UTF-8?q?chapter-3=20index,=203.1=E3=81=AE?= =?UTF-8?q?=E7=B7=A8=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cpp/chapter-3/1.md | 202 +++++++++++++++++++++--------------- docs/cpp/chapter-3/index.md | 4 +- 2 files changed, 118 insertions(+), 88 deletions(-) diff --git a/docs/cpp/chapter-3/1.md b/docs/cpp/chapter-3/1.md index 69bac847..233cb7db 100644 --- a/docs/cpp/chapter-3/1.md +++ b/docs/cpp/chapter-3/1.md @@ -1,152 +1,184 @@ -# 3.1 Hello, traP! の解説 +# 3.1 Hello, traP!の解説 -おさらい:第1章のコード +## 3.1.1 全体像 -<<<@/cpp/chapter-3/hello-world.cpp{cpp:line-numbers} +まずは、第2章の最後に登場したプログラムをおさらいしよう。 -1行目から順に、まずは「用語」を説明していく。 -新しい単語がどんどん出てくるが、単語の説明は 3.1.1. 以降で行う。今は単語を頭の片隅に入れておくレベルで良いだろう。 +1行目から順に、まずは「用語」を説明していく。 +新しい単語がどんどん出てくるが、単語の説明は3.1.2以降で行う。今は単語を頭の片隅に入れておくレベルで良いだろう。 -```cpp:no-line-numbers -#include -``` +<<< @/cpp/chapter-3/Hello-traP.cpp{1 cpp:line-numbers} -`iostream` と呼ばれるファイルを「インクルード」している。 +`iostream`と呼ばれるファイルを「**インクルード**」している。 -```cpp:no-line-numbers -using namespace std; -``` +
-`std::` を省略できるようにする。 +<<< @/cpp/chapter-3/Hello-traP.cpp{2 cpp:line-numbers} -```cpp -int main() { -``` +`std::`を省略できるようにする。 -`main` という名前の「関数」を宣言している。 -プログラムは、ここから実行される。 +
-```cpp:no-line-numbers - cout << "Hello, traP!" << endl; -``` +<<< @/cpp/chapter-3/Hello-traP.cpp{4 cpp:line-numbers} -コンソールに `Hello traP!` を出力する。 -`"` で囲うのは、これが文字列なのか、命令なのかを区別するため。(`VSCode`を使っていれば `"Hello traP!"` -の部分だけ色分けされているはず。) `endl` についても 3.1.2. で解説する。 +`main`という名前の「**関数**」を宣言している。プログラムはここから実行される。 -```cpp:no-line-numbers - // Hello, traP を出力する -``` +
-コメントを書いている。 +<<< @/cpp/chapter-3/Hello-traP.cpp{5 cpp:line-numbers} -```cpp:no-line-numbers -} -``` +コンソールに`Hello traP!`を「**出力**」する。 + +`"`で囲うのは、これが文字列なのか、命令なのかを区別するため。(VSCodeを使っていれば`"Hello traP!"`の部分だけ色分けされているはず。) + +`endl`については3.1.3で解説する。 + +
+ +<<< @/cpp/chapter-3/Hello-traP.cpp{6 cpp:line-numbers} + +「**コメント**」を書いている。 + +
+ +<<< @/cpp/chapter-3/Hello-traP.cpp{7 cpp:line-numbers} 波括弧を閉じている。 -## 3.1.1. コメント +## 3.1.2 コメント -<<<@/cpp/chapter-3/hello-world.cpp{6 cpp:line-numbers} +<<<@/cpp/chapter-3/Hello-traP.cpp{6 cpp:line-numbers} -`//` と書くと、その行の `//` 以降の部分はコメントになり、プログラム実行時には無視される。 +`//`と書くと、その行の`//`以降の部分はコメントとなる。すなわち、プログラム実行時には無視され、無いものとして扱われる。 ::: tip -プログラムの先頭に `//` を付けてコメントにする事をコメントアウトする、と呼ぶことがある。 +プログラムの先頭に`//`を付けてコメントにする事をコメントアウトする、と呼ぶことがある。 ::: -プログラムがどのような動作をするのか、どういう目的のプログラムなのか、を簡易的に記述すると良い。見たら分かるというレベルになれば、コメントを書く必要はない。 +プログラムがどのような動作をするのか、どういう目的のプログラムなのか、を簡潔に記述すると良い。見たら分かるというレベルになれば、コメントを書く必要はない。 -## 3.1.2. cout +## 3.1.3 cout + +<<<@/cpp/chapter-3/Hello-traP.cpp{5 cpp:line-numbers} + +`cout`は値を出力するための仕組みである。`<<`を使って値を渡すと、その値が文字として画面に表示される。文字列を出力するときは、命令と区別するため、`"`で文字列を囲むようにする。 + +このプログラムを実行すると、ターミナルに次のように出力される。 + +```Output:line-numbers +Hello, traP! +``` -<<<@/cpp/chapter-3/hello-world.cpp{5} +(Code Runnerを使ってプログラムを実行すると、他にもいろいろなものが表示されるかもしれないが、今は気にしなくて良い。) -`cout` はコンソール(画面)に文字列を出力する命令である。C++特有の記法で、 `<<` が ← みたいなものだと考えると良い。`cout` -に向かって文字列を送信しているイメージ。複数つなげることもできる。(以下の例を参照) +記号の向きを迷うかもしれないが、`<<`が←みたいなものだと考えると良い。`cout`に向かって文字列を送信しているイメージである。 -```cpp:no-line-numbers +`<<`は、複数つなげることもできる。例えば、以下のように書いても出力は変わらない。 + +```cpp:line-numbers=4 cout << "Hello, " << "traP!" << endl; ``` -また、`endl` は改行の命令を意味する。 +`endl`と書くと、出力は改行される。例えば、プログラムを次のように書き換えてみる。 -:::: tip エスケープシーケンス +```cpp:line-numbers=4 + cout << "Hello, " << endl << "traP!" << endl; +``` -出力に `"` を含めたい場合、 `cout << "Hello, "traP"!" << endl;` と記述してもコンパイルができない。これは `"Hello, "` で文字列が区切られてしまっているためである。 -これを回避するために、(Windows: ¥ キー, Mac: Option (⌥) キーを推しながら ¥ キー) `\` という文字を使って `\"` と書くことで、 `"` を出力することができる。 -このように `\` を使った文字の出力の仕方をエスケープシーケンスと呼ぶ。 +すると、出力は次のように変わる。 -```cpp:no-line-numbers - cout << "Hello, \"traP\"!" << endl; // output: Hello, "traP"! +```Output:line-numbers +Hello, +traP! ``` -他にも以下 `Hello, \n traP!` のように文字列中に `\n` と書くと改行され、この場合は `"Hello, "`と`"traP!"` の間に改行が入る。 +::: tip エスケープシーケンス + +出力に`"`を含めたい場合、`cout << "Hello, "traP"!" << endl;`と記述してもコンパイルができない。これは`"Hello, "`で文字列が区切られてしまっているためである。 +これを回避するために、`\`という文字を使って`\"`と書くことで、`"`を出力することができる。 + +このように`\`を使った文字の出力の仕方をエスケープシーケンスと呼ぶ。 -``` cpp:no-line-numbers +`\`は、Windowsであれば`¥`キーを押すことで、Macであれば`Option(⌥)`キーを押しながら`¥`キーを押すことで入力できる。 + +```cpp:line-numbers=4 + cout << "Hello, \"traP\"!" << endl; // 「Hello, "traP"!」と出力される +``` + +他にも`Hello, \ntraP!`のように文字列中に`\n`と書くと改行ができる。 + +``` cpp:line-numbers=4 cout << "Hello, \ntraP!" << endl; ``` -```txt -[output] +この場合は`Hello, `と`traP!`の間に改行が入り、出力は以下のようになる。 + +```Output:line-numbers Hello, traP! ``` -また、`\`を文字列内で使いたい場合は、`\\` と書く。 +また、`\`を文字列内で使いたい場合は、`\\`と書く。文字列中では、`//`と書いてもコメントアウトされない。 -```cpp:no-line-numbers - cout << "\\\\ Hello, traP!! //" << endl; +```cpp:line-numbers=4 + cout << "\\\\ Hello, traP!! //" << endl; // 「\\ Hello, traP!! //」と出力される ``` +::: -```txt -[output] -\\ Hello, traP!! // -``` +## 3.1.4 セミコロン + +C++では、`;`(セミコロン)を多用する。`;`は「命令の区切り」を示す。C++においては、関数を呼び出すときや、「変数」の宣言時など、各命令の終わりには`;`を記述しなければならない。 ::: tip -文字列中では `//` を書いてもコメントアウトされない。 +最終的にはコンピューターが機械語に変換する必要があり、その際に命令の区切りをはっきりさせるために`;`を使うと考えると良い。 ::: -:::: +## 3.1.5 include命令 +<<<@/cpp/chapter-3/Hello-traP.cpp{1 cpp:line-numbers} -## 3.1.3. セミコロン +`#include`は、外部の関数(やその他もろもろ)が実装されているファイルを取り込んで、使えるようにする命令である。 -C++では、`;` を多用する。`;` は「命令の区切り」を示す。C++ -においては、関数を呼び出すときや、次に出てくる「変数」の宣言時など、各命令の終わりには `;` を記述しなければならない。 +このプログラムでは`iostream`と呼ばれるファイルをインクルードしている。これは入出力に関する便利な関数(など)が用意されているファイルである。例えば、`cout`は`iostream`に含まれているものの一つである。 -::: tip -最終的にはコンピューターが機械語に変換する必要があり、その際に命令の区切りをはっきりさせるために `;`を使うと考えると良い。 -::: +自分一人で一から作る事は非常に難しいので、予め用意されたプログラムを適宜用いてプログラミングをするのである。 -## 3.1.4. include命令 +## 3.1.6 using namespace std -<<<@/cpp/chapter-3/hello-world.cpp{1 cpp:line-numbers} +<<<@/cpp/chapter-3/Hello-traP.cpp{2 cpp:line-numbers} -`#include` は、外部の関数(やその他もろもろ)が実装されているファイルを取り込んで、使えるようにする命令である。 +これまで出力を`cout`と記述してきたが、これは本来ならば`std::cout`と書く必要がある。(`std::` が何を意味しているかは深くは解説しないがstdがstandardの略であることくらいは知っておいても良いだろう。)毎回`std::`と書かなければいけないのは少し不便なので、これを書かない(省略する)という宣言をしている。 -このソースコードでは `iostream` -と呼ばれるファイルをインクルードしている。これは入出力に関する便利な関数(など)が用意されているファイルである。具体的には、 `cout` -が `iostream` に含まれている。 +## 3.1.7 main関数 -自分一人で一から作る事は非常に難しいので、予め用意されたソースコードを適宜用いてプログラミングをするのである。 +<<<@/cpp/chapter-3/Hello-traP.cpp{4 cpp:line-numbers} -## 3.1.5. using namespace std +プログラムは実行されるとき、このmain関数から実行が始まる。すなわち、main関数の中身がプログラムの最も主な処理であると捉えても良い。「関数」についての詳細は第7章で扱う。 -<<<@/cpp/chapter-3/hello-world.cpp{2 cpp:line-numbers} +したがって、**main関数はプログラム中にただ1つ存在していなければならない**。main関数が無かったり、複数個存在していたりしてはいけない。 -`cout` と記述しているが、本来ならば `std::cout` と書く必要がある。 `std::` が何を意味しているかは深くは解説しないが(std = -standard くらいは知っても良いだろう)、毎回`std::`と書くのは少し不便なので、これを書かない(省略する)という宣言をしている。 +プログラムの中で`int main()`の後の`{`と、最終行の`}`は対応していて、`{}`の内側がmain関数の内容である。今のところは、「**main関数の`{`と`}`の間に処理を書く**」と思っていれば十分である。 -## 3.1.6. main関数 +## 3.1.8 インデント -<<<@/cpp/chapter-3/hello-world.cpp{4 cpp:line-numbers} +プログラムが長くなってくると、`{}`が何個も入れ子になって出てくるようになる。そこで、`{`が1つ始まるごとに、インデント(字下げ)を行う。すなわち、各行の最初に空白を入れる。 -コンピューターはmain関数を実行する。main関数の中身がプログラムのメインの部分と捉えても良い。 -「関数」についての詳細は5章で扱う。 +以下は、第4章で学ぶif文を用いたプログラムである。今はまだ意味を理解する必要はないが、`{`が始まるごとに行頭の半角スペースが2つずつ増えていることがわかるだろう。VSCodeなどのエディタであれば、こうした作業はある程度自動で行ってくれる。 -ソースコードの中で `int main()` の後の `{` と、最終行の `}` は対応していて、 `{ }` の内側が main -関数の内容である。 +```cpp:line-numbers +#include +using namespace std; -今のところは、「`{` からプログラムが始まって、末尾の`}` で終わる」と考えれば十分である。 +int main() { + cout << "点数を入力してください。" << endl; + int score = 0; + cin >> score; + + if (score >= 60) { + cout << "合格です。" << endl; + } + if (score < 60) { + cout << "不合格です。" << endl; + } +} +``` diff --git a/docs/cpp/chapter-3/index.md b/docs/cpp/chapter-3/index.md index bc71e4bf..449deb66 100644 --- a/docs/cpp/chapter-3/index.md +++ b/docs/cpp/chapter-3/index.md @@ -1,5 +1,3 @@ # 3. 変数と入出力 -第三章では、第一章の最後に登場したソースコードを見ながらプログラミングの基本的な構造・用語について解説します。 - -また、後半では「変数」「入出力」を扱います。 +第3章では、第2章の最後に登場したプログラムを見ながらプログラミングの基本的な構造・用語について解説する。また、後半では「変数」「入出力」を扱う。 From 571360f397305704747feb3a77ab30e4d5fa3c2d Mon Sep 17 00:00:00 2001 From: rurun Date: Wed, 6 May 2026 14:22:09 +0900 Subject: [PATCH 07/15] =?UTF-8?q?3.2=E3=81=AE=E7=B7=A8=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cpp/chapter-3/2.md | 157 ++++++++++++++++++++++++---------------- 1 file changed, 96 insertions(+), 61 deletions(-) diff --git a/docs/cpp/chapter-3/2.md b/docs/cpp/chapter-3/2.md index 62d1351b..710c3d90 100644 --- a/docs/cpp/chapter-3/2.md +++ b/docs/cpp/chapter-3/2.md @@ -1,49 +1,72 @@ # 3.2 int型変数 -```cpp +## 3.2.1 int型変数とは + +まずはこのプログラムを見てほしい。 + +```cpp:line-numbers #include using namespace std; int main() { - int x = 4; - cout << "x" << endl; - cout << x << endl; + int x; + x = 4; + cout << "x: " << x << endl; } ``` -`int x = 4` で変数を定義し、代入をしている。変数を簡単に説明すると、「決められた情報を持つ入れ物」である。 +このプログラムの出力は次のようになる。 + +```Output:line-numbers +x: 4 +``` + +変数とは、値を保存しておき、名前を使ってその値を扱うための仕組みである。このプログラムでは、5行目でint型の変数`x`を定義し、6行目で変数`x`に`4`を代入している。そのため、7行目で`x`の値を出力すると、`4`と出力されている。 -* `x` は変数の名前である。一般的にアルファベットで開発者(=あなた)が決める。1文字でなくても良い。(`number` 等) -* `int` はこの変数が「整数」を入れるための、**`int`型**の入れ物であることを意味する。 -* `= 4` は見た通りで、変数の中身(=値)を`4`にするという意味である。 +変数にはどんな値でも自由に入れられるわけではない。この変数には整数が入る、文字列が入る、のようにどのような値が入るかを指定しなければいけない。これを「**型**」と呼ぶ。ここでは、整数を入れるために、`int`型にしている。 + +`x`は変数の名前である。変数の名前はプログラマーが自由に決めることができる。`number`など、1文字でなくても良い。ただし、変数名に使えるのは半角英数字と記号`_`のみである。また、変数名を数字から始めることはできない。 ::: tip -`int` は **integer** (=整数) の略。 +`int`は**integer**(整数)の略。 ::: -`cout` に `x` と書くと、`x` の**中身**が出力される。`""` をつける意味がわかっただろうか。 +`cout`に続けて`x`と書くと、変数`x`の**中身**が出力される。一方、`"x"`と書くと、「x」という文字列が出力される。`""`をつける意味がわかっただろうか。 + +先ほどの例では、変数の定義と代入を別々に行ったが、これらを同時に行うこともできる。以下のように書いても、プログラムの動作は変わらない。 + +```cpp:line-numbers +#include +using namespace std; + +int main() { + int x = 4; + cout << "x: " << x << endl; +} +``` :::danger **同じ名前の変数を2回定義する事はできない**。 -例えば、 +例えば、main関数の中で -```cpp +```cpp:line-numbers int x = 4; int x = 3; ``` -などと書くとコンパイルエラーとなる。 -途中で値を変えたい場合は、次のように記す。 +などと書くとコンパイルエラーとなる。(コンパイルについては[2.1.2](https://pg-basic.trap.show/cpp/chapter-2/1#_2-1-2-%E3%82%B3%E3%83%B3%E3%83%8F%E3%82%9A%E3%82%A4%E3%83%AB%E3%81%A8%E3%81%AF)を思い出してほしい。) -```cpp +変数の値を変えたい場合は、次のように記す。 + +```cpp:line-numbers int x = 4; x = 3; ``` -本当に値が途中で変わっているか気になる場合は、1行目と2行目の間に `cout` 命令を挟んで`x`の値を確認してみると良いだろう。 +本当に値が途中で変わっているか気になる場合は、1行目と2行目の間に`cout`を挟んで`x`の値を確認してみると良いだろう。 -```cpp +```cpp:line-numbers int x = 4; cout << x << endl; x = 3; @@ -53,27 +76,37 @@ cout << x << endl; ::: :::danger -`C++`では、「型」が異なる値と変数について一部の場合を除き、値をそのまま変数に代入することはできない。例えば、`int`型の変数に文字列(=`string`型とよばれている)を入れるような命令はエラーとなる。 +`C++`では、「型」が異なる値と変数について、一部の場合を除き、値をそのまま変数に代入することはできない。例えば、`int`型の変数に文字列(=`string`型とよばれている)を入れるような命令はエラーとなる。 + +```cpp +int x = 4; +x = "hello!"; // int型変数に文字列を代入しようとしているので、コンパイルエラーとなる +``` ::: -## 3.2.1. int型の計算 +## 3.2.2 int型の計算 パソコンは計算機なので、当然計算ができる。 ```cpp:line-numbers -int x = 11; -int y = 7; - -cout << x + y << endl; -cout << x - y << endl; -cout << x * y << endl; -cout << x / y << endl; -cout << x % y << endl; +#include +using namespace std; + +int main() { + int x = 11; + int y = 7; + + cout << x + y << endl; + cout << x - y << endl; + cout << x * y << endl; + cout << x / y << endl; + cout << x % y << endl; +} ``` と書けば、 -``` +```Output:line-numbers 18 4 77 @@ -89,52 +122,55 @@ cout << x % y << endl; * 商 `/` * 剰余(mod) `%` -である。 `+`, `-`, `*`, `/`, `%` 等のような記号を **演算子** と呼ぶ。 +である。`+`・`-`・`*`・`/`・`%`などの記号を**演算子**と呼ぶ。 -ここで、**`int`型同士の割り算について、結果は`int`型となる**。(文字通り「商」を取る) -小数は後の章で扱う。 +ここで、**`int`型同士の割り算について、結果は`int`型となる**。(文字通り「商」を取る、すなわち小数点以下は切り捨てられる。) + +小数の演算については第5章で扱う。 また、値を代入することもできる。 ```cpp:line-numbers -int x = 4; -int y = 7; -int f = x + y; - -cout << f << endl; - -f = x - y; +#include +using namespace std; -cout << f << endl; +int main() { + int x = 4; + int y = 7; + int f = x + y; + cout << f << endl; + f = x - y; + cout << f << endl; +} ``` -``` -[output] +このプログラムを実行すると、次のように出力される。 + +```Output:line-numbers 11 -3 ``` -数学の $=$ とは異なり、これは「右辺の値を左辺に代入する」操作を意味する。 +数学の$=$とは異なり、これは「右辺の値を左辺に代入する」操作を意味する。 + +計算の中でも特に、`x = x + 4`など、「加算」したい時は、`x += 4`と略記することができる。他にも `-=`, `*=`, `/=`, `%=` が使える。 -計算の中でも特に、`x = x + 4` 等、「加算」したい時は、`x += 4` 等と略記することができる。 ::: tip -代入演算子 `=` は演算子の右辺を計算して、その結果を左辺の変数に**代入**する演算子である。 -例えば `x = x + 4`という命令では `x + 4`が計算され、その結果が`x`に代入される。 +代入演算子`=`は演算子の右辺を計算して、その結果を左辺の変数に**代入**する演算子である。 +例えば`x = x + 4`という命令では`x + 4`が計算され、その結果が`x`に代入される。 ::: ```cpp:line-numbers -int x = 4; -x += 7; -cout << x << endl; -``` +#include +using namespace std; +int main() { + int x = 4; + x += 7; + cout << x << endl; // 11が出力される +} ``` -[output] -11 -``` - -他にも `-=`, `*=`, `/=`, `%=` が使える。 ## 3.2.2. オーバーフロー @@ -145,16 +181,15 @@ int yen = 5000000000000000; cout << yen << endl; ``` -と書く。しかし、これを実行すると `937459712` が出力される。 +と書きたくなるかもしれない。しかし、これを実行すると`937459712`が出力される。 -これは、オーバーフローというものが起きるからである。`int`型が扱える数値には上限があって(同時に下限もある)、それを超える数を扱う事はできない。扱おうとする時に発生する問題を「オーバーフロー」と呼ぶのである。 +これは、オーバーフローというものが起きるからである。`int`型が扱える数値には上限があって(同時に下限もある)、それを超える数を扱う事はできない。この、扱える範囲を超えた数値を扱おうとする時に発生する問題を「オーバーフロー」と呼ぶのである。 -`int`型が扱える数の範囲は `-2,147,483,648` ~ `2,147,483,647` である。基本的に気にすることはないが、起きた時はオーバーフローを疑うと良いだろう。 +`int`型が扱える数の範囲は`-2,147,483,648`〜`2,147,483,647`である。基本的に気にすることはないが、計算結果が合わないという時には、オーバーフローを疑うと良いだろう。 -ちなみに、実行すると出力される値は、数値の最上位の桁をコンピューターが無視するために、上限値を超えた際に値が下限値に戻るからである。 +ちなみに、上の例で出力される値が`937459712`となったのは、数値の最上位の桁をコンピューターが無視するために、上限値を超えた際、値が下限値に戻ったからである。 ::: tip -オーバーフローに関連して、ゲーム「パズル&ドラゴンズ」において 2021 年まで各キャラクターが出せる最大ダメージは2,147,483,647ダメージであったという話がある。これはゲームが `int` 型を用いていたためについていた制限である。 -なお、2021年のアップデートでダメージ上限が変更された。これはより大きい整数を扱える型 (C++で言うところの `long long`型 )に変えられたからだそうだ。 - +オーバーフローに関連して、ゲーム「パズル&ドラゴンズ」において2021年まで各キャラクターが出せる最大ダメージは2,147,483,647ダメージであったという話がある。これはゲームが`int`型を用いていたためについていた制限である。 +なお、2021年のアップデートでダメージ上限が変更された。これはより大きい整数を扱える型(C++で言うところの`long long`型)に変えられたからだそうだ。 ::: From 7af9de75618ede4f1034375981004a2c62163c98 Mon Sep 17 00:00:00 2001 From: rurun Date: Wed, 6 May 2026 14:55:08 +0900 Subject: [PATCH 08/15] =?UTF-8?q?=E7=AC=AC=E2=97=8B=E7=AB=A0=E3=81=A8?= =?UTF-8?q?=E3=81=84=E3=81=86=E8=A1=A8=E8=A8=98=E3=81=AB=E7=B5=B1=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cpp/chapter-2/3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cpp/chapter-2/3.md b/docs/cpp/chapter-2/3.md index 60ef9899..4816eee2 100644 --- a/docs/cpp/chapter-2/3.md +++ b/docs/cpp/chapter-2/3.md @@ -27,7 +27,7 @@ int main() { 4. 実行に成功すると、画面下部に「出力」と書かれた画面が出てきて、`Hello, traP!`と表示される。 5. プログラム中の`Hello, traP!`となっている部分を書き換えると出力が変わる。実際に試してみよう。 -::: tip 2章のまとめ +::: tip 第2章のまとめ - プログラミングとは、「コンピューターにどのような動作をさせるかを予め指示する行為」 - プログラムは、コンパイルして実行される From d4b8072a0dafbb38069e42107c5ef39af2e44e48 Mon Sep 17 00:00:00 2001 From: rurun Date: Wed, 6 May 2026 14:55:20 +0900 Subject: [PATCH 09/15] =?UTF-8?q?3.3=E3=81=AE=E7=B7=A8=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cpp/chapter-3/1.md | 2 -- docs/cpp/chapter-3/3.md | 47 ++++++++++++++++++++++++++++++++++------- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/docs/cpp/chapter-3/1.md b/docs/cpp/chapter-3/1.md index 233cb7db..01455f0b 100644 --- a/docs/cpp/chapter-3/1.md +++ b/docs/cpp/chapter-3/1.md @@ -71,8 +71,6 @@ Hello, traP! (Code Runnerを使ってプログラムを実行すると、他にもいろいろなものが表示されるかもしれないが、今は気にしなくて良い。) -記号の向きを迷うかもしれないが、`<<`が←みたいなものだと考えると良い。`cout`に向かって文字列を送信しているイメージである。 - `<<`は、複数つなげることもできる。例えば、以下のように書いても出力は変わらない。 ```cpp:line-numbers=4 diff --git a/docs/cpp/chapter-3/3.md b/docs/cpp/chapter-3/3.md index 18662f5f..d552318e 100644 --- a/docs/cpp/chapter-3/3.md +++ b/docs/cpp/chapter-3/3.md @@ -1,20 +1,49 @@ # 3.3 標準入出力 -cin命令を用いると、コンソールから入力し、変数に代入することができる。例えば、与えられた値を10倍するコードは以下の様になる。 +## 3.3.1 標準出力 + +[3.1.3](http://localhost:5173/cpp/chapter-3/1#_3-1-3-cout)で解説したように、`cout`を使うことでプログラムは値を出力することができる。 + +### 3.3.2 標準入力 + +プログラムは外部に値を出力するだけでなく、外部からの入力を受け取ることもできる。入力を受け取るには、`cin`を用いる。 + +以下は入力された値を10倍して出力するプログラムである。 ```cpp:line-numbers #include using namespace std; int main() { - int x = 10; // 下の行で上書きされるので、好きな数字を入れておけば良い + int x; cin >> x; cout << x*10 << endl; } ``` -::: tip 3章のまとめ +このプログラムを実際に手元で実行してみてほしい。Code Runnerで実行すると、ターミナルに「□」が表示されるだろう。ターミナルを一度クリックすると「■」に変わる。ここに好きな整数を入力して`Enter`を押すと10倍した値が表示されるはずだ。 + +`cin >> x`のように書くことで、ターミナルからの入力を受け取って、すでに定義されている変数`x`に入力された値を代入することができる。 + +`>>`は複数つなげることもできる。次の例は、2つの整数を受け取って、その和を出力するプログラムである。 + +```cpp:line-numbers +#include +using namespace std; + +int main() { + int x; + int y; + cin >> x >> y; + + cout << x+y << endl; +} +``` + +`cin`と`cout`で記号の向きを迷うかもしれないが、`>>`が→、`<<`が←みたいなものだと考えると良い。入力のときは入力を受け取る変数に向かって、出力のときは`cout`に向かって、値を送信しているイメージである。 + +::: tip 第3章のまとめ ```cpp:line-numbers #include @@ -30,10 +59,12 @@ int main() { } ``` -* 上記のコードで「10」を入力したときに出力される値は?出力を予想したら、実行してみましょう。 -* `int` 型は整数を扱う型です。 -* `cin`で入力、`cout`で出力。 `<<` の矢印の向きを感覚で覚えましょう。 -* `+` `-` `*` `/` `%` で和・差・積・商・剰余 を計算できます。 +* 上記のコードで「10」を入力したときに出力される値は? 出力を予想したら、実行してみましょう。 +* `int`型は整数を扱う型です。 +* `cin`で入力、`cout`で出力。`<<`の矢印の向きを感覚で覚えましょう。 +* `+`・`-`・`*`・`/`・`%` で和・差・積・商・剰余を計算できます。 * あまりにも大きい数字は扱えません。 -終わったら、練習問題にチャレンジしましょう。 +::: + +ここまで読み終わったら、練習問題にチャレンジしましょう。 From fd8686d9ad2d7f0ba928a33d8839bebed1bdec84 Mon Sep 17 00:00:00 2001 From: rurun Date: Wed, 6 May 2026 15:45:18 +0900 Subject: [PATCH 10/15] =?UTF-8?q?=E7=AC=AC3=E7=AB=A0=E3=81=AE=E7=B7=B4?= =?UTF-8?q?=E7=BF=92=E5=95=8F=E9=A1=8C=E3=81=AE=E7=B7=A8=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cpp/chapter-3/problems/1.md | 162 ++++++++++++++++++ docs/cpp/chapter-3/problems/2.md | 76 ++++++++ docs/cpp/chapter-3/problems/3.md | 114 ++++++++++++ docs/cpp/chapter-3/problems/4bit.md | 79 --------- docs/cpp/chapter-3/problems/index.md | 16 +- docs/cpp/chapter-3/problems/multiplication.md | 55 ------ docs/cpp/chapter-3/problems/sum.md | 82 --------- 7 files changed, 364 insertions(+), 220 deletions(-) create mode 100644 docs/cpp/chapter-3/problems/1.md create mode 100644 docs/cpp/chapter-3/problems/2.md create mode 100644 docs/cpp/chapter-3/problems/3.md delete mode 100644 docs/cpp/chapter-3/problems/4bit.md delete mode 100644 docs/cpp/chapter-3/problems/multiplication.md delete mode 100644 docs/cpp/chapter-3/problems/sum.md diff --git a/docs/cpp/chapter-3/problems/1.md b/docs/cpp/chapter-3/problems/1.md new file mode 100644 index 00000000..c63d22f0 --- /dev/null +++ b/docs/cpp/chapter-3/problems/1.md @@ -0,0 +1,162 @@ +# 3.Q.1 Multiplication(★☆☆) + +## 問題 + +標準入力から整数を3つ受け取って、3つの数の積を出力するプログラムを作ってみよう。プログラムの書き方が分からないときは、[3.3.2](http://localhost:5173/cpp/chapter-3/3#_3-3-2-%E6%A8%99%E6%BA%96%E5%85%A5%E5%8A%9B)にあるプログラムを参考にしよう。 + +(入力される整数は大きすぎず、オーバーフローは気にしなくて良いものとする。) + +## 入出力例 + +ここに書かれているのはあくまでも例です。これ以外の値が入力されたとしても、正しく出力できるようなプログラムを作成してください。 + +### 例1 + +#### 入力 + +```Input:line-numbers +3 +4 +5 +``` + +#### 出力 + +```Output:line-numbers +60 +``` + +### 例2 + +#### 入力 + +```Input:line-numbers +1 +3 +5 +``` + +#### 出力 + +```Output:line-numbers +15 +``` + +## ヒント + +::: details ヒント1 + +[3.3.2](http://localhost:5173/cpp/chapter-3/3#_3-3-2-%E6%A8%99%E6%BA%96%E5%85%A5%E5%8A%9B)の最後に書かれているプログラムを改造することを考えよう。 + +```cpp:line-numbers +#include +using namespace std; + +int main() { + int x; + int y; + cin >> x >> y; + + cout << x+y << endl; +} +``` + +このプログラムは、**2つの整数**を受け取って、**和**を出力するプログラムであった。 + +今回作りたいプログラムは、**3つの整数**を受け取って、**積**を出力するプログラムである。 +::: + +::: details ヒント2 + +```cpp:line-numbers{7} +#include +using namespace std; + +int main() { + int x; + int y; + int z; + cin >> x >> y; + + cout << x+y << endl; +} +``` + +3つの値を入力から受け取るには、まず、7行目に変数`z`の定義を追加する必要がある。(変数名は`z`でなくてもOK。) + +では、`z`が入力を受け取るようにするには、どうすれば良いだろうか? +::: + +::: details ヒント3 + +```cpp:line-numbers{8} +#include +using namespace std; + +int main() { + int x; + int y; + int z; + cin >> x >> y >> z; + + cout << x+y << endl; +} +``` + +3つの値を入力から受け取るには、8行目に変数`z`を加えてあげれば良い。入力は`>>`で繋げることができるのであった。 + +では、`x`・`y`・`z`の積を出力するには、どこを書き換えれば良いだろうか? +::: + +::: details ヒント4 + +```cpp:line-numbers{10} +#include +using namespace std; + +int main() { + int x; + int y; + int z; + cin >> x >> y >> z; + + cout << x+y << endl; +} +``` + +出力される値は10行目で決まっているから、ここを書き換えてみよう。積の記号は`*`である。 +::: + +## 解答例 + +::: details 解答例 + +```cpp:line-numbers +#include +using namespace std; + +int main() { + int x; + int y; + int z; // 3つの変数x, y, zを宣言 + cin >> x >> y >> z; // 3つの整数を受け取る + + cout << x*y*z << endl; // 積を計算して出力 +} +``` + +変数の宣言はまとめて行うこともできる。まとめて行うときには、`,`で区切れば良い。 + +```cpp:line-numbers{5} +#include +using namespace std; + +int main() { + int x, y, z; // 3つの変数x, y, zを宣言 + cin >> x >> y >> z; // 3つの整数を受け取る + + cout << x*y*z << endl; // 積を計算して出力 +} +``` + +::: diff --git a/docs/cpp/chapter-3/problems/2.md b/docs/cpp/chapter-3/problems/2.md new file mode 100644 index 00000000..d85f8d49 --- /dev/null +++ b/docs/cpp/chapter-3/problems/2.md @@ -0,0 +1,76 @@ +# 3.Q.2 Sum of n(★★☆) + +## 問題 + +自然数$n$を入力として受け取って、$1$から$n$までの和を出力するプログラムを作成しよう。 + +## 入出力例 + +### 例1 + +#### 入力 + +```Input:line-numbers +10 +``` + +#### 出力 + +```Output:line-numbers +55 +``` + +$1+2+3+4+5+6+7+8+9+10$を計算すると、$55$になる。 + + +### 例1 + +#### 入力 + +```Input:line-numbers +100 +``` + +#### 出力 + +```Output:line-numbers +5050 +``` + +$1+2+ \dots + 100$を計算すると、$5050$になる。 + +## ヒント + +::: details ヒント1 +実際に計算する際にどのような手順で行うかを考えてみましょう。100までの総和は1つずつ足していくのではなく、なんらかの方法でもっと簡単に求めていたはずです。 +::: + +::: details ヒント2 +総和を求める公式は $\dfrac{1}{2} n (n+1)$ でした。 +::: + +::: details ヒント3 (なぜか計算が合わない人へ) +プログラムにおいては、計算は左から順番に行われ、途中計算は必ず`int`型(=整数)に切り捨てられます。つまり、最初に `1/2`と書くとそこで0になってしまいます。 + +計算の順序を工夫する必要がありそうです。 +::: + +### 解答例 + +::: details 解答例 + +```cpp +#include +using namespace std; + +int main() { + int n; + cin >> n; + + int ans = n*(n+1)/2; + + cout << ans << endl; +} +``` + +::: diff --git a/docs/cpp/chapter-3/problems/3.md b/docs/cpp/chapter-3/problems/3.md new file mode 100644 index 00000000..d9b848ea --- /dev/null +++ b/docs/cpp/chapter-3/problems/3.md @@ -0,0 +1,114 @@ +# 3.Q.3 4bit(★★☆) + +## 問題 + +入力から$0 <= n < 16$の整数値を受け取り、4桁の2進数で表記しよう。 + +2進数表記の各桁の値を求めるときには、`/`や`%`などの演算をうまく使えないか考えてみよう。 + +## 入出力例 + +### 例1 + +#### 入力 + +```Input:line-numbers +7 +``` + +#### 出力 + +```Output:line-numbers +0111 +``` + +### 例2 + +#### 入力 + +```Input:line-numbers +9 +``` + +#### 出力 + +```Output:line-numbers +1001 +``` + +### 例3 + +#### 入力 + +```Input:line-numbers +13 +``` + +#### 出力 + +```Output:line-numbers +1101 +``` + +## ヒント + +::: details ヒント1 +`int`型では、商は小数点以下が切り捨てられる。例えば、`5 / 3`は`1`になる。 +::: + +::: details ヒント2 +1桁ずつ`0`か`1`かを求めることを考えよう。 + +一番右の桁はどのように求められるだろうか? +::: + +::: details ヒント3 +入力を`n`とすると、一番右の桁は`n % 2`で求めることができる。 +::: + +::: details ヒント4 +$\displaystyle\left\lfloor\frac{n}{2^k}\right\rfloor$を2進数表記すると、$n$の2進数表記の$k+1$桁目以上を得ることができる。 + +例えば、2進数表記で`1101`という数を`2`で割った商は、2進数表記で`110`になる。2進数表記で`1101`という数を`4`で割った商は、2進数表記で`11`になる。 + +では、右から2桁目はどのような計算で求められるだろうか? +::: + +::: details ヒント5 +入力を`n`とすると、右から2桁目は`(n / 2) % 2`で求めることができる。 + +では、右から3桁目はどのような計算で求められるだろうか? +::: + +::: details ヒント6 +入力を`n`とすると、右から3桁目は`(n / 4) % 2`で求めることができる。 + +では、右から4桁目はどのような計算で求められるだろうか? +::: + +::: details ヒント7 +入力を`n`とすると、右から4桁目は`(n / 8) % 2`で求めることができる。 + +ここまでのヒントの内容をプログラムとして書いてみよう。 +::: + +## 解答例 + +::: details 解答例 + +```cpp +#include +using namespace std; + +int main() { + int n; + cin >> n; // 入力を受け取る + cout << (n / 8) % 2; // 右から4桁目 + cout << (n / 4) % 2; // 右から3桁目 + cout << (n / 2) % 2; // 右から2桁目 + cout << n % 2; // 右から1桁目 + cout << endl; +} +``` + +::: diff --git a/docs/cpp/chapter-3/problems/4bit.md b/docs/cpp/chapter-3/problems/4bit.md deleted file mode 100644 index 836b8e3d..00000000 --- a/docs/cpp/chapter-3/problems/4bit.md +++ /dev/null @@ -1,79 +0,0 @@ -# 3-B1. 4bit - -入力から$0 <= n < 16$の整数値を受け取り、2進数で表記しよう。 - -### 入力/出力例 - -::: details 例1 - -**入力** - -``` -9 -``` - -**出力** - -``` -1001 -``` - -::: - -::: details 例2 - -**入力** - -``` -13 -``` - -**出力** - -``` -1101 -``` - -::: - -### ヒント - -::: details ヒント1 -`int`型では、`5 / 3`は`1`になる。 - -::: - -::: details ヒント2 -整数型の余りは`%`で得ることができる。 - -::: - -::: details ヒント3 -1桁ずつ出力してみよう。 -::: - -::: details ヒント4 -$\displaystyle\left\lfloor\frac{n}{2^k}\right\rfloor$を2進数表記すると、$n$の2進数表記の$k+1$桁目以上を得ることができる。 -::: - -### 解答例 - -::: tip 解答例1 - -::: spoiler クリックして展開 -```cpp -#include -using namespace std; - -int main() { - int n; - cin >> n; - cout << (n / 8) % 2; - cout << (n / 4) % 2; - cout << (n / 2) % 2; - cout << n % 2; - cout << endl; -} -``` - -::: diff --git a/docs/cpp/chapter-3/problems/index.md b/docs/cpp/chapter-3/problems/index.md index 563748ef..e634424a 100644 --- a/docs/cpp/chapter-3/problems/index.md +++ b/docs/cpp/chapter-3/problems/index.md @@ -1,5 +1,13 @@ -# 練習問題 - Chapter 3 +# 3.Q 練習問題 -- [3-A1. Multiplication](multiplication) -- [3-B1. 4bit](4bit) -- [3-B2. Sum](sum) +::: tip +練習問題の難易度は3段階に分かれています。 + +* ★☆☆:**できれば解いて理解して欲しい問題**です。とにかく手を動かしましょう。 +* ★★☆:ぜひ解いて欲しいですが、解けなくても問題はありません。 +* ★★★:ややトリッキーな問題が並んでいます。余裕があれば取り組んでみましょう。 +::: + +- [3.Q.1 Multiplication(★☆☆)](1) +- [3.Q.2 Sum(★★☆)](2) +- [3.Q.3 4bit(★★☆)](3) diff --git a/docs/cpp/chapter-3/problems/multiplication.md b/docs/cpp/chapter-3/problems/multiplication.md deleted file mode 100644 index ffeeb141..00000000 --- a/docs/cpp/chapter-3/problems/multiplication.md +++ /dev/null @@ -1,55 +0,0 @@ -# 3-A1. Multiplication - -cinでint型の整数を2つ受け取って、その積をターミナルに出力しよう。 - -### 入力/出力例 - -::: details 例1 - -**入力** - -``` -3 4 -``` - -**出力** - -``` -12 -``` - -::: - -### ヒント - -::: details ヒント1 - -2つの値を入力から受け取るには、 -```cpp -cin >> first_value >> second_value; -``` -::: - -### 解答例 - -::: tip 解答例1 - -::: spoiler クリックして展開 - -```cpp -#include -using namespace std; - -int main() { - // 変数を2つ宣言 - int lhs, rhs; - // 整数値を2つ受け取る - cin >> lhs >> rhs; - // 積を計算 - int answer = lhs * rhs; - // 出力 - cout << answer << endl; -} -``` - -::: \ No newline at end of file diff --git a/docs/cpp/chapter-3/problems/sum.md b/docs/cpp/chapter-3/problems/sum.md deleted file mode 100644 index 5a845b19..00000000 --- a/docs/cpp/chapter-3/problems/sum.md +++ /dev/null @@ -1,82 +0,0 @@ -# 3-B2. Sum of n - -cinで自然数 $n$ を受け取って、$1$ から $n$ までの和を出力するプログラムを作成してください。 - -### 入力/出力例 - -::: details 例1 - -**入力** - -``` -10 -``` - -**出力** - -``` -55 -``` - -> $1+2+3+4+5+6+7+8+9+10$ を計算します。 - -::: - -::: details 例2 - -**入力** - -``` -100 -``` - -**出力** - -``` -5050 -``` - -> $1+2+ \dots + 100$ を計算します。 - -::: - -### ヒント - -::: details ヒント1 - -実際に計算する際にどのような手順で行うかを考えてみましょう。100までの総和などは1つずつ足していくのではなく、なんらかの方法でもっと簡単に求めていたはずです。 -::: - -::: details ヒント2 - -総和を求める公式は $\dfrac{1}{2} n (n+1)$ でした。 -::: - -::: details ヒント3 (なぜか計算が合わない人へ) - -プログラムにおいては、計算は左から順番に行われ、途中計算は必ず `int` 型(=整数)に切り捨てられます。つまり、最初に `1/2` と書くとそこで 0 になってしまいます。 - -計算の順序を工夫する必要がありそうです。 -::: - -### 解答例 - -::: tip 解答例1 - -::: spoiler クリックして展開 - -```cpp -#include -using namespace std; - -int main() { - int n = 10; - cin >> n; - - int ans = n*(n+1)/2; - - cout << ans << endl; -} -``` - -::: From 9ad48ddaded2498a2816a70953b78908afee2062 Mon Sep 17 00:00:00 2001 From: rurun Date: Wed, 6 May 2026 16:57:28 +0900 Subject: [PATCH 11/15] =?UTF-8?q?=E7=B7=B4=E7=BF=92=E5=95=8F=E9=A1=8C?= =?UTF-8?q?=E3=81=AE=E5=BD=A2=E5=BC=8F=E3=82=92=E7=B5=B1=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/.vitepress/config.ts | 19 ++++++++----------- .../problems/{hello-shell.md => 1.md} | 2 +- docs/cpp/chapter-2/problems/index.md | 10 +++++++++- docs/cpp/preface/1.md | 10 ++++++++-- 4 files changed, 26 insertions(+), 15 deletions(-) rename docs/cpp/chapter-2/problems/{hello-shell.md => 1.md} (98%) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index e5e19105..af733b96 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -55,13 +55,13 @@ export default withMermaid({ { text: "2.2 作業環境の構築", link: "/cpp/chapter-2/2" }, { text: "2.3 はじめてのプログラミング", link: "/cpp/chapter-2/3" }, { - text: "練習問題", + text: "2.Q 練習問題", link: "/cpp/chapter-2/problems/", collapsed: true, items: [ { - text: "2-Q1. Hello, Shell!", - link: "/cpp/chapter-2/problems/hello-shell", + text: "2.Q.1 Hello, Shell!(★★★)", + link: "/cpp/chapter-2/problems/1", }, ], }, @@ -75,16 +75,13 @@ export default withMermaid({ { text: "3.2 int型変数", link: "/cpp/chapter-3/2" }, { text: "3.3 標準入出力", link: "/cpp/chapter-3/3" }, { - text: "練習問題", + text: "3.Q 練習問題", link: "/cpp/chapter-3/problems/", collapsed: true, items: [ - { - text: "3-A1. Multiplication", - link: "/cpp/chapter-3/problems/multiplication", - }, - { text: "3-B1. 4bit", link: "/cpp/chapter-3/problems/4bit" }, - { text: "3-B2. Sum", link: "/cpp/chapter-3/problems/sum" }, + { text: "3.Q.1 Multiplication(★☆☆)", link: "/cpp/chapter-3/problems/1" }, + { text: "3.Q.2 Sum of n(★★☆)", link: "/cpp/chapter-3/problems/2" }, + { text: "3.Q.3 4bit(★★☆)", link: "/cpp/chapter-3/problems/3" }, ], }, ], @@ -96,7 +93,7 @@ export default withMermaid({ ], "/text/": [ { - text: "2026年度版テキスト [WIP]", + text: "[WIP] 2026年度版テキスト", link: "/cpp/preface/", }, { diff --git a/docs/cpp/chapter-2/problems/hello-shell.md b/docs/cpp/chapter-2/problems/1.md similarity index 98% rename from docs/cpp/chapter-2/problems/hello-shell.md rename to docs/cpp/chapter-2/problems/1.md index b85fb962..aee19734 100644 --- a/docs/cpp/chapter-2/problems/hello-shell.md +++ b/docs/cpp/chapter-2/problems/1.md @@ -1,4 +1,4 @@ -# 2-C1. Hello shell +# 2.Q.1 Hello, Shell(★★★) ターミナル (シェル) のファイルを検索するコマンド、 `find` コマンドで遊んでみましょう。 diff --git a/docs/cpp/chapter-2/problems/index.md b/docs/cpp/chapter-2/problems/index.md index 3a9d9bb7..19743048 100644 --- a/docs/cpp/chapter-2/problems/index.md +++ b/docs/cpp/chapter-2/problems/index.md @@ -1,3 +1,11 @@ # 練習問題 -- [2-C1. Hello, Shell!](hello-shell) +::: tip +練習問題の難易度は3段階に分かれています。 + +* ★☆☆:**できれば解いて理解して欲しい問題**です。とにかく手を動かしましょう。 +* ★★☆:ぜひ解いて欲しいですが、解けなくても問題はありません。 +* ★★★:ややトリッキーな問題が並んでいます。余裕があれば取り組んでみましょう。 +::: + +- [2.Q.1 Hello, Shell!(★★★)](1) diff --git a/docs/cpp/preface/1.md b/docs/cpp/preface/1.md index ae743300..467de8de 100644 --- a/docs/cpp/preface/1.md +++ b/docs/cpp/preface/1.md @@ -113,11 +113,17 @@ ChatGPTなどの生成AIとの付き合い方についてですが、一般的 教室などの案内は、[**講習会Wiki**(部内のみ)](https://wiki.trap.jp/Event/welcome/26/lecture/pg-basic)をご確認ください。 -各章末に、練習問題A・B・Cを用意しています。 +各章末に練習問題を用意しています。練習問題の難易度は3段階に分かれています。 + +* ★☆☆:**できれば解いて理解して欲しい問題**です。とにかく手を動かしましょう。 +* ★★☆:ぜひ解いて欲しいですが、解けなくても問題はありません。 +* ★★★:ややトリッキーな問題が並んでいます。余裕があれば取り組んでみましょう。 + + :::tip traP外の方へ 2026年度より、章の分割や構成の変更などを行いました。内容に大幅な変更はありません。 From 55956080b543d2a8d27f2425c2115ad38c0a9a22 Mon Sep 17 00:00:00 2001 From: rurun Date: Wed, 6 May 2026 17:07:16 +0900 Subject: [PATCH 12/15] =?UTF-8?q?=E7=B7=B4=E7=BF=92=E5=95=8F=E9=A1=8C?= =?UTF-8?q?=E3=81=AE=E5=BD=A2=E5=BC=8F=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/.vitepress/config.ts | 10 +++++----- docs/cpp/chapter-2/problems/{1.md => hello-shell.md} | 2 +- docs/cpp/chapter-2/problems/index.md | 2 +- docs/cpp/chapter-3/problems/{3.md => 4bit.md} | 2 +- docs/cpp/chapter-3/problems/index.md | 6 +++--- .../cpp/chapter-3/problems/{1.md => multiplication.md} | 2 +- docs/cpp/chapter-3/problems/{2.md => sum-of-n.md} | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) rename docs/cpp/chapter-2/problems/{1.md => hello-shell.md} (98%) rename docs/cpp/chapter-3/problems/{3.md => 4bit.md} (98%) rename docs/cpp/chapter-3/problems/{1.md => multiplication.md} (98%) rename docs/cpp/chapter-3/problems/{2.md => sum-of-n.md} (97%) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index af733b96..ef191d61 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -60,8 +60,8 @@ export default withMermaid({ collapsed: true, items: [ { - text: "2.Q.1 Hello, Shell!(★★★)", - link: "/cpp/chapter-2/problems/1", + text: "Hello, Shell!(★★★)", + link: "/cpp/chapter-2/problems/hello-shell", }, ], }, @@ -79,9 +79,9 @@ export default withMermaid({ link: "/cpp/chapter-3/problems/", collapsed: true, items: [ - { text: "3.Q.1 Multiplication(★☆☆)", link: "/cpp/chapter-3/problems/1" }, - { text: "3.Q.2 Sum of n(★★☆)", link: "/cpp/chapter-3/problems/2" }, - { text: "3.Q.3 4bit(★★☆)", link: "/cpp/chapter-3/problems/3" }, + { text: "Multiplication(★☆☆)", link: "/cpp/chapter-3/problems/multiplication" }, + { text: "Sum of n(★★☆)", link: "/cpp/chapter-3/problems/sum-of-n" }, + { text: "4bit(★★☆)", link: "/cpp/chapter-3/problems/4bit" }, ], }, ], diff --git a/docs/cpp/chapter-2/problems/1.md b/docs/cpp/chapter-2/problems/hello-shell.md similarity index 98% rename from docs/cpp/chapter-2/problems/1.md rename to docs/cpp/chapter-2/problems/hello-shell.md index aee19734..e32387a2 100644 --- a/docs/cpp/chapter-2/problems/1.md +++ b/docs/cpp/chapter-2/problems/hello-shell.md @@ -1,4 +1,4 @@ -# 2.Q.1 Hello, Shell(★★★) +# 2.Q Hello, Shell(★★★) ターミナル (シェル) のファイルを検索するコマンド、 `find` コマンドで遊んでみましょう。 diff --git a/docs/cpp/chapter-2/problems/index.md b/docs/cpp/chapter-2/problems/index.md index 19743048..d87c68d9 100644 --- a/docs/cpp/chapter-2/problems/index.md +++ b/docs/cpp/chapter-2/problems/index.md @@ -8,4 +8,4 @@ * ★★★:ややトリッキーな問題が並んでいます。余裕があれば取り組んでみましょう。 ::: -- [2.Q.1 Hello, Shell!(★★★)](1) +- [Hello, Shell!(★★★)](hello-shell) diff --git a/docs/cpp/chapter-3/problems/3.md b/docs/cpp/chapter-3/problems/4bit.md similarity index 98% rename from docs/cpp/chapter-3/problems/3.md rename to docs/cpp/chapter-3/problems/4bit.md index d9b848ea..d2d0d0a9 100644 --- a/docs/cpp/chapter-3/problems/3.md +++ b/docs/cpp/chapter-3/problems/4bit.md @@ -1,4 +1,4 @@ -# 3.Q.3 4bit(★★☆) +# 3.Q 4bit(★★☆) ## 問題 diff --git a/docs/cpp/chapter-3/problems/index.md b/docs/cpp/chapter-3/problems/index.md index e634424a..2a325a98 100644 --- a/docs/cpp/chapter-3/problems/index.md +++ b/docs/cpp/chapter-3/problems/index.md @@ -8,6 +8,6 @@ * ★★★:ややトリッキーな問題が並んでいます。余裕があれば取り組んでみましょう。 ::: -- [3.Q.1 Multiplication(★☆☆)](1) -- [3.Q.2 Sum(★★☆)](2) -- [3.Q.3 4bit(★★☆)](3) +- [Multiplication(★☆☆)](multiplication) +- [Sum of n(★★☆)](sum-of-n) +- [4bit(★★☆)](4bit) diff --git a/docs/cpp/chapter-3/problems/1.md b/docs/cpp/chapter-3/problems/multiplication.md similarity index 98% rename from docs/cpp/chapter-3/problems/1.md rename to docs/cpp/chapter-3/problems/multiplication.md index c63d22f0..2014916a 100644 --- a/docs/cpp/chapter-3/problems/1.md +++ b/docs/cpp/chapter-3/problems/multiplication.md @@ -1,4 +1,4 @@ -# 3.Q.1 Multiplication(★☆☆) +# 3.Q Multiplication(★☆☆) ## 問題 diff --git a/docs/cpp/chapter-3/problems/2.md b/docs/cpp/chapter-3/problems/sum-of-n.md similarity index 97% rename from docs/cpp/chapter-3/problems/2.md rename to docs/cpp/chapter-3/problems/sum-of-n.md index d85f8d49..86260875 100644 --- a/docs/cpp/chapter-3/problems/2.md +++ b/docs/cpp/chapter-3/problems/sum-of-n.md @@ -1,4 +1,4 @@ -# 3.Q.2 Sum of n(★★☆) +# 3.Q Sum of n(★★☆) ## 問題 From e9b10e8919ef42effaaa41461dadc771b3ae6173 Mon Sep 17 00:00:00 2001 From: rurun Date: Wed, 6 May 2026 17:14:10 +0900 Subject: [PATCH 13/15] =?UTF-8?q?deadlink=E3=81=AE=E8=A7=A3=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cpp/chapter-3/3.md | 2 +- docs/cpp/chapter-3/problems/multiplication.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/cpp/chapter-3/3.md b/docs/cpp/chapter-3/3.md index d552318e..309f6ae6 100644 --- a/docs/cpp/chapter-3/3.md +++ b/docs/cpp/chapter-3/3.md @@ -2,7 +2,7 @@ ## 3.3.1 標準出力 -[3.1.3](http://localhost:5173/cpp/chapter-3/1#_3-1-3-cout)で解説したように、`cout`を使うことでプログラムは値を出力することができる。 +[3.1.3](1#_3-1-3-cout)で解説したように、`cout`を使うことでプログラムは値を出力することができる。 ### 3.3.2 標準入力 diff --git a/docs/cpp/chapter-3/problems/multiplication.md b/docs/cpp/chapter-3/problems/multiplication.md index 2014916a..1a19bcaa 100644 --- a/docs/cpp/chapter-3/problems/multiplication.md +++ b/docs/cpp/chapter-3/problems/multiplication.md @@ -2,7 +2,7 @@ ## 問題 -標準入力から整数を3つ受け取って、3つの数の積を出力するプログラムを作ってみよう。プログラムの書き方が分からないときは、[3.3.2](http://localhost:5173/cpp/chapter-3/3#_3-3-2-%E6%A8%99%E6%BA%96%E5%85%A5%E5%8A%9B)にあるプログラムを参考にしよう。 +標準入力から整数を3つ受け取って、3つの数の積を出力するプログラムを作ってみよう。プログラムの書き方が分からないときは、[3.3.2](../3#_3-3-2-%E6%A8%99%E6%BA%96%E5%85%A5%E5%8A%9B)にあるプログラムを参考にしよう。 (入力される整数は大きすぎず、オーバーフローは気にしなくて良いものとする。) @@ -46,7 +46,7 @@ ::: details ヒント1 -[3.3.2](http://localhost:5173/cpp/chapter-3/3#_3-3-2-%E6%A8%99%E6%BA%96%E5%85%A5%E5%8A%9B)の最後に書かれているプログラムを改造することを考えよう。 +[3.3.2](../3#_3-3-2-%E6%A8%99%E6%BA%96%E5%85%A5%E5%8A%9B)の最後に書かれているプログラムを改造することを考えよう。 ```cpp:line-numbers #include From 18f8ffaf740ec162acfa363a3853473bf473702a Mon Sep 17 00:00:00 2001 From: yas-ako <105139975+yas-ako@users.noreply.github.com> Date: Wed, 6 May 2026 19:43:51 +0900 Subject: [PATCH 14/15] =?UTF-8?q?=E7=B4=B0=E3=81=8B=E3=81=84=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 | 16 ++++++++-------- docs/cpp/chapter-3/2.md | 4 ++-- docs/cpp/chapter-3/3.md | 2 +- docs/cpp/chapter-3/problems/sum-of-n.md | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/cpp/chapter-3/1.md b/docs/cpp/chapter-3/1.md index 01455f0b..3fbee05a 100644 --- a/docs/cpp/chapter-3/1.md +++ b/docs/cpp/chapter-3/1.md @@ -27,9 +27,9 @@ <<< @/cpp/chapter-3/Hello-traP.cpp{5 cpp:line-numbers} -コンソールに`Hello traP!`を「**出力**」する。 +コンソールに`Hello, traP!`を「**出力**」する。 -`"`で囲うのは、これが文字列なのか、命令なのかを区別するため。(VSCodeを使っていれば`"Hello traP!"`の部分だけ色分けされているはず。) +`"`で囲うのは、これが文字列なのか、命令なのかを区別するため。(VSCodeを使っていれば`"Hello, traP!"`の部分だけ色分けされているはず。) `endl`については3.1.3で解説する。 @@ -47,7 +47,7 @@ ## 3.1.2 コメント -<<<@/cpp/chapter-3/Hello-traP.cpp{6 cpp:line-numbers} +<<< @/cpp/chapter-3/Hello-traP.cpp{6 cpp:line-numbers} `//`と書くと、その行の`//`以降の部分はコメントとなる。すなわち、プログラム実行時には無視され、無いものとして扱われる。 @@ -59,7 +59,7 @@ ## 3.1.3 cout -<<<@/cpp/chapter-3/Hello-traP.cpp{5 cpp:line-numbers} +<<< @/cpp/chapter-3/Hello-traP.cpp{5 cpp:line-numbers} `cout`は値を出力するための仕組みである。`<<`を使って値を渡すと、その値が文字として画面に表示される。文字列を出力するときは、命令と区別するため、`"`で文字列を囲むようにする。 @@ -133,7 +133,7 @@ C++では、`;`(セミコロン)を多用する。`;`は「命令の区切 ## 3.1.5 include命令 -<<<@/cpp/chapter-3/Hello-traP.cpp{1 cpp:line-numbers} +<<< @/cpp/chapter-3/Hello-traP.cpp{1 cpp:line-numbers} `#include`は、外部の関数(やその他もろもろ)が実装されているファイルを取り込んで、使えるようにする命令である。 @@ -143,13 +143,13 @@ C++では、`;`(セミコロン)を多用する。`;`は「命令の区切 ## 3.1.6 using namespace std -<<<@/cpp/chapter-3/Hello-traP.cpp{2 cpp:line-numbers} +<<< @/cpp/chapter-3/Hello-traP.cpp{2 cpp:line-numbers} -これまで出力を`cout`と記述してきたが、これは本来ならば`std::cout`と書く必要がある。(`std::` が何を意味しているかは深くは解説しないがstdがstandardの略であることくらいは知っておいても良いだろう。)毎回`std::`と書かなければいけないのは少し不便なので、これを書かない(省略する)という宣言をしている。 +これまで出力を`cout`と記述してきたが、これは本来ならば`std::cout`と書く必要がある。(`std::`が何を意味しているかは深くは解説しないがstdがstandardの略であることくらいは知っておいても良いだろう。)毎回`std::`と書かなければいけないのは少し不便なので、これを書かない(省略する)という宣言をしている。 ## 3.1.7 main関数 -<<<@/cpp/chapter-3/Hello-traP.cpp{4 cpp:line-numbers} +<<< @/cpp/chapter-3/Hello-traP.cpp{4 cpp:line-numbers} プログラムは実行されるとき、このmain関数から実行が始まる。すなわち、main関数の中身がプログラムの最も主な処理であると捉えても良い。「関数」についての詳細は第7章で扱う。 diff --git a/docs/cpp/chapter-3/2.md b/docs/cpp/chapter-3/2.md index 710c3d90..19ad58be 100644 --- a/docs/cpp/chapter-3/2.md +++ b/docs/cpp/chapter-3/2.md @@ -153,7 +153,7 @@ int main() { 数学の$=$とは異なり、これは「右辺の値を左辺に代入する」操作を意味する。 -計算の中でも特に、`x = x + 4`など、「加算」したい時は、`x += 4`と略記することができる。他にも `-=`, `*=`, `/=`, `%=` が使える。 +計算の中でも特に、`x = x + 4`など、「加算」したい時は、`x += 4`と略記することができる。他にも `-=`, `*=`, `/=`, `%=`が使える。 ::: tip @@ -172,7 +172,7 @@ int main() { } ``` -## 3.2.2. オーバーフロー +## 3.2.3 オーバーフロー オタクというのはでかい数字が大好きなので、 diff --git a/docs/cpp/chapter-3/3.md b/docs/cpp/chapter-3/3.md index 309f6ae6..c2ee11f3 100644 --- a/docs/cpp/chapter-3/3.md +++ b/docs/cpp/chapter-3/3.md @@ -4,7 +4,7 @@ [3.1.3](1#_3-1-3-cout)で解説したように、`cout`を使うことでプログラムは値を出力することができる。 -### 3.3.2 標準入力 +## 3.3.2 標準入力 プログラムは外部に値を出力するだけでなく、外部からの入力を受け取ることもできる。入力を受け取るには、`cin`を用いる。 diff --git a/docs/cpp/chapter-3/problems/sum-of-n.md b/docs/cpp/chapter-3/problems/sum-of-n.md index 86260875..89d7ab72 100644 --- a/docs/cpp/chapter-3/problems/sum-of-n.md +++ b/docs/cpp/chapter-3/problems/sum-of-n.md @@ -23,7 +23,7 @@ $1+2+3+4+5+6+7+8+9+10$を計算すると、$55$になる。 -### 例1 +### 例2 #### 入力 @@ -50,12 +50,12 @@ $1+2+ \dots + 100$を計算すると、$5050$になる。 ::: ::: details ヒント3 (なぜか計算が合わない人へ) -プログラムにおいては、計算は左から順番に行われ、途中計算は必ず`int`型(=整数)に切り捨てられます。つまり、最初に `1/2`と書くとそこで0になってしまいます。 +プログラムにおいては、計算は左から順番に行われ、途中計算は必ず`int`型(=整数)に切り捨てられます。つまり、最初に`1/2`と書くとそこで0になってしまいます。 計算の順序を工夫する必要がありそうです。 ::: -### 解答例 +## 解答例 ::: details 解答例 From bd1e1a11818681ec5c7b9772c6688cc326b7f052 Mon Sep 17 00:00:00 2001 From: rurun Date: Wed, 6 May 2026 21:03:43 +0900 Subject: [PATCH 15/15] =?UTF-8?q?=E3=80=8C=E5=AE=A3=E8=A8=80=E3=80=8D?= =?UTF-8?q?=E3=82=92=E3=80=8C=E5=AE=9A=E7=BE=A9=E3=80=8D=E3=81=AB=E7=B5=B1?= =?UTF-8?q?=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cpp/chapter-3/1.md | 4 ++-- docs/cpp/chapter-3/problems/multiplication.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/cpp/chapter-3/1.md b/docs/cpp/chapter-3/1.md index 3fbee05a..3bc4e455 100644 --- a/docs/cpp/chapter-3/1.md +++ b/docs/cpp/chapter-3/1.md @@ -21,7 +21,7 @@ <<< @/cpp/chapter-3/Hello-traP.cpp{4 cpp:line-numbers} -`main`という名前の「**関数**」を宣言している。プログラムはここから実行される。 +`main`という名前の「**関数**」を定義している。プログラムはここから実行される。
@@ -125,7 +125,7 @@ traP! ## 3.1.4 セミコロン -C++では、`;`(セミコロン)を多用する。`;`は「命令の区切り」を示す。C++においては、関数を呼び出すときや、「変数」の宣言時など、各命令の終わりには`;`を記述しなければならない。 +C++では、`;`(セミコロン)を多用する。`;`は「命令の区切り」を示す。C++においては、関数を呼び出すときや、「変数」の定義時など、各命令の終わりには`;`を記述しなければならない。 ::: tip 最終的にはコンピューターが機械語に変換する必要があり、その際に命令の区切りをはっきりさせるために`;`を使うと考えると良い。 diff --git a/docs/cpp/chapter-3/problems/multiplication.md b/docs/cpp/chapter-3/problems/multiplication.md index 1a19bcaa..5518ef61 100644 --- a/docs/cpp/chapter-3/problems/multiplication.md +++ b/docs/cpp/chapter-3/problems/multiplication.md @@ -138,21 +138,21 @@ using namespace std; int main() { int x; int y; - int z; // 3つの変数x, y, zを宣言 + int z; // 3つの変数x, y, zを定義 cin >> x >> y >> z; // 3つの整数を受け取る cout << x*y*z << endl; // 積を計算して出力 } ``` -変数の宣言はまとめて行うこともできる。まとめて行うときには、`,`で区切れば良い。 +変数の定義はまとめて行うこともできる。まとめて行うときには、`,`で区切れば良い。 ```cpp:line-numbers{5} #include using namespace std; int main() { - int x, y, z; // 3つの変数x, y, zを宣言 + int x, y, z; // 3つの変数x, y, zを定義 cin >> x >> y >> z; // 3つの整数を受け取る cout << x*y*z << endl; // 積を計算して出力