Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.06.2019
Сообщений: 4
1

Решение задачи на квадратные матрицы

22.06.2019, 16:28. Показов 1867. Ответов 3

Author24 — интернет-сервис помощи студентам
Для квадратных матриц A, B, C, которые имеют размерность 3x3, найти матрицу D. Сделать программу под решение матрицы вида D=3A+4BC^T-C. Ввод исходных данных организовать с клавиатуры обязательно с помощью подпрограммы-процедуры. Повторяющиеся элементы кода тоже желательно заключить в процедуры.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2019, 16:28
Ответы с готовыми решениями:

Решение задачи используя матрицы перехода
Привет всем. Я начала решать задачу, но не знаю как сделать последнее действие. Задача В одной...

Даны квадратные матрицы A и B. Получить матрицу D, вставив столбцы матрицы B между столбцами матрицы A.
Вот такая задача...помогите решить пожалуйста....

Даны две квадратные матрицы 5х5 и 6х6 в текстовых файлах. Трансформировать их в другие матрицы
Уважаемые участники форума. Напишите, пожалуйста, программу. Даны две квадратные матрицы 5х5 и...

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

3
2373 / 775 / 561
Регистрация: 15.01.2019
Сообщений: 2,394
23.06.2019, 12:07 2
В формуле для вычисления матриц присутствует переменная T, значение которой не указано, поэтому я произвольно выбрал, что T - это число, а его значение равно 2.

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
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
106
107
108
program Project1;
type
  TArr = array [1..10,1..10] of integer;
 
procedure InfOutMatrix (arr: TArr; narr,marr: integer);
// Процедура для вывода элементов массива на экран.
var
   i,j: integer;
begin
  for i:= 1 to narr do
    begin
    for j:= 1 to marr do
      Write(arr[i,j]:4);
    writeln;
    end;
end;
 
procedure UniversalInMatrix(var arr:TArr; narr,marr: integer);
// Процедура для универсального ввода значений элементов в массивы.
var
   i,j: integer;
   vib: integer;
begin
  Writeln('Введите 1, если ввод чисел будет осуществляться в ручном режиме');
  Writeln('Введите 2, если числа будут заданы генератором случайных чисел');
  Readln(vib);
  case vib of
  1: for i:= 1 to narr do
      for j:= 1 to marr do
       begin
        write('Введите элемент ',i,' строки ',j,' столбца: ');
        Readln(arr[i,j]);
       end;
  2: for i:=1 to narr do
      for j:=1 to marr do
        arr[i,j]:= random(101) - 50;
 end;
end;
 
procedure MatrixPowInteger(arr:TArr; narr,marr: integer; num: integer; crr: TArr);
// Процедура для умножения матрицы на число.
var
  i,j: integer;
begin
  for i:= 1 to narr do
    for j:= 1 to marr do
       crr[i,j]:= num*arr[i,j];
end;
 
 
procedure MatrixPowMatrix(arr,brr:TArr; narr: integer; var crr: TArr);
// Процедура для перемножения матрицы на матрицу (используются только квадратные матрицы).
var
  i,j,k: integer;
begin
for i:=1 to narr do
  for j:=1 to narr do
    begin
      crr[i,j]:= 0;
      for k:=1 to narr do
        crr[i,j]:= crr[i,j] + arr[i,k]*brr[k,j];
    end;
end;
 
procedure MatrixSubtractionAdditionMatrix(arr,brr:TArr; narr,add: integer; var crr: TArr);
// Процедура для вычитания (сложения) матрицы из матрицы (используются только квадратные матрицы).
var
  i,j: integer;
begin
for i:=1 to narr do
  for j:=1 to narr do
     if add = 1 then
       crr[i,j]:= arr[i,j] - brr[i,j]
     else
       crr[i,j]:= arr[i,j] + brr[i,j]
end;
 
 
var
  a,b,c,d: TArr;  // Переменные для хранения двумерного массива.
  a1,a2,a3,a4,a5: TArr;  // Промежуточные переменные для вычисления результатов.
begin
  Randomize;
  UniversalInMatrix(a,3,3);
  Writeln('Исходная матрица A:');
  InfOutMatrix(a,3,3);
  UniversalInMatrix(b,3,3);
  Writeln('Исходная матрица B:');
  InfOutMatrix(a,3,3);
  UniversalInMatrix(c,3,3);
  Writeln('Исходная матрица C:');
  InfOutMatrix(a,3,3);
  // D= 3A + 4BC^T - C
  // D= A1 + A2CC - C
  // D= A1 + A2A3 - C
  // D= A1 + A4 - C
  // D= A5 - C
  // D
  MatrixPowInteger(a,3,3,3,a1);
  MatrixPowInteger(a,3,3,4,a2);
  MatrixPowMatrix(c,c,3,a3);
  MatrixPowMatrix(a2,a3,3,a4);
  MatrixSubtractionAdditionMatrix(a1,a4,3,2,a5);
  MatrixSubtractionAdditionMatrix(a5,c,3,1,d);
  Writeln('Измененная матрица:');
  InfOutMatrix(d,3,3);
  readln;
