Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
61 / 57 / 2
Регистрация: 18.11.2010
Сообщений: 499
1

Сформировать матрицу D из трех других матриц

22.12.2010, 19:40. Показов 662. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
не работает процедура подскажите что не правильно.Нужно сформировать матрицу D
Aij=(–i/4+1)·j/2
Bij=i·(Aij–j)
Cij=–2·Aij+Bij
D=A·C–B
Pascal
1
2
3
4
5
6
7
8
9
10
11
Procedure Form_D(A,B,C:matrix;Var D:matrix; size:integer);
 Var j,i,k:integer;
 Begin
 For i:=1 to size do
  For j:=1 to size do
   Begin
    D[i,j]:=A[i,j];
    For k:=1 to size do
     D[i,j]:=D[i,j]*C[i,k]-B[k,j];
   End;
End;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2010, 19:40
Ответы с готовыми решениями:

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

Из трех матриц сформировать четвертую по правилу
Помогите пожалуйста решить задачку: Даны квадратные матрицы А,В,С порядка 2. а) Получить матрицу...

Из элементов трех матриц сформировать четвертую
Вводим три целочисленные матрицы 5х5. Программа должна вычитать элементы первых двух и домножать...

Создать матрицу минимальных элементов двух других матриц, выбираемых попарно
Ребят, помогите пожалуйста! Первый раз в матлабе. Дана задача: Входные аргументы матрицы А и В...

7
180 / 180 / 81
Регистрация: 18.12.2010
Сообщений: 346
23.12.2010, 07:52 2
Цитата Сообщение от INZA Посмотреть сообщение
не работает процедура подскажите что не правильно.Нужно сформировать матрицу D
Aij=(–i/4+1)·j/2
Bij=i·(Aij–j)
Cij=–2·Aij+Bij
D=A·C–B
А как ей работать? Что ты вообще хотел сказать этим кодом??..

Давай сначала разберемся с условием. Что подразумевается под этим:
Цитата Сообщение от INZA Посмотреть сообщение
D=A·C–B
Это умножение матриц? Если да, то тебе именно ЕГО и нужно реализовывать (а также вычитание).
0
61 / 57 / 2
Регистрация: 18.11.2010
Сообщений: 499
23.12.2010, 19:15  [ТС] 3
получается сначало умножение а потом вычитание ?
0
180 / 180 / 81
Регистрация: 18.12.2010
Сообщений: 346
24.12.2010, 03:22 4
Цитата Сообщение от INZA Посмотреть сообщение
получается сначало умножение а потом вычитание ?
Если исправлять твой код, то вот так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
Procedure Form_D(A,B,C:matrix;Var D:matrix; size:integer);
Var 
  j,i,k:integer;
Begin
  For i:=1 to size do
    For j:=1 to size do Begin
      D[i,j]:=0;
      For k:=1 to size do D[i,j]:= D[i,j]+A[i,k]*C[k,j];
      D[i,j]:=D[i,j]-B[i,j];
   End;
End;
Но я бы рекомендовал все же делать по-человечески. То есть реализовать матричные операции в виде отдельных процедур.
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
Procedure MatrixAddWithCoeff(A,B: tMatrix; k: double; var C: tMatrix);
{ Performs C=A+k*B }
var
  i,j: integer;
begin
  for i:=1 to MatrixSize do
    for j:=1 to MatrixSize do
      C[i,j]:= A[i,j]+B[i,j]*k
end;
 
Procedure MatrixMult(A,B: tMatrix; var C: tMatrix);
{ Performs C=A*B }
var
  i,j,k: integer;
  s: tMatrixElement;   // переменная s того же типа, что и элементы матрицы
begin
  for i:=1 to MatrixSize do
    for j:=1 to MatrixSize do begin
      s:=0;
      for k:=1 to MatrixSize do C[i,j]:= s+A[i,k]*B[k,j]
    end
end;
 
// ...
 
begin
  // ... подготавливаем A, B и C
  MatrixMult(A,B,D);
  MatrixAddWIthCoeff(D,B,-1,D);
  // вывод D
  // ...
end.
Оно, может, длиннее и даже медленнее, но зато прозрачно и легко расширяется/дополняется.
Если хочешь, выдели строки 28 и 29 в отдельную процедуру.
0
61 / 57 / 2
Регистрация: 18.11.2010
Сообщений: 499
31.12.2010, 09:19  [ТС] 5
матрицы A,B,C я сформировал зачем С ещё раз ?
0
180 / 180 / 81
Регистрация: 18.12.2010
Сообщений: 346
31.12.2010, 11:06 6
Цитата Сообщение от INZA Посмотреть сообщение
матрицы A,B,C я сформировал зачем С ещё раз ?
Где C еще раз?
Что ты имеешь в виду? место хоть покажи, про которое говоришь..
0
61 / 57 / 2
Регистрация: 18.11.2010
Сообщений: 499
02.01.2011, 22:54  [ТС] 7
Цитата Сообщение от use Посмотреть сообщение
Где C еще раз?
Что ты имеешь в виду? место хоть покажи, про которое говоришь..
Pascal
1
2
3
4
5
6
7
8
9
10
Procedure Vvod_Form(Var A,B,C:matrix; size:integer);
 Var i,j:integer;
 Begin
   For i:=1 to size do
    For j:=1 to size do
     Begin
      A[i,j]:=(-i/4+1)*j/2;
      B[i,j]:=i*(A[i,j]-j);
      C[i,j]:=-2*A[i,j]+B[i,j];
     End;
вроде правильно а вот D уже не срабатывает

Добавлено через 8 часов 32 минуты
так D правильно сформируется при первом случае ?
0
180 / 180 / 81
Регистрация: 18.12.2010
Сообщений: 346
03.01.2011, 04:09 8
Цитата Сообщение от INZA Посмотреть сообщение
матрицы A,B,C я сформировал зачем С ещё раз ?
А, видимо, ты имел в виду формальный параметр C..

Цитата Сообщение от INZA Посмотреть сообщение
вроде правильно а вот D уже не срабатывает
Добавлено через 8 часов 32 минуты
так D правильно сформируется при первом случае ?
Дорогой INZA, разговаривать с тобой - что в лужу пе..еть. Ты ни на один мой вопрос не ответил, свои задаешь так, что приходится десять раз прочесть весь тред, чтоб врубиться, что же ты все-таки МОГ иметь в виду.

В посте #4 было, есть и будет полное и верное решение твоей задачи. За сим умываю руки.

Искренне Ваш,
use
0
03.01.2011, 04:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.01.2011, 04:09
Помогаю со студенческими работами здесь

Создать матрицу из наибольших элементов трех матриц.
Вот такая задачка. помогите решить пожалуйста:scratch: По трем заданным матрицам A(N,N),B(N,N) и...

Найти матрицу из трёх одинаковых кв. матриц (есть транспонирование)
Для квадратных матриц А,В,С с одинаковыми размерами найти матрицу D. (D=3B^t - A + 4CB^t) (^t -...

Сформировать массив, в элементах которого содержится количество 5 в трёх других массивах (процедуры)
Дано: L(6), X(8), Y(9). Сформировать массив Z (3), где Z (1)- количество чисел 5 в массиве L, Z...

Сформировать третью матрицу, являющуюся суммой двух других
Написать программу и составить блок-схему: Заданы две матрицы целых чисел. Сформировать третью...


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

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