はじめてのC++プログラミング入門講座では、プログラミングをやったことのない人でも分かるように、C++について解説します。まずは、C++を知るところからはじめて、初心者がつまづきやすい「ポインタ」までをゴールとして進めていきます。全て無料で学べる内容となってますので、ぜひ最後までお付き合いください。
丁寧に学ぶをモットーに、ひとつずつじっくりと理解しけるように解説します。 はじめは少し退屈かもしれませんが、基礎を身に着けておくと、後が楽になります。また、プログラミング学習でよくあるのが、飛ばしすぎて途中で挫折してしまうことです。続けさえすれば力になります。じっくりゆっくり学んでいきましょう。
本講座はC++の開発環境が必要です。環境構築には第1回のVisual Studioの環境構築を参考にしてください。下記からどうぞ。
前回の第2回では、最もシンプルなプログラムを使用して、プログラムの基本を解説しました。詳細は下記からどうぞ。
重要な項目は下記の通りです。前回学んだ画面出力は、今後の講座でほぼ毎回出てきます。覚えておきましょう。
- #include はライブラリを使えるようにする
- <Iostream> は入出力に関する標準ライブラリ
- int main(){ } はメイン関数
- プログラムの実行とは、メイン関数内を実行することを意味する
- 標準ライブラリのメソッドを使うときは頭にstd::をつける
- プログラムの行の末尾にはセミコロン(;)をつける
- 画面出力にはcoutを使う
- ダブルクォーテーション(”)で囲むと文字列として認識される
- 文字列内に特殊な文字列(\nなど)を入れることで特殊な文字を表せる
- \n は改行を表す
変数と型、それと演算子
変数とは、簡単に言うと数学でいうxのことです。この変数を使って色々なことができるようになります。例えば、計算やたくさんの情報が入ったリスト、複雑なロジック等を作ることが出来ます。
プログラミングでは、変数に数字以外にも文字も入れられます。このときに、変数に数字や文字等のなんの情報を入れるかを指定するのが「型」です。
そして、計算をするときに使うのが、「演算子」です。足す引くかける割るは四則演算と呼ばれますが、+ー×÷は演算子と呼ばれます。
基本的には、算数や数学の知識の延長線ですが、忘れている部分も多いと思うので、振り返りも兼ねて勉強しましょう。
今回のコードの全体像は下記のとおりです。VisualStudioに貼り付けてCtrl+F5で実行してみてください。
#include <iostream>
#include <string>
int main()
{
int x;
x = 3;
int y = 5;
int z;
z = x + y;
std::cout << z << "\n";
std::cout << x - y << "\n";
std::cout << x * y << "\n";
std::cout << x / y << "\n";
std::cout << x % y << "\n";
double d = 3.14;
std::cout << d / x << "\n";
char c = 'a';
std::string message = "I love";
std::string message2 = " Japan";
std::cout << message + message2;
}
出力結果は下記の通りです。
8 -2 15 0 3 1.04667 I love Japan
今回のコードも上から順に一つずつ解説していきます。
ライブラリ
#include <iostream>
#include <string>
まずは標準ライブラリを使用できるようにインクルードします。iostreamは入出力ライブラリ、stringは後述する文字列ライブラリです。
メイン関数
int main()
{
・・・
}
前回も説明しましたが、このmain関数内のコードが実行されます。この中に実行したいコードを追加していきましょう。
型と宣言
int x;
x = 3;
int y = 5;
int z;
z = x + y;
int x;の行で変数を作成しています。変数とは数学のxやyのようなもので、好きな値を入れることができます。変数の定義にはいくつか種類があり、今回はその中でも整数を扱う整数型のintを使用しています。つまり、今回作成したxには整数しかいれることができないということです。行末のセミコロンも忘れないようにしましょう。
今回はわかりやすいようにxという名前の変数を作りましたが、わかりやすければ名前は何でも良いです。helloなどの文字列でもhi_guyなどのアンダーバー(_)が入っていても大丈夫です。小文字を使うのが一般的なので、それだけは意識しておくと良いです。
x = 3;の行ではxに3を代入しています。気をつけてほしいのは、数学と違ってプログラミングではイコール(=)は等号の意味ではないことです。プログラミングでは代入をイコール(=)で表し、右に書いた数字を左に書いた変数に代入することを意味します。
int y = 5;の行では、変数yの定義とyに5を代入する作業を一行にまとめています。yは整数型で定義されているので、xと同様に整数以外の値は入りません。書き方としてはこちらのほうがスマートなのでよく使われます。
int z;の行ではzを整数型で定義しています。説明は不要ですね。
z = x + y;の行では、xとyの足した結果をzに代入しています。ここまでのプログラムでx=3,y=5と代入しているので、zの結果は3+5なので8になります。このようにイコール(=)の右側には数式を書くこともできます。イコール(=)やプラス(+)のことを演算子(オペレータ)と呼び、数字(3,5)や変数(x,y,z)のことをオペランドと呼びます。
演算子と画面出力
std::cout << z << "\n";
std::cout << x - y << "\n";
std::cout << x * y << "\n";
std::cout << x / y << "\n";
std::cout << x % y << "\n";
次は表示に関するブロックについて説明します。ここでは画面表示しながら各演算子の結果を観察します。
std::cout << z << “\n”;は前回も使用した画面出力を使用して、今回計算したzを画面に出力しています。std::cout << の部分が出力に関する情報です。std::にて標準ライブラリ内の機能を指定し、coutで出力します。今回もiostreamのライブラリをインクルードしているので、画面出力に関するcoutが使用できます。zには既に8を代入しているので、<<zの画面出力結果は「8」になります。<< “\n”は前回も説明したとおり、改行です。次の行の出力結果と混同しないように、画面出力する際は改行を付けておくことをおすすめします。
std::cout << x – y << “\n”;
std::cout << x * y << “\n”;
std::cout << x / y << “\n”;
std::cout << x % y << “\n”;
上記4行は全て演算結果を画面出力しています。今までcoutでは変数や文字列しか出力していませんでしたが、演算結果を出力することもできます。x – yはxとyの引き算、x * yはxとyの掛け算、x / yは割り算、x % yはx割るyの余りを表示します。これらは基本的な計算でよく使用するので覚えておきましょう。
浮動小数点型
double d = 3.14;
std::cout << d / x << "\n";
今までは整数型のintを使用していましたが、ここからは別の型を紹介します。まずはdouble型です。double型は浮動小数点型と呼ばれる型で、小数を扱うときに使用します。double型を使うことで、3.14のような小数点の情報を持った変数(d)を定義することができます。
std::cout << d / x << “\n”;の行では、小数点型で定義したdと整数型で定義したxの割り算を計算して、画面に出力しています。このように型の異なる計算をする場合は、情報の大きい型の結果が得られます。整数よりも小数のほうが情報が多いので、今回の割り算の結果は小数で出力されることになります。
文字型と文字列型
char c = 'a';
std::string message = "I love";
std::string message2 = " Japan";
std::cout << message + message2;
char c = ‘a’;の行では、cに文字aを代入しています。char型は文字型です。char型は”文字”を入れる変数を定義します。今回は、cという変数に対してaという文字を入れています。注意として、文字型は1文字しか入れられないことです。
一文字しかいれられない型は不便です。そのため、C++には文字列型というものがあります。それが、string型です。stringはC++では標準機能ではないので、ライブラリのインクルードが必要です。
std::string message = “I love”;
std::string message2 = ” Japan”;
この2行では、文字列型のstring型を使用して、変数messageとmessage2に文字列を与えています。string型はライブラリからのインクルードなので、std::を先頭につけるのを忘れず行いましょう。文字列は数値や変数と見分けるためにダブルクォーテーション(”)で囲みましょう。ちなみにダブルクォーテーション(”)で囲んだ文字列をリテラル文字列と呼びます。
std::cout << message + message2;の行では文字列型の変数messageとmessage2を連結して画面に出力しています。整数型の足し算は足した結果が出力されますが、文字列の足し算は連結した結果を出力します。messageは”I love”、message2は” Japan”が代入されているので、message+message2は”I love Japan”となります。
8 -2 15 0 3 1.04667 I love Japan
ここまでのプログラムで、上記の出力結果が得られます。ざっくりと振り返りましょう。まずは、整数型の演算として、+-*/%の四則演算を学びました。そして、浮動小数点型と整数型の演算(今回は割り算)で強制的に浮動小数点型の結果が出力されれること、文字列型の足し算で連結した文字列が得られることを学びました。
おわりに
今回は変数と型と演算子について解説しました。型を使った変数宣言はどの言語でもほぼ共通です。整数と浮動小数点はよく使うので覚えておきましょう。変数をうまく使えるようになれば、できることが大幅に広がります。
重要なポイントは下記の通りです。
- 変数は数学のxやyのように好きなものを入れられる
- 変数は整数・小数・文字列などが入れられる
- 変数は使用用途に応じた型で宣言する必要がある
- 小数はプログラミングでは、表示方法に基づいた名前として浮動小数点と呼ぶ
- 演算もできる
- かける(×)は「*」、割る(÷)は「/」で表す
次回は、代入演算子とインクリメントについて解説します。下記からどうぞ。
youtube動画でも解説しています。詰まったらこちらもどうぞ。