powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / перенос из консоли в Builder
3 сообщений из 3, страница 1 из 1
перенос из консоли в Builder
    #34870030
worin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня возникла следующая проблема. Есть программка, написанная в консоли. Программа делает следующее: вводится порядок матрицы, после чего последовательно заполняются элементы матрицы. В результате получаются 3 матрицы А, U, L. Матрица А – это просто отображение вводимых элементов матрицы. Матрицы U, L строятся на основе матрицы А по опред. алгоритму. Мне необходимо перенести эту прогу из консоли в обычное приложение Buildera. В Buldere создаю динамически Edit’ы, в которые вводятся элементы матрицы.
Создаю динамически Label’ы, в которых отображаются элементы матрицы А.
Но никак не могу сделать, чтобы считались матрицы U и L. Пишу следующее в обработчике на кнопку для матриц U, L:
int EditsCount = StrToInt(Edit2->Text) ;
int EditsCount2 = EditsCount * EditsCount ;
for(i=0;i<EditsCount2;i++)
{

TLabel ** Labels2 = new TLabel * [EditsCount2];
Labels2 = new TLabel(this);
Labels2->Parent = this;
Labels2->Left =100;
Labels2->Caption =Edits->Text ;
Labels2->Top = (i*50)+250;
}

for (i=0;i< EditsCount2;i++)
{
for (j=0;j< EditsCount2;j++)
{
L[0]=A[0];
U[0]=A[0]/L[0][0];
double sum=0;
for (int k=0;k<i;k++)
{
sum+=U[k]*L[j][k];
}
L[j]=A[j]-sum;
if(i>j)
{
U[j]=0;

}
else
{
sum=0;
for (int k=0;k<i;k++)
{
sum+=U[k][j]*L[k];
}
U[j]=(A[j]-sum)/L;

}

}
}
for (i=0;i< EditsCount2;i++)
{
for (j=0;j< EditsCount2;j++)
{
L[0][j+1]=0;

}
}
for (i=0;i< EditsCount2;i++)
{
for (j=0;j< EditsCount2;j++)
{
if(i>j)
{
U[j]=0;
}
}
}


Вместо матрицы А в тексте у меня стоит StrToFloat (Edits->Text). При нажатии на кнопку вылазит исключение Деление на ноль, но в консоли то работает. Помогите пожалуйста. Программа в консоли приложена
...
Рейтинг: 0 / 0
перенос из консоли в Builder
    #34870502
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
worinСоздаю динамически Label’ыМожет тебе больше подойдет какой-нибудь грид ?
PS: Используй тэг SRC
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
перенос из консоли в Builder
    #34871079
VladimirP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разбираться с твоим кодом совсем нет желания.
Согласен с предыдущим пожеланием использовать гриды.
Числа можно вытащить из любой строки. см нелр AnsiString или чисто сишные функции что-то типа strchr из <string.h> там разберешься.
Идея простая "в лоб". Ищи первую цифру. После этого первую не цифру и так сдвигайся.
А зачем в Buildere создавать видимые компоненты динамически??? От скуки?
вот тебе кусок, который писал на чистом с++
/*********************************
** return pointer to end of digit
*********************/
char *pstAtof( double &i, char *st)
{
if( ( st = strpbrk( st, "-.0123456789")) == NULL)
return NULL;
if( (*st == '-') || (*st == '.'))
if( !isdigit( *(st+1)) )
return NULL;
i = atof( st);
while( (isdigit( *st)) || (*st == '-')||(*st == '.') )
st++;
return st;
}
/*********************************
** return pointer to end of digit
*********************/
char *pstAtoi( int &i, char *st)
{
if( ( st = strpbrk( st, "-0123456789")) == NULL)
return NULL;
if( *st == '-')
if( !isdigit( *(st+1)) )
return NULL;
i = atoi( st);
while( (isdigit( *st)) || (*st == '-') )
st++;
return st;
}
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / перенос из консоли в Builder
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]