#include
#include
#include
#include
#include
int A[100];
int i, j, n, b, k, ll, rr;
void Sort(int l, int r)
{ if ((l==r) || (l==0) || (r==0)) {}
else
{ b=A[l+1]; ll=0;
for (i=1; i<=r; i++)
if (b>A[i])
{ ll=ll+1;
k=A[ll];
A[ll]=A[i];
A[i]=k;
}
rr=ll;
for (i=ll; i<=r; i++)
if (b==A[i])
{ rr=rr+1;
k=A[rr];
A[rr]=A[i];
A[i]=k;
}
Sort(l, ll);
Sort(rr, r);
}
}
int main()
{ clrscr();
cout << "A (NxN) massiv o`lchamini kiriting: N = ";
cin >> n;
for (i=1; i<=n; i++)
{ cout << " A ["<< i << "] = ";
cin >> A[i];
}
cout << "Dastlabki massiv elementlari: \n";
for (i=1; i<=n; i++) cout << A[i] << " ";
cout << endl;
Sort(1, n);
cout << "Saralangan massiv elementlari: \n";
for (i=1; i<=n; i++) cout << A[i] << " ";
return 0; }
Test (Ishlashi ):
(NxN) massiv o`lchamini kiriting: N = 5
A [1] = 5
A [2] = 2
A [3] = 1
A [4] = 3
A [5] = 4
Dastlabki massiv elementlari:
5 2 1 3 4
Saralangan massiv elementlari:
1 2 3 4 5
II . C++ tilida massivlarni saralash usullarini dastruy taminoti.
2.1)C++tilida massivlarni tez saralash usullari dasturiy ta’minoti
Dastur tuzish muhiti: Dasturni C++ Builder muhitida tuzishni ko’rib chiqamiz. Biz ishlaydigan muhitning boshlang’ich ko’rinishida bosh menyu, Forma, Unit qismi, obyektlar sxemasini, ko’rsatish qismi va obyekt tahrilagich bo’limchalaridaniborat bo’ladi. Yani quyidagi oynalar bo’ladi:
Dasturni tuzish jarayoni.
Dastlab C++ Builder dasturlash tilini ishga tayyorlab olamiz. Bu dasturni uchun quyidagi ketma- ketlikda C++ Builder 6 dasturiga kiramiz: Пуск ->Всепрограмми -> Borland C++ Builder 6 -> C++ Builder 6 .
Forma ochib Formaga Standart komponentalar palitrasidan Edit , 2 ta Button, Label va Additional komponentalar palitrasidan 2 ta StringGrid olamiz. Shunda formamiz quyidagicha ko’rinishga keladi.
Formada joylashgan Label1 ning “Caption” xossasiga “n=”, Button1 va Button2 larning “Caption” xossasiga mos ravishda “massivni shakllantirish”, “Tartiblash” deb kiritamiz. Edit 1 ning Text xossasini tozalaymiz. StringGrid1 va StringGrid2 larning “RowCount” xossasiga 1 qiymatni yozamiz. StringGrid1 ning goEditing xossasiga true yozamiz. Bundan tashqari Formga ham mos o’zgarishlar kiritsak Form oynasi quyidagicha ko’rinishga keladi.
Endi Button1 ning onClick xossasiga quyidagi kodni kiritamiz.
int n;
n=StrToInt(Edit1->Text );
StringGrid1->Cells[0][0]="A massiv" ;
StringGrid2->Cells[0][0]="B massiv" ;
StringGrid1->ColCount =n+1;
StringGrid2->ColCount =n+1;
Endi Button2 ning onClick xossasiga quyidagi kodni kiritamiz.
int n,c;
n=StrToInt(Edit1->Text );
int a[100];
for (int i=1;i<=n;i++)
a[i]=StrToInt(StringGrid1->Cells [i][0]);
for (int k=1;k<=n;k++)
for(int i=1;i<=n-1;i++)
if (a[i]>a[i+1])
{ c=a[i];
a[i]=a[i+1];
a[i+1]=c ;
};
for (int i=1;i<=n;i++)
StringGrid2->Cells [i][0]=IntToStr(a[i]) ;
Endi dasturni ishlatish uchun “Run” menyusining “Run” buyrig’ini yoki klaviaturadan F9 klavishini bosib ishgatushirishimiz mumkin. Shunda bizga quyidagicha oyna xosil bo’ladi.
Bu dasturni ishlatish uchun avval n ga qiymat berib “Massivni shakllantirish“ buyrug’i orqali massivni shakllantirib so’ngra massivni qiymatini berib “tartiblash” buytug’ini tanlaymiz. Masalan:
Xulosa.
Xulosa qilib shuni aytish keraki bu kurs ishida, C++ dasturlash tilidan foydalanib uning dasturiy ta’minotini yaratish tug’risida qisqacha ma’lumotni izoxladim.
Birinchi bo’limda “C++” tilida massivlarni tezkor saralsh usullarini ko’rib chiqdim va ushbu mavzuga oid nazariy ma’lumotarga ega bo’ldim hamda tezkor saralash algoritminig (pufakcha, tez saralash, o’rin almashish) usullari bilan tanishib chiqdim.
Ikkinchi bo’limda C++ dasturlash tili xaqida va unda ishni tashkil etish jarayoni, qo’yilgan masalani yechish davomida qo’llaniladigan operatorlar va massivlar xaqidagi ma’lumotlarni izoxladim.
C++ kabi kompilyatsiya qiluvchi dasturlash tillarining afzalligi hosil bo’lgan kompyuterda kompilyatorsiz ham bajarilaveradi. Interpretatsiya qiluvchi tillarda esa tayyor dasturni ishlatish uchun albatta mos interpretator dasturi talab qilinadi.
Ayrim tillaarda (masalan VISUAL BASIC) interpretator rolini dinamik bibliotekalar bajaradi. Java tilining interpretatori esa Virtual Mashinalar(Virtual Maxine yoki VM). Virtual mashinalar sifatida odatda baruzer(Internet Explorer yoki Netscape) lar qo’llaniladi.
Ko’p yillar davomida dasturlarning asosiy imkoniyati uning qisqaligi va tez bajarilishi bilan belgilanib kelar edi. Dasturni kichikroq qilishga intilish kompyuter xotirasini juda qimmatliligi bilan bog’liq bo’lsa, uning tez bajarilishiga qiziqish protssessor vaqtining qimmatbaholigiga bog’liq edi. Lekin kompyuterlarning narxi tushishi bilan dastur imkoniyatini baholash mezoni o‘zgaradi. Hozirgi kunda dasturchining ish vaqti biznesda ishlatiladigan ko’pgina kompyuterlarning narxidan yuqori. Hozirda professional tarzda yozilgan va oson expluatatsiya qilinadigan dasturlarga talab oshib bormoqda. Expluatatsiyaning oddiyligi, konkret masalani yechish bilan bog’liq bo’lgan talabni ozroq o’zgarishiga, dasturni ortiqcha chiqimlarsiz oson moslashtirish bilan bog’liq moslashtirish bilan izohlanadi.
Foydalanilgan adabiyotlar.
1. Jess Liberti, “особая сомостоятелно” C++ za 21 den”, Sankt Peterburg 2000, 815 s.
2. Liberti D. Osvoy samostoyatelno C++: 10 minut na urok. Per s angl. Vilyams, 374 str,2004 g.
3. SHmidskiy YA.K. Prorammirovanie na yazыke C++: Samouchitel. Uchebnoe posobie. Dialektika. 361 str, 2004 g.
4. Kimmel P., «Borland C++5» . SPb.: BHV, 1997.
5. Sayfiev J. F., «C++ tiliga kirish», Buxoro 2004 y.
6. Nazirov SH. A., Qobulov R. V., «Ob’ektga mo‘ljallangan dasturlash», Toshkent 2006 y.
7. Boltaev SH. J., Elov B.B., «Zamonaviy dasturlash tillari», Buxoro 2004 y.
8. Sh.A, Nazirov, R.V.Qobulov “C++ tili”, Toshkent 2011 y.
8. Internetdan (ziyonet, dastirum.uz, google.uz, edu.uz).
http://hozir.org
|