Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
GoooD
1 / 1 / 1
Регистрация: 30.06.2012
Сообщений: 21
#1

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

02.04.2013, 11:06. Просмотров 774. Ответов 2
Метки нет (Все метки)

Доброго времени суток ув. люди.
Так случилось, что учился я несколько курсов в одном у.з. и перешел другой. В одном изучали Паскаль->Делфи, в другом С->с++.
Вот настало время практике, сижу не отбиваю дупля на с++, помогите составить код программки.
Условие :
Создать программу, которая вводит с клавиатуры два двумерных массива целых чисел, перемножает их друг на друга( если это возможно т.е число столбцов первого равно число строк второго) и выводит на экран результирующий массив и сумму всех его отрицательных чисел.
На паскале->делфи, это довольно легко(т.к. я его изучал), прошу помогит мне написать на 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 квадратные, переумножение массивов производим как переумножение матриц.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2013, 11:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ввести с клавиатуры две целочисленные матрицы, и перемножить их друг на друга (C++):

Как перемножить элементы в двумерном массиве друг на друга?
Как перемножить элементы в двумерном массиве друг на друга? Размерность 5 на...

Цифры стоящие друг от друга через две
Как на основе этого кода я смогу посчитать сумму цифр стоящих друг от друга...

Найти две наиболее удаленных друг от друга точки
Структуры: I. Решить задачу, используя структуру point для хранения координат...

Определить бъют ли две фигуры на шахматной доске друг друга
Привет. Помогите пожалуйста. Даны координаты двух фигур на шахматной доске....

Посчитать сумму цифр стоящих друг от друга через две
Доброе время суток! Ребята, объясните, как на основе этого кода я смогу...

найти две наиболее удаленных друг от друга точки (множество точек задано на плоскости)
Помогите, пожалуйста, написать программу на С++, используя структуру point для...

2
chizz
983 / 500 / 101
Регистрация: 19.03.2013
Сообщений: 3,101
Записей в блоге: 19
Завершенные тесты: 1
02.04.2013, 12:07 #2
Лучший ответ Сообщение было отмечено GoooD как решение

Решение

Переписал ваш код на 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;
}
0
GoooD
1 / 1 / 1
Регистрация: 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[])
...
Спасибо добрый человек, думаю работать будет.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2013, 21:25
Привет! Вот еще темы с решениями:

Перемножить две матрицы
Сформировать два одномерных массива целочисленных из 10 элементов каждый, а...

Даны две целочисленные матрицы 4-го порядка. Получить новую * матрицу путем вычитания из элементов каждого столбца первой матрицы
даны две целочисленные матрицы 4-го порядка. Получить новую матрицу путем...

Считать с файла две матрицы и перемножить их
Считать с файла две матрицы и перемножить их

Перемножить две матрицы, причем запустить подсчет в несколько потоков
Всем привет. Суть задания перемножить две матрицы, причем запустить подсчет в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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