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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2009, 21:57   #1
Greenoren
 
Регистрация: 20.11.2009
Сообщений: 3
По умолчанию работа со StringGrid(borland C++ builder)

необходимо чтобы в эдит вводилось значение размерности квадратной матрицы, далее в стрингрид такого размера ручками вбивались данные динамически и записывались в массив, я набросал вот что
#include <vcl.h>
#pragma hdrstop

int N;
int **matr;
int i,j;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
matr=new int *[N];
for (i=0;i<N;i++)
{
matr[i]=new int [N];
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
N=StrToFloat(Edit1->Text);
Form1->StringGrid1->ColCount=N+1;
Form1->StringGrid1->RowCount=N+1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
matr[i][j]=StrToInt(StringGrid1->Cells[j][i]);
}
}
}
но в массив данные не записываются, разобраться не получается , скажите пожалуйста, в чем я не прав
Greenoren вне форума Ответить с цитированием
Старый 20.11.2009, 22:33   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Дело в том,что ты сначала создаёшь массив,а потом вводишь N...попробуй так:
Код:
int N;
int **matr;
int i,j;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
N=StrToFloat(Edit1->Text);
Form1->StringGrid1->ColCount=N+1;
Form1->StringGrid1->RowCount=N+1;
matr=new int *[N];
for (i=0;i<N;i++)
{
matr[i]=new int [N];
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
matr[i][j]=StrToInt(StringGrid1->Cells[j][i]);
}
}
}
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 20.11.2009, 22:43   #3
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Да,ещё если у тебя есть фиксированные столбец и строка,то считывание будет таким:
Код:
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
matr[i][j]=StrToInt(StringGrid1->Cells[j+1][i+1]);//Странно ещё,что не Cells[i+1][j+1]
}
}
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 20.11.2009, 22:56   #4
Greenoren
 
Регистрация: 20.11.2009
Сообщений: 3
По умолчанию

огромное спасибо, всё вроде работает!)
Greenoren вне форума Ответить с цитированием
Старый 20.11.2009, 22:57   #5
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Тады кликай на весы под аватаркой и одобряй..))
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Borland C++ Builder - импорт из Excel в StringGrid nuser C++ Builder 3 10.01.2015 12:38
Медиа плеер в Borland C++ Builder murmandek C++ Builder 1 11.04.2009 11:17
Помогите с курсовой borland с++ builder 6.0 Go6a Помощь студентам 5 14.11.2008 18:20
Borland C++Builder 2007 Sota Софт 1 14.03.2008 20:21