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

Реализовать умножение матрицы на матрицу и матрицы на вектор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Можно ли перевести из Паскаля в СИ http://www.cyberforum.ru/cpp-beginners/thread885582.html
Даны строки S, S1 и S2. Заменить в строке S первое вхождение строки S1 на строку S2. {task string36} var s,s1,s2:string; p:byte; begin write('Введите строку S='); readln(s); write('Введите строку S1='); readln(s1);
C++ Определить количество строк файла, содержащих ровно одно слово и вывести строки, содержащих не более 5-ти символов создать с помощью средств С++текстовый файл. Определить количество строк файла, содержащих ровно одно слово и вывести строки, содержащих не более 5-ти символов. http://www.cyberforum.ru/cpp-beginners/thread885581.html
Найти самое короткое слово сообщения и удвоить все его вхождения C++ Builder
подскажите пожалуйста что за ошибка Unresolved external '__fastcall TForm1::Memo1Change(System::TObject *)' referenced from C:\USERS\КАТЕРИНА\DESKTOP\ЛАБ 10,11\UNIT1.OBJ вот сам код. //---------------------------------------------------------------------------
C++ VS 2010. Psapi.h. Ссылка не неразрешённый внешний элемент
Что не так? #include <windows.h> #include <iostream> #include <Psapi.h> using namespace std; int main() { DWORD a;
C++ С++ Найти последовательность http://www.cyberforum.ru/cpp-beginners/thread885569.html
помогите решить пожалуйста! Даны две целочисленные квадратные матрицы порядка 6. Найти последовательность из нулей и единиц b1, ..., b6 такую,что bi=1, когда количество отрицательных и неотрицательных элементов i-строки первой матрицы совпадает соответственно с количеством отрицательных и неотрицательных элементов i-строки второй матрицы.
C++ Максимальный Элемент, С++ Вот код: #include<conio.h> #include<dos.h> #include<graphics.h> #include<iostream.h> #include<stdlib.h> class ind { ind *next; int g,t,f,c,x,y;//t-vremya ost,i-vremya sozd,f-vremya rabotu подробнее

Показать сообщение отдельно
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
31.05.2013, 23:46     Реализовать умножение матрицы на матрицу и матрицы на вектор
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
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <functional>
#include <random>
#include <chrono>
 
template<typename T>
class matrix
{
  private:
      T** m_matrix;
      std::size_t m_rows, m_cols;
      std::size_t m_size;
  public:
    typedef T*          iterator;
    typedef const T*    const_iterator;
    iterator        begin()         {return m_matrix[0];}
    iterator        end()           {return m_matrix[0]+m_size;}
    
    explicit matrix(const std::size_t rows = 1, const std::size_t cols = 1): m_rows(rows), m_cols(cols), m_size(m_cols*m_rows)
    {
      if (m_size == 0)
        m_matrix = nullptr;
      m_matrix = new T*[m_rows];
      m_matrix[0] = new T[m_size];
      for (size_t i = 1; i<m_rows; ++i)
          m_matrix[i] = m_matrix[i-1]+m_cols;
    }
    
    ~matrix()
    {
      if (m_matrix)
      {
          delete[] m_matrix[0];
          delete[] m_matrix;
      }
      else
          delete[] m_matrix;
    }
    
    const T* operator[](std::size_t index) const {return m_matrix[index];}
    T* operator[](std::size_t index) {return m_matrix[index];}
    
    void print(const int format = 0) const
    {
      for (std::size_t i = 0; i<m_rows; ++i)
        {
          for (std::size_t j = 0; j<m_cols; ++j)
            std::cout<<std::setw(format)<<m_matrix[i][j]<<" ";
          std::cout<<"\n";
        } 
    }
};
 
int main()
{
    std::default_random_engine gen(std::chrono::system_clock::now().time_since_epoch().count());
    std::uniform_int_distribution<> distribution(-50, 50);
    
    const size_t rows = 20, cols = 10;
    matrix<int> a(rows, cols);
    matrix<int> b(rows, cols);
    std::vector<int> v(rows*cols);
    
    for (int& i : a) i = distribution(gen);
    for (int& i : b) i = distribution(gen);
    for (int& i : v) i = distribution(gen);
    
    matrix<int> a_b(rows, cols);
    matrix<int> a_v(rows, cols);
    std::transform(a.begin(), a.end(), b.begin(), a_b.begin(), std::multiplies<int>());
    std::transform(a.begin(), a.end(), v.begin(), a_v.begin(), std::multiplies<int>());
    
    a_b.print(6);
    std::cout<<"\n\n";
    
    a_v.print(6);
    std::cout<<"\n\n";
            
    return 0;
}
 
Текущее время: 10:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru