Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2009, 00:41   #1
Рустем
Пользователь
 
Регистрация: 16.01.2009
Сообщений: 14
По умолчанию Помогите решить задачу, вообще не получается....

Процедура
составить программу для решения задачи. Реализовать программу с конкретными исходными данными.

Заданы 2 матрицы:
А=
а11 а12 а13
а21 а22 а23
а31 а32 а33

В=
b11 b12 b13
b21 b22 b23
b31 b32 b33
Проверить являються ли произведение этих матриц перестановочным, то есть проверить равенство АВ=ВА. В случае положительного ответа напечатать "АВ=ВА", иначе напечатать литерал "Произведение неперестановочно".
Вычисление произведения 2 матриц оформить в виде подпрограммы.
Исходные данные:
(две матрицы)
А=
1,2 5 -3
2,7 1 2
-4 6,3 2

В=
1 2 3
5,1 4 -7
6 8 9

Последний раз редактировалось Рустем; 16.01.2009 в 01:42.
Рустем вне форума Ответить с цитированием
Старый 16.01.2009, 00:52   #2
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию

Обьясни подробнее! не совсем понял условие задачи!
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 16.01.2009, 01:45   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
uses crt;
const M=3; N=3;
type matrix = array[1..M,1..N] of real;
var
i,j : integer;
m1,m2 : matrix;
fl : boolean;
AA,BB : matrix;

function proizv(a,b : matrix; fi,fj : integer) : matrix;
 var fk : integer;
 c : matrix;
 begin
 for fi:=1 to M do
   for fj:=1 to N do
    begin
    c[fi,fj] := 0;
     for fk:=1 to N do
      c[fi,fj] := c[fi,fj] + a[fi,fk]*b[fj,fk];
    end;
 proizv := c;
 end;

begin
clrscr;
{m1[1,1] := 1.2; m1[1,2] := 5; m1[1,3] := -3;
m1[2,1] := 2.7; m1[2,1] := 1; m1[2,3] := 2;
m1[3,1] := -4; m1[3,2] := 1; m1[3,3] := 2;
m2[1,1] := 1; m2[1,2] := 2; m2[1,3] := 3;
m2[2,1] := 5.1; m2[2,2] := 4; m2[2,3] := -7;
m2[3,1] := 6; m2[3,2] := 8; m2[3,3] := 9;     }

{---------Проверочный код -----}
for i:=1 to M do
 for j:=1 to N do
  begin
  m1[i,j] := 1;
  m2[i,j] := 1;
  end;
{---------}

AA := proizv(m1,m2,M,N);
BB := proizv(m1,m2,M,N);

fl := true;
for i:=1 to M do
 begin
 for j:=1 to N do
  if AA[i,j] <> BB[i,j] then
   begin
   fl := false;
   break;
   end;
 if not fl then break;
 end;
if fl then writeln('Matricy perestanovo4nye')
else writeln('Matricy NE perestanovo4nye');
readln;
end.
Рустем А теперь о грустном..
Прочитайте правила! Вы создали 5 тем для одной задачи, и ни у одной темы нет даже нормального названия!
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 16.01.2009 в 02:19. Причина: забыл кое-что дописать )
Sazary вне форума Ответить с цитированием
Старый 16.01.2009, 02:07   #4
Рустем
Пользователь
 
Регистрация: 16.01.2009
Сообщений: 14
По умолчанию

Ваш код не хочет у меня работать(
Рустем вне форума Ответить с цитированием
Старый 16.01.2009, 02:09   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Ваш код не хочет у меня работать(
Так а в чем это проявляется?
У меня все работает, пишет, что матрицы перестановочные.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 16.01.2009, 02:09   #6
Рустем
Пользователь
 
Регистрация: 16.01.2009
Сообщений: 14
По умолчанию

SAZARY а вы можете выложить сам файл...
Рустем вне форума Ответить с цитированием
Старый 16.01.2009, 02:09   #7
Рустем
Пользователь
 
Регистрация: 16.01.2009
Сообщений: 14
По умолчанию

Пишет, сейчас секундочку...
Рустем вне форума Ответить с цитированием
Старый 16.01.2009, 02:10   #8
Рустем
Пользователь
 
Регистрация: 16.01.2009
Сообщений: 14
По умолчанию

Недопустимый тип результата функции...
Рустем вне форума Ответить с цитированием
Старый 16.01.2009, 02:13   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Так.. Во-первых, пардон - в первом листинге забыл вставить вызов самой функции ) Пофиксено
А во-вторых: замените функцию на процедуру:
Код:
uses crt;
const M=3; N=3;
type matrix = array[1..M,1..N] of real;
var
i,j : integer;
m1,m2 : matrix;
AA,BB : matrix;
fl : boolean;

procedure proizv(a,b : matrix; fi,fj : integer;var c : matrix);
 var fk : integer;
 begin
 for fi:=1 to M do
   for fj:=1 to N do
    begin
    c[fi,fj] := 0;
     for fk:=1 to N do
      c[fi,fj] := c[fi,fj] + a[fi,fk]*b[fj,fk];
    end;
 end;

begin
clrscr;
m1[1,1] := 1.2; m1[1,2] := 5; m1[1,3] := -3;
m1[2,1] := 2.7; m1[2,1] := 1; m1[2,3] := 2;
m1[3,1] := -4; m1[3,2] := 1; m1[3,3] := 2;
m2[1,1] := 1; m2[1,2] := 2; m2[1,3] := 3;
m2[2,1] := 5.1; m2[2,2] := 4; m2[2,3] := -7;
m2[3,1] := 6; m2[3,2] := 8; m2[3,3] := 9;

{---------Проверочный код -----}
{for i:=1 to M do
 for j:=1 to N do
  begin
  m1[i,j] := 1;
  m2[i,j] := 1;
  end;       }
{---------}

proizv(m1,m2,M,N,AA);
proizv(m1,m2,M,N,BB);

fl := true;
for i:=1 to M do
 begin
 for j:=1 to N do
  if AA[i,j] <> BB[i,j] then
   begin
   fl := false;
   break;
   end;
 if not fl then break;
 end;
if fl then writeln('Matricy perestanovo4nye')
else writeln('Matricy NE perestanovo4nye');
readln;
end.
Проверил в TP7 и в Free pascal 2.2.2

И еще: для добавления записи к вашему сообщению есть кнопка "правка" - используйте ее
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 16.01.2009 в 02:20.
Sazary вне форума Ответить с цитированием
Старый 16.01.2009, 02:15   #10
Рустем
Пользователь
 
Регистрация: 16.01.2009
Сообщений: 14
По умолчанию

SAZARY Поможите?


А как можно сделать так чтобы самому нужно было вводить в программе исходные данные, и получался результат?

Последний раз редактировалось Рустем; 16.01.2009 в 14:28.
Рустем вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу Hranitel Помощь студентам 11 09.10.2008 16:25
Помогите решить задачу... SlipKorn Microsoft Office Excel 4 25.09.2008 11:23
Помогите пожалуйста решить задачу!Очень нужно у самой не получается! Lilu Monechi Помощь студентам 2 19.05.2008 19:38
помогите решить задачу... studentIC Помощь студентам 3 12.03.2008 08:29