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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2012, 10:48   #1
ne_znaika
Новичок
Джуниор
 
Регистрация: 15.11.2012
Сообщений: 2
По умолчанию работа со StringGrid

Характеристикой столбца матрицы назовем наибольшее количество идущих подряд отрицательных элементов. Упорядочить столбцы матрицы по убыванию их характеристик.
вот моя версия проги, но я не пойму в чем ошибка?
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    StringGrid1->RowCount=StrToInt(Edit1->Text);
    StringGrid1->ColCount=StrToInt(Edit1->Text);
    StringGrid2->RowCount=StrToInt(Edit1->Text);
    StringGrid2->ColCount=StrToInt(Edit1->Text);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
        for ( int i=0; i<StrToInt(Edit1->Text); i++)
    for (int j=0; j<StrToInt(Edit1->Text); j++)
       StringGrid1->Cells[j][i]=IntToStr(random(40)-30);
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button3Click(TObject *Sender)
{  int n=StrToInt(Edit1->Text),k=0,t=0;
   int *a=new int [n];
   int **b;
   b=new int *[n];
   for ( int i=0; i<n; i++)
         b[i]=new int [n];
   for ( int i=0; i<n; i++)
      for (int j=0; j<n; j++)
          b[i][j]=StrToInt(StringGrid1->Cells[j][i]);
   for (int i=0;i<n;i++)
      { int number=0;
        for(int j=0;j<n; j++)
            if(StrToInt(StringGrid1->Cells [j][i])<0)
              { number++;
                k=j;
                a[i]=number;
              } }
  for ( int i=0; i<n; i++)
      for (int j=0; j<n; j++)
            if(a[i-1]>a[i])
             {  t=b[i][j];
                b[j][i]=b[k][i];
                b[k][i]=t;
             }    
   for ( int i=0; i<n; i++)
        for (int j=0;j<n;j++)
          StringGrid2->Cells[j][i]=b[i][j];
}

Последний раз редактировалось Stilet; 15.11.2012 в 13:05.
ne_znaika вне форума Ответить с цитированием
Старый 15.11.2012, 13:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
   for ( int i=0; i<StrToInt(Edit1->Text); i++)
    for (int j=0; j<StrToInt(Edit1->Text); j++){
       int k=random(40)-30;
       if(k<0)       StringGrid1->Object[i][0]=(TObject)((int)StringGrid1->Object[i][0]+1);
       StringGrid1->Cells[j][i]=IntToStr(k);
 }
}
И сортировка:
Код:
for ( int i=0; i<StringGrid1->RowCount; i++)
  for (int j=0; j< StringGrid1->RowCount; j++){
     if((int)StringGrid1->Object[i][0] >  (int)StringGrid1->Object[j][0]){
       string s=StringGrid1->Rows[i];
       StringGrid1->Rows[i]=StringGrid1->Rows[j];
       StringGrid1->Rows[j]=s;

       TObject t=StringGrid1->Object[i][0];
       StringGrid1->Object[i][0] =StringGrid1->Object[j][0];
       StringGrid1->Object[j][0]=t;
     }
  }
Смысл в хранении характеристики в поле обьекта каждой строки, и сортировке по этому полю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с StringGrid sanchosss Помощь студентам 0 26.05.2011 15:23
Работа с StringGrid Unique Общие вопросы Delphi 4 13.09.2010 03:24
Работа со StringGrid Neroaz Помощь студентам 3 29.03.2010 13:31
работа со stringgrid Johny91 Помощь студентам 0 27.12.2009 14:28
Работа с StringGrid aleks_grey Компоненты Delphi 2 28.10.2007 07:08