Matritsa izi bu asosiy diagonaldagi elementlar yig‘indisidir.
//---------------------------------------------------------------------------
#include
#include
#include
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{ const k=20;
float b[k][k]; float sl=0, st=0;
int n,m,i,j;
cout<<"satrlar soni "; cin>>n;
cout<<"ustunlar soni "; cin>>m;
for (i=0; i
for (j=0; j>b[i][j];
sl+=b[0][0];
for (i=1; i
for (j=1; j
for (i=0; i
for (j=0; j
cout<<"matrisa izi Sl="<
cout<<"elementlar yigindisi St= "<
getch(); return 0;
}
//---------------------------------------------------------------------------
Forma ilovasida massivlarni ishlatish
Forma ilovasida bir o‘lchamli va ko‘p o‘lchamli massivlar bilan ishlash uchun bir nechta
komponentalari mo‘jallangan: ListBox, ComboBox,StringGrid componentalari.
ListBox va ComboBox komponentalari bir o‘lchamli massiv elementlarini Formaga kiritish va
chiqarish uchun foydalaniladi, StringGrid komponentasi ikki o‘lchamli massivlar bilan ishlashda
qo‘llaniladi, massivlar jadval ko‘rinishida kiritiladi va chiqariladi.
StringGrid komponentasi
StringGrid jadval komponentasi ikki o‘lchovli matritsa elementlari qiymatini ekranda jadval
ko‘rinishda tasvirlash, ular qiymatini kiritish va tahrirlash uchun ishlatiladi. Standart holda jadval
qator va ustun rahamlari noldan boshlanadi. Jadval ustun va qatorlar sonini uning xossasi
yordamida o‘rnatiladi. StringGrid – jadval komponentasining asosiy xossalari:
ColCount – jadvaldagi ustunlar sonini aniqlaydi;
RowCount – jadvaldagi satrlar sonini aniqlaydi;
FixedCols – fiksirlangan ustunlar sonini aniqlaydi;
FixedRows – fiksirlangan satrlar sonini aniqlaydi;
Options – jadval holatini aniqlaydi (aniqlash asosan uning parametrlarida bajariladi, masalan,
GoEditing parametr true qiymatga ega bo‘lsa, yacheykani tahrirlash mumkin, aks holda mumkin
emas);
ColWidths – jadvaldagi har bir ustun kengligini aniqlaydi;
DefaultColWidth – jadvalning boshlang‘ich ustunlar kengligini aniqlaydi;
DefaultRowHeight – jadval satrining boshlang‘ich balandligini aniqlaydi;
FixedColor – fiksirlangan yacheyka rangini aniqlaydi;
RowHeights – jadval
satri balandligini aniqlaydi;
Cells – simvol qatorli ikki o‘lchamli massivni aniqlaydi.
3-misol. Tasodifiy butun sonlar bilan to‘ldirilgan butun sonlardan iborat matritsa berilgan.
Matritsaning maksimal, minimal elementlari va elementlar yig‘indisi topilsin.
Forma dizaynini yaratib olamiz:
1) yangi forma yaratamiz. Yaratilgan formaga 1 ta StringGrid, 1 ta label, 4 ta Button va 1 ta Edit
komponentalarini o‘rnatamiz. Object inspector bo‘limida StringGrid komponentasining
xususiyatlarini quyidagicha o‘zgartiramiz:
FixedCols -0,
FixedRows -0,
ColCount -5,
RowCount -5;
2) Option xossasiga kirib, GoEditing parametrini True qiymatiga o‘zgartiramiz;
3) dastur kodini quyidagicha yozamiz:
//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
int a[5][5];
int i,j,s,max,min;
void __fastcall TForm1::Button1Click(TObject *Sender)
{ for (i=0;i<=4;i++)
for (j=0;j<=4;j++)
{
a[i][j]=random(50);
StringGrid1->Cells[i][j]=IntToStr(a[i][j]);
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{max=a[0][0];
for (i=0;i<=4;i++)
for (j=0;j<=4;j++)
if(a[i][j]>max) max=a[i][j];
Edit1->Text=IntToStr(max);
}
…………………………………………………………………………
void __fastcall TForm1::Button2Click(TObject *Sender)
{min=a[0][0];
for (i=0;i<=4;i++)
for (j=0;j<=4;j++)
if(a[i][j]
Edit2->Text=IntToStr(min);
}
//---------------------------------------------------------------------------
Dastur quyidagi ilovada bajariladi(5.2-rasm) :
Dastur ilovasi
Topshiriqlar
A massivining musbat elementlari yig‘indisi va manfiy elementlarining ko‘paytmasi hisoblansin.
A massivi musbat elementlarining eng kichigi topilsin.
A massiv elementlarini teskari tartibda Y massiviga yozing.
Butun sonlardan tashkil topgan (a1,…,an) massivi berilgan. Massivning juft o‘rinlarida
joylashgan manfiy elementlarini nolga almashtiring.
X massivi manfiy elementlarining o‘rtacha arifmetik qiymati hisoblansin. Agar manfiy
elementlar mavjud bo‘lmasa, S=0 degan ma‘lumot bosmaga chiqarilsin.
Kvadrat matritsa haqiqiy sonlardan tashkil topgan. Matritsaning eng kichik qiymati joylashgan
qator elementlari yig‘indisi topilsin.
Haqiqiy sonlardan tashkil topgan kvadrat matritsa berilgan. Matritsaning asosiy diagonal
elementlari yig‘indisi hisoblansin va diagonal elementlarning eng kattasi aniqlansin.
X massivining juft o‘rinlarida joylangan elementlarining o‘rtacha arifmetik qiymati hisoblansin.
Nazorat savollari:
1. Massiv deb nimaga aytiladi?
2. Necha xil massivlar mavjud?
3. StringGrid komponentasining qanday xossalari mavjud?
4. Massivlar qaysi bo‘limda e’lon qilinadi?
Adabiyotlar: Alex Allain. Jumping into C++. USA, 2014. p 340.
Nazirov Sh.A., Qobulov R.V., Bobojonov M.R., Raxmanov Q.S. C va C++ tili. Darslik. –
T.: “Voris”, 2013. -488 b.