Я пытаюсь создать матрицу дробей.
Во-первых, я создаю матрицу класса и определяю методы, такие как создание новой матрицы, удаление матрицы, решение матрицы (метод Гаусса и Гаусса-Джордана). Все значения в матрице являются плавающими. Я все компилирую и работаю: 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: Извините за мой английский, надеюсь, вы меня понимаете 🙁
Насколько я понимаю, с ++ не может обрабатывать дроби изначально. лучшее, что ты мог сделать, это плавать. В качестве альтернативы, если вы просто хотите отобразить Матрицу в виде дроби (и, возможно, выполните некоторые операции с ней), вы можете сделать что-то вроде следующего.
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]);
Надеюсь это поможет.
template <typename NumberType>
class Matrix {
// ...
}:
И подумайте о математических операциях над каждым поддерживаемым типом чисел.