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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2010, 11:58   #1
Avus
 
Регистрация: 18.11.2010
Сообщений: 3
По умолчанию Матрица n*n и поиск нулей.

Здравствуйте.
Помогите решить проблему.
Дана матрица n*n, в каждой строке находится min элемент и вычитается из элементов этой строки , далее аналогично вычитается из каждого столбца. Это сделано!
Проблема заключается в этом:
Далее находится нулевой элемент, его запоминаем. Это делается в цикле до последней строки, результат выписывается в memo в виде (i работник - j работа).
Avus вне форума Ответить с цитированием
Старый 20.12.2010, 12:12   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

пользуемся поиском http://www.programmersforum.ru/showthread.php?t=70310
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 20.12.2010, 15:46   #3
Avus
 
Регистрация: 18.11.2010
Сообщений: 3
По умолчанию

Искал, но ничего подходящего не нашел. Я хочу так: открываем цикл, ищем нули с количеством 1, запоминаем его номер, и вычеркиваем элементы стоящие на пересечении этого 0(путем присвоения значения - 1).
У меня Проблема с присвоением элеметам столбца -1. Это нужно для того чтобы затем считать оставшиеся элементы матрицы.
Вот кусок кода(Я решаю задачу о назначаниях венгерским методом):
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var
Form1: TForm1;
i,j,k,l:integer;
a:array[0..100,0..100] of real;
b,y,e:array[1..100] of integer;
begin
for i:=0 to 2 do
for j:=0 to 2 do begin
a[i,j]:=strtofloat(stringgrid1.cells[i,j]);
end;

for i:=0 to 2 do
for j:=0 to 2 do begin
if a[j,i]=0 then begin
b[i]:=b[i]+1;
y[i]:=j;
e[i]:=i;
end;
end;

for i:=0 to 2 do
for j:=0 to 2 do begin
if ((a[j,i]<>0) and (b[i]=1)) then begin
stringgrid1.Cells[j,i]:='-1';
end;
end;
for i:=0 to 2 do begin
for j:=0 to 2 do begin
if ((a[i,j]<>0) and (b[i]=1)) then begin
stringgrid1.Cells[j,i]:='-1';
end;
end;
end;

Последний раз редактировалось Avus; 20.12.2010 в 16:19.
Avus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Поиск линейно зависимых строк матрицы. Error 200: Division by zero, хотя нулей в матрице нет Paul-SFL Помощь студентам 8 27.11.2010 21:52
Найти максимальный элемент матрицы и вставить правее него столбец из нулей и ниже него строку из нулей. Romer9999 Паскаль, Turbo Pascal, PascalABC.NET 3 28.11.2008 11:28
Помогите с чисткой до нулей!!! QIP AGeNt Помощь студентам 2 10.07.2008 00:30
Поиск нулей в файле.Хелп CESHNIK Общие вопросы C/C++ 1 22.02.2008 14:50
Избавиться от ведущих нулей. Progs Паскаль, Turbo Pascal, PascalABC.NET 4 24.10.2007 12:50