Лекции.Орг


Поиск:




Зертханалық жұмыс.




Массивтермен жұмыс жасауға арналған компоненттер


Әдістемелік нұсқаулар


Мәліметтерді кестелер түрінде беруді ұйымдастыру. C++ Builder ортасында қосымша құруда мәліметтерді кестелер түрінде беру үшін Additional жапсырмасындағы StringGrid және DrawGrid компоненттері /4.12-сурет/ қолданылады.



Additional панелінің StringGrid және DrawGrid компоненттері. DrawGrid, StringGrid компоненттерін формаға орналастырғанда, жай ғана, бос ұяшықтары бар кестелер немесе торкөздер пайда болады, ал программманың орындалуы барысында ұяшықтардың мәліметтермен толтырылуын программист өзі ескеруі тиіс.

Кесте өлшемін (баған және жол санын) Longint типті ColCount және RowCount қасиеттері анықтайды. Қалыпты күйде олардың мәндері 5-ке тең. Баған мен жолдың нөмірлері нөлден бастадады, яғни кесте өлшемі 6х6.

void __fastcall TForm1::Button1Click(TObject *Sender)

{

int I, J, K;

K = 0;

for (I = 0; I < StringGrid1->ColCount; I++)

for (J = 0; J < StringGrid1->RowCount; J++)

StringGrid1->Cells[I][J] = IntToStr(++K);

}

Кестедегі бағандардың енін өзгерту үшін типі іnt болатын DefaultColWidth қасиеті, ал кесте жолының биіктігін өзгерту үшін DefaultRowHeight қасиеттері қолданылады. Мысалы, программада терезенің өлшемдері өзгергенде кесте ұяшықтарының /баған мен жолдың/ өлшемдерін өзгерту келесі түрде жазылады:

void __fastcall TForm1::FormCreate(TObject *Sender)

{

if (DrawGrid1->DefaultColWidth > 90)

DrawGrid1->GridLineWidth = 2;

Else

DrawGrid1->GridLineWidth = 1;

}


GridLineWidth қасиетін кесте ұяшығын көмкеріп тұрған сызықтарының қалыңдығын немесе жіңішкелігін беру үшін қолданады. Әдетте оның мәні 1-ге тең болып тұрады, егер оны 3-ке өзгертсеңіз онда кесте ұяшықтары қалың бояулы сызықпен көмкерілетін болады.


Жаттығу жұмыстары


А(5,5) матрицаның бағандары мен жолдарын алмастырғанда шығатын матрицаны көрсетіңіз. Программа терезесі 4.12-суретте көрсетілген.


4.12-сурет. Программа терезесі.


Программа терезесіндегі компоненттердің қасиеттерін өзгерту:

Компонент Компоненттің қасиеттері Мәндері
Form1 Caption 'StringGrid мысалы'
Label1 Caption 'Бастапкы кесте'
Label2 Caption 'Сонгы кесте'
StringGrid1 StringGrid2 Немесе StringGrid1-ді көшіріп алып қайтадан қоюға да болады ColCount 5 (бағандарының саны)
RowCount 5 (жолдың саны)
FixedCols 0 (бекітілген немесе қозғалмайтын баған саны)
FixedRows 0 (бекітілген немесе қозғалмайтын жолдар саны)
DefaultRowHeight 20 (жолдың биіктігі)
DefaultColWidth 50 (бағанның ені)
Height 113 (кесте сыртындағы тіктөртбұрышты облыстың биіктігі)
Width 265 (кесте сыртындағы тіктөртбұрышты облыстың ені)
Options->goEditing True (ұяшыққа мәлімет енгізуге болады)
Options-> AlwaysShowEditing True (енгізу фокусы орналасқан ұяшықты редакциялуға болады)
Options->goTabs True (Tab пернесін басып ауысуға болады (Shift+Тab))
PopupMenu PopupMenu1
MainMenu1 N1: Caption = 'ТЕРЕЗЕ' N3: Caption = 'Жабу' OnClick = N3Click N2: Caption = 'КЕСТЕ' N4: Caption = 'Толтыру' OnClick = N4Click N5: Caption = 'Тазалау' OnClick = N5Click
PopupMenu1 N6: Caption = 'толтыру' OnClick = N6Click N7: Caption = 'тазалау' OnClick = N7Click
Button1 Caption = 'Алмастыруды орындау' OnClick = Button1Click

