7. Kompyuter o’yinlari haqida (nomi, turi, versiyasi, hajmi, zararli oqibatlari, foydalilik darajasi va aktuallik darajasi) to’plam berilgan


Download 218.48 Kb.
Sana25.04.2023
Hajmi218.48 Kb.
#1398633
Bog'liq
deadline


17.2 Kompyuter o’yinlari haqida (nomi, turi, versiyasi, hajmi, zararli oqibatlari, foydalilik darajasi va aktuallik darajasi) to’plam berilgan. Kompyuter o’yinlarining nomi bir xillardan 2- to’plamni, zararli oqibatlari bir xillaridan 3- to’plamni, aktuallaik darajasi bir xillaridan 4- to’plamni tashkil qiluvchi hamda Kompyuter o’yinini nomi, turi, versiyasi, hajmi, zararli oqibatlari, foydalilik darajasi va aktuallik darajasi bo’yicha qidiruvchi hamda topilgan natijani faylga saqlashni taklif qiladigan dastur tuzing.

#include


#include
#include
#include

using namespace std;


struct Oyin {


string nomi;
string turi;
string versiyasi;
int hajmi;
string zararli_oqibatlar;
int foydalilik_darajasi;
int aktuallik_darajasi;
};

int main() {


multimap aktuallik_darajasi;
multimap zararli_oqibatlar;
map oyinlar;

// O'yinlar to'plami


Oyin o1 = {"GTA 5", "aksiya", "1.0", 50, "o'lim", 7, 9};
Oyin o2 = {"FIFA 22", "sport", "1.0", 35, "yo'q", 8, 10};
Oyin o3 = {"Among Us", "strategiya", "1.5", 20, "oyunchi ajralib keta oladi", 9, 8};
Oyin o4 = {"Minecraft", "sarguzasht", "1.17", 100, "yo'q", 10, 7};
Oyin o5 = {"Cyberpunk 2077", "aksiya", "1.3", 70, "o'lim", 5, 9};

oyinlar.insert({"GTA 5", o1});


oyinlar.insert({"FIFA 22", o2});
oyinlar.insert({"Among Us", o3});
oyinlar.insert({"Minecraft", o4});
oyinlar.insert({"Cyberpunk 2077", o5});

// Zararli oqibatlar uchun Multimap


zararli_oqibatlar.insert({7, "GTA 5 - o'lim"});
zararli_oqibatlar.insert({5, "Cyberpunk 2077 - o'lim"});
zararli_oqibatlar.insert({9, "Among Us - oyunchi ajralib keta oladi"});

// Aktuallik darajasi uchun Multimap


aktuallik_darajasi.insert({10, "Minecraft"});
aktuallik_darajasi.insert({9, "GTA 5"});
aktuallik_darajasi.insert({8, "Among Us"});
aktuallik_darajasi.insert({7, "FIFA 22"});
aktuallik_darajasi.insert({9, "Cyberpunk 2077"});

// Ma'lumotlarni ekranga chiqarish


for (auto it = oyinlar.begin(); it != oyinlar.end(); ++it) {
cout << "O'yin nomi: " << it->first << endl;
cout << "Turi: " << it->second.turi << endl;
cout << "Versiyasi: " << it->second.versiyasi << endl;
cout << "Hajmi: " << it->second.hajmi << "GB" << endl;
cout << "Zararli oqibatlar: " << it->second.zararli_oqibatlar << endl;
cout << "Foydalilik darajasi: " << it->second.foydalilik_darajasi << endl;
cout << "Aktuallik darajasi: " << it->second.aktuallik_darajasi << endl;
cout << endl;
}

// Ma'lumotlarni faylga saqlash


ofstream myfile("oyinlar.txt");
if (myfile.is_open()) {
for (auto it = oyinlar.begin(); it != oyinlar.end(); ++it) {
myfile << "O'yin nomi: " << it->first << endl;
myfile << "Turi: " << it->second.turi << endl;
myfile << "Versiyasi: " << it->second.versiyasi << endl;
myfile << "Hajmi: " << it->second.hajmi << "GB" << endl;
myfile << "Zararli oqibatlar: " << it->second.zararli_oqibatlar << endl;
myfile << "Foydalilik darajasi: " << it->second.foydalilik_darajasi << endl;
myfile << "Aktuallik darajasi: " << it->second.aktuallik_darajasi << endl;
myfile << endl;
}
myfile.close();
cout << "Ma'lumotlar faylga saqlandi!" << endl;
} else {
cout << "Fayl ochib bo'lmadi" << endl;
}

// O'yinlar bo'yicha zararli oqibatlarni qidirish


cout << "Zararli oqibatlarga ega bo'lgan o'yinlar: " << endl;
auto range = zararli_oqibatlar.equal_range(7);
for (auto it = range.first; it != range.second; ++it) {
cout << it->second << endl;
}

// Aktuallik darajasi 9 dan katta bo'lgan o'yinlarni qidirish


cout << "Aktuallik darajasi 9 dan katta bo'lgan o'yinlar: " << endl;
for (auto it = aktuallik_darajasi.rbegin(); it != aktuallik_darajasi.rend(); ++it) {
if (it->first >= 9) {
cout << it->second << endl;
}
}

return 0;


}
Yuqoridagi dasturda, `Oyin` strukturasini tanimlaymiz, bu struktura kompyuter o'yinlarining nomi, turi, versiyasi, hajmi, zararli oqibatlari, foydalilik darajasi va aktuallik darajasi ma'lumotlarini saqlash uchun ishlatiladi.

Keyingi qismda, `std::map` va `std::multimap` funksiyalari yaratiladi. `oyinlar`






17.1 Berilgan char turidagi to’plamning 1 ta so’zdan iborat elementlarini o’chiruvchi va 1 ta so’zdan iborat elementidan 2- to’plamni hosil qiluvchi hamda ularni ekranga chiqaruvchi dastur tuzing.


#include
#include

using namespace std;


// Berilgan char turidagi to'plamdan 1 ta so'zdan iborat elementlarini o'chirish funksiyasi


set removeSingleCharElements(set inputSet) {
set::iterator it;
for (it = inputSet.begin(); it != inputSet.end(); ) {
if (*it == ' ') {
it++;
}
else if (*it != ' ' && (*it+1 == ' ' || *it+1 == '\0' || *it-1 == ' ' || *it-1 == '\0')) {
it = inputSet.erase(it);
}
else {
it++;
}
}
return inputSet;
}

// Berilgan char turidagi to'plamdan 1 ta so'zdan iborat elementdan 2-ta to'plamni hosil qiluvchi funksiyasi


pair, set> generateTwoSetsFromSingleCharElements(set inputSet) {
set firstSet, secondSet;
set::iterator it;
for (it = inputSet.begin(); it != inputSet.end(); it++) {
if (*it != ' ') {
if (firstSet.find(*it) == firstSet.end()) {
firstSet.insert(*it);
}
else {
secondSet.insert(*it);
}
}
}
return make_pair(firstSet, secondSet);
}

// Setni ekranga chiqarish funksiyasi


void printSet(set inputSet) {
set::iterator it;
for (it = inputSet.begin(); it != inputSet.end(); it++) {
cout << *it << " ";
}
cout << endl;
}

int main() {


string inputString = "a b c d e a b c f g h i j d k";
set inputSet(inputString.begin(), inputString.end());

cout << "Berilgan to'plam: ";


printSet(inputSet);

set removedSet = removeSingleCharElements(inputSet);


cout << "1 ta so'zdan iborat elementlari o'chirilgan to'plam: ";
printSet(removedSet);

pair, set> twoSets = generateTwoSetsFromSingleCharElements(removedSet);


cout << "1 ta so'zdan iborat elementdan 2-ta to'plam hosil qilindi: " << endl;
cout << "Birinchi to'plam: ";
printSet(twoSets.first);
cout << "Ikkinchi to'plam: ";
printSet(twoSets.second);

return 0;


}

Bu dastur C++ dasturlash tili bilan yozilgan, va bir nechta set (o'zgaruvchilar to'plami) va pair (ikki o'zgaruvchini birlashtiruvchi) funktsiyalarni o'z ichiga oladi. Dastur, berilgan char turidagi to'plamdan birinchi funksiya yordamida 1 ta so'zdan iborat elementlarni o'chiradi, ikkinchi funksiya yordamida esa 1 ta so'zdan iborat elementlardan 2 ta set (o'zgaruvchilar to'plami) hosil qiladi. Dastur, "a b c d e a b c f g h i j d k" kabi berilgan bir char to'plami kiritilgan.



Download 218.48 Kb.

Do'stlaringiz bilan baham:




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