Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Laboratoriya jumısı_6

.doc
Скачиваний:
0
Добавлен:
10.09.2024
Размер:
3.3 Mб
Скачать

Laboratoriya jumısı 6 Eki ólshemli dinamikalıq massivlerdi qayta islew

Jumıstıń maqseti: Eki ólshemli massiv mısalında dinamik massivlerdi jaratıw hám qayta islew, “kórsetkish” túsinigin úyreniw.

Mısal

vektordıń mánisin esaplaw, bul jerde ólshemi NN bolǵan kvadrat matriсa, al Y hám B –bir ólshemli massiv N ólshemge iye. Y vektorınıń elementleri mına formula boyınsha anıqlanadı .

Pusk-programmı-Borland C++Builder 6. Nátiyjede tómendegishe taza Project 1 ayna ashıladı.

File-Save Project As… tańlaymız nátiyjede tómendegi ayna ashıladı.

Work 5 papka jaratıp sonıń ishine saqlaymız.

Komponentalar palitrasınan Standart vkladkasın tańlaymız.

Label knopkasın tańlap Form1 aynasına mısh penen tartıp qoyamız.

Label1 sózin ózgertiw ushın Object Inspector aynasınan Properties-Saption-Label1 di ÓLShEMI n= ge ózgertemiz.

Object Inspector aynasınan Properties –Font - mıshtı shertip shriftti ózgertemiz. (14) OK túymesin basamız.

Endi Edit knopkasın tańlaymız.

Onı Label1 yaǵnıy ÓLShEMI n= knopkasınıń qasına oń jaǵına qoyamız.

Edit sózlerin joq etiw ushın Object Inspector aynasınan Properties-Text-Edit1 den Edit1 sózin óshiremiz. Nátiyjede ayna kórnisi tómendegishe:

Komponentalar palitrasınan Additional vkladkasın tańlaymız.

Additional vkladkasınan StringGrid knopkasın tańlaymız.

-StringGrid1 de turıp Object Inspector aynasınan Properties-ColCount qa 3, RowCount qa 3, FixedCols hám FixedRows lerge 1 kiritemiz.

-StringGrid2 de turıp Object Inspector aynasınan Properties-ColCount qa 1, RowCount qa 3, FixedCols 0 hám FixedRows lerge 1 jazamız.

StringGrid3 de turıp Object Inspector aynasınan Properties-ColCount qa 1, RowCount qa 3, FixedCols 0 hám FixedRows lerge 1 jazamız.

StringGrid 1, StringGrid 2, StringGrid 3 de turıp Properties -Options -goEditing mánisin true dep alıń.

Endi Button1 knopkasın tańlap Form1 aynasına mısh penen tartıp qoyamız.

Button2 knopkasın tańlap Form1 aynasına mısh penen tartıp qoyamız.

Button1 knopkasınıń atın ózgertiw ushın Object Inspector aynasınan Properties- Saption- Button1 Esaplaw sózine ózgertemiz.

Button2 knopkasınıń atın ózgertiw ushın Object Inspector aynasınan Properties- Saption- Button2 EXIT sózine ózgertemiz.

Form1 aynasında turıp mıshtı eki ret shertemiz, Nátiyjede Unit1.cpp aynasında mına kórinistegi kod payda boladı.Sonıń ishine tómendegilerdi jazamız:

int n = 3;

double **a, *b; // kórsetkishti táriplew

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

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] = "Matriсa A"; // tabliсanıń yacheykasına massivtiń atın jazıw

StringGrid2->Cells[0][0] = "Massiv B"; // tabliсanıń yacheykasına massivtiń atın jazıw

StringGrid3->Cells[0][0] = "Massiv Y"; // tabliсanıń yacheykasına massivtiń atın jazıw/

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

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

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

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

for(int j=0; j<n;j++) StringGrid1->Cells[j+1][i+1]=(i+1)*(j+1);

StringGrid2->Cells[0][i+1]=i+1;

}

}

Soń Edit1 knopkasın eki márte shertemiz. Nátiyjede Code Editor(Redaktor koda) yaǵnıy Unit1.cpp aynasında tómendegishe kod payda boladı. Onıń ishine tómendegilerdi jazamız.

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);

}

}

Soń Button1 knopkasın eki márte shertemiz. Nátiyjede Code Editor(Redaktor koda) yaǵnıy Unit1.cpp aynasında tómendegishe kod payda boladı. Onıń ishine tómendegilerdi jazamız.

void __fastcall TForm1::Button1Click(TObject *Sender)

{

double s;

int i,j;

a = new double*[n]; // Yadtı kórsetkish arqalı iyelew

for(i=0; i<n;i++) a[i] = new double[n]; // Yadtı element arqalı iyelew

b = new double[n];

// A hám V massivti StringGrid1 hám StringGrid2 tabliсasındaǵı elementler menen toltırıw

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]);

}

// A matriсanıń qatarın V vektorǵa kóbeytiw hám nátiyjesin StringGrid3 ke shıǵarıw

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);

}

}

Jáne Button2 knopkasın eki márte shertemiz. Nátiyjede Code Editor yaǵnıy Unit1.cpp aynasında kod payda boladı. Onıń ishine tómendegini jazamız.

void __fastcall TForm1::Button2Click(TObject *Sender)

{

delete []a;

delete []b;

ShowMessage("Yad bosadı!");

Close();

}

Hámmesin kiritip jazıp bolǵannan keyin Project menyusinen Compile Unit yamasa(alt +F9) tańlaymız.

Eger xammesi tuwrı bolsa onda dastur tómendegi aynanı shıǵaradı.

Aqırında Run menyusinen Run dı yamasa F9 tańlaymız(Instrumentler panelinen mına piktogrammanı basamız. Mına ayna payda boladı. Esaplaw túymesin basamız. Nátiyjede tómendegi aynada nátiyje payda boladı.