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

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

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

Студворк — интернет-сервис помощи студентам
Для квадратных матриц A, B, C, которые имеют размерность 3x3, найти матрицу D. Сделать программу под решение матрицы вида D=3A+4BC^T-C. Ввод исходных данных организовать с клавиатуры обязательно с помощью подпрограммы-процедуры. Повторяющиеся элементы кода тоже желательно заключить в процедуры.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.06.2019, 16:28
Ответы с готовыми решениями:

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

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

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

3
2374 / 776 / 561
Регистрация: 15.01.2019
Сообщений: 2,394
23.06.2019, 12:07
В формуле для вычисления матриц присутствует переменная 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  [ТС]
Степень Т - транспонирование, ввод должен осуществляться исключительно с клавиатуры, программа должна находить окончательный результат решения матрицы, формула которой представлена выше
0
2374 / 776 / 561
Регистрация: 15.01.2019
Сообщений: 2,394
26.06.2019, 22:57
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.06.2019, 22:57
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru