ノートにメモ書き

自分が困ったことの解決方法をひたすらメモするブログ。口調が安定しない。まとめ→トップページの1番上

【C++】関数をつくろう①

関数を作る意味

「なんか適当にプログラムでも書くか」←適当

#include <iostream>
#include <string>

int main()
{
	int a = 2;

	a = a * 3;
	std::cout << "結果は " << a << std::endl;
}

「別の変数も追加しよう」

int main()
{
	int a = 2;
        int b = 3;

	a = a * 3;
	std::cout << "結果は " << a << std::endl;
}

「もう一回コピペするのは面倒だ…」←めんどくさがり
「そんな時には関数を作ればいいんだよ」

関数の作り方(引数、返り値なし)

「1つずつ段階を踏んで関数を作っていこう」
「まずはさっきのプログラムの掛け算と表示の部分の関数を作ろうか」

void kakezan()
{
	int x = 3;
	x = x * 3;
	std::cout << "結果は" << x << std::endl;
}

「あれ、aは??」
「まぁまぁ落ち着いて、すこしずつやっていくよ」
「『kakezan()』の前にある『void』ってなに??」
「まぁまぁ落ち着いて、すこしずつやっていくよ」
「…」
「これでkakezan関数を作ることができたよ、関数を使うには次のようにするんだ」

#include <iostream>
#include <string>

void kakezan()
{
	int x = 3;
	x = x * 3;
	std::cout << "結果は" << x << std::endl;
}

int main()
{
	int a = 2;
	int a2;

	kakezan();

}

「つくった関数を使うときはmain関数内に関数名を書くんだね」
「そうだよ。で、これを実行した結果はこんな感じになるよ」

結果は 9

「kakezan関数内のプログラムが実行されたね。で、aについて計算するにはどうするの?」
「それについては次回説明するよ」
「わくわくするなぁ」


次回につづく…

↓良ければクリックお願いします(*'ω'*)励みになります。

【C++】構造体の作り方・使い方②【プログラム例あり】

間違っているところがあればご連絡いただけると嬉しいです。
前回は構造体を作る意味や構造体の意味を説明しました。
lablabkun.hatenablog.com

今回は構造体の作り方と使い方について説明したいと思います。

構造体の作り方

「構造体を作るときには『struct』を使うよ」
「前回出てきたロボットの特徴をまとめるために、今回はrobot構造体を作ってみよう」
「たしか前回はロボットの特徴として、ロボットの色とボタンの数と腕の数について書いていたね」

struct robot
{
	std::string color;    // ロボットの色
	int button;     	// ロボットのボタンの数
	int arm;		// ロボットの腕の数
};

「これでさっき言っていたロボットの特徴をまとめたrobot構造体をつくることができるよ」
「colorとかbuttonやarmのような構造体を構成する要素メンバと呼ぶよ」

構造体の使い方

「構造体を作る方法は分かったけど、実際にはどうやって使うの?」
「こんな風に使うよ」

robot hitogata;		// 人型ロボットについて

// 人型ロボットについての情報を入力
hitogata.color = "green";	// 人型ロボットの色
hitogata.button = 4;		// 人型ロボットのボタンの数
hitogata.arm = 2;			// 人型ロボットのボタンの数

「intなどのように、変数の名前をhitogataに設定するよ。構造体の変数名なので、構造体変数名と呼ぶよ。」
「『構造体変数名.メンバ名』で構造体変数のメンバを使用することができるよ。このことをメンバを参照する(アクセスする)というよ」
「なるほど、『.』は『の』みたいな意味なんだね。『hitogata.color』なら『人型ロボット"の"色』ってことなんだね」
「これなら変数名がごちゃごちゃにならないかも!構造体を使ってプログラムを書いてみようと」

構造体を使ったプログラムの例


構造体の使用例

結果

人型ロボットのボタンの数は4だよ
お掃除ロボットの色はgrayだよ

「みんなも好きな構造体を作ってみよう!」

参考サイト


↓良ければクリックお願いします(*'ω'*)励みになります。