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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2010, 09:23   #1
Volodyajke
 
Регистрация: 19.12.2010
Сообщений: 7
По умолчанию типовой

всем привет, помогите пожалуйста
вот задача

Можно ли отражением элементов относительно главной диагонали получить совмещение матриц А и В порядка N. Вывести на экран результаты соответствующих преобразований матриц.

Набросал:

Код:
uses
    crt;
var
   a:array[1..100,1..100] of integer;
   b:array[1..100,1..100] of integer;
   i,j,k,l,n,m:integer;
begin
     writeln('‚Vvedite razmernost' 1oy matrici ');
     readln(n);
     writeln('‚Vvedite matricy razmerom ',n,' x ',n);
     for i:= 1 to n do
         for j:= 1 to n do
             read(a[i,j]);
     writeln('‚Vvedite razmernost' 2oy matrici ');
     readln(m);
     writeln('vvedite matricy razmerom',m,' x ',m);
     for i:= 1 to n do
         for j:= 1 to n do
             read(b[i,j]);
 writeln('Pervaya matrica* :');
    for i:=1 to n do
    begin
    for j:=1 to n do
    write(a[i,j]:3);
    writeln;
    end;
 writeln('Vtoraya matrica* :');
    for i:=1 to m do
    begin
    for j:=1 to m do
    write(b[i,j]:3);
    writeln;
    end;

for i:=1 to n do
for j:=i to n do
  begin
    k:=a[i,j];
    a[i,j]:=a[j,i];
    a[j,i]:=k;
  end;
writeln('’pervaya transponirovannaya matrica*:');
for i:=1 to n do
  begin
    for j:=1 to n do
    write(a[i,j]:4);
    writeln;
  end;

   if a[i,j]=b[i,j] then write('Mojno polu4it' sovmeshenie matric')
         else write('Nelzya');
             readln;
             readkey
             end.

В последней части у меня не получается, помогите плз))

Последний раз редактировалось artemavd; 22.12.2010 в 17:35.
Volodyajke вне форума Ответить с цитированием
Старый 22.12.2010, 16:23   #2
Rafail
Новичок
Джуниор
 
Регистрация: 22.12.2010
Сообщений: 3
По умолчанию

А поясни задание? Что такое "совмещение матриц"? Это значит что каждый элемент одной матрицы равен соответствующему элементу другой? Или что? Прост очеткого определение "совмешение матриц" я не знаю.
Rafail вне форума Ответить с цитированием
Старый 22.12.2010, 18:14   #3
Volodyajke
 
Регистрация: 19.12.2010
Сообщений: 7
По умолчанию

В общем нужно ввести 2 матрицы, вторую транспонировать и вывести ее на экран и потом сравнить 1ую и транспонированную, если они равны то вывести можно, а если нет то нельзя
Volodyajke вне форума Ответить с цитированием
Старый 23.12.2010, 05:00   #4
Rafail
Новичок
Джуниор
 
Регистрация: 22.12.2010
Сообщений: 3
По умолчанию

Готово, если что пиши
Код:
uses crt;
type
    matr = array[1..50,1..50] of integer;

var a,b:matr;
    n:word;
    f:boolean;

{Процедура ввода матрицы}
procedure inp_matr(var buf:matr);
var i,j:word;
begin
     writeln('Vvedi matricy');
     for i:=1 to n do
     begin
         for j:=1 to n do
             read(buf[i,j]);
         readln;
     end;
end;

{Процедура вывода матрицы}
procedure out_matr(buf:matr);
var i,j:word;
begin
     for i:=1 to n do
     begin
         for j:=1 to n do
             write(buf[i,j],' ');
         writeln;
     end;
end;

{Процедура отражения элементов матрицы относительно главной диагонали}
procedure transp(var buf:matr);
var i,j:word;
    buf2:integer;
begin
     for i:=1 to n do
         for j:=1 to i-1 do
         begin
              buf2:=buf[i,j];
              buf[i,j]:=buf[j,i];
              buf[j,i]:=buf2;
         end;
end;

{проверка равенства матриц}
procedure proverka;
var i,j:word;
begin
     for i:=1 to n do
         for j:=1 to n do
         begin
              if a[i,j]<>b[i,j] then
              begin
                   f:=false;
                   break;
              end;
         end;
end;

begin
     clrscr; {Очистка экрана}
     f:=true; {Если ф - тру значит можно, если фолс, значит нельзя}


     write('Vvedi razmernost - ');readln(n);{Ввод размерности матриц и самих матриц}
     inp_matr(a);
     inp_matr(b);


     transp(a); {Транспонирование матрицы А}
     proverka; {Проверка матриц на совмещение (равенство), если равны, то Ф останется тру, если нет, то ф станет фолс}

     if f=true then {ветка ветвления, когда матрицы равны}
     begin
          writeln('Mozhno poluchet sovmeshenie');
          writeln('Transponirovannaya matrica A');
          out_matr(a);
          writeln('Matrica B');
          out_matr(b);
     end
     else {ветка ветвления, когда матрицы не равны}
     begin
          writeln('Nelzya poluchet sovmeshenie');
          writeln('Transponirovannaya matrica A');
          out_matr(a);
          writeln('Matrica B');
          out_matr(b);
     end;
     readln; {ожидание нажатия клавиши для выхода}
end.

Последний раз редактировалось Rafail; 23.12.2010 в 21:17.
Rafail вне форума Ответить с цитированием
Старый 23.12.2010, 14:23   #5
Volodyajke
 
Регистрация: 19.12.2010
Сообщений: 7
По умолчанию

Спасибо! А можете с алгоритмом помочь?
Volodyajke вне форума Ответить с цитированием
Старый 23.12.2010, 21:16   #6
Rafail
Новичок
Джуниор
 
Регистрация: 22.12.2010
Сообщений: 3
По умолчанию

Volodyajke, описать его словами? Что что? Блок схема нужна?
Rafail вне форума Ответить с цитированием
Старый 23.12.2010, 21:54   #7
Volodyajke
 
Регистрация: 19.12.2010
Сообщений: 7
По умолчанию

Совершенно точно
Volodyajke вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти типовой график furstenberg Общие вопросы Delphi 2 18.09.2010 09:47
алгоритмизазия, типовой. Ам тя Помощь студентам 0 08.12.2009 22:36
Задание на типовой расчет: Какое наибольшее целое число без знака может быть записано в N двоич.разрядах? Бубликова Фриланс 10 06.12.2008 10:35