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

Написать функцию которая будет умножать любую строку на уже заданную матрицу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибки при компиляции "multiple definition" http://www.cyberforum.ru/cpp-beginners/thread1745908.html
Здравствуйте, помогите исправить ошибки 242.(на фото часть)
C++ Не переставляет строки В массиве А(N,M) строки, содержащие нулевые элементы, надо переставить в порядке возрастания суммы цифр элементов последнего столбца. Указатель на строки. Строки с нулевыми элементами находит, но... http://www.cyberforum.ru/cpp-beginners/thread1745879.html
C++ Вывести в файл таблицу значений функции с заданным шагом
1,Таблица значений функции 4 Постройте таблицу значений функции y = \sqrt{5-x^3} для x\in c шагом h. Если в некоторой точке x функция не определена, то выведите вместо её значения undefined. Формат...
C++ Чем сшивать изображения
Здравствуйте. Подскажите,чем можно сшивать изображения? ОpenCV сшивает слишком долго. PanoTools пока не пробовал, может подойдёт. Скажите, сложно ли самому написать это дело и где можно почитать...
C++ Объясните строку: "while (x[i])" http://www.cyberforum.ru/cpp-beginners/thread1745844.html
#include <iostream> #include <string> #include <cmath> using namespace std; int main(){ string x; double x10=0; int i=0, c=0; cout << "vvedi chislo v (8): "; cin >> x;
C++ Расшифровка Морзе Делаю шифрование азбукой Морзе. Зашифровка готова, а вот с расшифровкой проблема: процесс зацикливается бесконечное число раз, а найти ошибку не могу. Может вы поможете? Добавлено через 1 минуту... подробнее

Показать сообщение отдельно
Beeeeetlejjuice
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 35
26.05.2016, 10:56  [ТС]
Цитата Сообщение от Remuless Посмотреть сообщение
делайте более конкретные формулировки задачи. по каким правилам строка умножается на матрицу, что должно быть в результате и все остальное, сопутствующее задаче. сейчас это похоже "Иди туда, не знаю куда, найди то, не знаю что".
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include "Matrixes.h"
#include <math.h>
#include <QApplication>
#include <iostream>
#include <iomanip>
 
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;
    }
}
вот код, надо матрицу C умножить на вектор из 3 чисел(любой, можно рандомный) и вывести результат
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru