2013-12-11 2 views
-1

Я пытаюсь создать матрицу фракций. Во-первых, я создаю матрицу классов и определяю методы, такие как создание новой матрицы, удаление матрицы, решение матрицы (метод Гаусса и Гаусса-Джордана). Все значения на матрице являются 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 

Все цифры будут отправлены пользователем, например, cin>>n1>>n2; (На самом деле это n1/n2)

PD: я думал, на создать цикл, как:

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

Спасибо :) Но я окончательно разрешаю проблему. Я читаю числа, а затем разделяю их, то есть throwme десятичное число, это десятичное число было в матрице, я решаю операции в матрице и, наконец, десятичные числа преобразуются в fractios, BTW, я собираюсь опубликовать окончательный программа позже:] – AlbertoAlegria

+0

извините за английский, я не могу спать прошлой ночью и переводчик google его sh ** c: – AlbertoAlegria

Смежные вопросы