Muhammad Al-Xorazmiy nomidagi Toshkent Axborot Texnologiyalari Universiteti
Dasturlash kafedrasi
Dasturlash II fani bo’yicha
LABARATORIYA ISHI
Mavzu: OYD da juda murakkab saralash algoritmlari asosida dasturlar yaratish
Bajardi: 013-L2 guruh talabasi
Muxtorov Sharof
Tekshirdi: Hojiev Sunatullo
Toshkent- 2020
OYD da juda murakkab saralash algoritmlari asosida dasturlar yaratish
Ishning maqsadi: C++ tilida classlar, kontener ko’nikmalari asosida murakkab saralash algortimlarni imkoniyatlaridan foydalanib dasturlash bilimlarini shakllantirish.
Topshiriq: Berilgan class va kontenerlar orqali murakkab saralash algoritmlaridan foydalanib dastur yozing.
№
|
Ajdod class va uning maydonlari
|
Voris class (ajdod class maydonlaridan foydalangan holda)
|
Obektlar massivini yarating.
Murakkab saralash algortimlaridan foydalanib saralash metodlari yarating.
(saralang o’sib borish tartibida yoki kamayib borish tartibida va alvabet tartibida)
|
8.
|
class kitob
sahifalar soni,
|
class gazetalar:
narxi,
nomi,
|
Vector konteniridan foydalanib
gazetalar ro’yxatida sahifalar soni,
bo’yicha saralang.
|
#include
#include
#include
#include
#include
using namespace std;
class kitob {
public:
int saxifson;
};
class gazetalar : public kitob{
public:
string nomi;
int narx;
gazetalar(string nomi,int narx, int saxifason){
this->nomi=nomi;
this->narx=narx;
this->saxifson=saxifason;
}
void chiqar (){
cout<<" Gazeta nomi -> "< "< "< }
};
bool sfd (gazetalar &a, gazetalar &b){
return (a.saxifson < b.saxifson);
}
int main (){
int n,sax,narx;
string nomi;
cout<<" Gazetalar sonini kiriting : "; cin>>n;
vector K;
for (int i = 0; i < n; i++)
{
cout< cout<<" Gazeta nomi -> "; cin>>nomi;
cout<<" Gazeta narxi-> "; cin>>narx;
cout<<" Gazeta sahifalari soni ->"; cin>>sax;
K.push_back(gazetalar(nomi,narx, sax));
}
vector::iterator k;
sort(K.begin(), K.end(),sfd);
for (k=K.begin(); k!=K.end(); k++){
gazetalar as= *k;
as.chiqar();
}
system("pause");
}
OYD da juda katta sonlarni saralash algoritmlari asosida dasturlar yaratish
Ishning maqsadi: Juda katta sonlarni saralash algoritmlari orqali dasturlash ko’nikmalarini shakllantirish.
Topshiriq: Variantda berilgan class, noma’lum nomlar fazosi,kontenerlar asosida, OYD da juda katta sonlarni saralash algoritmlari xususiyatlaridan foydalangan holda vazifaga muvofiq dasturni yozing.
2- jadval
№
|
Topshiriq
Barcha classlarda juda katta sonlarni saralash algoritmlaridan foydalanib saralash metodlarini yarting
|
|
“Poezdlar” classini yarating.
Maydoni: nomi,uzunligi(sm),tezligi.
Vector konteniridan foydalanib uzunligi bo’yicha saralang. (kamida 17 xonali sonlar ketma-ketligidan iborat bo‘lsin).
|
#include
#include
#include
#include
#include
using namespace std;
class Poezd {
public:
string name, leng;
int tezlik;
Poezd(string name, string leng, int tezlik){
this->leng=leng;
this->name=name;
this->tezlik=tezlik;
}
string getleng(){
return leng;
}
void poyezd (){
cout<"<"< }
};
bool lengsort (Poezd &q, Poezd &w){
int a=q.getleng().length(), b=w.getleng().length();
if (a>b) return true;
if (a for (int i = 0; i < b ; i++)
{
if (q.getleng()>w.getleng()) return false;
if (q.getleng() }
return true;
}
int main (){
int n,tez;
string nomi,l;
cout<<" Poyezdlar sonini kiriting -> "; cin>>n;
vector qw;
for (int i = 0; i < n; i++)
{
cout< cout<<" Poyezd nomi -> "; cin>>nomi;
cout<<" Poyezd uzunligi sm da-> "; cin>>l;
cout<<" Poyezd tezligi km/soat da -> "; cin>>tez;
qw.push_back(Poezd(nomi,l,tez));
}
cout<<"\n<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>\n";
sort(qw.begin(),qw.end(),lengsort);
vector::iterator wq;
for(wq=qw.begin(); wq!=qw.end(); wq++){
Poezd QW=*wq;
QW.poyezd();
}
system("pause");
}
Dostları ilə paylaş: |