end.
0
0 / 0 / 0
Регистрация: 20.06.2019
Сообщений: 4
23.06.2019, 16:49  [ТС] 3
Степень Т - транспонирование, ввод должен осуществляться исключительно с клавиатуры, программа должна находить окончательный результат решения матрицы, формула которой представлена выше
0
2373 / 775 / 561
Регистрация: 15.01.2019
Сообщений: 2,394
26.06.2019, 22:57 4
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
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
106
107
108
109
110
111
112
113
114
115
116
117
118
program Project1;
type
  TArr = array [1..3,1..3] of integer;
 
procedure InfOutMatrix (arr: TArr; narr,marr: integer);
// Процедура для вывода элементов массива на экран.
var
   i,j: integer;
begin
  for i:= 1 to narr do
    begin
    for j:= 1 to marr do
      Write(arr[i,j]:4);
    writeln;
    end;
end;
 
procedure ManualInMatrix(var arr:TArr; narr,marr: integer);
// Процедура для ручного ввода значений элементов в массивы.
var
   i,j: integer;
begin
   for i:= 1 to narr do
      for j:= 1 to marr do
       begin
        write('Введите элемент ',i,' строки ',j,' столбца: ');
        Readln(arr[i,j]);
       end;
 
end;
 
procedure MatrixPowInteger(arr:TArr; narr,marr: integer; num: integer; var crr: TArr);
// Процедура для умножения матрицы на число.
var
  i,j: integer;
begin
  for i:= 1 to narr do
    for j:= 1 to marr do
       crr[i,j]:= num*arr[i,j];
end;
 
 
procedure MatrixPowMatrix(arr,brr:TArr; narr: integer; var crr: TArr);
// Процедура для перемножения матрицы на матрицу (используются только квадратные матрицы).
var
  i,j,k: integer;
begin
for i:=1 to narr do
  for j:=1 to narr do
    begin
      crr[i,j]:= 0;
      for k:=1 to narr do
        crr[i,j]:= crr[i,j] + arr[i,k]*brr[k,j];
    end;
end;
 
procedure MatrixSubtractionAdditionMatrix(arr,brr:TArr; narr,add: integer; var crr: TArr);
// Процедура для вычитания (сложения) матрицы из матрицы (используются только квадратные матрицы).
var
  i,j: integer;
begin
for i:=1 to narr do
  for j:=1 to narr do
     if add = 1 then
       crr[i,j]:= arr[i,j] - brr[i,j]
     else
       crr[i,j]:= arr[i,j] + brr[i,j]
end;
 
procedure TransponirMatrix(arr:TArr; narr, marr: integer; var crr:TArr);
// Процедура для транспонирования матрицы.
var
  i,j: integer;
  tmp: integer;
begin
for i:=1 to narr do
  for j:=i+1 to marr do
    begin
     tmp:= arr[i,j];
     arr[i,j]:= arr[j,i];
     arr[j,i]:= tmp;
    end;
  crr:=arr;
end;
 
 
var
  a,b,c,d: TArr;             // Переменные для хранения двумерного массива.
  a1,a2,a3,a4,a5: TArr;  // Промежуточные переменные для вычисления результатов.
begin
  Randomize;
  ManualInMatrix(a,3,3);   // Ручное заполнение матрицы A.
  Writeln('Исходная матрица A:');
  InfOutMatrix(a,3,3);     //  Вывод матрицы A на экран.
  ManualInMatrix(b,3,3);    // Ручное заполнение матрицы B.
  Writeln('Исходная матрица B:');
  InfOutMatrix(a,3,3);      // Вывод матрицы B на экран.
  ManualInMatrix(c,3,3);     // Ручное заполнение матрицы C.
  Writeln('Исходная матрица C:');
  InfOutMatrix(a,3,3);       //  Вывод матрицы C на экран.
  // Последовательность вычисления матриц.
  // D= 3A + 4BC^T - C
  // D= 3A + 4Ba3 - C
  // D= a1 + 4Ba3 - C
  // D= a1 + a2a3 - C
  // D= a1 + a4 - C
  // D= a5 - C
  // D
  TransponirMatrix(c,3,3,a3); // Транспонирование матрицы C.
  MatrixPowInteger(a,3,3,3,a1); // Умножение матрицы A на число 3.
  MatrixPowInteger(a,3,3,4,a2); // Умножение матрицы B на число 4.
  MatrixPowMatrix(a2,a3,3,a4);  // Умножение транспонированной матрицы на матрицу умножимую на 4.
  MatrixSubtractionAdditionMatrix(a1,a4,3,2,a5); // Суммирование двух матриц.
  MatrixSubtractionAdditionMatrix(a5,c,3,1,d);   // Вычитание двух матриц.
  Writeln('Измененная матрица:');
  InfOutMatrix(d,3,3);
  readln;
end.
0
26.06.2019, 22:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2019, 22:57
Помогаю со студенческими работами здесь

Преобразование матрицы 6х3 в две квадратные матрицы 3х3
Добрый День всем участникам форума. Помогите пожалуйста с кодом для VBA по заданию. Задание: ...

Даны две квадратные матрицы n-го порядка (матрицы заполнены произвольно случайными целыми числами из диапазонов [-5; 15]
Даны две квадратные матрицы n-го порядка (матрицы заполнены произвольно случайными целыми числами...

Даны две квадратные матрицы. Вычислить среднее арифметическое элементов главной и побочной диагонали каждой матрицы
помогите написать программный код на c++

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru