|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Настройка компонент 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(); }
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |