0 / 0 / 0
Регистрация: 29.10.2013
Сообщений: 14

Вычислить матрицу C по правилам

05.03.2014, 09:09. Показов 1605. Ответов 1

Студворк — интернет-сервис помощи студентам
Написать программу с подпрограммой, использующей параметр процедурного типа для вычисления трех таблиц различных арифметических функций. Даны две вещественные квадратные матрицы A и B размера 2<=N<=10 Инициализировать матрицы случайными значениями в диапозоне (0..10) Вычислить матрицу C по правилам:
1 С= A+b
2 C=A-B
3 C=A*B
Полученные матрицы вывести на консоль
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2014, 09:09
Ответы с готовыми решениями:

Сформировать матрицу по указанным правилам
Сформировать из матрицы А (10,10) матрицу В (10,10) по следующий правилам: 1) элементы матриц А и В принимают только значения 0 или 1;...

Создать массив (матрицу) по правилам
Хелп! Задание звучит примерно так: Создать массив (матрицу) по правилу (D) в диапазоне от до ), размерностью N . Вывести номер и...

Сформировать матрицу по определенным правилам
Помогите решить задание. Само задание: сформируйте двумерный массив А(N;N) по следующему правилу: элементы главной диагонали приравнять...

1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,157
Записей в блоге: 1
06.03.2014, 09:36
Лучший ответ Сообщение было отмечено Сашкас как решение

Решение

Что-то вроде:
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
const
  LIM=10; W=8; D=1; n=8;
 
type
  tm = array [1..n, 1..n] of real;
  tma = procedure(a, b: tm; var c: tm);
 
procedure madd(a, b: tm; var c: tm);
var i, j: integer;
begin
  for i:=1 to n do
    for j:=1 to n do
      c[i,j]:=a[i,j]+b[i,j];
end;
 
procedure msub(a, b: tm; var c: tm);
var i, j: integer;
begin
  for i:=1 to n do
    for j:=1 to n do
      c[i,j]:=a[i,j]-b[i,j];
end;
 
procedure mmul(a, b: tm; var c: tm);
var i, j, k: integer;
begin
  for i:=1 to n do
    for j:=1 to n do begin
      c[i,j]:=0;
      for k:=1 to n do
        c[i,j]:=c[i,j]+a[i,k]*b[k,j];
    end;
end;
 
procedure maction(a, b: tm; var c: tm; action: tma);
begin
  action(a, b, c);
end;
 
procedure minit(var m: tm);
var i, j: integer;
begin
  for i:=1 to n do
    for j:=1 to n do
      m[i,j]:=LIM*Random;
end;
 
procedure mprint(m: tm);
var i, j: integer;
begin
  for i:=1 to n do begin
    for j:=1 to n do
      Write(m[i,j]:W:D);
    WriteLn;
  end;
end;
 
var
  a, b, c: tm;
begin
  Randomize;
  minit(a); WriteLn('A='); mprint(a);
  minit(b); WriteLn('B='); mprint(b);
  maction(a,b,c,@madd); WriteLn('A+B='); mprint(c);
  maction(a,b,c,@msub); WriteLn('A-B='); mprint(c);
  maction(a,b,c,@mmul); WriteLn('A*B='); mprint(c);
end.
Прогон:
Code
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
A=
     2.4     4.3     7.3     1.2     3.3     4.7     3.0     5.8
     4.9     7.0     6.8     1.2     6.4     8.7     1.6     0.6
     7.9     9.7     3.2     9.1     7.5     8.6     6.5     0.9
     2.6     5.2     8.1     7.6     8.5     7.1     2.0     5.8
     0.7     1.7     8.2     2.0     0.4     9.3     2.0     2.9
     2.2     6.4     8.4     4.1     2.1     7.3     1.4     7.0
     4.7     5.7     0.2     0.9     3.6     3.7     7.2     4.7
     1.8     6.7     4.7     8.2     3.8     2.9     3.1     8.2
B=
     1.4     4.9     5.8     1.3     2.7     8.4     8.0     7.5
     6.0     9.0     8.5     8.5     1.4     4.1     5.5     8.8
     4.9     0.6     7.4     5.6     5.5     2.4     5.5     7.2
     3.7     3.1     2.5     6.1     9.4     6.1     2.6     9.9
     1.4     4.0     2.4     7.1     6.1     3.2     6.8     5.1
     9.2     2.3     1.7     6.6     4.1     0.9     8.7     8.8
     2.9     5.3     8.7     7.7     4.2     6.4     4.5     4.7
     0.9     8.4     0.9     8.6     7.0     9.8     5.6     7.5
A+B=
     3.8     9.2    13.0     2.5     5.9    13.0    10.9    13.3
    10.9    16.0    15.3     9.7     7.8    12.8     7.1     9.4
    12.8    10.3    10.6    14.7    13.0    11.0    12.0     8.1
     6.3     8.3    10.6    13.6    17.9    13.2     4.6    15.8
     2.1     5.7    10.7     9.1     6.5    12.5     8.8     8.0
    11.4     8.7    10.1    10.7     6.1     8.1    10.1    15.8
     7.6    11.0     8.9     8.7     7.8    10.1    11.6     9.4
     2.7    15.2     5.6    16.9    10.8    12.8     8.7    15.7
A-B=
     1.0    -0.5     1.5    -0.1     0.6    -3.7    -5.0    -1.6
    -1.1    -2.0    -1.7    -7.4     5.0     4.6    -3.9    -8.3
     3.0     9.1    -4.2     3.6     1.9     6.2     1.0    -6.2
    -1.1     2.1     5.6     1.5    -1.0     0.9    -0.6    -4.1
    -0.7    -2.3     5.8    -5.1    -5.7     6.2    -4.8    -2.2
    -7.0     4.0     6.7    -2.5    -2.0     6.4    -7.3    -1.8
     1.8     0.3    -8.5    -6.8    -0.7    -2.7     2.7     0.1
     0.8    -1.7     3.7    -0.4    -3.2    -6.9    -2.5     0.6
A*B=
   130.5   147.6   154.2   214.7   155.6   153.0   194.3   234.9
   180.3   153.8   185.4   230.7   156.2   137.2   247.1   279.4
   227.7   247.9   264.0   333.5   252.5   251.2   316.8   408.8
   190.3   198.1   193.6   311.2   259.7   212.4   273.8   357.0
   153.8    88.2   120.7   178.0   137.4    95.5   174.1   214.0
   177.7   177.3   175.1   262.4   196.7   180.3   231.8   307.0
   108.7   177.9   160.8   206.9   130.4   175.7   186.7   215.3
   144.7   205.0   171.1   276.3   222.8   218.8   209.1   308.8
Добавлено через 18 часов 4 минуты
Сашкас,
Смущает путаница "таблица"/"матрица" в условии задачи.
Если в случае C=A*B имелось в виду не произведение матриц, а простое перемножение соответствующих элементов A и B, когда c_i,j = a_i,j * b_i,j , то тогда обход матриц можно вынести в maction, а действия +/-/* представить в виде соответствующих функций. Тогда получится что-то вроде:
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
const
  LIM=10; W=8; D=1; n=8;
 
type
  tm = array [1..n, 1..n] of real;
  raction = function(a, b: real): real;
  tact = record c: char; a: raction; end;
 
function radd(a, b: real): real;
begin
  radd:=a+b;
end;
 
function rsub(a, b: real): real;
begin
  rsub:=a-b;
end;
 
function rmul(a, b: real): real;
begin
  rmul:=a*b;
end;
 
procedure maction(a, b: tm; var c: tm; action: raction);
var i, j: integer;
begin
  for i:=1 to n do
    for j:=1 to n do
      c[i,j]:=action(a[i,j],b[i,j]);
end;
 
procedure minit(var m: tm);
var i, j: integer;
begin
  for i:=1 to n do
    for j:=1 to n do
      m[i,j]:=LIM*Random;
end;
 
procedure mprint(m: tm);
var i, j: integer;
begin
  for i:=1 to n do begin
    for j:=1 to n do
      Write(m[i,j]:W:D);
    WriteLn;
  end;
end;
 
const
  acts: array [1..3] of tact = (
    (c:'+'; a:@radd), (c:'-'; a:@rsub), (c:'*'; a:@rmul));
var
  a, b, c: tm;
  i: integer;
begin
  Randomize;
  minit(a); WriteLn('A='); mprint(a);
  minit(b); WriteLn('B='); mprint(b);
  for i:=1 to 3 do begin
    maction(a,b,c,acts[i].a);
    WriteLn('A',acts[i].c,'B='); mprint(c);
  end;
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.03.2014, 09:36
Помогаю со студенческими работами здесь

Дана матрица A(6,6), получить из нее матрицу B по указанным правилам
Пожалуйста, люди добрые!! помогите с программой, очень срочно нужно :с Дана матрица A(6,6). Создать новую матрицу B, где a) B...

Ввести матрицу А, вычислить сумму элементов второй строки, построить матрицу B по формуле: bij = aij +1
2)Составить программу, которая: вводит с клавиатуры A в виде матрицы; вычисляет и выводит на экран сумму элементов 2-ой строки матрицы A;...

Поместить матрицу в Excel, и вычислить обратную матрицу
В общем суть проблемы такова: у меня есть код, приведенный ниже. Там есть создание матрицы 5х5. Мне нужно поместить эту матрицу в Excel, и...

Вычислить матрицу
Дана матрица М(4,5) и константа С. Вычислить матрицу D, равную произведению элементов матрицы М на константу.

Вычислить матрицу Т
Даны матрицы A и B размером (n,n) Вычислить матрицу Т, которая получается транспонированием матрицы В и сумму матриц Т и В


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

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

Новые блоги и статьи
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
PowerShell и онлайн сервисы. Валюта (floatrates.com руб.)
iNNOKENTIY21 11.11.2025
PowerShell функция floatrates-rub Примеры вызова: # Указанная валюта 'EUR' floatrates-rub -Code 'EUR' # Список имеющихся кодов валют floatrates-rub -Available function floatrates-rub {
PowerShell и онлайн сервисы. Погода (RP5.ru)
iNNOKENTIY21 11.11.2025
PowerShell функция Get-WeatherRP5rss для получения погоды с сервиса RP5 Примеры вызова Get-WeatherRP5rss с указанием id 5484 — Москва (восток, Измайлово) и переносом строки:. . .
PowerShell и онлайн сервисы. Погода (wttr)
iNNOKENTIY21 11.11.2025
PowerShell Функция для получения погоды с сервиса wttr Примеры вызова: Погода в городе Омск с прогнозом на день, можно изменить прогноз на более дней, для этого надо поменять запрос:. . .
PowerShell и онлайн сервисы. Валюта (ЦБР)
iNNOKENTIY21 11.11.2025
# Получение курса валют function cbr (] $Valutes = @('USD', 'EUR', 'CNY')) { $url = 'https:/ / www. cbr-xml-daily. ru/ daily_json. js' $data = Invoke-RestMethod -Uri $url $esc = 27 . . .
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru