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

Ввести с клавиатуры две целочисленные матрицы, и перемножить их друг на друга - C++

Восстановить пароль Регистрация
 
GoooD
1 / 1 / 0
Регистрация: 30.06.2012
Сообщений: 21
02.04.2013, 11:06     Ввести с клавиатуры две целочисленные матрицы, и перемножить их друг на друга #1
Доброго времени суток ув. люди.
Так случилось, что учился я несколько курсов в одном у.з. и перешел другой. В одном изучали Паскаль->Делфи, в другом С->с++.
Вот настало время практике, сижу не отбиваю дупля на с++, помогите составить код программки.
Условие :
Создать программу, которая вводит с клавиатуры два двумерных массива целых чисел, перемножает их друг на друга( если это возможно т.е число столбцов первого равно число строк второго) и выводит на экран результирующий массив и сумму всех его отрицательных чисел.
На паскале->делфи, это довольно легко(т.к. я его изучал), прошу помогит мне написать на visual c++(2010).
Вот наброски на паскале(работающие).
Pascal
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
Program lol;
uses crt;
var a:array[1..2, 1..2] of integer;
    b:array[1..2, 1..2] of integer;
    c:array[1..2, 1..2] of integer;
    i,j,d:integer;
begin
   clrscr;
   textcolor(9);
   for i:=1 to 2 do
     for j:=1 to 2 do
     begin
     writeln('‚ўҐ¤ЁвҐ н«Ґ¬Ґ*в ¬*ббЁў* * б Ё¤Ґ*Єб®¬ ',i,' ',j);
     readln(a[i,j]);
     writeln('‚ўҐ¤ЁвҐ н«Ґ¬Ґ*в ¬*ббЁў* Ў б Ё¤Ґ*Єб®¬ ',i,' ',j);
     readln(b[i,j]);
     end;
  c[1,1]:=(a[1,1]*b[1,1])+(a[1,2]*b[2,1]);
  c[1,2]:=(a[1,1]*b[1,2])+(a[1,2]*b[2,2]);
  c[2,1]:=(a[2,1]*b[1,1])+(a[2,2]*b[1,2]);
  c[2,2]:=(a[2,1]*b[2,2])+(a[1,2]*b[2,2]);
    for i:=1 to 2 do
     for j:=1 to 2 do
     if c[i,j]<0 then d:=d+c[i,j];
     writeln('ђҐ§г«мвЁагойЁ© ¬*ббЁў:');
     for i:=1 to 2 do
   begin
      for j:=1 to 2 do
      write(' ',c[i,j]:4);
      writeln;
   end;
    writeln('‘㬬* ўбҐк ®ваЁж*⥫м*ле н«Ґ¬Ґ*в®ў ўлиҐ**ЇЁб**®Ј® ¬*ббЁў* =',d);
   readln;
end.
Программа банально простая, но без знаний С ....
Где иероглифы, там был русский текст.

Массивы, должны быть 2х2 квадратные, переумножение массивов производим как переумножение матриц.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2013, 11:06     Ввести с клавиатуры две целочисленные матрицы, и перемножить их друг на друга
Посмотрите здесь:

найти две наиболее удаленных друг от друга точки (множество точек задано на плоскости) C++
C++ Ввести размерность матрицы с клавиатуры
C++ Заданы две левые треугольные целочисленные матрицы А, B. Найти матрицу С = Е(A + B)2, где Е – единичная матрица.
C++ Определить бъют ли две фигуры на шахматной доске друг друга
Ввести размерность матрицы с клавиатуры C++
C++ Перемножить две матрицы, причем запустить подсчет в несколько потоков
C++ Подключение .h файлов друг в друга
C++ Найти две наиболее удаленных друг от друга точки
Считать с файла две матрицы и перемножить их C++
В 2х классах указатели друг на друга C++
C++ Перемножить две матрицы
Как перемножить элементы в двумерном массиве друг на друга? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
chizz
 Аватар для chizz
979 / 493 / 54
Регистрация: 19.03.2013
Сообщений: 3,059
Записей в блоге: 18
Завершенные тесты: 1
02.04.2013, 12:07     Ввести с клавиатуры две целочисленные матрицы, и перемножить их друг на друга #2
Переписал ваш код на C++

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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int a[2][2];
    int b[2][2];
    int c[2][2];
    // инициализация массивов
    cout<<"Enter mas a"<<endl;
    for (int i = 0; i < 2; i++)
{
  for (int j = 0; j < 2; j++)
  {
    cin>>a[i][j];
  }
}
   cout<<"Enter mas b"<<endl;
    for (int i = 0; i < 2; i++)
{
  for (int j = 0; j < 2; j++)
  {
    cin>>b[i][j];
  }
}
 
c[0][0]= (a[0][0]*b[0][0])+(a[0][1]*b[1][0]);
c[0][1]=(a[0][0]*b[0][1])+(a[0][1]*b[1][1]);
c[1][0]=(a[1][0]*b[0][0])+(a[1][1]*b[0][1]);
c[1][1]=(a[1][0]*b[1][1])+(a[0][1]*b[1][1]);
 
// вывод результата
 for (int i = 0; i < 2; i++)
{
  for (int j = 0; j < 2; j++)
  {
    cout<<c[i][j]<<" ";
  }
  cout<<endl;
}
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
GoooD
1 / 1 / 0
Регистрация: 30.06.2012
Сообщений: 21
02.04.2013, 21:25  [ТС]     Ввести с клавиатуры две целочисленные матрицы, и перемножить их друг на друга #3
Цитата Сообщение от chizz Посмотреть сообщение
Переписал ваш код на C++

C++
1
2
3
4
5
6
7
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
...
Спасибо добрый человек, думаю работать будет.
Yandex
Объявления
02.04.2013, 21:25     Ввести с клавиатуры две целочисленные матрицы, и перемножить их друг на друга
Ответ Создать тему
Опции темы

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