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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Beeeeetlejjuice
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 35
#1

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

26.05.2016, 09:57. Просмотров 86. Ответов 3
Метки нет (Все метки)

Написать функцию которая будет умножать любую строку на уже заданную матрицу
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2016, 09:57     Написать функцию которая будет умножать любую строку на уже заданную матрицу
Посмотрите здесь:

Создать независимую функцию, которая будет умножать две матрицы - C++
Добрый день всем!:) Такой вопрос. Создала свой класс "двухмерной" матрицы. Хочу создать независимую функцию, которая будет умножать две...

Описать функцию, которая изменяет заданную строку следующим образом - C++
задача:Описать функцию, которая изменяет заданную строку следующим образом: сначала записывает все элементы с четными индексами, а затем...

Как написать функцию, которая будет менять имя созданного объекта - C++
Функция changeClas изменяет класс ученика,подскажите,пожалуйста,как написать подобную функцию,которая будет менять имя созданного объекта,...

Написать функцию, которая переворачивает строку - C++
1) Напишите функцию, которая переворачивает строку (массив типа char). Используйте цикл for, который меняет местами первый и последний...

Написать функцию, которая заполняет квадратную матрицу числами по указанному правилу - C++
Напишите функцию, которая заполняет квадратную матрицу числами по следующему правилу: в заштрихованной части матрицы расположены 1, а в не...

нужно написать функцию, которая будет считать квадратное уравнение, данные с клавиатуры ввожу - C++
#include <conio.h> #include <iostream> #include <math.h> using std::cout; using std::endl; using std::cin; int a, b, c,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Remuless
25 / 25 / 12
Регистрация: 07.06.2015
Сообщений: 127
26.05.2016, 10:42     Написать функцию которая будет умножать любую строку на уже заданную матрицу #2
делайте более конкретные формулировки задачи. по каким правилам строка умножается на матрицу, что должно быть в результате и все остальное, сопутствующее задаче. сейчас это похоже "Иди туда, не знаю куда, найди то, не знаю что".
Beeeeetlejjuice
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 35
26.05.2016, 10:56  [ТС]     Написать функцию которая будет умножать любую строку на уже заданную матрицу #3
Цитата Сообщение от 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 чисел(любой, можно рандомный) и вывести результат
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2016, 11:27     Написать функцию которая будет умножать любую строку на уже заданную матрицу
Еще ссылки по теме:

Дан массив строк. Написать функцию, которая после каждого знака пунктуации будет ставить пробел - C++
Например, если после точки в строке нет пробела, то как его вставить туда?

Написать функцию, которая принимает строку звуков, а возвращает звук - C++
Всем привет! В общем, я хочу разобраться с алгоритмом в такой задаче: в каком-то языке есть только 4 звука, назовем их А, В, C, D, а...

Написать функцию, которая выводит строку, состоящую из одинаковых символов - C++
1.Написать функцию, которая выводит строку, состоящую из одинаковых символов. Длина строки и символ являются параметрами функции.

.Написать функцию, которая будет возвращать значение y=ln(x)+x при входящем параметре x. Построить таблицу значений этой функции - C++
.Написать функцию, которая будет возвращать значение y=ln(x)+x при входящем параметре x. Построить таблицу значений этой функции. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Remuless
25 / 25 / 12
Регистрация: 07.06.2015
Сообщений: 127
26.05.2016, 11:27     Написать функцию которая будет умножать любую строку на уже заданную матрицу #4
Beeeeetlejjuice, вопрос был в другом, ну да ладно, более-менее ясно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int* umn (int** C, int* v, int N)
{
    int* ans = new int[N];
    for (int i = 0; i < N; i++)
    {
        ans[i] = 0;
        for (int j = 0; j < N; j++)
        {
            ans[i]+=C[i][j] * v[j];
        }
    }
    return ans;
}
я бы добавил вот такую функцию, которая создавала бы из нужной вам матрицы и нужного вектора новый вектор.
Yandex
Объявления
26.05.2016, 11:27     Написать функцию которая будет умножать любую строку на уже заданную матрицу
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru