Практическое задание по программировании Эгамбердиев Шахджахан Задание 1


Download 202.57 Kb.
Sana22.04.2023
Hajmi202.57 Kb.
#1378140
Bog'liq
програм Шохжахон


Ташкентский Университет информационных технологий имени Мухаммада ал-Хоразмий
Практическое задание по программировании
Выполнил: Эгамбердиев Шахджахан


Задание 1. В соответствии с вариантом задания решить задачу указанной в таблице, используя асоциативные контейнера set, multiset, map, multimap.


Задано множество об операционных системах (название, год). Создайте программу, которая ищет операционные системы по имени, году.

Код:
#include
#include
#include
using namespace std;


int main() {
setlocale(LC_ALL, "Russian");
map os;


// Заполняем контейнер данными
os["Windows"] = 1985;
os["Mac OS"] = 1984;
os["Ubuntu"] = 2004;


// Просим пользователя ввести название операционной системы
cout << "Введите название операционной системы: ";
string name;
getline(cin, name);


// Проверяем, есть ли введенная ОС в контейнере
if (os.count(name)) {
// Если есть, выводим информацию о ней
cout << "Операционная система \"" << name << "\" была выпущена в " << os[name] << " году." << endl;
} else {
// Если нет, сообщаем об этом пользователю
cout << "Операционная система \"" << name << "\" не найдена." << endl;
}


return 0;
}

Задвние 2:

  1. Создать множество (вид множество см. таблицу) на базе хэш таблиц состоящих из N натуралных чисел полученных с помощью генератора случайных чисел из интервала [a; b];

  2. Вывести эти числа на экран.

  3. Подсчитать количество элементов контейнера со значением равным c (с помощью метода count()).

  4. Организовать поиск элементов со значением d (метод find()) и удалить их (метод eras()).

  5. Вывести на экран текущий максимальный коэффициент загрузки.

  6. Вывести на экран количество сегментов и количество элементов в каждом сегменте.

  7. Определить в каком сегменте находися элемент контейнера со значением f.

Значение а, b, c, d, f заданы в таблице ниже

11

unordered_multiset

15

35

42

37

39

36



Код:
#include
#include
#include
#include


int main() {
int a = 35, b = 42, c = 37, d = 39, f = 36, N = 15;


// Set up random number generation
std::mt19937 generator(time(0));
std::uniform_int_distribution distribution(a, b);


// Populate the set with N random numbers
std::unordered_multiset mySet;
for (int i = 0; i < N; ++i) {
mySet.insert(distribution(generator));
}


// Print the set elements
std::cout << "Set elements are: ";
for (auto elem : mySet) {
std::cout << elem << " ";
}
std::cout << std::endl;


// Count elements with value c
int countC = mySet.count(c);
std::cout << "Number of elements with value c = " << c << " is: " << countC << std::endl;


// Find and erase elements with value d
auto it = mySet.find(d);
if (it != mySet.end()) {
mySet.erase(it);
std::cout << "Erased element with value d = " << d << std::endl;
} else {
std::cout << "Element with value d = " << d << " not found" << std::endl;
}


// Find the maximum element in the set
int maxElem = *mySet.begin();
for (auto elem : mySet) {
if (elem > maxElem) {
maxElem = elem;
}
}
std::cout << "The maximum element in the set is: " << maxElem << std::endl;


// Determine number of segments and number of elements in each segment
int numSegments = mySet.bucket_count();
std::cout << "Number of segments in the set is: " << numSegments << std::endl;
std::cout << "Number of elements in each segment are: ";
for (int i = 0; i < numSegments; ++i) {
std::cout << mySet.bucket_size(i) << " ";
}
std::cout << std::endl;


// Find the segment containing element with value f
auto fIt = mySet.find(f);
if (fIt != mySet.end()) {
int segment = mySet.bucket(fIt);
std::cout << "Element with value f = " << f << " is in segment " << segment << std::endl;
} else {
std::cout << "Element with value f = " << f << " not found" << std::endl;
}


return 0;
}
Download 202.57 Kb.

Do'stlaringiz bilan baham:




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