https://youtu.be/z9UuFdXgdL8

四国めたん:教師役ですわ

ずんだもん:生徒役なのだ
四国めたん: こんにちは。四国めたんです
ずんだもん: ずんだもんなのだ。こんにちはなのだ
四国めたん: 今回から皆さんと一緒に、C言語やC++言語によるプログラミングを勉強していくわよ
四国めたん: 初心者でもわかるように簡単な説明とするつもりですわ
四国めたん: 最初はプログラミングに関する用語など、わからない言葉も出るかもしれないわね
ずんだもん: わからない言葉はあとで説明するので、今はスルーしていいのだ
四国めたん: 第1回は "Hello World!!"の表示 を行いますわ
ずんだもん: プログラマーなら必ず通るみちなのだ
なぜC/C++?
四国めたん: その前にC言語について少しだけお話するわね
ずんだもん: 最近は新しいプログラミング言語が次々と現れて、何を勉強して良いか判らないのだ
四国めたん: そうね。今、実際に利用されているプログラミング言語だけでも230種類以上あるそうよ
ずんだもん: ウィキペディアに記載されているプログラミング言語は700種類以上あるのだ
四国めたん: まあ、おすすめはC言語やC++言語ね
ずんだもん: C言語やC++言語はオワコンとか云われてないか?
四国めたん: 確かに最近流行りのAIのプログラミング言語としてはPythonがお勧めですし、WebプログラミングではJavaScriptやPHP等が最適ですわ
四国めたん: 更にJavaは汎用性が高く企業向けに大人気なので学んでおいて損はありませんわ
四国めたん: それでも最初はC言語やC++言語を学ぶことをお勧めしますわね
四国めたん: なにより歴史の重みがありますものね
伊達に歴史を重ねていません
ずんだもん: へー、C言語ってどのくらい歴史があるのだ?
四国めたん: 50年以上ですわね。C++言語と合わせると50年間、不動の人気を誇ってきましたわ
ずんだもん: おー、それだけ歴史があると情報もいっぱいで学びやすそうなのだ
四国めたん: そうですね。情報だけではなくオープンソースのライブラリとかの資産も膨大ですわよ
ずんだもん: でも最近ではPython等でもライブラリ等の数は増えているのではないのか?
四国めたん: 確かにそうですが、それらのライブラリも高速化などのためにC言語やC++言語で作成されていたりしますわよ
四国めたん: 結局、今でもC言語やC++言語は無くてはならないプログラミング言語ということですわ
サポートしているアーキテクチャは多いですよ
四国めたん: あと、組み込み系等のソフトウェア開発用に最初に採用されるプログラミング言語は、アセンブラとC言語もしくはC++言語の場合が多いですわね
ずんだもん: 組み込み系?
四国めたん: 一般家庭の家電等に使われている小型のコンピューター等ですわ
ずんだもん: 普通のパソコンとは違うのか?
四国めたん: ええ、普通のパソコンで使われているのはIntel系といわれるCPUですわね
四国めたん: でもCPUにはその他にARM、MIPS、PowerPC、RISC-VやSuperH等、数多くありますわ
四国めたん: 組み込み系ではそれらのCPUが多く使われていますわね
ずんだもん: ふーん、そうなのだ
四国めたん: それら数多いCPUで最初に使われるプログラミング言語としてはアセンブラとC言語もしくはC++言語が最適ですわね
ずんだもん: なんで最適なのだ?
四国めたん: まず、OSを使わないシステムでも動作するソフトウェアを作成できるという利点がありますわ
四国めたん: 次に特定のポートやメモリアドレスにアクセスできるのでハードウェアを直接操作できる点が優れていますわ
四国めたん: 更に既存のアーキテクチャ向けには、gcc等のオープンソースで高性能なコンパイラが存在することが強みですわ
ずんだもん: なるほどなのだ。よくわからないけど、きっと凄いのだ
ぶっちゃけプログラミング言語はどれも同じですよ
ずんだもん: ところでC言語やC++言語を学ぶと何かいいことがあるのか?
四国めたん: アセンブラ、Fortranから受け継がれているプログラミング言語の基本は概ね 順次処理 、 分岐 、 反復 の3つですわ
ずんだもん: たったの3つなのか?
四国めたん: プログラミング言語によって書き方が違うだけですわね
四国めたん: またデータ構造についても概ね似通っていますわ
ずんだもん: データ構造?
四国めたん: 一般的には配列、構造体、クラス等のことで、プログラミング言語によって存在しなかったり書き方が異なったりしますが、概念は同じですわね
四国めたん: 特に現在使用されているプログラミング言語の多くはC言語やC++言語の影響を受けているため、C言語やC++言語を学んでおけば応用が効きますわ
ずんだもん: なるほどなのだ。よくわからないけど、きっと役に立つのだ
四国めたん: それではC言語やC++言語のプログラムを学んでいきましょう
ずんだもん: 勉強していくのだ
と云う訳で準備です
四国めたん: と、その前に準備が必要ですわね
ずんだもん: 何が必要なのだ?
四国めたん: まずプログラムを書くには、エディターが必要になりますわ
四国めたん: 更に書いたプログラムをコンピューターで動かせるようにするためのコンパイラーと云うソフトウェアが必要になりますわね
四国めたん: その他にリンカー等のソフトウェアも必要ですわね
ずんだもん: 結構、いろいろと必要になるのだ
四国めたん: 今回は Visual Studio を使いますわ
ずんだもん: Visual Studio ?
四国めたん: Microsoftが提供する統合環境ソフトウェアなので全てが揃っていますわね
ずんだもん: でもお高いのでしょう?
四国めたん: 個人や学生、非商用にはCommunity版という無料で利用できるものがありますわ
ずんだもん: おおー、凄いのだ。Microsoftは太っ腹なのだ
四国めたん: とりあえずWindowsPC用のCommunity版を使っていきますわね
Visual Studioをダウンロードします
ずんだもん: ところで Visual Studio はどうやって手に入れるのだ?
四国めたん: Visual Studio についてはMicrosoftのダウンロードページからダウンロードできますわ