Программа мәтіні:

#include

#pragma hdrstop

#include "Unit1.h"

#include "stdlib.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

void __fastcall TForm1::N3Click(TObject *Sender)

{

Form1->Close();

}

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

void __fastcall TForm1::N4Click(TObject *Sender)

{

for (int i=0;i<5;i++)

for (int j=0;j<5;j++)

StringGrid1->Cells[i][j]= Int ToStr(i+j-2);

}

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

void __fastcall TForm1::N5Click(TObject *Sender)

{

for (int i=0;i<5;i++)

StringGrid1->Rows[i]->Clear();

}

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

void __fastcall TForm1::N6Click(TObject *Sender)

{

for (int i=0;i<5;i++)

for (int j=0;j<5;j++)

StringGrid1->Cells[i][j]=IntToStr(rand()%100-27);

}

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

void __fastcall TForm1::N7Click(TObject *Sender)

{

for (int i=0;i<5;i++)

StringGrid1->Cols[i]->Clear();

}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

for (int i=0;i<5;i++)

for (int j=0;j<5;j++)

StringGrid2->Cells[j][i]=StringGrid1->Cells[i][j];

}

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


Өзіндік жұмыс тапсымалары


Тапсырманы орындауға нұсқау!


  • Тапсырманы орындау барысында құрылатын қосымшада массив элементтерін енгізу екі түрлі жолмен жасалуы керек:

  • «ЕНГІЗУ» командасы арқылы қолданушы өзі енгізеді;

  • «ТОЛТЫРУ» командасы арқылы автоматты түрде толтырылады;

  • Массив элементтерімен жасалатын операциялар мәзір командаларының көмегімен орындалуы қажет;

  • Массив түрлендірілген жағдайда бастапқы массив пен алынған жаңа массив екі түрлі кестеде көрсетілуі қажет;

  • Қосымша құруда осыған дейін қарастырылған мәтінмен жұмыс жасау компоненттері, тізімдер, ауыстырғыштар, мәзірлер, командалық батырмалар, диалогтық терезелер және олардың қасиеттері мен әдістері пайдаланылуы қажет.

 

1-тапсырма

#№ Матрица Тапсырмалар Шектеу
  1. 1
A(5,7) Матрицаның әрбір бағанының оң элементтерінің қосындысын және олардың санын есте сақтау. Нәтижесін екі жол түрінде шығару. Aij>0
  1. 2
A(N,M) Матрицаның әрбір жолының оң элементтерінің қосындысын және олардын санын есептеп есте сақтау.Нәтижесін екі баған түрінде баспадан шығару. N<=4 M<=5
  1. 3
B(N,N) Матрицанын бас диагоналындағы және одан төмен орналасқан элементтердің қосындысын және элементтер санын есептеу. N<=6
  1. 4
B(N,N) Матрицаның бас диагоналынан төмен орналасқан оң элементтерінін қосындысын және олардың элементтер санын есептеу. N<=4 Bij>0
  1. 5
D(K,K) Матрицаның жұп орындағы элементтерінің элементтерінін орнына нольдерді жазып және матрицаны баспаға шығару. K<=5

 

2-тапсырма /қиынырақ есептер/

1. А(4,3) матрицаның элементтері екі-үш таңбалы немесе одан да көп таңбалы сандар болсын. Матрицаның әрбір элементін оның цифрларының қосындысымен алмастыру керек. Шыққан матрицаны көрсетіңіз.
2. А(4,4) матрицаны сағат тілінің бағытымен 90 градусқа бұрғанда шығатын матрицаны көрсетіңіз.
3. А(7,5) матрицаның элементтерін жол бойынша сұрыптап орналастырыңыз.
4. А(5,7) матрицаның элементтерін баған бойынша сұрыптап орналастырыңыз.
5. А(10) массив элементтерін үш түрлі әдіспен сұрыптаңыз /алмастыру әдісі- метод обмена или пузырька, тікелей таңдау әдісі-метод прямого выбора, орындары бойынша сұрыптау-сортировка с вставкой/

 





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


Дата добавления: 2017-03-18; Мы поможем в написании ваших работ!; просмотров: 867 | Нарушение авторских прав


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

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

Большинство людей упускают появившуюся возможность, потому что она бывает одета в комбинезон и с виду напоминает работу © Томас Эдисон
==> читать все изречения...

1030 - | 845 -


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

Ген: 0.011 с.