Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [QT] Ввод матрицы


Автор: ShanderYO 27.4.2008, 20:10
Здравствуйте. Мне нужно написать программу перемножения двух квадратных матриц и в Qt сделать к ним графический интерфейс. В C++ я программу написал, но теперь ,что я не могу нигде найти как вводить и с помощью какого инструмента в QT дизайнере ввести матрицу как переменную. Подскажите с помощью чего это можно реальзовать.

Автор: JackYF 27.4.2008, 21:12
Цитата(ShanderYO @  27.4.2008,  19:10 Найти цитируемый пост)
ввести матрицу как переменную.

QTableWidget - отображение. Загрузку/выгрузку из контейнера в твою матрицу - реализовывай как хочешь.

Автор: ShanderYO 27.4.2008, 22:56
JackYF,  Прости а можно чуть поподробней или ссылочку хотябы где про это прочитать можно,
а то пока не дошло   smile 

Автор: JackYF 28.4.2008, 10:38
Цитата(ShanderYO @  27.4.2008,  21:56 Найти цитируемый пост)
или ссылочку хотябы где про это прочитать можно,

Официальная документация, где же ещё smile

Автор: SABROG 28.4.2008, 11:16
Падробнее: http://doc.trolltech.com/

Автор: XavierElf 28.4.2008, 18:21
Цитата(JackYF @  27.4.2008,  21:12 Найти цитируемый пост)
Загрузку/выгрузку из контейнера в твою матрицу - реализовывай как хочешь.

Можно к примеру использовать QList, QStringList, QMap, QMultiMap, QHash, QMultiHash. В крайнем случае можно использовать многомерные массивы, но это далеко не самый быстрый способ.  smile 
Вот пример умножения квадратных матриц размерности 4х4 с использованием QHash:
Код

//При умножении матриц с использованием хэш-таблиц очень удобно
//создавать хэш-таблицы для левой матрицы из строк,
//а для правой из столбцов

//матрица A (левый операнд)
QHash <int, int> a1;
QHash <int, int> a2;
QHash <int, int> a3;
QHash <int, int> a4;
//матрица B (правый операнд)
QHash <int, int> b1;
QHash <int, int> b2;
QHash <int, int> b3;
QHash <int, int> b4;
//матрица C (результирующая матрица)
QHash <int, int> c1;
QHash <int, int> c2;
QHash <int, int> c3;
QHash <int, int> c4;
//Здесь считываем матрицы A и B в хэш-таблицы
//TODO:
int i;
for (i = 0; i < 4; i++)
{
    //Первая строка результирующей матрицы
    c1[i] += (i == 0 ? a1[i]*b1[i] : (i == 1 ? a1[i]*b2[i] : ( i == 2 ? a1[i]*b3[i] : a1[i]*b4[i])));
    //Вторая строка результирующей матрицы
    c2[i] += (i == 0 ? a2[i]*b1[i] : (i == 1 ? a2[i]*b2[i] : ( i == 2 ? a2[i]*b3[i] : a2[i]*b4[i])));
    //Третья строка результирующей матрицы
    c3[i] += (i == 0 ? a3[i]*b1[i] : (i == 1 ? a3[i]*b2[i] : ( i == 2 ? a3[i]*b3[i] : a3[i]*b4[i])));
    //Четвёртая строка результирующей матрицы
    c4[i] += (i == 0 ? a4[i]*b1[i] : (i == 1 ? a4[i]*b2[i] : ( i == 2 ? a4[i]*b3[i] : a4[i]*b4[i])));
}

Автор: ShanderYO 13.5.2008, 16:33
А может кто написать пример с QTable

Автор: XavierElf 13.5.2008, 22:54
Вот примерчик на QTableWidget. Прошу сильно не пинать. Набросал наспех smile

Автор: teatorb 13.9.2022, 09:42
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)