四国めたん: インストールについては、別途、解説していますわ
ずんだもん: 分かったのだ。インストールは別の解説をみるのだ
Visual Studio Code
とにもかくにもHello world
四国めたん: それでは早速 Visual Studio を使って最初のプログラムを作成して行きましょう
ずんだもん: レッツゴーなのだ
はじめてのVisual Studio起動
四国めたん: 先ず、"スタート"から"Visual Studio 2022"を選び、起動しますわ
ずんだもん: Visual Studio のスタート画面が表示されたのだ

四国めたん: そこで"新しいプロジェクトの作成"をクリックしますわ
ずんだもん: "新しいプロジェクトの作成"ウィンドウが表示されたのだ
四国めたん: 右側上部の"すべての言語"と表示されているプルダウンから"C++"を選択してください
四国めたん: 更に"すべてのプラットフォーム"と表示されているプルダウンから"Windows"を選択します
四国めたん: 最後に"すべてのプロジェクトの種類"と表示されているプルダウンから"コンソール"を選択してください
ずんだもん: 右側のプロジェクトの種類が絞り込まれたのだ
四国めたん: とりあえず"空のプロジェクト"を選択して"次へ"ボタンをクリックしますわ

ずんだもん: "新しいプロジェクトを構成します"ウィンドウが表示されたのだ

四国めたん: そのまま"作成"ボタンをクリックしてくださいね
四国めたん: "プロジェクト名"や"場所"、"ソリューション名"等については、適当に変えても、問題ありませんわ
ずんだもん: Visual Studio の作業ウィンドウが開いたのだ
まずは設定
ずんだもん: さっそくプログラムを作っていくのだ
四国めたん: はい、その前に少しだけ Visual Studio の設定を行いましょう
ずんだもん: 設定?
四国めたん: はい、便利な機能を使うための設定ですわ
ずんだもん: どのように行うのだ?
四国めたん: まず上部のメニューバーの"ツール"から"オプション"を選択してください

ずんだもん: "オプション"ウィンドウが表示されたのだ
四国めたん: 左のペインで"▷テキストエディター"の三角部分(▷)をクリックして展開します
四国めたん: さらに"▷C/C++"の三角部分(▷)をクリックして展開後、"▷コードスタイル"の三角部分(▷)をクリックして展開します
四国めたん: そこで"▷書式設定"をクリックして右のペインをスクロールダウンすると"既定の書式スタイル"という項目が表示されますわ

