Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
локальный минимум
Code
{ int kol(0), z(0), max(0),k(0),l(0),c(0),c1(0);
   int n=StrToInt(Edit1->Text);
   StringGrid1->ColCount=n;
   StringGrid1->RowCount=n;
     for ( int i=0; i<n; i++)                    //ищут минимумы по углам
       for (int j=0; j<n; j++)
        { if (i==0) c=0;
           else c=n-1;
           if (j==0) c1=0;
            else c1=n-1;
            { for (l=j;l<j+1;l++)
                for (k=i;k<i+1;k++)
                 {if ((StringGrid1->Cells[j][i]<StringGrid1->Cells[l+c][k+c1]) && (j!=l+c) && (i!=k+c1))
                   z++;}
  if ((i==0)&&(j!=0)) c=0;                    //ищет минимумы по краям сторон, насчет правильности этого цикла не уверен
           else c=n-1;
           if ((j==0)&&(i!=0)) c1=0;
            else c1=n-1;
            { for (l=j;l<j+1;l++)
                for (k=i;k<i+1;k++)
                 {if ((StringGrid1->Cells[j][i]<StringGrid1->Cells[l+c][k+c1]) && (j!=l+c) && (i!=k+c1))
                   z++;}
           if ((i!=0)&&(j!=0))                    //ищет в середине
            for (k=i; k<i-1; k--)
             for (l=j; l<j-1; l--)
              { if ((StringGrid1->Cells[j][i]<StringGrid1->Cells[l][k]) && (i!=k) && (j!=l));
                z++; }
        }
           if ((z==3) || (z==5) || (z==8))
           {
             kol++;
             if (StringGrid1->Cells[j][i]>max)
             max=StrToInt(StringGrid1->Cells[j][i]);
           }
        }
   Edit2->Text=IntToStr(kol);
   Edit3->Text=IntToStr(max);
}


Элемент двумерного массива называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером (n × n) найти максимум среди всех локальных минимумов.

Помогите исправить ошибки!
1 | Автор: player | 2012-10-09, 06:25   |  Репутация: [ + 0 ]
соседей по диагонали учитывать нужно?

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
2 | Автор: Berestovskiy | 2012-10-15, 08:04   |  Репутация: [ + 211 ]


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
2 | Автор: Berestovskiy | 2012-10-15, 08:04   |  Репутация: [ + 211 ]
  • Страница 1 из 1
  • 1
Поиск: