2次元ベクトルOAと2次元ベクトルOBの足し算をコンピュータを使って実行してみます

ソーラー「またまたですが


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次元ベクトルOAと名づけ


(2,1)で表すことにします



O(0,0)からB(1,2)へ線を引っ張った場合


x軸に対し60度の角度で線が伸びていきます


線分OBの長さは


三平方の定理より


(1²+2²)の2分の1乗


イコール


√5


となります


このように


x軸に対し60度の角度で伸び


長さが


√5の線分を


2次元ベクトルOBと名づけ


(1,2)で表すことにします


このとき


2次元ベクトルOA



2次元ベクトルOB


の向きは同じではありませんが



2次元ベクトルOA



2次元ベクトルOB


の足し算というものを実行してみたいと思います


このときも


2次元ベクトルOA(1,2)

2次元ベクトルOB(2,1)


の足し算は


OAOBであらわされます


OA(2,1)の第1項とOB(1,2)の第1項


OA(2,1)の第2項とOB(1,2)の第2項


が足し合わされ


OAOB=(3,3)となります


このベクトル(3,3)を


2次元ベクトルOCと名づけます


もちろん


このベクトル(3,3)は


ベクトルなので


方向と長さを持った線分です


このときの


2次元ベクトルOCの長さは


三平方の定理により


(3²+3²)の2分の1乗


イコール


3√2


になります」


マックス「


2次元ベクトルOA



2次元ベクトルOB


の向きは同じでないが


2次元ベクトルOA



2次元ベクトルOB


の足し算が実行できたというわけだ」


ソーラー「


今の


2次元ベクトルOA



2次元ベクトルOB


の足し算を


クラスを用いてプログラム上で行ってみたいと思います」


マックス「おっなんだか 本格的になってきたな」


ソーラー「といっても簡単です


まずは次のようなクラスVectorを用意します

👇

class Vector {


public:


int x;


public:


int y;


};

👆

このクラスVectorは2つのデータを管理することができるので


このクラスVectorを用いて


2次元ベクトルOA(2,1)



2次元ベクトルOB(1,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です



ソーラー「このプログラムでは


2次元ベクトルOA(2,1)



2次元ベクトルOB(1,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です



コマンドプロンプト画面に表示しています


さて


             いよいよ


2次元ベクトルOA(2,1)



2次元ベクトルOB(1,2)


の足し算を


コンピュータを使って実行してみたいと思います


みなさんなら


どのようにプログラムを構成して


2次元ベクトルOA(2,1)



2次元ベクトルOB(1,2)


の足し算を実行されますか?」


int(イント)「はい、はいっっ🌞


Vector a;


a.x = 2;


a.y = 1;


Vector b;


b.x = 1;


b.y = 2;


を実行した後


Vector c;


c.x=a.x +b.x;

c.y=a.y+b.y;


を実行したらいいのかっな~


次のプログラムでいいのかな

👇

#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;


Vector c;


c.x = a.x + b.x;

c.y = a.y + b.y;



cout <<c.x<<"\n";


cout <<c.y<<"\n";


return 0;

}


プログラムの実行結果


3

3


int(イント)「このプログラムでは



2次元ベクトルOA(2,1)



2次元ベクトルOB(1,2)


のデータを


Vector a;


a.x = 2;


a.y = 1;


Vector b;


b.x = 1;


b.y = 2;


を実行することにより


メモリに格納しています


次に


Vector c;


を実行して


Vector型のオブジェクトcを作製しています


Vector型のオブジェクトcのメンバ変数


c.x

c.y


2次元ベクトルOCのデータを管理することができます


次に


Vector型のオブジェクトcのメンバ変数


c.x

c.y


c.x = a.x + b.x;

c.y = a.y + b.y;



a.x + b.x

a.y + b.y


を代入しています


2次元ベクトルOA(2,1)



2次元ベクトルOB(1,2)


の足し算とは


2次元ベクトルOA(2,1)


の第1項



2次元ベクトルOB(1,2)


の第1項


2次元ベクトルOA(2,1)


の第2項



2次元ベクトルOB(1,2)


の第2項


をたしあわせることなので


a.x + b.x

a.y + b.y



2次元ベクトルOA(2,1)



2次元ベクトルOB(1,2)


の足し算


を表現できたことになるわけですね


Vector型のオブジェクトcのメンバ変数


c.x

c.y



a.x + b.x

a.y + b.y


を代入しておいたので


cout <<c.x<< "\n";


cout <<c.y<< "\n";


を実行すれば


2次元ベクトルOA(2,1)



2次元ベクトルOB(1,2)


の足し算の結果として


プログラムの実行結果


3

3


が表示されることになります


Vector型のオブジェクトcのメンバ変数


c.x

c.y



2次元ベクトルOCのデータなので


Vector型のオブジェクトcのメンバ変数


c.x

c.y



Vector型のオブジェクトaのメンバ変数


a.x

a.y



Vector型のオブジェクトbのメンバ変数


b.x

b.y


を足し合わせた


a.x + b.x

a.y + b.y


が代入された状態で



cout <<c.x<< "\n";

cout <<c.y<< "\n";


を実行すれば


2次元ベクトルOA(2,1)



2次元ベクトルOB(1,2)



足し合わせた


2次元ベクトルOCのデータを


コマンドプロンプト画面に表示したことになります


どう? こんな感じかしら」



マックス「おお、やるな


int(イント)


いい感じで


コンピュータを使って


2次元ベクトルOA(2,1)



2次元ベクトルOB(1,2)


の足し算が実行できてるじゃないか」












  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る