Страница 1 из 1

Turbo Pascal- матрица

Добавлено: 29 май 2007, 18:25
Barbudo
Задание:
Задана матрица D(15,15). Проверить, является ли она симметрической. Вывести на экран соответствующее сообщение.
________________________________________________________________________


Не ясно одно относительн очего она симметрическая, допустим относительно 8 столбца :)
пожалуйста помогите :o

Re: Turbo Pascal- матрица

Добавлено: 29 май 2007, 18:47
Ramzey
Симметричная она должна быть относительно главной диагонали, например:
1 2 3 4 5
2 1 3 4 5
3 3 1 4 5
4 4 4 1 5
5 5 5 5 1

Код: Выделить всё

CONST
  N=4;
var
  i,j  : byte;
  Matr : array [1..N,1..N] of integer;
BEGIN
  for i:=1 to N do
    for j:=1 to N do readln(Matr[i,j]);
  for i:=1 to N do
    begin
      for j:=i to N do
        if Matr[i][j]<>Matr[j][i] then
          begin
            writeln('ne simetrichnaj');
            halt(0)
          end;
    end;
  writeln('simetrichnaj');
END.
вроде так

Re: Turbo Pascal- матрица

Добавлено: 30 май 2007, 14:09
Barbudo
Ramzey писал(а):Симметричная она должна быть относительно главной диагонали, например:
1 2 3 4 5
2 1 3 4 5
3 3 1 4 5
4 4 4 1 5
5 5 5 5 1
вроде так
спасиба, но может какнить можно переделать в проверку, является ли матрица симметричной относительно среднего столбца
(ну или средней строки): :rolleyes:
прошу помогите ;)

Re: Turbo Pascal- матрица

Добавлено: 30 май 2007, 15:23
Ramzey
Ну это еще проще с точки зрения понимания (или нет?):

Код: Выделить всё

CONST

  N=4;

var

  i,j  : byte;

  Matr : array [1..N,1..N] of integer;

BEGIN

  for i:=1 to N do

    for j:=1 to N do readln(Matr[i,j]);

  for i:=1 to N do

    begin

      for j:=i to (N  div 2) do

        if Matr[i][j]<>Matr[i][N-j+1] then

          begin

            writeln('ne simetrichnaj');

            halt(0)

          end;

    end;

  writeln('simetrichnaj');

END.

Re: Turbo Pascal- матрица

Добавлено: 30 май 2007, 15:23
Ramzey
да, у тебя N=15 будет - по заданию.

Re: Turbo Pascal- матрица

Добавлено: 30 май 2007, 17:40
Barbudo
чото тут не так выдаёт ошибку - "invalid numeric format" напротив строчки
for j:=1 to 15 do readln(Matr[i,j]); :(

хелп ;)

Re: Turbo Pascal- матрица

Добавлено: 31 май 2007, 09:23
somewhere
&quot писал(а):чото тут не так выдаёт ошибку - "invalid numeric format" напротив строчки
Нужно вводить целые числа в интервале от -32768 до 32767 по-одному

Re: Turbo Pascal- матрица

Добавлено: 01 июн 2007, 21:12
Barbudo
всем огромное спасибо за помощь, очень помогли!