Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Настройка компонент StringGrid




Для компоненты StringGrid 1 значения ColCount и RowCount установите равными, например, 3 – три столбца и три строки, а FixedCols и FixedRows – 1.

Так как компоненты StringGrid 2 и StringGrid 3 имеют только один столбец, то у них ColCount = 1, RowCount = 3, а FixedCols = 0 и FixedRows = 1.

В свойстве Options строку goEditing для компонент StringGrid 1 и StringGrid 2 установите в положение true.

Для изменения размера n используется функция-обработчик EditChange, полученная двойным щелчком по компоненте Edit.

 

Рис. 6.1

 

 

Текст программы может иметь следующий вид:

...

int n = 3; // Глобальная переменная n

 

//---------------------------------------------------------------------------

void __fastcall TForm1:: FormCreate (TObject *Sender)

{

Edit1->Text=IntToStr(n);

StringGrid1->ColCount = n+1; StringGrid1->RowCount = n+1;

StringGrid2->RowCount = n+1; StringGrid3->RowCount = n+1;

//---------- Ввод в левую верхнюю ячейку таблицы названия массивов -----------

StringGrid1->Cells[0][0] = "Матрица A";

StringGrid2->Cells[0][0] = "Массив B";

StringGrid3->Cells[0][0] = "Массив Y";

for(int i=1; i<=n;i++){

StringGrid1->Cells[0][i]="i="+IntToStr(i);

StringGrid1->Cells[i][0]="j="+IntToStr(i);

}

}

 

//---------------------------------------------------------------------------

void __fastcall TForm1:: Edit1Change (TObject *Sender)

{

int i;

n=StrToInt(Edit1->Text);

StringGrid1->ColCount = n+1;

StringGrid1->RowCount = n+1;

StringGrid2->RowCount = n+1;

StringGrid3->RowCount = n+1;

for(i=1; i<=n;i++){

StringGrid1->Cells[0][i]="i="+IntToStr(i);

StringGrid1->Cells[i][0]="j="+IntToStr(i);

}

}

 

//---------------------------------------------------------------------------

void __fastcall TForm1:: Button1Click (TObject *Sender)

{

double **a, *b, s; // Декларация указателей

int i, j;

a = new double*[n]; // Захват памяти под указатели

for(i=0; i<n;i++)

a[i] = new double[n]; // Захват памяти под элементы

b = new double[n];

// Заполнение массивов А и В элементами из таблиц StringGrid1 и StringGrid2

for(i=0; i<n;i++) {

for(j=0; j<n;j++)

a[i][j]=StrToFloat(StringGrid1->Cells[j+1][i+1]);

b[i]=StrToFloat(StringGrid2->Cells[0][i+1]);

}

// Умножение строки матрицы А на вектор В и вывод результата s в StringGrid3

for(i=0; i<n;i++){

for(s=0, j=0; j<n;j++)

s += a[i][j]*b[j];

StringGrid3->Cells[0][i+1] = FloatToStrF(s, ffFixed,8,2);

}

for(i=0; i<n;i++) delete []a[i];

delete []a;

delete []b;

}

 

//---------------------------------------------------------------------------

void __fastcall TForm1:: Button2Click (TObject *Sender)

{

Close();

}

 





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 627 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Слабые люди всю жизнь стараются быть не хуже других. Сильным во что бы то ни стало нужно стать лучше всех. © Борис Акунин
==> читать все изречения...

2193 - | 2115 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.