Guruh talabasi Hojibayev Javohir 1-misol Stol va stul


Download 385.87 Kb.
Sana28.12.2022
Hajmi385.87 Kb.
#1022089

315-20 guruh talabasi
Hojibayev Javohir
1-misol
Stol va stul class larini yarating va ularni bog’lovchi funksiyalar yarating
Dastur kodi:
#include
using namespace std;
namespace yangi_nomlar_fazosi { //Yanginomlarfazosi
class Stol {
protected:
int razmer, ishlab_chiqarilgan_yili;
string yogochi;
public:
Stol() {}
Stol(int razmer, int yil, string yogochi) {
this->razmer = razmer;
this->ishlab_chiqarilgan_yili = yil;
this->yogochi = yogochi;
}
static void qidirish(Stol* massiv, int n, string yog) { //qidirishmaterialibo'yicha
for (int i = 0; i < n; i++) {
if (massiv[i].yogochi == yog) massiv[i].print();
}
}
static void saralash(Stol* massiv, int n) { //saralash, razmeribo'yicha
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (massiv[i].razmer>massiv[j].razmer)
swap(massiv[i], massiv[j]);
}
}
}
void ozgartirish(int razmer, int yil, string yogochi) {//o'zgartirishmetodi
this->razmer = razmer;
this->ishlab_chiqarilgan_yili = yil;
this->yogochi = yogochi;
}
void print() {
cout<< "\nRazmeri: " < << "\nIshlabchiqarilganyili: "< << "\nYogochi : " < }
};
class Stul :public Stol {
public:
Stul(){}
Stul(int razmer, int yil, string yogochi) {
this->razmer = razmer;
this->ishlab_chiqarilgan_yili = yil;
this->yogochi = yogochi;
}
};
}

int main() {


using namespace yangi_nomlar_fazosi; // Yangihosilqilingannomlarfazosidanfoydalanish
int n, m;
cout<< "Nechta stol haqida ma'lumot kiritmoqchisiz?\nn = "; cin>> n;
Stol* stollar;
stollar = new Stol[n];
if (n) cout<< "\nStollar haqida ma'lumotlarni kiritish:\n\n";
for (int i = 0; i < n; i++) {
int razmer, yili;
string yogochi;
cout<< "Stolning razmeri: "; cin>>razmer;
cout<< "Stolning ishlab chiqarilgan yili: "; cin>>yili;
cout<< "Stolning yogochi: "; cin>>yogochi;
stollar[i] = Stol(razmer, yili, yogochi);
}
cout<< "\nstollarni saralash, razmeri bo'yicha:\n";
stollar[0].saralash(stollar, n);
//Ekrangachiqarish:
for (int i = 0; i < n; i++) {
stollar[i].print();
}
cout<< "\nQidirish: \nYogochini kiriting: ";
string man; cin>> man;
stollar[0].qidirish(stollar, n, man);

cout<< "Nechta stul haqida ma'lumot kiritmoqchisiz?\nn = "; cin>> m;


Stul* stullar;
stullar = new Stul[m];
if (m) cout<< "\nStullar haqida ma'lumotlarni kiritish:\n\n";
for (int i = 0; i < m; i++) {
int razmer, yili;
string yogoch;
cout<< "Stulning razmeri: "; cin>>razmer;
cout<< "Stulning ishlab chiqarilgan yili: "; cin>>yili;
cout<< "Stulning yogochi: "; cin>>yogoch;
stullar[i] = Stul(razmer, yili, yogoch);
}
cout<< "\nStullarni saralash, razmeri bo'yicha:\n";
stullar[0].saralash(stullar, m);
//Ekrangachiqarish:
for (int i = 0; i < m; i++) {
stullar[i].print();
}
cout<< "\nQidirish: yogchini kiriting: ";
cin>> man;
stullar[0].qidirish(stullar, m, man);
}
Natija:



2-misol
Berilgan string turidagi to’plamning 2 ta so’zdan iborat elementidan 2- to’plamni, 1 ta so’zdan iborat elementidan 3- to’plamni hosil qiluvchi va ularni ekranga chiqaruvchi dastur tuzing. Ikkala to’plamdan ham bir xil qiymatli elemetlar o’chirilib Saralangan to’plam hosil qilinsin hamda uning qiymatlari ekranga chiqarilsin.

Dastur kodi:


#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int count_words(string s){
int count=0;
stringstream ss(s);
string temp;
while(ss>>temp){
count++;
}
return count;
}
int main(int argc, char const *argv[])
{
multiset first;
int n;
cout<<"To'plam elementlari soni"<cin >>n;
for(int i=0;istring s;
cin.ignore(1,'\n');
getline(cin,s);
first.insert(s);
}
multiset second;
multiset third;
for(string i:first){
if(count_words(i)==2){
second.insert(i);
}else if(count_words(i)==1){
third.insert(i);
}
}
cout<<"Ikkinchi to'plam--------------------------------"<for(string i:second){
cout<}
cout<<"Uchinchi to'plam--------------------------------"<for(string i:third){
cout<} }
Natija:


3-misol

7. Kitob:
nomi, sahifalar soni, narxi

Kitob do’koni:
nomi, sahifalar soni, narxi, foizli chegirma

Sahifalar soni 200 dan kam bo’lgan kitoblarni foizli chegirma asosida narxini qayta hisoblang.

Dastur kodi:


#include
#include
using namespace std;
class Kitob{
protected:
string nomi;
int asl_narx;
protected:
int sahifa_soni,narxi;
public:

void set(string nomi,int sahifa_soni, int narxi)
{
this->asl_narx = narxi;
this->nomi = nomi;
this->sahifa_soni = sahifa_soni;
this->narxi = narxi;
}

};
class Kitob_dukon:public Kitob{
private:
int foiz;

public:
Kitob_dukon(int foiz){
this->foiz = foiz;
};
void get()
{
cout<<"Kitob nomi: "<nomi< cout<<"Asl narxi:"<asl_narx< cout<<"Narxi: "<narxi< cout<<"chegirma foizi:"<<((this->sahifa_soni<200)? this->foiz: 0)< cout<<"Sahifa soni: "<sahifa_soni< cout<<"-----------------------------------------------------"< }
friend void foiz_uzgart(Kitob_dukon ki){
int f;
cout<<"\n\t\t\tYangi foiz bilan hisoblash\n\n";


cout<<"chegirma foizini kiriting:"; cin>>f;
ki.foiz = f;
ki.chegirma();
ki.get();

}


void chegirma(){
if(this->sahifa_soni<200){
this->narxi = this->asl_narx*(100-this->foiz)/100;
}
}
};

int main(){


Kitob_dukon ki(20) ;

string nomi="SHERLOCK HOLMS";
int narxi = 50000;
int sahifa_soni= 100;


ki.set(nomi, sahifa_soni, narxi);
ki.chegirma();
cout<<"\n\t\t Kitob haqida\n\n----------------------------------------------------- \n";
ki.get();
foiz_uzgart(ki);
ki.chegirma();

return 0;


}
Natija:


4-misol

M o`lchamli kvadrat matrisa berilgan . Bu massivning elementlarini spiral shaklida chop etish dasturi tuzilsin : avval oxirgi ustun , keyin oxirgi qator teskari tartibda , keyin birinchi ustun teskari tartibda, keyin birinchi qator. Ichki elementlar ham shu tartibda chop etiladi. Eng oxirida matrisaning markaziy elementi chop etiladi.


Dastur kodi:


#include
using namespace std;
int main(){
short k,i,j,m,x,y,z,w;
float a[100][100];
cin>>m;
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
cin>>a[i][j];
x=m; y=m; z=1; w=1;
for(k=1;k<=m/2;k++){
for(i=z;i<=x;i++)
cout<<"a["<for(j=y-1;j>=w;j--)
cout<<"a["<for(i=x-1;i>=z;i--)
cout<<"a["<for(j=w+1;j<=y-1;j++)
cout<<"a["<x--;y--;z++;w++;
}
// bu dastur toq sonlar uchun ham o`rinli
if(m%2==1)
cout<<"a["<return 0; }

Natija:






Download 385.87 Kb.

Do'stlaringiz bilan baham:




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