Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 25.12.2011, 16:51   #1 (permalink)
DJeka
Member
 
Регистрация: 11.07.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Непонятная ошибка

Добрый день!Подскажите пожалуйста, как правильно заполнять стринггрид с клавиатуры и считывать с него, не могу побороть его уже.Задаю рандомно, всё работает отлично, а когда вручную выдаёт ошибку.



void __fastcall TForm2::N9Click(TObject *Sender)
{
StringGrid1->ColCount=CSpinEdit1->Value;
StringGrid1->RowCount=StringGrid1->ColCount;
//âûäåëåíèå ïàìÿòè ïîä ìàññèâû
x=new int [CSpinEdit1->Value];
y=new int [CSpinEdit1->Value];
int i,j;
//çàïîëíåíèå ìàññèâà À

for( i=0;i<CSpinEdit1->Value;i++)
for( j=0;j<CSpinEdit1->Value;j++)
{
A[i][j]=StrToInt(StringGrid1->Cells[j][i]);
}
for( i=0;i<CSpinEdit1->Value;i++)
for( j=0;j<CSpinEdit1->Value;j++)
StringGrid1->Cells[j][i]=A[i][j] ;
cx=PaintBox1->ClientWidth/2;
cy=PaintBox1->ClientHeight/2;
ugol=2*M_PI/CSpinEdit1->Value;
for(int i=0;i<CSpinEdit1->Value;i++)
{
x[i]=150*cos(i*ugol);
y[i]=150*sin(i*ugol);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormPaint(TObject *Sender)
{
for(int i=0;i<CSpinEdit1->Value;i++)
PaintBox1->Canvas->Ellipse(cx+x[i]-5,cy-y[i]+5,cx+x[i]+5,cy-y[i]-5);
for(int i=0;i<CSpinEdit1->Value;i++)
for(int j=0;j<CSpinEdit1->Value;j++)
if( A[i][j]==1)
{PaintBox1->Canvas->MoveTo(cx+x[i],cy-y[i]);
PaintBox1->Canvas->LineTo(cx+x[j],cy-y[j]);}
//ïðîðèñîâêà ñòðåëîê
for(int i=0;i<CSpinEdit1->Value;i++)
for(int j=0;j<CSpinEdit1->Value;j++)
if( A[i][j]==1)
{
int x2=cx+x[j];
int y2=cy-y[j];
int x1=cx+x[i];
int y1=cy-y[i];
float x0=L*(x1-x2)/sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
float y0=L*(y1-y2)/sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
x1=x0*cos(M_PI/6)-y0*sin(M_PI/6);
y1=y0*cos(M_PI/6)+x0*sin(M_PI/6);
x2=x0*cos(M_PI/6)+y0*sin(M_PI/6);
y2=y0*cos(M_PI/6)-x0*sin(M_PI/6);
PaintBox1->Canvas->MoveTo(cx+x[j],cy-y[j]);
PaintBox1->Canvas->LineTo(cx+x[j]+x1,cy-y[j]+y1);
PaintBox1->Canvas->MoveTo(cx+x[j],cy-y[j]);
PaintBox1->Canvas->LineTo(cx+x[j]+x2,cy-y[j]+y2);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::CSpinEdit1Change(TObject *Sender)
{
delete []A; delete []x; delete []y;
//âûäåëåíèå ïàìÿòè ïîä ìàññèâû
x=new int [CSpinEdit1->Value];
y=new int [CSpinEdit1->Value];
PaintBox1->Canvas->Rectangle(-1,-1,ClientWidth,ClientHeight);
StringGrid1->ColCount=CSpinEdit1->Value;
StringGrid1->RowCount=StringGrid1->ColCount;
int j,i;

for( i=0;i<CSpinEdit1->Value;i++)
for( j=0;j<CSpinEdit1->Value;j++)
{
A[i][j]=StrToInt(StringGrid1->Cells[j][i]);
}
for( i=0;i<CSpinEdit1->Value;i++)
for( j=0;j<CSpinEdit1->Value;j++)
StringGrid1->Cells[j][i]=A[i][j];
ugol=2*M_PI/CSpinEdit1->Value;
for(int i=0;i<CSpinEdit1->Value;i++)
{
x[i]=150*cos(i*ugol);
y[i]=150*sin(i*ugol);
}
for(int i=0;i<CSpinEdit1->Value;i++)
PaintBox1->Canvas->Ellipse(cx+x[i]-5,cy-y[i]+5,cx+x[i]+5,cy-y[i]-5);
for(int i=0;i<CSpinEdit1->Value;i++)
for(int j=0;j<CSpinEdit1->Value;j++)
if( A[i][j]==1)
{PaintBox1->Canvas->MoveTo(cx+x[i],cy-y[i]);
PaintBox1->Canvas->LineTo(cx+x[j],cy-y[j]);}
//ïðîðèñîâêà ñòðåëîê
for(int i=0;i<CSpinEdit1->Value;i++)
for(int j=0;j<CSpinEdit1->Value;j++)
if( A[i][j]==1)
{
int x2=cx+x[j];
int y2=cy-y[j];
int x1=cx+x[i];
int y1=cy-y[i];
float x0=L*(x1-x2)/sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
float y0=L*(y1-y2)/sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
x1=x0*cos(M_PI/6)-y0*sin(M_PI/6);
y1=y0*cos(M_PI/6)+x0*sin(M_PI/6);
x2=x0*cos(M_PI/6)+y0*sin(M_PI/6);
y2=y0*cos(M_PI/6)-x0*sin(M_PI/6);
PaintBox1->Canvas->MoveTo(cx+x[j],cy-y[j]);
PaintBox1->Canvas->LineTo(cx+x[j]+x1,cy-y[j]+y1);
PaintBox1->Canvas->MoveTo(cx+x[j],cy-y[j]);
PaintBox1->Canvas->LineTo(cx+x[j]+x2,cy-y[j]+y2);
} }
DJeka вне форума   Ответить с цитированием

Старый 25.12.2011, 16:51
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Давайте обратим внимание на схожие темы

Непонятная проблема
Непонятная ошибка
Непонятная программа
Непонятная проблема
Непонятная фигня

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 19:18.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.