ずんだもん: "既定の書式スタイル"の左に不等号">"のようなマークがあるけど何なのだ?
四国めたん: クリックすると"既定の書式スタイル"が開いたり閉じたりしますわ
四国めたん: とりあえず開いておいてくださいね
四国めたん: その中で"Visual Studio"が選択されていると思いますので"Google"を選択してOKボタンをクリックしますわ
ずんだもん: どんないいことがあるのだ?
四国めたん: 書いたプログラムを自動的に綺麗にフォーマットしてくれるようになりますわ
ずんだもん: おお、それはすごいのだ
書式スタイル
基本的にコードのスタイルが統一されていると見た目に美しいだけではなく間違いも少なくなります
ですので個人や企業、コミュニティー単位で書式スタイルが決まっている場合があります
一般的には コーディングスタイル とか コーディング規約 とか呼ばれています
その中でも有名なのが今回選択した"Googleスタイル"です
"LLVM"や"Chromium"、"Mozila"、"WebKit"等も使われています
ただ"Visual Studio"というスタイルはあまり聞きませんしオートフォーマット機能も最小限のようです
プログラムファイルを作成しよう
四国めたん: 次に"ソリューションエクスプローラー"で"Project1"を右クリックしますわ
四国めたん: 表示されるメニューの"追加"から"新しい項目..."を選びますわよ


ずんだもん: "新しい項目の追加"ダイアログが表示されたのだ
四国めたん: "FileName.cpp"と表示されている部分を"hello_world.c"に変更して"追加"ボタンをクリックしますわ
⇒
ずんだもん: ファイルの拡張子が"cpp"から"c"に変わっているのだ
四国めたん: 今回はC言語のコードなのでファイルの拡張子は"c"ですわね
四国めたん: C++言語のコードの場合のファイルの拡張子は"cpp"ですわ
ずんだもん: 作業ウィンドウに"hello_world.c"のファイルのエディット画面が表示されるのだ
四国めたん: いよいよ実際のコードを記述していきますわよ
ずんだもん: できたのだー
四国めたん: それではツールバーの"ローカルWindowsデバッガー"をクリックしてみますわ

ずんだもん: コンソールが表示されて"Hello World!!"と表示されたのだ

四国めたん: なにかキーを押せばコンソールが閉じてコードの実行が終了しますわ
四国めたん: なおコンソールが表示されない場合はコードに間違いがあるかもしれませんので確認して下さいね
各行を解説していくよ
#include <stdio.h>
四国めたん: それではコードの各行を解説していきましょう
ずんだもん: お願いするのだ
四国めたん: まずは#include <stdio.h>
ですわね
四国めたん: #include
というのは"ディレクティブ"と呼ばれる、コンパイラに対する指示を行う文ですわ
ずんだもん: どのような指示なのだ?
四国めたん: #include
ディレクティブは、続いて指定するファイルの内容でディレクティブの部分を置き換えるようにする指示ですわ
四国めたん: 今回の場合#include <stdio.h>
は、 この場所に"stdio.h"ファイルの内容を読み込んで置き換えなさい という指示になりますわ
ずんだもん: "stdio.h"?
四国めたん: "stdio.h"とはC言語に標準で付いてくるファイルのひとつですわ
四国めたん: 最初の内はとりあえず先頭に#include <stdio.h>
を記述しておけば問題ないですわ
ずんだもん: 何も考えずにできるのなら楽で良いのだ
void main()
四国めたん: 次に"void main()"ですわね
四国めたん: 一般的には メイン関数 と呼ばれていますわ
ずんだもん: なるほどなのだ
四国めたん: void main()
以下はプログラムの本体となりますわ
四国めたん: C言語ではvoid main() {}
の中括弧"{}"内に書かれたコードを順番に実行していきますわ
メイン関数
メイン関数については他にも以下のような書き方があります
int main() {}
int main(void) {}
int main(int argc, char *argv[]) {}
int main(int argc, char **argv) {}
いずれも使えますが、汎用性が高いので3番目か4番目の書き方がお勧めです
printf("Hello World!!");
四国めたん: 最後に"printf("Hello World!!");"についてですわ
四国めたん: プログラムの本体となりますわね
四国めたん: 今回はコンソールに"Hello World!!"という文章を表示していますわ
ずんだもん: そういえば"Hello World!!"と表示されていたのだ
ずんだもん: ところでprintf()
ってなんなのだ?
四国めたん: printf()
はC言語に標準で付いてくる"標準Cライブラリ"に含まれたプログラムですわ
四国めたん: 括弧"()"内に記述した、ダブルクォーテーション(")で囲んだ文章をコンソールに表示してくれますわ
四国めたん: printf()
は他にも便利な使い方が色々ありますが、今回は省きますわ
ずんだもん: ぶーぶー
四国めたん: 因みに文末のセミコロン(;)ですが、特別な場合を除いては省略してはいけませんわよ
ずんだもん: 決まり事なのでしかたないのだ
まとめ
四国めたん: おつかれさまでした
四国めたん: 以上ですべてのプログラマーがいちどは通る道、 "Hello World!!"の表示 を終了しますわ
ずんだもん: おつかれさまなのだ
Discussion