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

не могу сделать так чтоб я сам вводил матрицы) задача умножения матрицы на вектор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программирование с использованием подпрограм http://www.cyberforum.ru/cpp-beginners/thread971184.html
Данная целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента. Характеристикой строки целочисленной матрицы назовем сумму ее положительных...
C++ Как написать конструктор для класса, в котором содержится структура? #include "stdafx.h" #include "iostream" #include "conio.h" using namespace std; const int a = 50; struct Spec { char Name; char Job; int Pay; http://www.cyberforum.ru/cpp-beginners/thread971166.html
Почему не видит класс C++
Уже второй день немогу понять в чем проблема Exception.hpp #include "IThrowable.hpp" #include "../../Object.hpp" #include "../struct/String.hpp" class Exception : public Object, IThorwable {...
C++ Ошибка "Палочки"
Показывает вот такую вот ошибку (56 C:\Dev-Cpp\Examples\My work\Áàçà äàííûõ.cpp "' ).Какие есть мнения? #include <iostream> using namespace std; char name; char phone; float hours; float...
C++ Дополнение двумерных массивов и работа с матрицами http://www.cyberforum.ru/cpp-beginners/thread971134.html
Помогите решить две задачки в с++ 1)Написать функцию дополнения двумерного массива строкой, элементы которой максимальные элементы массива. 2)Написать функцию нахождения максимума среди...
C++ Многопоточность в Windows Добрый день. Помогите разобраться, в чем проблема. Уже 2 дня ломаю голову и ничего не получается. При компиляции выдается такая вот ошибка: \main.cpp|29|error: too few arguments to function... подробнее

Показать сообщение отдельно
kaztennis
3 / 3 / 0
Регистрация: 28.09.2013
Сообщений: 93

не могу сделать так чтоб я сам вводил матрицы) задача умножения матрицы на вектор - C++

07.10.2013, 16:11. Просмотров 480. Ответов 5
Метки (Все метки)

Всем привет. вобщем задача моя такова , что я задал готовое количество элементов в матрицу и в вектор, а программа умножает ее. сами задаем количество элементов, а программа в случайном образе выдает нам эти элменты и умножает. моя задача, изменить программу, убрав датчик случайного подбора Random и сделать так чтоб каждый элемент выбирали сами мы,.. спасибо)
вот код:
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
103
104
105
#include <stdafx.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
 
// Функция для опредления элементов матрицы и вектора
void DummyDataInitialization (double* pMatrix, double* pVector, int Size) {
int i, j; // задаем переменные
for (i=0; i<Size; i++) {
pVector[i] = 1;
for (j=0; j<Size; j++)
pMatrix[i*Size+j] = i;
}
}
// Функция для случайного определения элементов матрицы и вектора
void RandomDataInitialization(double* pMatrix, double* pVector, int Size) {
int i, j; // задаем переменные
srand(unsigned(clock()));
for (i=0; i<Size; i++) {
pVector[i] = rand()/double(1000);
for (j=0; j<Size; j++)
pMatrix[i*Size+j] = rand()/double(1000); }
}
// Функция для заполнения и определения элементов обьекта
void ProcessInitialization (double* &pMatrix, double* &pVector,
double* &pResult, int &Size) {
// размер созданной матрицы и вектора определяется:
do {
printf("\n Vvedite razmer sozdannogo objekta: ");
scanf("%d", &Size);
printf("\n Vvedite razmer objecta = %d\n", Size);
if (Size <= 0)
printf("\n Razmer objecta doljen byt` bolshe 0!\n");
}
while (Size <= 0);
// Распределение памяти
pMatrix = new double [Size*Size];
pVector = new double [Size];
pResult = new double [Size];
// Определение матрицы и элементов вектора
DummyDataInitialization(pMatrix, pVector, Size);
}
// Функция для форматирования выведенной матрицы
void PrintMatrix (double* pMatrix, int RowCount, int ColCount) {
int i, j; // задаем переменные
for (i=0; i<RowCount; i++) {
for (j=0; j<ColCount; j++)
printf("%7.4f ", pMatrix[i*RowCount+j]);
printf("\n");
}
}
// Функция для форматирования выведенного вектора
void PrintVector (double* pVector, int Size) {
int i;
for (i=0; i<Size; i++)
printf("%7.4f ", pVector[i]);
}
// Функция для матричо-векторного умножения
void ResultCalculation(double* pMatrix, double* pVector, double* pResult,
int Size) {
int i, j; // задаем переменные
for (i=0; i<Size; i++) {
pResult[i] = 0;
for (j=0; j<Size; j++)
pResult[i] += pMatrix[i*Size+j]*pVector[j];
}
}
// Функция для завершения процесса
void ProcessTermination(double* pMatrix,double* pVector,double* pResult) {
delete [] pMatrix;
delete [] pVector;
delete [] pResult;
}
 
void main() {
double* pMatrix; // Первый аргумент - созданная матрица
double* pVector; // Второй аргумент - созданный вектор
double* pResult; // Результат векторно-матричного умножения
int Size; // Размер созданных матрицы и вектора
time_t start, finish;
double duration;
printf("Series matrix-vector program \n");
// Распределение памяти и определение элементов обьекта
ProcessInitialization(pMatrix, pVector, pResult, Size);
// Вывод матрицы и вектора
printf ("sozdannaya matrica \n");
PrintMatrix(pMatrix, Size, Size);
printf("sozdannyi vector \n");
PrintVector(pVector, Size);
// Матрично-векторное умножение
start = clock();
ResultCalculation(pMatrix, pVector, pResult, Size);
finish = clock();
duration = (finish-start)/double(CLOCKS_PER_SEC);
// Выведение результата вектора
printf ("\n rezultat vectora: \n");
PrintVector(pResult, Size);
// Время потраченное на матрично-векторное умножение
printf("\n Time of execution: %f\n", duration);
// Завершение процесса
ProcessTermination(pMatrix, pVector, pResult);
getch();
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru