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

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

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

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

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

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

Это задача выложена ниже...
Вот она решенная....
ПОЧЕМУ НЕ РАБОТАЕТ????


Procedure VVOD(var x:mas); Begin
writeln('Введите массив построчно');
for i:=1 to 3 do
for j:=1 to 3 do
read(x[i,j]); End;
BEGIN
VVOD(A);
VVOD(B);
Umnogenie(А,В,С);
Umnogenie(B,A,D);
k:=0;
for i:=1 to 3 do
for j:=1 to 3 do
if C[i,j]=D[i,j] then k:=k+1;
if k=9 then writeln('A*B=B*A')
else writeln('Произведение не перестановочно');
END.


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

Заданы 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:44.
Рустем вне форума Ответить с цитированием
Старый 16.01.2009, 10:56   #2
Google[Bot]
Пользователь
 
Аватар для Google[Bot]
 
Регистрация: 09.01.2009
Сообщений: 65
По умолчанию

Что именно не работает?
Напиши фунцию Umnogenie, а лучше выведи на экран промежуточные данные - матрицы C и D

Последний раз редактировалось Google[Bot]; 16.01.2009 в 10:59.
Google[Bot] вне форума Ответить с цитированием
Старый 16.01.2009, 15:13   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Даже половину программы не написал и чего-то ждешь.
Код:
uses crt;
const n=3;
type mas=array[1..n,1..n] of real;/тип массива
Procedure VVOD(p:char;var x:mas); //ввод с клавиатуры
var i,j:integer;
Begin
writeln('Vvedite ',n*n,' elementov massiva ',p,':');
for i:=1 to n do
for j:=1 to n do
read(x[i,j]);
readln;
writeln;
end;
Procedure Vyvod(var x:mas);//вывод на экран в форматированном виде
var i,j:integer;
begin
for i:=1 to n do
  begin
    for j:=1 to n do
    write(x[i,j]:7:1);
    writeln;
  end;
end;
procedure Umnozenie(x,y:mas; var z:mas);//умножение
var i,j,k:integer;
begin
for k:=1 to n do
for j:=1 to n do
   begin
     z[k,j]:=0;
     for i:=1 to n do
        begin
          z[k,j]:=z[k,j]+x[k,i]*y[i,j];
        end;
   end;
end;
var a,b,c,d:mas; //раздел переменных программы
    i,j,k:integer;
BEGIN  /программа
clrscr;
VVOD('A',A);
VVOD('B',B);
clrscr; //очистим ввод
writeln('Matrica A:');
Vyvod(a);
writeln('Matrica B:');
Vyvod(b);
Umnozenie(a,b,c);
writeln('Matrica C=A*B:');
Vyvod(c);
Umnozenie(B,A,D);
writeln('Matrica D=B*C:');
Vyvod(d);
k:=0;
for i:=1 to n do
for j:=1 to n do
if C[i,j]=D[i,j] then k:=k+1;
if k=9 then writeln('A*B=B*A')
else writeln('Proizvedenie ne perestanovochno!');
readln
END.
puporev вне форума Ответить с цитированием
Старый 16.01.2009, 15:30   #4
Рустем
Пользователь
 
Регистрация: 16.01.2009
Сообщений: 14
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Даже половину программы не написал и чего-то ждешь.
Код:
uses crt;
const n=3;
type mas=array[1..n,1..n] of real;/тип массива
Procedure VVOD(p:char;var x:mas); //ввод с клавиатуры
var i,j:integer;
Begin
writeln('Vvedite ',n*n,' elementov massiva ',p,':');
for i:=1 to n do
for j:=1 to n do
read(x[i,j]);
readln;
writeln;
end;
Procedure Vyvod(var x:mas);//вывод на экран в форматированном виде
var i,j:integer;
begin
for i:=1 to n do
  begin
    for j:=1 to n do
    write(x[i,j]:7:1);
    writeln;
  end;
end;
procedure Umnozenie(x,y:mas; var z:mas);//умножение
var i,j,k:integer;
begin
for k:=1 to n do
for j:=1 to n do
   begin
     z[k,j]:=0;
     for i:=1 to n do
        begin
          z[k,j]:=z[k,j]+x[k,i]*y[i,j];
        end;
   end;
end;
var a,b,c,d:mas; //раздел переменных программы
    i,j,k:integer;
BEGIN  /программа
clrscr;
VVOD('A',A);
VVOD('B',B);
clrscr; //очистим ввод
writeln('Matrica A:');
Vyvod(a);
writeln('Matrica B:');
Vyvod(b);
Umnozenie(a,b,c);
writeln('Matrica C=A*B:');
Vyvod(c);
Umnozenie(B,A,D);
writeln('Matrica D=B*C:');
Vyvod(d);
k:=0;
for i:=1 to n do
for j:=1 to n do
if C[i,j]=D[i,j] then k:=k+1;
if k=9 then writeln('A*B=B*A')
else writeln('Proizvedenie ne perestanovochno!');
readln
END.

Спасибо огромное.... Хорошо буду создавать только одну тему по задаче.... Просто я не умел делать правку в теме.... Теперь научился.... Первый раз на форуме.....
Рустем вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с UserForm. То работает, то НЕ работает Maxx Microsoft Office Excel 6 19.11.2008 14:51
Моя всплывающая подсказка не работает в IE Stason JavaScript, Ajax 1 11.09.2008 18:18
задача работает неправильно, подскажите! IvanIvan Помощь студентам 1 26.05.2008 22:21
Почему моя программа РАБОТАЕТ!!! aesoem Общие вопросы Delphi 3 09.05.2008 23:50