class를 제대로 사용을 못하겟어요;
터큰
#includeiostream.h
#includemath.h
void Vector(int *);
void Matrix(int *);
int menu();
double *Vec1 = new double [100];//스택에는 변수 하나 히프에는 배열이 저장
double *Vec2 = new double [100];
double *Vec3 = new double [100];
int *a = new int;
int *n = new int;//스택과 히프에 변수 하나씩
int *m = new int;
int SelectNum;
double size1,size2;
class VECTOR////////////////////////////////////////////클래스 벡터
{
public:
void SIZE_VEC(double *, double *,double &, double &);
void TIMES_VEC(double *, double *);
void INTERNAl_VEC(double *,double *);
};
void VECTOR::SIZE_VEC(double *Vec1,double *Vec2,double &ho1,double &ho2)
{
double lee,shin;
double temp1=0,temp2=0;
for(int q=0;q*n;q++)
{
lee = pow(Vec1[q],2);
temp1 = temp1 + lee;
shin =pow(Vec2[q],2);
temp2 = temp2 + shin;
}
ho1=sqrt(temp1);
ho2=sqrt(temp2);
coutsize of vec1: ho1endl;/////////////////////////클래스 함수 안이 아닌 밖에서
coutsize of vec2: ho2endl;/////////////////////////쓸수 있게.
}
void VECTOR::TIMES_VEC(double *Vec1,double *Vec2)
{
double nn;
coutEnter the Number that you want to input: ;
cinnn;
for(int i=0;i*n;i++)
{
Vec1[i]=nn*Vec1[i];
Vec2[i]=nn*Vec2[i];
}
}
void VECTOR::INTERNAl_VEC(double *Vec1,double *Vec2)
{
double temp=0;
for(int i=0;i*n;i++)
{
temp = temp + Vec1[i]*Vec2[i];
}
couttempendl;
}
void Vector(int *n)////////////////////////////////////////벡터일 경우
{
int j;
cout \nYou want to input a figure of Array1 : ;//첫번째 벡터의 크기입력
cin *n;for ( j = 0; j *n; j++)
{
cout Put the Vec1[ j ] : ;
cin Vec1[j];
}
cout \nYou want to input a figure of Array2 : ;//두번째 벡터의 크기입력
cin *m;
for ( j = 0; j *m; j++)
{
cout Put the Vec2[ j ] : ;
cin Vec2[j];
}SelectNum = menu();
switch(SelectNum)
{
case 1:
{
VECTOR Tom;
Tom.SIZE_VEC(Vec1,Vec2,size1,size2);
break;
}
case 2:
{
VECTOR Tom;
Tom.TIMES_VEC(Vec1,Vec2);
for(int j=0;j*n;j++)
{
coutVec1[j]: Vec1[j]endl;
coutVec2[j]: Vec2[j]endl;
}
break;
}
case 3:
{
VECTOR Tom;
Tom.INTERNAl_VEC(Vec1,Vec2);
break;
}
}
}
*************요기부터***************
class MATRIX
{
public:
void insult(int *&, int **, int **);
void multiplication(int *, int *, int *);
void add(int *, int *, int *);
void print(int *);
};void MATRIX::insult(int *&f1, int **f2, int **f3)
{
int i;
int **f1[3][3], **f2[3][3], **f3[3][3] = {{0,0,0},{0,0,0},{0,0,0}};
for(i=0; i3; i++)
{
cout 첫번째 행렬의 i+1행을 입력하시오;
cin **f1[i][0];
cin **f1[i][1];
cin **f1[i][2];
}
for(i=0; i3; i++)
{
cout 두번째 행렬의 i+1행을 입력하시오;
cin f2[i][0];
cin f2[i][1];
cin f2[i][2];
}
cout 첫번째 행렬 endl;
print(**f1);
cout 두번째 행렬 endl;
print(**f2);
cout 두 행렬의 곱셈 실행 결과 endl;
void multiplication(**f1, **f2, **f3);
print(**f3);
cout 두 행렬의 덧셈 실행 결과 endl;
void add(**f1, **f2, **f3);
print(int **f3);
}
/* 행렬의 곱셈을 실행하는 함수 */
void MATRIX::multiplication(int *a[][3], int *y, int *z )
{
int i, j, k;
int *x[][3], *y[][3], *z[][3];
for(i=0; i3; i++)
{
for(j=0; j3; j++)
{
for(k=0; k3; k++)
{
c[i][j]+= a[i][k] * b[k][j];
}
}
}
}
/* 행렬의 덧셈을 실행하는 함수 */
void MATRIX::add(int *a[][3], int *b[][3], int *c[][3])
{
int i, j;
for(i=0; i3; i++)
{
for(j=0; j3; j++)
{
c[i][j] = a[i][j] + b[i][j];
}
}
}
/* 행렬을 출력하는 함수 */
void MATRIX::print(int *p[][3])
{
int i, j;
for (i=0; i3; i++)
{
for (j=0; j3; j++)
{
cout p[i][j] endl;
}
}
}
/*
void Matrix::TwoMatrix(int *o)
{
float A[2][2];
float B[2][2];
R float C[2][2];
float D[2][2];
float E[2][4]={0,0,1,0,0,0,0,1};
int x, y, i;
float temp;
for(i=0; i1; i++)
{
cout 첫번째 행렬의 1열의 1행원소 입력: ;
cin A[i][0];
cout 첫번째 행렬의 1열의 2행원소 입력: ;
cin A[i][1];
cout 첫번째 행렬의 2열의 1행원소 입력: ;
cin A[i+1][0];
cout 첫번재 행렬의 2열의 2행원소 입력: ;
cin A[i+1][1];
}
cout endl;
for(i=0;i1;i++)
{
cout 두번째 행렬의 1열의 1행의 원소 입력:;
cin B[i][0];
cout 두번째 행렬의 1열의 2행의 원소 입력:;
cin B[i][1];
cout 두번째 행렬의 2열의 1행의 원소 입력:;
cin B[i+1][0];
cout 두번째 행렬의 2열의 2행의 원소 입력:;
cin B[i+1][1];
}
//A행렬 출력
cout \n\t첫번째 행렬\n;
for(y=0; y2; y++)
{
for(x=0; x2; x++)
{
cout \t A[y][x]endl;
} }
cout endl;
// B행렬 출력
cout \t두번째 행렬\n;
for(y=0; y2; y++)
{
for(x=0; x2; x++)
{
cout \t B[y][x]endl;
}
}
//합을 위한 for 문2개
for(y=0; y2; y++)
{
for(x=0; x2; x++)
{
C[y][x]=A[y][x]+B[y][x];
}
}
//행렬 곱을 위한 for문 두개 ;
for(y=0; y2; y++)
{
for(x=0; x2; x++)
{
D[y][x] = A[y][0]*B[0][x] + A[y][1]*B[1][x];
}
}
cout \n\t A + B \n\n ;
//A+B 행렬 출력
for(y=0; y2; y++)
{
for(x=0; x2; x++)
{
cout \t C[y][x];
}
}
//A*B행렬 출력
cout endl;
cout \t A * B \n\n;
for(y=0; y2; y++)
{
for(x=0; x2; x++)
{
cout \t D[y][x];
}
}
//D행렬의 값을 E에 저장
for(y=0; y2; y++)
{
for(x=0; x2; x++)
{
E[y][x] = D[y][x];
}
}
//역행렬 구하기
temp = E[0][0];
for(x=0; x4; x++)
{
E[0][x] /= temp;
}
temp = D[1][0];
for(x=0; x4; x++)
{
E[1][x] -= E[0][x] * temp;
}
temp = E[1][1];
for(x=0; x4; x++)
{
E[1][x] /= temp;
}
temp = E[0][1];
for(x=0; x4; x++)
{
E[0][x] -= E[1][x]*temp;
} //역행렬 출력
cout \n 곱셈한 행렬의 역행렬\n\n; for(y=0; y2; y++)
{
for(x=2; x4; x++)
{
cout \tE[y][x];
}
cout endl;
}
}*/
*********************요기까지************************
int menu()
{
cout\nYou can choose something of vector operationendl;
cout----------menu-----------endl;
cout1.size of vectorendl;
cout2.times of vectorendl;
cout3.internal of vectorendl;
coutEnter the Number: endl;
cinSelectNum;
return SelectNum;
}
void main()//////////////////////////////////////////////////////메인함수
{
coutSelect the operationendl;
coutNumber 1 is Vectorendl;
coutNumber 2 is Matrixendl;
coutEnter the Number(1 or 2): ;
cinSelectNum;
switch(SelectNum)
{
case 1:
{
coutYou select operation of Vectorendl;
Vector(a);
break;
}
case 2:
{
coutYou select operation of Matrixendl;
Matrix(a);
break;
}
}
}
class 로 묶어서 하려고 하는데 어떻게 해야되죠??2차원포인터를 써야되나요?