Лабораторная работа по "Системному программированию"
Автор: merlinovvv • Ноябрь 3, 2022 • Лабораторная работа • 748 Слов (3 Страниц) • 165 Просмотры
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
СХІДНОУКРАЇНСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
Імені ВОЛОДИМИРА ДАЛЯ
Кафедра Комп’ютерних наук та інженерії
ЗВІТ
Лабораторная работа № 1
З ДИСЦИПЛІНИ «СИСТЕМНЕ ПРОГРАМУВАННЯ»
Виконав:
Мєрлінов А.А.
КІ-20д
Перевірила:
Щербакова М.Є.
Сєвєродонецьк
2022
Лабораторная работа № 1. Использование лямбда-выражений
(«Системное программирование», 2 курс, 2 семестр)
Цель работы
Получение навыков написания программ с использованием алгоритмов стандартной библиотеки шаблонов и лямбда-выражений в шаблонах функций.
Вариант: 3
Задание: Объявить очередь deque<T> из 50 элементов. Задать значения элементам deque случайным образом с помощью функции-алгоритма generate, 3-м параметром передать лямбда-выражение, которое возвращает значение элемента. Вывести элементы deque на экран, для этого использовать функцию for_each с лямбда-выражением, которое выводит на экран очередной элемент. Подсчитать количество положительных элементов deque, для его вычисления использовать функцию std::count_if с лямбда-выражением. Задать в качестве значений элементов deque простые числа, использовать для этого std::transform с лямбда-выражением, вычисляющим значение очередного элемента. Вывести на экран элементы deque. Для присваивания значений элементам, вывода на экран, подсчёта элементов должны быть написаны функции-шаблоны для обработки элементов deque любого числового типа.
- Для данного задания написал следующий код:
#include <iostream>
#include <deque>
#include <functional>
#include <algorithm>
using namespace std;
void output(int i) { // функция для вывода чисел
cout << ' ' << i;
}
int odd_by_two() { // функция для заполнения деки рандомными числами
int s = rand() % 100 - 20;
return s;
}
bool isPrime(int n) // функция которая проверяет, простое ли число
{
if (n >= 2) {
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
return false;
}
int main() {
setlocale(LC_CTYPE, "rus");
deque<int> T; // создаем дек
int init = 0;
generate_n(back_inserter(T), 50, [init]() mutable { // заполняем в дек 50 рандомных чисел через функцию-алгоритм generate_n
return odd_by_two();
});
cout << "Числа: ";
...