ΠΠΈΡΡΠΈΠ½Π³ ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Setlocale (LC_ALL," Russian"); ΠΠΎΠ»Π»ΠΈΠ½Π΅Π°ΡΠ½ΠΎΡΡΡ. Double operator*(Vector obj). For (int i = 0; i < 3; i++). Void collinear (Vector &v). Vector operator *= (int x). ΠΠ»ΠΈΠ½Π° Π²Π΅ΠΊΡΠΎΡΠ°. For (int i=0; i < 3; i++). For (int i=0; i < 3; i++). For (int i=0; i < 3; i++). Void perpend (Vector &v). Double &operator (int i). Void vectorLength (). ΠΠΏΠ΅ΡΠ°ΡΠΎΡ -=. Using namespace std; Coords -= a. coords; Coords -= a… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΈΡΡΠΈΠ½Π³ ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
#include.
#include.
using namespace std;
//ΠΠ»Π°ΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²Π΅ΠΊΡΠΎΡΠΎΠ²:
class Vector.
{.
//ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²Π΅ΠΊΡΠΎΡΠ° — Π·Π°ΠΊΡΡΡΡΠΉ ΠΌΠ°ΡΡΠΈΠ²-ΡΠ»Π΅Π½ ΠΊΠ»Π°ΡΡΠ°:
double coords[3];
public:
//ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° [] Π΄Π»Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²:
double &operator[](int i).
{.
int k=i%3;
return coords[k];
}.
//ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° () Π΄Π»Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
Vector operator ()(double x, double y, double z).
{.
coords[0]=x;
coords[1]=y;
coords[2]=z;
return *this;
}.
//ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° () Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ:
Vector operator ()(Vector a, Vector b).
{.
for (int i=0; i < 3; i++).
coords[i]=a[i+1]*b[i+2]-a[i+2]*b[i+1];
return *this;
}.
//ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° +.
Vector operator+ (const Vector &a).
{.
return Vector (coords[0]+a.coords[0], coords[1]+a.coords[1], coords[2]+a.coords[2]);
}.
Vector& operator += (Vector &a).
{.
coords[0] += a. coords[0];
coords[1] += a. coords[1];
coords[2] += a. coords[2];
return *this;
}.
//ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ;
Vector operator- (const Vector &a).
{.
return Vector (coords[0]-a.coords[0], coords[1]-a.coords[1], coords[2]-a.coords[2]);
}.
// ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ -=.
Vector& operator -= (Vector &a).
{.
coords[0] -= a. coords[0];
coords[1] -= a. coords[1];
coords[2] -= a. coords[2];
return *this;
}.
//ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° * Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠΊΠ°Π»ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ:
double operator*(Vector obj).
{.
double res=0;
for (int i=0; i < 3; i++).
res+=coords[i]*obj[i];
return res;
}.
//Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΠ»ΠΎ.
Vector operator *= (int x).
{.
for (int i = 0; i < 3; i++).
coords[i] *= x;
return *this;
}.
//ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ ΡΡΠ΅ΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ:
Vector (double x, double y, double z).
{.
coords[0]=x;
coords[1]=y;
coords[2]=z;
}.
//ΠΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π²Π΅ΠΊΡΠΎΡΠ°:
void show ().
{.
cout << «(«<< coords[0] << «, «<< coords[1] << «, «<< coords[2]<<») «;
}.
//ΠΠ»ΠΈΠ½Π° Π²Π΅ΠΊΡΠΎΡΠ°.
void vectorLength ().
{.
double res;
res = sqrt (coords[0]*coords[0] + coords[1]*coords[1] + coords[2]*coords[2]);
cout << res;
}.
//ΠΠΎΠ»Π»ΠΈΠ½Π΅Π°ΡΠ½ΠΎΡΡΡ.
void collinear (Vector &v).
{.
float a, b, c;
a=coords[0]/v.coords[0];
b=coords[1]/v.coords[1];
c=coords[2]/v.coords[2];
if (a==b==c) cout << «ΠΠ΅ΠΊΡΠΎΡΠ° ΠΊΠΎΠ»Π»ΠΈΠ½Π΅Π°ΡΠ½Ρ» <
else cout << «ΠΠ΅ΠΊΡΠΎΡΠ° Π½Π΅ ΠΊΠΎΠ»Π»ΠΈΠ½Π΅Π°ΡΠ½Ρ» <
}.
//ΠΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½ΠΎΡΡΡ.
void perpend (Vector &v).
{.
float a=coords[0]*v.coords[0] + coords[1]*v.coords[1] + coords[2]*v.coords[2];
if (a==0) cout << «ΠΠ΅ΠΊΡΠΎΡΠ° ΠΏΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½Ρ» <
else cout << «ΠΠ΅ΠΊΡΠΎΡΠ° Π½Π΅ ΠΏΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½Ρ» <
}.
//ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²:
Vector ().
{.
for (int i=0; i < 3; i++).
coords[i]=0;
}.
friend ostream & operator<< (ostream &, const Vector &);
friend istream & operator>> (istream &, Vector &);
};
ostream& operator<< (ostream &out, const Vector &a).
{.
out << «(«<< a. coords[0] << «, «<< a. coords[1] << «, «<< a. coords[2]<<») «;
return out;
}.
int main ().
{.
setlocale (LC_ALL," Russian");
Vector a, b (2,1,3), c, d (0,0,0), e (0,0,0);
a (1,-3,4);
cout << «ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π²Π΅ΠΊΡΠΎΡΠΎΠ²:» <
cout << «a = «;
a.show ();
cout << «b = «;
b.show ();
cout << «d = «;
d.show ();
cout << «e = «;
e.show ();
cout << endl;
cout << «Π‘ΡΠΌΠΌΠ° a + b = «<< a + b;
d += b;
cout << «Π‘ΡΠΌΠΌΠ° Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ d += b: «<< d;
cout << «Π Π°Π·Π½ΠΎΡΡΡ a — b = «<< a — b;
e -= b;
cout << «Π Π°Π·Π½ΠΎΡΡΡ Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ e -= b: «<< e;
cout << «Π‘ΠΊΠ°Π»ΡΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ a * b = «<< a * b << endl;
if ((a * b)==0) cout << «ΠΠ΅ΠΊΡΠΎΡΠ° a ΠΈ b ΠΏΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½Ρ «;
else cout << «ΠΠ΅ΠΊΡΠΎΡΠ° a ΠΈ b Π½Π΅ ΠΏΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½Ρ «;
c (a, b);
e *= 5;
cout << «Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΠ»ΠΎ e * 5 = «<< e;
cout << «ΠΠ΅ΠΊΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ [ab] = «;
c.show ();
cout << «ΠΠ»ΠΈΠ½Π° Π²Π΅ΠΊΡΠΎΡΠ° a = «;
a.vectorLength ();
cout << endl;
a.perpend (b);
a.collinear (b);
system («PAUSE»);
return 0;
}.