IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Проверить, является матрица симметрической
Barbudo
сообщение 28.05.2007 11:05
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: ламо

Репутация: -  0  +


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

как я понел нужно доказать чтоб в этой матрице первый и последний столбец были равны
второй с начала и второй с конца тоже равны, третий третиму с конца, четыёртый четвёртому с конца, всё относительно цента - тоесть 8 столбца.
хоть на рандоме получить такую матрицу нереально, но всёравно как это написать?(
ну или можно относительно других элементов это доказать.

Сообщение отредактировано: Barbudo - 28.05.2007 11:06
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 28.05.2007 11:09
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
хоть на рандоме получить такую матрицу нереально,


smile.gif Очень даже реально.

проверка, является ли матрица симметричной относительно средней строки:

Идешь по строкам от 1 до n div 2, и по столбцам от 1 до m и смотришь

если
X[i, j] <> X[n - i + 1, j]
то циклы прекращаются, матрица не симметрична.




--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Barbudo
сообщение 28.05.2007 14:38
Сообщение #3





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: ламо

Репутация: -  0  +


Цитата(klem4 @ 28.05.2007 12:09) *

smile.gif Очень даже реально.

проверка, является ли матрица симметричной относительно средней строки:

Идешь по строкам от 1 до n div 2, и по столбцам от 1 до m и смотришь

если
X[i, j] <> X[n - i + 1, j]
то циклы прекращаются, матрица не симметрична.

можно поподробнее give_rose.gif
код с циклами бы, а то я не представляю как это замутить
а то так мне не очень понятно nea.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 28.05.2007 15:57
Сообщение #4


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Относительно центра - это не по заданию?...
Тогда вот, например (относительно побочной диагонали): проверка матрицы на симметричность


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Barbudo
сообщение 30.05.2007 13:12
Сообщение #5





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: ламо

Репутация: -  0  +


Цитата(мисс_граффити @ 28.05.2007 16:57) *

Относительно центра - это не по заданию?...
Тогда вот, например (относительно побочной диагонали): проверка матрицы на симметричность

ну можно сказать что по заданию нужно проверить, является ли матрица симметричной относительно среднего столбца give_rose.gif
ну вопрос открыт помогите это сделать give_rose.gif

Сообщение отредактировано: Barbudo - 30.05.2007 13:14
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Barbudo
сообщение 30.05.2007 16:53
Сообщение #6





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: ламо

Репутация: -  0  +


вот помогли с кодом
Код

Prigram matr;

CONST

  N=15;

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.


но какаято ошибка, выдаёт - "invalid numeric format" напротив строчки
for j:=1 to 15 do readln(Matr[i,j]);

хелп в чом трабла? no1.gif

Сообщение отредактировано: Barbudo - 30.05.2007 16:54
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 30.05.2007 17:46
Сообщение #7


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


const n = 5;
type
TMatrix = array [1..n, 1..n] of Integer;

var
x: TMatrix = (
(1, 2, 3, 4, 5),
(5, 6, 7, 8, 9),
(1, 1, 1, 1, 1),
(5, 6, 7, 8, 9),
(1, 2, 3, 4, 5)
);

i, j: Integer;
ok: Boolean;

begin
ok := true;
i := 1;
while (i <= n div 2) and ok do begin
j := 1;
while (j <= n) and ok do begin
ok := x[i, j] = x[n - i + 1, j];
inc(j);
end;
inc(i);
end;

if ok then writeln('ok') else writeln('bad');
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 5:08
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"