Лабораторная работа стандартные алгоритмы и итераторы библиотеки stl цель работы: Изучить стандартные алгоритмы и итераторов библиотеки stl и разработка алгоритмов выполнения задач с этими


Download 30.18 Kb.
bet1/3
Sana24.04.2023
Hajmi30.18 Kb.
#1393480
TuriЛабораторная работа
  1   2   3

2-Лабораторная работа
СТАНДАРТНЫЕ АЛГОРИТМЫ И ИТЕРАТОРЫ БИБЛИОТЕКИ STL
Цель работы: Изучить стандартные алгоритмы и итераторов библиотеки stl и разработка алгоритмов выполнения задач с этими темами.
Поставленная задача: Создание элементов стандартных алгоритмов и итераторов на языке Visual C++, разработка программы выполнения различных действий на нем.
Порядок работы:

  • Изучение теоретических данных лабораторной работы;

  • Разработка алгоритма заданной задачи;

  • Создание программы в среде программирования Visual C++;

  • Проверка результатов;

  • Подготовка и представление отчета для лабораторной работы.




          1. ЗАДАНИЯ №1

  1. Используя функции из библиотеки algorithm generate() и for_each() заполните контейнер list случайными числами в интервале [-20; +20] в количестве N=20. С помощью итераторов вывести на экран содержимое контейнера. Подсчитать количество отрицательных элементов (count_if()). Заменить все элементы равные -10 на 88 (replace() ). Вывести на экран содержимое контейнера.

  2. Используя функции из библиотеки algorithm generate() и for_each() заполните контейнер vector случайными числами в интервале [-30; +30] в количестве N=20. С помощью итераторов вывести на экран содержимое контейнера. Подсчитать количество элементов со значением 11 (count()). Заменить все элементы меньше -10 на 55 (replace_if() ). Вывести на экран содержимое контейнера.

  3. Используя функции из библиотеки algorithm generate() и for_each() заполните контейнер deque случайными числами в интервале [-30; +30] в количестве N=20. С помощью итераторов вывести на экран содержимое контейнера. Используя функции minmax_element() вывести разницу между наибольшим и наменишим значением элементов контейнера.

  4. Используя функции из библиотеки algorithm generate() и for_each() заполните контейнер vector случайными числами в интервале [-40; +40] в количестве N=20. С помощью итераторов вывести на экран содержимое контейнера. Используя функции minmax()_element() и distance()_вывести растояние между наибольшим и наименьшим значением элементов контейнера.

  5. Используя функции из библиотеки algorithm generate() и for_each() заполните контейнер list случайными числами в интервале [-25; +25] в количестве N=20. С помощью итераторов вывести на экран содержимое контейнера. Используя функции minmax_element() и fill(), заменит все значение элементов расположенных между наибольшим и наименьшим значением элементов контейнера на 33. Вывести на экран содержимое контейнера.

  6. Используя функции из библиотеки algorithm generate() и for_each() заполните контейнер list случайными числами в интервале [-15; +25] в количестве N=20. С помощью итераторов вывести на экран содержимое контейнера. Изменить значение на 44 5 - ти элементам начиная с 10-го элемента (fill()). Вывести на экран содержимое контейнера.

  7. Используя функции из библиотеки algorithm generate() и for_each() заполните контейнер degue случайными числами в интервале [-10; +25] в количестве N=20. С помощью итераторов вывести на экран содержимое контейнера. Создать 2- ой контейнер и заполнитmь его значениями из 1 –го контейнера в обратном порядке (copy_backward()). Вывести на экран содержимое контейнера.

  8. Cоздать два контейнера vector и заполнитm их случайными числами в дипазоне [-15; +30] с помощью функции generate_n() (N=20). С помощью итераторов вывести на экран содержимое контейнера. Ппроизвести сортировку (sort) и объединит их (merge()). Вывести на экран содержимое контейнера.

  9. Cоздать два контейнера vector и заполнитm их случайными числами в дипазоне [-15; +35] с помощью функции generate_n() (N1=20, N2=3). С помощью итераторов вывести на экран содержимое контейнеров. Определить последнее вхождение последовательности элементов 2-го контейнера в первом (find_end()).

  10. Cоздать два контейнера vector и заполнитm их случайными числами в дипазоне [-25; +15] с помощью функции generate_n() (N1=20, N2=3). С помощью итераторов вывести на экран содержимое контейнера. Определить первое вхождение последовательности элементов 2-го контейнера в первом (search ()).

  11. Используя функции из библиотеки algorithm generate() и for_each() заполните контейнер list случайными числами в интервале [-20; +20] в количестве N=20. С помощью итераторов вывести на экран содержимое контейнера. Подсчитать количество отрицательных элементов (count_if()). Удалить все элементы меньше -10. Вывести на экран содержимое контейнера.

  12. Cоздать контейнер list и заполнитm их случайными числами в дипазоне [-35; +30] с помощью функции generate_n() (N=20). Определит место расположение относително начало самого наибольшего элемента(max_element()) и найти сумму всех элементов расположенных до него (accumulate()).

  13. Cоздать контейнер degue и заполнитm их случайными числами в дипазоне [-35; +30] с помощью функции generate_n() (N=20). Определит место расположение относително начало самого наименьшего элемента(min_element()) и найти суму всех элементов расположенных после него (accumulate()).

  14. Используя функции из библиотеки algorithm generate() и for_each() заполните контейнер degue случайными числами в интервале [1; +50] в количестве N=20. С помощью итераторов вывести на экран содержимое контейнера. Определить, есть ли хотя бы один элемент кратное к 7 (any_of()). Если еть, то солько их (count_if()).?

  15. Используя функции из библиотеки algorithm generate() и for_each() заполните контейнер list случайными числами в интервале [1; +50] в количестве N=20. С помощью итераторов вывести на экран содержимое контейнера. Cкопировать во второй контейнер все элементы с перого контейнера, кроме кратных 4. Вывести на экран содержимое 2 –го контейнера (remove_copy_if ()).

  16. Cоздать контейнер vector и заполнит их случайными числами в дипазоне [-25; +55] с помощью функции generate_n() (N=20). С помощью итераторов вывести на экран содержимое контейнера. Копирует все элементы из 1-го контейнера на 2-ое заменяя все элементы кратные к 5 знчением 0 (replace_copy_if). Подсчитать количество элементов отличного от 0. Вывести на экран содержимое 2 –го контейнера.

  17. Cоздать контейнер list и заполнит их случайными числами в дипазоне [7; +77] с помощью функции generate_n() (N=20). С помощью итераторов вывести на экран содержимое контейнера. Найти первые два соседних элемента, кратное к 3 (adjacent_find). Подсчитать сколько таких в контейнере.

  18. Cоздать контейнер vector и заполнит их случайными числами в дипазоне [6; +66] с помощью функции generate_n() (N=20). С помощью итераторов вывести на экран содержимое контейнера. Разделить контейнер на две группы, на кратные и не на кратные к 6 (partition()). Вывести на экран содержимое обоих групп (каждая группа в отдельной строке.

  19. Cоздать два контейнера deque и заполнит их случайными числами в дипазоне [50; 99] с помощью функции generate_n() (N1=20). С помощью итераторов вывести на экран содержимое контейнеров. Отсортировать контейнеры (sort(). Скопировать элементы из отсортированного 1-го контейнера, которые не встречаются в отсортированном 2-ом контейнере в 3 –й контейнер. Вывести на экран содержимое 3- го контейнера (set_difference()) .

  20. Cоздать два контейнера list и заполнит их случайными числами в дипазоне [9; 99] с помощью функции generate_n() (N=20). С помощью итераторов вывести на экран содержимое контейнеров. Отсортировать контейнеры (sort(). Создать 3- й контейнер, состоящей из элементов, которые встречаются в обоих контейнерах (set_intersection()).

  21. Cоздать контейнер vector и заполнит их случайными числами в дипазоне [7; 77] с помощью функции generate_n() (N=20). С помощью итераторов вывести на экран содержимое контейнера. Разделить контейнер на две группы, на четных и не четных (partition()). Вывести на экран содержимое обоих групп (каждая группа в отдельной строке.

  22. Cоздать два контейнера list и заполнит их случайными числами в дипазоне [4; 44] с помощью функции generate_n() (N=20). С помощью итераторов вывести на экран содержимое контейнеров. Отсортировать контейнеры (sort(). Создать отсортированный 3- й контейнер, состоящий из всех элементов, присутствующих в одном или обоих контейнерах (set_union()).

  23. Cоздать два контейнера list и заполнит их случайными числами в дипазоне [-10; 24] с помощью функции generate_n() (N=20). С помощью итераторов вывести на экран содержимое контейнеров. Найти первую позицию, в которой два контейнера различаются (mismatch((). Вывести место расположение этих 2- х элементов относительно начало аждого из контейнеров.

  24. Используя функции из библиотеки algorithm generate() и for_each() заполните контейнер vector случайными числами в интервале [-50; +50] в количестве N=20. С помощью итераторов вывести на экран содержимое контейнера. Используя функции удалить последовательные повторяющиеся элементы в контейнере(unique((). Найти сумму оставшихся элементов (accumulate)).

  25. Cоздать два контейнера list заполните контейнер array случайными числами в интервале [-50; +50] в количестве N=20. С помощью итераторов вывести на экран содержимое контейнера. Вычислить скалярное прозведение двух векторов.

ЗАДАНИЕ 2


1) Создайте динамический массив из N(N=20 - вводится пользователем) элементов целочисленного типа с значением равным 5.
2) Вывести на экран содержимое контейнера. Для этого создайте шаблонную функцию.
3) Содержимое массива заменить случайными числами из интервала [a;b]
с помощью шаблонной функции generate() из библиотеки algorithm.
4) Вывести на экран содержимое контейнера
5) Вывести на экран максимальное значение из всех элементов массива с помощью шаблонной функции max_element() из библиотеки algorithm
6) Удалить из контейнера 3 элемента начиная с 2 элемента
7) Организуйте ввод с клавиатуры ввод числа из интервала [a;b]
8) Проверьте есть ли такое число в контейнере с помощью шаблонной функции find() из библиотеки algorithm
9) Определите количество вхождений этого числа в контейнере с помощью шаблонной функции count() из библиотеки algorithm
10) Определите количество элементов меньших этого числа с помощью шаблонной функции count_if() из библиотеки algorithm
11) Вычислить сумму всех элементов контейнера с помощью шаблонной функции accumulate() из библиотеки numeric
12) Произбедите сортировку массива по возрастанию с помощью шаблонной функции sort() из библиотеки algorithm
13) Вывести на экран содержимое контейнера
14) Вывести на экран содержимое контейнера в обратном порядке



Download 30.18 Kb.

Do'stlaringiz bilan baham:
  1   2   3




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