Форум программистов, компьютерный форум CyberForum.ru

Умножить вектор строку на вектор матрицу - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переставить элементы массива, следующие после максимального, в С++ http://www.cyberforum.ru/cpp-beginners/thread1739145.html
Привет, кто сможет помочь с контрольной? Переставить элементы массива, следующие после максимального, в С++
C++ Исправить ошибку и скомпилировать typedef array<1,100,real> tmx; typedef matrix<1,100, 1,100,real> tmy; tmx ma, mx; tmy my; real an, ak, da, xn, dx,b, c, d, eps, int_; integer k, n, n1, er, km; real pwr(real x)//Возведение в степень (1/3) { real pwr_result; if (x == 0) pwr_result = 0; http://www.cyberforum.ru/cpp-beginners/thread1739142.html
C++ Не получается выделелить памать в CASE для динамического массива и объявить его размер
Всем привет. Появилась некоторая проблема с выделением памяти для динамического массива и с объявлением его размера. И еще вопрос: как сделать так, чтобы размер динамического массива брался из файла? Код: #include <iostream> #include <iomanip> #include <fstream> #include <cstring> using namespace std; struct COMPANIES{ char NAME; //Название компании int PRODUCTNUMBER; //Количество...
Написать сортировки по имени и по дате C++
Помогите написать два этих метода пожалуйста SortByName() i SortByDate() #include <iostream> #include <string> using namespace std; int main() { }
C++ Ошибка: Используется потенциально неинициализированная локальная переменная http://www.cyberforum.ru/cpp-beginners/thread1739091.html
Ошибка: Используется потенциально неинициализированная локальная переменная prev - 48 строчка, как исправить? код: #include <iostream> #include <locale> using namespace std; //Структура дерева struct Tree
C++ Массивы: в чём я ошибся, указывает на оператор (+=), что не так? Вот программный код написанный мной: #include <iostream> #include <cmath> using namespace std; void main () { int c,a,b,i; const int n=4; int C={1,2,3,4}; cout<<"C+=2:"<<C+=2; подробнее

Показать сообщение отдельно
Beeeeetlejjuice
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 18
19.05.2016, 11:10     Умножить вектор строку на вектор матрицу
Вот код, подключены QT5 библиотеки, нужно написать функцию для умножения вектор строку B на матрицу C

#include "Matrixes.h"
#include <math.h>
#include <QApplication>

QTextCodec *pCodec = QTextCodec::codecForName("Windows-1251"); //1
using namespace BigMatrix;

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
try
{
QString FileName = QFileDialog::getOpenFileName(NULL,
Rus("Открытие файла с исходными данными"), "",
Rus("Текстовый файл(*.txt)"), NULL, QFileDialog::Option::ReadOnly); //2
if (FileName.isEmpty())
throw Error(Rus("Передумали работать"), Error::ErrOK);
QFile File(FileName); //3
File.open(QIODevice::ReadOnly);
if (!File.isOpen()) throw
Error(Rus("Файл исходных данных ") + FileName +
Rus(" не открылся!"), Error::ErrFileOpen);
Stream Stream(&File); //4
Matrix a(Stream);
Stream.readLine();
a.Show();

int N = a.RowCount();
int M = a.ColumnCount();
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
if (a(i,j) <= a(j,i))
{
double B = a(i,j);
a(i,j) = a(j,i);
a(j,i) = B;
}
else a(i,j) = sqrt((abs(sin(a(j,i)))));
}
}

double P = 1.0;
for (int j = 1; j < N; j++)
{
double D = 0.0;
for (int i = 0; i < N; i++)
{
D += sqrt(a(i,j));
}
P *= D / N;
}

Matrix C(N, N);


for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j = j + 2)
C(i,j) = exp(sin(P * a(i,j)));
for (int j = 1; j < N; j = j + 2)
C(i,j) = sqrt(P * (abs(cos(a(i,j)))));
}
C.Show();

do
{
FileName = QFileDialog::getSaveFileName(NULL,
Rus("Сохранение результатов расчета"), "", Rus("Текстовый файл(*.txt)"));
if (FileName.isEmpty())
if (QMessageBox::question(NULL, Rus("Файл не выбран"), Rus("Не хотите сохранять?")) == QMessageBox::Yes)
return 0; //5
else
continue;
File.setFileName(FileName); //6
File.open(QIODevice::WriteOnly); //7
if (!File.isOpen())
{
QMessageBox::critical(NULL, Rus("Ошибка!"), Rus("Файл вывода результатов ") +
FileName + Rus(" не открылся!"));
continue;
}
} while (FileName.isEmpty());
(~a).Save(Stream); //8
C.Save(Stream);
}
catch (Error Err)
{
Err.showMsg();
return Err.GetError();
}
catch (std::bad_alloc)
{
QMessageBox::critical(NULL, Rus("Ошибка!"),
Rus("Недостаточно памяти для создания объекта"));
return Error::NoMemory;
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru