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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2017, 20:07   #1
MarkAfe
 
Регистрация: 14.05.2017
Сообщений: 5
По умолчанию Является ли целочисленная матрица симметричной

Помогите сделать задание, очень нужно. Постоянно выдает, что матрица симметрична, однако это не так в действительности.
Сама задача: Определить является ли целочисленная матрица
симметричной относительно вертикальной оси. При
отсутствии симметрии заменить элементы на
минимальный из них.
Код:
procedure TForm2.Button5Click(Sender: TObject);
var
min,i,j,n:integer;
f:boolean;
begin
Setlength(a,n,n);
for i:=0 to n-1 do
for j:=0 to n-1 do
a[i,j]:=StrToInt(StringGrid1.Cells[j,i]);
f:=true;
for i:=0 to n-1 do
for j:=0 to i-1 do
if a[j,i]<a[j,i] then a[j,i]:=min;
for i:=0 to n-1 do
for j:=0 to n-1 do
if f=True then
   begin
    f:=false;
    a[i,j]:=min;
    a[j,i]:=min;
   end;
for i:=1 to n do
for j:=1 to n do
StringGrid1.Cells[j,i]:=IntToStr(a[i,j]);
if f then Showmessage('Матрица симметрична относительно вертикальной оси')
else Showmessage('элементы заменены на минимальный');
 end;
MarkAfe вне форума Ответить с цитированием
Старый 14.05.2017, 20:34   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А не инициализированное n чему у тебя равно? Похоже нулю, при чем совершенно не обязательно, что всегда так будет ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.05.2017, 09:18   #3
MarkAfe
 
Регистрация: 14.05.2017
Сообщений: 5
По умолчанию

Изменил код, добавил переменную n, изменил немного условие, однако, все равно не получается, при нажатии на кнопку, выдает ошибку...

Код:
procedure TForm2.Button5Click(Sender: TObject);
var
min,i,j,n:integer;
a:array of array of integer;//Динамический двумерный массив
f:boolean;
begin
n:=spinedit1.value;//размерность
Setlength(a,n,n);
for i:=0 to n-1 do
for j:=0 to n-1 do
a[i,j]:=StrToInt(StringGrid1.Cells[j,i]);
for i:=0 to n-1 do
for j:=0 to i-1 do
if a[j,i]<a[j,i] then a[j,i]:=min;
for j:=0 to n-1 do
if f=true then
begin
if a[j,i]<>a[j,i] then
   begin
    f:=false;
    a[i,j]:=min;
    a[j,i]:=min;
   end else
end;
for i:=0 to n-1 do
for j:=0 to n-1 do
StringGrid1.Cells[j,i]:=IntToStr(a[i,j]);
if f then Showmessage('Матрица симметрична оносительно вертикальной оси')
else Showmessage('элементы заменены на минимальный');
 end;
MarkAfe вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить является ли целочисленная матрица симметричной относительно главной диагонали Kolya23 Помощь студентам 4 01.06.2015 14:49
Программа на языке Си: Определить является ли заданна целочисленная квадратная матрица размером n*n ортонормированной lyubov17 Помощь студентам 4 10.12.2013 21:17
Определить, является ли заданная целая квадратная матрица n-го порядка симметричной Иляна Помощь студентам 1 30.01.2013 00:10
Определить, является ли заданная целая квадратная матрица n- го порядка симметричной (относительно главной диагонали.) Jlovenpk1 Общие вопросы C/C++ 2 16.01.2013 11:33
Является ли матрица 10-го порядка симметричной NeoX_2011 Помощь студентам 11 18.03.2012 17:15