🌻天国にいけるC++言語入門🌻 進化し続けるオブジェクト指向プログラミング ver3.2307
クラスを用いてベクトルを管理してみよう😊対象を数値データで表してしまえば😊 コンピュータは そのデータをメモリに格納して取り扱うことができます
クラスを用いてベクトルを管理してみよう😊対象を数値データで表してしまえば😊 コンピュータは そのデータをメモリに格納して取り扱うことができます
ソーラー「
xy座標上に次の3つの点があるとします
O(0,0)
A(2,1)
B(1.2)
O(0,0)からA(2,1)へ線を引っ張った場合
x軸に対し30度の角度で線が伸びていきます
線分OAの長さは
三平方の定理より
(2²+1²)の2分の1乗となります
このように
x軸に対し30度の角度で伸び
長さが
(2²+1²)の2分の1乗
イコール
√5
の
線分を
2次元ベクトル
(2,1)で表すことにします
O(0,0)からB(1,2)へ線を引っ張った場合
x軸に対し60度の角度で線が伸びていきます
線分OBの長さは
三平方の定理より
(1²+2²)の2分の1乗
イコール
√5
となります
このように
x軸に対し60度の角度で伸び
長さが
√5の線分を
2次元ベクトル
(1,2)で表すことにします
このとき
2次元ベクトル
と
2次元ベクトル
の向きは同じではありませんが
2次元ベクトル
と
2次元ベクトル
の足し算というものを実行してみたいと思います
このときも
2次元ベクトル
と
2次元ベクトル
の足し算は
が足し合わされ
このベクトル(3,3)を
2次元ベクトル
もちろん
このベクトル(3,3)はベクトルなので
方向と長さを持った線分です
このときの
2次元ベクトル
三平方の定理により
(3²+3²)の2分の1乗
イコール
3√2
になります」
マックス「
2次元ベクトル
と
2次元ベクトル
の向きは同じでないが
2次元ベクトル
と
2次元ベクトル
の足し算が実行できたというわけだ」
ソーラー「
今の
2次元ベクトル
と
2次元ベクトル
の足し算を
クラスを用いてプログラム上で行ってみたいと思います」
マックス「おっなんだか 本格的になってきたな」
ソーラー「といっても簡単です
まずは次のような
2つの数値データを取り扱うオブジェクトを生成することのできる
クラスVector(ベクトル)を用意します
👇
class Vector {
public:
int x;
public:
int y;
};
このクラスVectorは2つの数値データを管理することができるので
このクラスVectorを用いて
2次元ベクトル
と
2次元ベクトル
を取り扱ってみたいと思います
そのプログラムはこちらです
👇
#include <iostream>
using namespace std;
class Vector {
public:
int x;
public:
int y;
};
int main() {
Vector a;
a.x = 2;
a.y = 1;
Vector b;
b.x = 1;
b.y = 2;
cout << a.x << "\n";
cout << a.y << "\n";
cout << "ベクトルvector_OAの長さは"<<sqrt(a.x*a.x + a.y*a.y)<<"です"<< "\n";
cout << b.x << "\n";
cout << b.y << "\n";
cout << "ベクトルvector_OBの長さは" << sqrt(a.x*a.x + a.y*a.y) << "です" << "\n";
return 0;
}
ビルド実行結果
2
1
ベクトルvector_OAの長さは2.23607です
1
2
ベクトルvector_OBの長さは2.23607です
int(イント)「
2次元ベクトル
と
2次元ベクトル
の長さももとめているんだ」
ソーラー「えへっおまけです
このプログラムでは
2次元ベクトル
と
2次元ベクトル
のデータを
Vector a;
a.x = 2;
a.y = 1;
Vector b;
b.x = 1;
b.y = 2;
を実行することにより
メモリに格納し
cout << a.x << "\n";
cout << a.y << "\n";
cout << "ベクトルvector_OAの長さは"<<sqrt(a.x*a.x + a.y*a.y)<<"です"<< "\n";
cout << b.x << "\n";
cout << b.y << "\n";
cout << "ベクトルvector_OBの長さは" << sqrt(a.x*a.x + a.y*a.y) << "です" << "\n";
を実行することにより
2
1
ベクトルvector_OAの長さは2.23607です
1
2
ベクトルvector_OBの長さは2.23607です
を
コマンドプロンプト画面に表示しています
ここで
sqrt(a.x*a.x + a.y*a.y)のsqrtをはじめて見られた方もいるんじゃないかな?
このsqrtはsqrtにつづく()内のデータを2分の1乗にする働きがあります
ですから
sqrt(2)は
2の2分の1乗
イコール
√2
を
sqrt(3)は
3の2分の1乗
イコール
√3
を表すことになります
そのことを示すプログラムは以下のようになります
#include <iostream>
using namespace std;
class Vector {
public:
int x;
public:
int y;
};
int main() {
cout << sqrt(2) << "です" << "\n";
cout << sqrt(3) << "です" << "\n";
return 0;
}
ビルド実行結果
1.41421です
1.73205です
てんC「
2次元ベクトル
と
2次元ベクトル
のデータを
メモリに格納できました
ということは
2次元ベクトル
と
2次元ベクトル
これらのデータを
コンピュータを使ってとりあつかうことができますね
それも
2次元ベクトル
と
2次元ベクトル
は
2つの数値データで
あらわすことができるからこそなのですね」
ソーラー「そうなんです
😊対象を数値データで表してしまえば😊
コンピュータは
そのデータをメモリに格納してとりあつかうことができるようになるというわけなんです」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます