|
-tajriba ishi. MA’LUMOTLARNI SARALASH USULLARINI TADQIQ QILISH
|
bet | 3/3 | Sana | 19.05.2024 | Hajmi | 381,24 Kb. | | #244429 |
Bog'liq mta 1-amaliy ish husniddin 3-tajriba ishi. MA’LUMOTLARNI SARALASH USULLARINI TADQIQ QILISH
Quyida har 10 ta variant uchun umumiy bo‘lgan masalaning berilishi va talab qilinayotgan saralash usuli keltirilgan. Talabalar topshiriq olib so‘ralayotgan usul bilan o‘zlari tomonidan tanlangan ixtiyoriy saralash usulining samaradorligini solishtirish dasturini tuzishlari kerak. Usullarni solishtirishda o‘rin almashtirishlar soni nazarda tutiladi.
Ta’mirlash ustaxonasida bir nechta (N ta) mashina bor. Ular to‘g‘risida quyidagi ma’lumotlarga egamiz: raqami, markasi, egasining ismi, oxirgi marta ta’mirlanganligi sanasi (kuni, oyi, yili), ta’mirdan chiqishi lozim bo‘lgan sana (kun, oy, yil).
To‘g‘ridan-to‘g‘ri qo‘shish usulidan foydalanib, saralashni amalga oshirish dasturini ishlab chiqish (variantga mos ravishda):
Mashina egalarining ismlari bo‘yicha alifbo tartibida joylashtirilsin va mos ravishda ularning mashinalari haqidagi ma’lumotlar chiqarilsin.
#include
#include
#include
struct Mashina {
std::string egalarIsmi;
std::string model;
int taqvim;
// Konstruktor
Mashina(const std::string& ism, const std::string& mod, int yil) : egalarIsmi(ism), model(mod), taqvim(yil) {}
};
// Qo'shish usuli
void mashinaQosh(std::vector& mashinaRoyhati, const std::string& egalarIsmi, const std::string& model, int taqvim) {
mashinaRoyhati.push_back({egalarIsmi, model, taqvim});
}
// Alifbo tartibida saralash uchun funksiya
bool alifboTartibida(const Mashina& mashina1, const Mashina& mashina2) {
return mashina1.egalarIsmi < mashina2.egalarIsmi;
}
int main() {
// Ta'mirlash ustaxonasi mashinalari
std::vector mashinaRoyhati;
// Mashinalarni qo'shish
mashinaQosh(mashinaRoyhati, "John", "Toyota", 2018);
mashinaQosh(mashinaRoyhati, "Alice", "Honda", 2016);
mashinaQosh(mashinaRoyhati, "Bob", "Ford", 2020);
// Ta'mirlash ustaxonasidagi mashinalarni ismlari bo'yicha alifbo tartibida saralash
std::sort(mashinaRoyhati.begin(), mashinaRoyhati.end(), alifboTartibida);
// Natijani chiqarish
std::cout << "Ta'mirlash ustaxonasidagi mashinalar:" << std::endl;
for (const auto& mashina : mashinaRoyhati) {
std::cout << "Egalar ismi: " << mashina.egalarIsmi << ", Modeli: " << mashina.model << ", Taqvim yili: " << mashina.taqvim << std::endl;
}
return 0;
}
|
| |