Лабораторная работа по программированию Студентка гр. Hsm-204-4 Холдорова М. А. Ташкент-2023 2-Лабораторная работа
Download 332.73 Kb.
|
Лабораторная работа 2
- Bu sahifa navigatsiya:
- Лабораторная работа по программированию Выполнила: Студентка гр. HSM-204-4 Холдорова М.А. Ташкент-2023
- Поставленная задача
МИНИСТЕРСТВО ПО РАЗВИТИЮ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И КОММУНИКАЦИЙ РЕСПУБЛИКИ УЗБЕКИСТАН ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ИМЕНИ МУХАММАДА АЛЬ-ХОРЕЗМИ Лабораторная работа по программированию Выполнила: Студентка гр. HSM-204-4 Холдорова М.А. Ташкент-2023 2-Лабораторная работа СТАНДАРТНЫЕ АЛГОРИТМЫ И ИТЕРАТОРЫ БИБЛИОТЕКИ STL Цель работы: Изучить стандартные алгоритмы и итераторов библиотеки stl и разработка алгоритмов выполнения задач с этими темами. Поставленная задача: Создание элементов стандартных алгоритмов и итераторов на языке Visual C++, разработка программы выполнения различных действий на нем. Порядок работы: Изучение теоретических данных лабораторной работы; Разработка алгоритма заданной задачи; Создание программы в среде программирования Visual C++; Проверка результатов; Подготовка и представление отчета для лабораторной работы. Задание 1 Cоздать два контейнера vector и заполнитm их случайными числами в дипазоне [-25; +15] с помощью функции generate_n() (N1=20, N2=3). С помощью итераторов вывести на экран содержимое контейнера. Определить первое вхождение последовательности элементов 2-го контейнера в первом (search ()). #include #include #include #include int main() { // Создание двух пустых контейнеров типа vector std::vector std::vector // Создание генератора случайных чисел и заполнение первого контейнера std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> dis(-25, 15); std::generate_n(container1.begin(), 20, [&](){return dis(gen);}); // Заполнение второго контейнера std::generate_n(container2.begin(), 3, [&](){return dis(gen);}); // Вывод содержимого первого контейнера std::cout << "Container 1: "; for (auto it = container1.begin(); it != container1.end(); ++it) { std::cout << *it << " "; } std::cout << std::endl; // Вывод содержимого второго контейнера std::cout << "Container 2: "; for (auto it = container2.begin(); it != container2.end(); ++it) { std::cout << *it << " "; } std::cout << std::endl; // Поиск первого вхождения последовательности элементов второго контейнера в первом auto result = std::search(container1.begin(), container1.end(), container2.begin(), container2.end()); if (result != container1.end()) { std::cout << "The sequence from container 2 was found starting at index " << std::distance(container1.begin(), result) << " of container 1." << std::endl; } else { std::cout << "The sequence from container 2 was not found in container 1." << std::endl; } return 0; } Задание 2 1) Создайте динамический массив из N(N=20 - вводится пользователем) элементов целочисленного типа с значением равным 5. 2) Вывести на экран содержимое контейнера. Для этого создайте шаблонную функцию. 3) Содержимое массива заменить случайными числами из интервала [a;b] с помощью шаблонной функции generate() из библиотеки algorithm. 4) Вывести на экран содержимое контейнера 5) Вывести на экран максимальное значение из всех элементов массива с помощью шаблонной функции max_element() из библиотеки algorithm #include #include #include #include #include using namespace std; // Функция для вывода содержимого контейнера template void printContainer(const T& container) { for (const auto& elem : container) { cout << elem << " "; } cout << endl; } int main() { srand(time(0)); // инициализация генератора случайных чисел int N, a, b; cout << "Введите размер массива N: "; cin >> N; cout << "Введите интервал для случайных чисел [a, b]: "; cin >> a >> b; // Создание динамического массива из N элементов, каждый из которых равен 5 vector // Вывод содержимого массива cout << "Исходный массив: "; printContainer(arr); // Замена содержимого массива случайными числами из интервала [a, b] generate(arr.begin(), arr.end(), [a, b]() { return rand() % (b - a + 1) + a; }); // Вывод содержимого массива после замены cout << "Массив со случайными числами: "; printContainer(arr); // Поиск максимального элемента массива auto maxElem = max_element(arr.begin(), arr.end()); // Вывод максимального элемента массива cout << "Максимальный элемент массива: " << *maxElem << endl; return 0; } Задание 3 Заполните случайными n числами очередь и найдите максимальный элемент в этой очереди. #include #include #include #include using namespace std; int *findBiggest(deque { int test; int big=0; for(int i=0; i { test = nQ.front(); cout << "Place[" << i << "]: \t" << test << endl; nQ.pop_front(); if(test > big) big = test; } cout << "\nThe biggest number is: " << big << endl; return 0; } int main() { srand (time(NULL)); deque for(int i=0; i<20; i++) { nQ.push_back(rand() % 10000); } findBiggest(nQ, 20); system("pause"); return 0; } Download 332.73 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling