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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2007, 18:51   #1
student_63
Пользователь
 
Аватар для student_63
 
Регистрация: 07.11.2007
Сообщений: 92
Сообщение Привести в живность код

Доброе время суток, помогите пожалуйста привести код в работоспособное состояние.Попытаюсь более подробно довести до вас свою проблему
При нахождении свободного нуля мне нужно построить цепочку отмечая элементы 'отм 0*' и 'отм 0^' ищем элементы по правилу:
Находим свободный ноль(в других процедурах отмечаются строки и столбцы знаком '+', если свободные нули есть то переходим к этой процедуре).Найденный невыделенный нуль обозначим через 'отм 0^' и, начиная с него,строим цепочку: ищем в этом столбце 0*,отмечаем его, потом в этой строке 0 или 0^(могут оказаться и такие), отмечаем опять же и т.д. И еще остальные элементы выделяем только так, чтобы в одном и том же столбце/строке не было '0*','отм 0*'/'0','0^','отм 0^'.

Код:
 procedure SecondStage(i,j,m:integer);
 //Процедура, для вычислений на втором этапе,
 //т.е. построение цепочки нулей и расстановка
 //их на "свои" места
 var
  t,y,uRow,uCol: word;
  bool,ThereIs1,ThereIs2: boolean;
 begin

  for i:= 1 to k+1 do
   begin
     for j:= 1 to k+1 do
      begin
        CheckZero:=true;
        for m:= 1 to k+1 do
          if StringGrid2.Cells[m,j] = '0*' then
           begin
            CheckZero:=false;
            break;
           end;
        if (StringGrid2.Cells[i,0] <> '+') and (StringGrid2.Cells[0,j] <> '+')
            and (CheckZero=true) and (StringGrid2.Cells[i,j] = '0') then
             begin
              StringGrid2.Cells[i,j]:= 'отм 0^';
              uCol:=i;
              repeat
                bool:= true;
                for uRow:= 1 to k+1 do
                 begin
                  ThereIs1:=false;
                  for t:= 1 to k+1 do
                   if StringGrid2.Cells[uCol,t] <> 'отм 0*' then
                    ThereIs1:=true;
                  if (StringGrid2.Cells[uCol,uRow] = '0*') and (ThereIs1=true) then
                   begin
                    bool:=true;
                    StringGrid2.Cells[uCol,uRow] := 'отм 0*';
                    break;
                   end
                    else
                     bool:=false;
                 end;
                for uCol:= 1 to k+1 do
                 begin
                  ThereIs2:=false;
                  for y:= 1 to k+1 do
                   if StringGrid2.Cells[y,uRow] <> 'отм 0^' then
                    ThereIs2:=true;
                  if ((StringGrid2.Cells[uCol,uRow] = '0^')or(StringGrid2.Cells[uCol,uRow] = '0'))and(ThereIs2=true) then
                   begin
                     bool:=true;
                     StringGrid2.Cells[uCol,uRow]:= 'отм 0^';
                     break;
                   end
                    else
                     bool:=false;
                 end
              until bool = false;
             end;
      end;
   end;
{ for i:= 1 to k+1 do
  for j:= 1 to k+1 do
   begin
    if StringGrid2.Cells[i,j]= 'отм 0^' then
       StringGrid2.Cells[i,j]:= '0*';
    if (StringGrid2.Cells[i,j]= 'отм 0*') or (StringGrid2.Cells[i,j]= '0^') then
       StringGrid2.Cells[i,j]:= '0';
   end;
 for i:= 1 to k+1 do
  for j:= 1 to k+1 do
   begin
    StringGrid2.Cells[i,0]:= '';
    StringGrid2.Cells[0,j]:= '';
    if StringGrid2.Cells[i,j] = '0^' then
      StringGrid2.Cells[i,j]:= '0';
   end;}
 end;
Я уверен, вы согласитесь со мной... что если
со страницей 534 мы встречаемся во второй главе, то первая глава должна быть невыносимо длинной.
- ШЕРЛОК ХОЛМС
student_63 вне форума Ответить с цитированием
Старый 29.11.2007, 02:01   #2
student_63
Пользователь
 
Аватар для student_63
 
Регистрация: 07.11.2007
Сообщений: 92
По умолчанию

ребята,что такой сложный код???если не понятно,напишите,реально серьезная тема,если кто разберется в листинге,пожалуйста напишите,голова уже не варит,это мой автомат по методам оптимизации
Я уверен, вы согласитесь со мной... что если
со страницей 534 мы встречаемся во второй главе, то первая глава должна быть невыносимо длинной.
- ШЕРЛОК ХОЛМС
student_63 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Живность на столе Лубышев Софт 15 05.11.2008 15:34