2013-12-11 4 views
-1

분수 행렬을 만들려고합니다. 먼저 클래스 클래스를 만들고 새 행렬을 만들고, 행렬을 삭제하고, 행렬을 푸는 (Gauss 및 Gauss-Jordan 메서드) 메서드를 정의합니다. 행렬의 모든 값은 float입니다. 나는 모든 것을 모으고 일한다 : D. 그러나 지금, 저는 다른 행렬을 만들려고합니다. 정확하게 첫번째 행렬과 같지만, 이것은 분수 일 필요가 있습니다. 이게 내 문제 야, 내가 어떻게하는거야? 어떻게 내가 2 번호 (예 : myMethod(2,3))를받는 방법을 만드는 2/3과 같은 이들을 고려하고 매트릭스 위치에두고? 내 목표는 그런 일이 있습니다 :분수 행렬을 만듭니다.

매트릭스 :

1/2 2/3 1/5 

2/5 3/4 3/2 

2/7 3/5 1/3 

모든 숫자

, 예를 들어, 사용자가 (사실이있다 n1/n2)

PD를 cin>>n1>>n2;를 전송됩니다 : 나는 생각했다

for(i=0;i<3;i++) 
    myMethod(n1,n2); 

PD2 : 같은 루프를 만들어 내 영어 죄송합니다, 난 당신이 나를 이해 바랍니다 :(

,
+1

분수로 작동하는 클래스를 생성하고이 클래스의 객체를 특수 매트릭스 클래스로 유지할 수 있습니다. – Constructor

답변

0
template <typename NumberType> 
class Matrix { 
    // ... 
}: 

그리고 지원되는 각 숫자 유형에 대해 수학 연산을 생각해보십시오.

1

필자가 이해하는 한, C++에서는 분수를 기본적으로 처리 할 수 ​​없습니다. 당신이 할 수있는 최선은 떠 다니는 것입니다. 매트릭스를 분수로 표시하고 싶다면 (다음 작업을 수행 할 수도 있습니다).

Mat numerator[3][3]; 
Mat denominator[3][3]; 
cin>>numerator[0][0]>>denominator[0][0]; 
//.... for all elements 

//Display 
cout<<numerator[0][0]<<"/"<<denominator[0][0]; 

//operations 
newmatrix[0][0] = numerator1[0][0]*numerator2[0][0]/(denominator1[0][0]*denominator1[0][0]); 

희망 사항.

+0

고마워 :)하지만 나는 마침내 문제를 해결. 나는 숫자를 읽은 다음 그 값을 나눈다. 십진수인데,이 10 진수는 행렬에 있었고, 나는 행렬의 연산을 풀고 마침내 십진수는 프랙티스로 변환되었다. BTW, 나는 최종을 게시 할 것이다. 프로그램을 나중에 :] – AlbertoAlegria

+0

영어에 대한 미안 해요, 어젯밤에 잠을 자고 Google 번역기의 쉬 ** c : – AlbertoAlegria