
Laboratoriya jumısı_5
.docLaboratoriya jumısı 5 Bir ólshemli massivlerdi qayta islew
Jumıstıń maqseti: Bir ólshemli massivlerge programma duziw hám onı orınlaw. StringGrid
komponentası qásiyeti menen tanısıw.
Teoriyalıq maǵlıwmatlar:
Massiv –bir tipke iye bolǵan sanlardıń izbe-izligi S/S++ tilinde massivtin indeksı 0 baslanadı. Dasturde bir ólshemli massivler tómendegishe táriplenedi:
tipi ID massiv [ólshem];
ólshem – bul jerde massivtegi elementler sanı beriledi. Mısal: Massivti táriplew
int a[5];
double b[4] = {1.5, 2.5, 3.75};
putin sanlı a massivte birinshi element a[0], ekinshi – a[1], …, besinshi – a[4].
b massiv: b[0]=1.5, b[1]=2.5, b[2]=3.75, b[3]=0.
Tapsırma:
Mısal
Putin sanlardan turıwshı N ólshemge iye A massivten barlıq teris sanlardı jok etiw. Taza massiv jaratılmaydı. Massivti toltırıw ushın random(kod) funсiyasınan paydalanıw. random(kod) –
Tosınarlı(qálegen) sanlardı shıǵarıp beriwshi generator.
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. Bul proсessti 4 márte
qaytalaymı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.
(18) OK túymesin
basamız.
Label2 sózin ózgertiw ushın Object Inspector aynasınan Properties-Saption-Label2 di Berilgen massiv ke ózgertemiz.
Label1 sózin ózgertiw ushın Object Inspector aynasınan Properties-Saption-Label1 di Alınǵan massiv ke ózgertemiz.
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 2, RowCount qa 1, FixedCols hám FixedRows lerge 0, DefaultColWidth ge 40 dep jazamız.
-StringGrid2 de turıp Object Inspector aynasınan Properties-ColCount qa 2, RowCount qa 1, FixedCols hám FixedRows lerge 0, DefaultColWidth ge 40 dep jazamız.
StringGrid1 ge klaviaturadan maǵlıwmat(san) kiritiwge ruxsat alıw ushın StringGrid1 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 dı Olshemin ozgertiu sózine ózgertemiz.
Button2 knopkasınıń atın ózgertiw ushın Object Inspector aynasınan Properties- Saption- Button2 dı ORÍNLAUsó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 = 4;
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
randomize();
Edit1->Text=IntToStr(n);
StringGrid1->ColCount=n; // ColCount bagana sanı n ge baylanıslı
for(int i=0; i<n;i++) // A massivti xar kıyli sanlar menen toltırıu
StringGrid1->Cells[i][0] = IntToStr(random(21)-10);
Label3->Hide(); // Komponentanı jasırıu
StringGrid2->Hide(); // Komponentanı jasırıu
}
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.
n=StrToInt(Edit1->Text);
if(n>10){
ShowMessage(" n nin maksimal sanı 10");
n=10;
Edit1->Text = "10";
}
StringGrid1->ColCount=n; // ColCount bagana sanı n ge baylanıslı
for(int i=0; i<n;i++)
StringGrid1->Cells[i][0]=IntToStr(random(21)-10);
Label3->Hide(); // Komponentanı jasırıu
StringGrid2->Hide(); // Komponentanı jasırıu
Jáne Button2(Memo ni tazala) knopkasın eki márte shertemiz. Nátiyjede Code Editor(ORÍNLAU) yaǵnıy Unit1.cpp aynasında kod payda boladı. Onıń ishine tómendegini jazamız.
int i, kol = 0, a[10]; // Bir olshemli massivti taripleu
// StringGrid1 tabliсasınan A massivti elementler menen toltırıu
for(i=0; i<n; i++)
a[i]=StrToInt(StringGrid1->Cells[i][0]);
//A massivten teris elementlerdi jok etiu
for(i=0; i<n;i++)
if(a[i]>=0) a[kol++] = a[i];
StringGrid2->ColCount = kol;
StringGrid2->Show(); // Komponentanı korsetiu
Label3->Show(); // Komponentanı korsetiu
// StringGrid2 tabliсasına juuaptı shıgarıu
for(i=0; i<kol; i++) StringGrid2->Cells[i][0]=IntToStr(a[i]);
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ı. ORÍNLAW
túymesin basamız. Nátiyjede tómendegi aynada nátiyje payda
boladı