Muhammad Al-Xorazmiy nomidagi Toshkent Axborot Texnologiyalari Universiteti Dasturlash kafedrasi


Download 99.56 Kb.
Sana03.06.2020
Hajmi99.56 Kb.
#114149
Bog'liq
8 lab 8 var


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 -> "<<nomi<<"\n Gazeta narxi -> "<<narx<<"\n Gazeta saxifalar soni -> "<<saxifson<<endl<<endl;

}

};
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<gazetalar> K;

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

{

cout<<i+1<<" Gazeta ma'lumotlarini kiriting :\n";

cout<<" Gazeta nomi -> "; cin>>nomi;

cout<<" Gazeta narxi-> "; cin>>narx;

cout<<" Gazeta sahifalari soni ->"; cin>>sax;

K.push_back(gazetalar(nomi,narx, sax));

}

vector<gazetalar>::iterator k;

sort(K.begin(), K.end(),sfd);

for (k=K.begin(); k!=K.end(); k++){

gazetalar as= *k;

as.chiqar();

}

system("pause");

}



    1. 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<<name<<" uning tezligi ->"<<tezlik<<" km/soat \nPoyezd uzunligi ->"<<leng<<" sm \n\n";

}

};

bool lengsort (Poezd &q, Poezd &w){

int a=q.getleng().length(), b=w.getleng().length();

if (a>b) return true;

if (a<b) return false;

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

{

if (q.getleng()>w.getleng()) return false;

if (q.getleng()<w.getleng()) return true;

}

return true;

}

int main (){

int n,tez;

string nomi,l;

cout<<" Poyezdlar sonini kiriting -> "; cin>>n;

vector<Poezd> qw;

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

{

cout<<i+1<<"- Poyezd ma'lumotlarni kiriting :\n";

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<Poezd>::iterator wq;

for(wq=qw.begin(); wq!=qw.end(); wq++){

Poezd QW=*wq;

QW.poyezd();

}

system("pause");

}


Download 99.56 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling