今日のソース

とんかつソースじゃなくてねw見たかったら見てねw
マジで殴り書きでどうしようもないくらいはずかすぃいけど・・・・
どっかからコンパイラをゲットしてくれば動くはずです。
ちょっとは大学生的だよね?宮本君よりはいけてるよね?

#include<iostream>
#include<cmath>
using namespace std;


class Vec3d{
private:
	double x,y,z;
public:
	Vec3d(double a=0, double b=0, double c=0){	x=a;y=b;z=c;	}

	double operator% (Vec3d k){
	return  x*k.x + y*k.y + z*k.z ;
	}	
	
	
	double size(){
		return  sqrt(x*x+y*y+z*z) ;
	}

	bool  cross(Vec3d k){
		if(x*k.x + y*k.y + z*k.z==0)
			return true;
		else
			return false;
	}
	
	bool parallel(Vec3d k){
		Vec3d a(y*k.z-z*k.y , z*k.x-x*k.z , x*k.y-y*k.x);
		
		if(!a.size())
			return true;
		else
			return false;
	}
	friend Vec3d operator+(Vec3d,Vec3d);
	friend Vec3d operator*(Vec3d,Vec3d);
	friend Vec3d operator*(Vec3d,double);
	friend Vec3d operator*(double,Vec3d);
	friend Vec3d operator-(Vec3d,Vec3d);
	friend istream& operator>>(istream& , Vec3d&);
	friend ostream& operator<<(ostream& , Vec3d);
};



Vec3d operator* (Vec3d i , double j){
	return Vec3d(i.x*j , i.y*j , i.z*j);
}

Vec3d operator* (double i , Vec3d j){
	return Vec3d(i*j.x , i*j.y , i*j.z);
}

Vec3d operator* (Vec3d i , Vec3d j){
	return Vec3d(i.y*j.z-i.z*j.y , i.z*j.x-i.x*j.z , i.x*j.y-i.y*j.x);
}

Vec3d operator+ (Vec3d i , Vec3d j){
	return Vec3d(i.x+j.x , i.y+j.y , i.z+j.z);
}

Vec3d operator- (Vec3d i , Vec3d j){
	return Vec3d(i.x-j.x , i.y-j.y , i.z-j.z);
}

istream& operator>>(istream &inst , Vec3d &k)
{
	return inst>>k.x>>k.y>>k.z;
}


ostream& operator<<(ostream &oust , Vec3d k)
{
	return cout<<"("<<k.x<<","<<k.y<<","<<k.z<<")";
}
	
int main(){ 
	Vec3d v1(1,2,3),v2(-2,1,1),v3(3,-5,-2),v4; 
	
	cout<<"v1の長さ="<<v1.size()<<endl; 
	cout<<v1<<"+"<<v2<<"="<<v1+v2<<endl; 
	cout<<v1<<"-"<<v2<<"="<<v1-v2<<endl; 
	cout<<v1<<"と"<<v3<<"の内積は"<<v1%v3<<"です"<<endl; 

	v4=v3*2; 
	cout<<v3<<"*2="<<v4<<endl; 
	v4=5*v2; 
	cout<<"5*"<<v2<<"="<<v4<<endl; 
  
	v4=v2*v3; 
	cout<<v2<<"と"<<v3<<"の外積は"<<v4<<"です"<<endl; 
	cout<<v4<<"と"<<v2<<"は直交"; 
	if(v4.cross(v2)) cout<<"します"<<endl; 
	else cout<<"しません"<<endl; 

	cout<<v4<<"と"<<v1<<"は直交"; 
	if(v4.cross(v1)) cout<<"します"<<endl; 
	else cout<<"しません"<<endl; 
  
	cin>>v4; 
	cout<<v4<<"と"<<v1<<"は平行"; 
	if(v4.parallel(v1)) cout<<"です"<<endl; 
	else cout<<"ではありません"<<endl; 
}