- •5В070300-Ақпараттық жүйелер, 5в070400-Есептеу техникасы және бағдарламамен қамтамасыз ету
- •Әдістемелік нұсқаулары
- •1.1. Жалпы теориялық түсініктер
- •1.2. Терезе қосымшасын құру
- •1.2 Сурет
- •1.4. Тапсырманы орындау үлгісі
- •1.4.1. Терезелік қосымшаны құру мысалы
- •1.3 Сурет
- •1.4 Сурет
- •1.5. Жеке тапсырмалар
- •Таңдау операторы Switch:
- •Терезелік қосымшаның құрылуы
- •2.1 Сурет
- •СheckBox компоненті
- •RadioGroup компоненті
- •3.1. Жалпы теориялық ақпарат
- •3.2. Тарсырманы орындау мысалы
- •3.2.1. Терезе қосымшасын құру мысалы функция- өңдегіші мәтіні төмендегідей болуы мүмкін. (стандартты мәтін келтірілмеді).
- •3.1 Сурет
- •3.3. Жеке тапсырмалар
- •Қысқаша теориялық түсініктеме
- •4.2.1 Есепті шешудің мысалы:
- •4.1 Сурет
- •4.3 Тапсырмалар
- •5.1. Жалпы теориялық ақпарат
- •5.2. Терезе қосымшасын жасау StringGrid компонентті
- •5.3. Тапсырманың орындалу мысалы
- •5.3.1. Терезелік қосымшаны жасау мысалы
- •5.4. Жеке тапсырмалар
- •6.1. Қысқаша теориялық мәліметтер
- •6.2. Есептің жасалу мысалы
- •6.2.1. Терезе қосымшасын құру мысалы
- •6.3 Өзіндік тапсырмалар
- •7.1. Жалпы теориялық ақпарат Символдардық масив ретіндегі жолдар
- •7.2. Терезе қосымшасын жасау
- •ListBox компонентті
- •ComboBox компонентті
- •7.3. Тапсырманы орындау мысалы
- •7.3.1. Терезелік қосымшаны жасау
- •7.1 Сурет
- •7.4. Жеке тапсырмалар
- •№8 Зертханалық жұмыс. Файлдарды пайдаланып құрылымды өңдеу
- •8.1. Теориялық түсініктемелер
- •8.2. Терезелік қосымша құру OpenDialog және SaveDialog компоненттері
- •8.3. Тапсырманы орындауға мысал
- •8.3.1.Терезе қосымшасын құру OpenDialog және SaveDialog компоненттерін баптау
- •8.1 Сурет
- •Программамен жұмыс
- •8.2 Сурет
- •8.4. Жеке тапсырмалар
- •№9 Зертханалық жұмыс. Функция графиктерін тұрғызу
- •9.1. Қысқаша теориялық түсінік Chart компоненті көмегімен график тұрғызу
- •9.1 Сурет
- •9.2. Терезелік қосымшаны жасау мысалы
- •Форманы баптау
- •9.2 Сурет
- •1. Операциялар басымдылықтарының кемуі бойынша және басымдылықтары әртүрлі операциялар сызықпен бөлектенген.
- •Стандартты математикалық функциялар
- •Файл жобасының, тақырыптық файл және программа мәтіні файлының жалпы құрылымының сипаттамасы
- •Unit*.H тақырыптық файлының құрылымы
- •Project*.Cpp жоба файлының жалпы құрылымы
- •Әдебиеттер
6.2. Есептің жасалу мысалы
массив көбейтіндісін есептеп
шығару керек, мұндағы А- өлшемі NxN
квадраттық матрица, ал Y
және B
– N
элементтен тұратын бір өлшемді массив.
Y
векторының
элементтері
формуласымен есептеледі.
6.2.1. Терезе қосымшасын құру мысалы
N санын Edit арқылы, A және B массивтерін StringGrid компонентінен енгізу. Нәтижені StringGrid компонентіне шығарыңыз.
Сұхбат панелі және программа нәтижесі 6.1 суретінде көрсетілген.
6.1 сурет
StringGrid компонентін баптау
StringGrid компоненті үшін ColCount және RowCount мәндерін тең қылып бекітіңіз, мысалы, 3 – үш баған және үш жол, ал FixedCols және FixedRows – 1.
StringGrid2 және StringGrid3 компоненттері тек қана бір бағанға ие болғандықтан, оларда ColCount =1, RowCount =3 , ал FixedCols=0, FixedRows=1 болады.
StringGrid1және StringGrid2 компоненттері үшін Options қасиетінде goEditing жолын true мәнінде бекітіңіз.
N өлшемін өзгерту үшін EditChange функция-өңдегіш қолданылады, ол Edit батырмасын екі рет шерткенде пайда болады.
Программа мәтіні төмендегідей болуы мүмкін:
//---------------------- Ауқымды айнымалылар -------------------
int n = 3;
double **a, *b; //көрсеткіштерді декларациялау
//---------------------------------------------------------------------------
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 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]);
}
//А матрицасын В векторына көбейту және нәтижені 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);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
for(int i=0; i<n;i++) delete []a[i];
delete []a; delete []b;
ShowMessage("Память освобождена!");
Close();
}
