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

Написать программу, реализующую умножение прямоугольных целочисленных матриц - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
03.12.2013, 16:57     Написать программу, реализующую умножение прямоугольных целочисленных матриц #1
Написать программу, реализующую умножение прямоугольных целочисленных
матриц.
у меня ошибка, программа запускается и сразу прекращается

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
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <math.h>
 
using namespace std;
void intmas1 (int **mas, int const  n, int const m);
void intmas2(int **mas, int const n, int const m);
int Proizved(int **mas, const int n, const int m);
 
int main()
{
    srand((unsigned)time(0));
    int n=3;
    int m=3;
 
    int **mas = new int*[n];
    for ( int i = 0; i < n; i++)
        mas[i] = new int[m];
        intmas1(mas,n,m);
        intmas2(mas,n,m);
        cout << '\n';
 
 cout << '\n';
 
       cout<< Proizved(mas,n,m);
    return 0;
}
 
void intmas1 (int **mas, const int n, const int m)
{
    int i,j;
    for(i = 0; i < n; i++){
        for(j=0; j<m; j++)
            mas[i][j]=rand() %10-2;
    }
}
 
void intmas2(int **mas, int const n, const int m)
{
    int i,j;
    for(i = 0; i < n; i++){
        for(j=0; j<m; j++)
    cout << mas[i][j] << " ";
    cout << endl;
    }
}
int Proizved(int **mas, const int n, const int m)
{
  int i,j,k;
  for ( i = 0; i < n; i++)
  {
    for (j = 0; j < n; j++)
    {
      mas[i][j] = 0;
      for ( k = 0; k < n; k++)
      {
        mas[i][j] += mas[i][k] * mas[k][j];
      }
    }
  }
  return mas[i][j];
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 16:57     Написать программу, реализующую умножение прямоугольных целочисленных матриц
Посмотрите здесь:

написать программу, которая вводит и суммирует любое количество целочисленных значений C++
C++ Умножение треугольных матриц«Методы обработки разреженных матриц»
Написать программу, реализующую игру в кости C++
C++ нужно написать программу на с++ реализующую все возможности печатной машинки
Умножение целочисленных прямоугольных матриц C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
05.12.2013, 16:38  [ТС]     Написать программу, реализующую умножение прямоугольных целочисленных матриц #21
FAQEnD, можешь пожалуйста объяснить, а зачем в функции
C++
1
int min
, ведь ему никакого значения не присвоено,
и эту строчку я вообще не поняла:
C++
1
for(int k = 0; k < min; k++)
Добавлено через 11 минут
FAQEnD, а ещё не подскажешь, как сделать чтоб он отрицательные посчитал,
я их сгенерировала, но программа вылетает

C++
1
2
3
4
5
6
7
8
void rand_array(int **mas, int n, int m)
{
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
        {
            mas[i][j] = 1+rand()%5-2;
        }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FAQEnD
 Аватар для FAQEnD
43 / 43 / 1
Регистрация: 15.12.2012
Сообщений: 88
05.12.2013, 16:47     Написать программу, реализующую умножение прямоугольных целочисленных матриц #22
Цитата Сообщение от Troo Посмотреть сообщение
FAQEnD, можешь пожалуйста объяснить, а зачем в функции
C++
1
int min
, ведь ему никакого значения не присвоено,
Кликните здесь для просмотра всего текста
C++
1
int min
это просто переменная, которая принимает значение для цикла
C++
1
for(int k = 0; k < min; k++)

Цитата Сообщение от Troo Посмотреть сообщение
и эту строчку я вообще не поняла:
C++
1
for(int k = 0; k < min; k++)
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
        {
            for(int k = 0; k < min; k++)
            {
                mas3[i][j] += mas1[i][k] * mas2[k][j];
            }
        }
Два внешних цикла с i, j нужны для результирующей матрицы, а внутренний цикл нужен для правильного перемножения матрицы 1 на матрицу 2

Цитата Сообщение от Troo Посмотреть сообщение
Добавлено через 11 минут
FAQEnD, а ещё не подскажешь, как сделать чтоб он отрицательные посчитал,
я их сгенерировала, но программа вылетает

C++
1
2
3
4
5
6
7
8
void rand_array(int **mas, int n, int m)
{
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
        {
            mas[i][j] = 1+rand()%5-2;
        }
}
у меня все ок
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2013, 19:05     Написать программу, реализующую умножение прямоугольных целочисленных матриц
Еще ссылки по теме:

Транспонирование прямоугольных матриц C++
Умножение прямоугольных матриц C++
Написать программу, реализующую функцию конкатенации k строк C++

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

Или воспользуйтесь поиском по форуму:
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
05.12.2013, 19:05  [ТС]     Написать программу, реализующую умножение прямоугольных целочисленных матриц #23
FAQEnD, спасибо большое, разобралась)
Yandex
Объявления
05.12.2013, 19:05     Написать программу, реализующую умножение прямоугольных целочисленных матриц
Ответ Создать тему
Опции темы

Текущее время: 03:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru