|
Funksiya va sinf shablonlari Topshriqlar: Massiv o‘suvchi yoki kamayuvchi yoki o’zaro teng ekanligini tekshiruvchi funksiya shablonini yarating
|
tarix | 11.12.2023 | ölçüsü | 39,14 Kb. | | #147021 |
| MTA 6-amaliyott
Funksiya va sinf shablonlari
Topshriqlar:
1. Massiv o‘suvchi yoki kamayuvchi yoki o’zaro teng ekanligini tekshiruvchi funksiya shablonini yarating.
2. Sinfda polimorfizm, inkapsulyatsiyaga misollar keltiring
#include
template
bool osovrKamayuvchiOzaroTeng(T array[], int length) {
if (length <= 1) {
std::cerr << "Massiv uzunligi yetarli emas!" << std::endl;
return false;
}
bool osovr = false;
bool kamayuvchi = false;
bool ozaroTeng = true;
for (int i = 1; i < length; ++i) {
if (array[i - 1] > array[i]) {
osovr = true;
} else if (array[i - 1] < array[i]) {
kamayuvchi = true;
} else {
ozaroTeng = false;
}
}
if (ozaroTeng) {
std::cout << "Massiv o'zaro teng!" << std::endl;
} else if (osovr && !kamayuvchi) {
std::cout << "Massiv o'suvchi!" << std::endl;
} else if (!osovr && kamayuvchi) {
std::cout << "Massiv kamayuvchi!" << std::endl;
} else {
std::cout << "Massivda o'suvchi, kamayuvchi va o'zaro teng elementlar mavjud!" << std::endl;
}
return ozaroTeng || (osovr && !kamayuvchi) || (!osovr && kamayuvchi);
}
int main() {
int ascendingArray[] = {1, 2, 3, 4, 5};
int descendingArray[] = {5, 4, 3, 2, 1};
int equalArray[] = {2, 2, 2, 2, 2};
int mixedArray[] = {1, 3, 2, 4, 5};
osovrKamayuvchiOzaroTeng(ascendingArray, 5);
osovrKamayuvchiOzaroTeng(descendingArray, 5);
osovrKamayuvchiOzaroTeng(equalArray, 5);
osovrKamayuvchiOzaroTeng(mixedArray, 5);
return 0;
}
Inkapsulyatsiy
#include
#include
class Car {
private:
std::string model;
public:
Car(const std::string& m) : model(m) {}
std::string getModel() const {
return model;
}
void setModel(const std::string& m) {
model = m;
}
void drive() const {
std::cout << "Mashina yurmoqda." << std::endl;
}
};
int main() {
Car myCar("Toyota");
std::cout << "Moshina modeli: " << myCar.getModel() << std::endl;
myCar.setModel("Honda");
std::cout << "Yangilangan moshina modeli: " << myCar.getModel() << std::endl;
myCar.drive();
return 0;
}
POLIMARFIZM
#include
#include
class Transport {
public:
virtual void move() const = 0;
virtual ~Transport() {}
};
class Car : public Transport {
public:
void move() const override {
std::cout << "Moshina ketmoqda." << std::endl;
}
};
class Airplane : public Transport {
public:
void move() const override {
std::cout << "Samolyot uchmoqda." << std::endl;
}
};
int main() {
Transport* myTransport;
myTransport = new Car();
myTransport->move();
delete myTransport;
myTransport = new Airplane();
myTransport->move();
delete myTransport;
return 0;
}
Dostları ilə paylaş: |
|
|