DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт до лабораторної роботи № 5 з дисципліни “Алгоритми та методи обчислень”

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
КН
Кафедра:
Кафедра електронних обчислювальних машин

Інформація про роботу

Рік:
2018
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритми та методи обчислень
Група:
КН-31
Коротко про документ

Про що ця робота

Звіт до лабораторної роботи № 5 присвячено ознайомленню з парадигмою функційного програмування. У роботі наведено лістинг програми паралельного швидкого сортування на C++ та результати її виконання.

У роботі розглядаються

  • Функційне програмування
  • Паралельне сортування
  • Алгоритм швидкого сортування
  • Мова програмування C++
  • Асинхронне виконання
  • Обробка списків

Зміст і розділи

  1. Мета роботи
  2. Вхідні дані
  3. Лістинг програми
  4. Скріншот виконання програми
  5. Висновок
Для кого:Студенти технічних спеціальностей, які вивчають алгоритми та методи обчислень.
Викладачі:Викладач

Ключові поняття

функційне програмуванняпаралельне сортуванняшвидке сортуванняstd::liststd::futurestd::asyncstd::partitionвхідні данілістинг програмивисновок

Частина тексту файла (без зображень, графіків і формул):

Кафедра ЕОМ  Звіт з лабораторної роботи № 5 з дисципліни: “Алгоритми та методи обчислень” Варіант № 7 Мета роботи: ознайомитися з парадигмою функційного програмування. Вхідні дані 7: 565, 566, 561, 561, 557, 560, 561, 556, 556, 552, 559, 551, 556, 557, 552, 554, 546, 551, 552, 547 Лістинг програми: #include <iostream> #include <list> #include <algorithm> #include <future> template<typename T> std::list<T> parallel_quick_sort(std::list<T> input) { if (input.size() < 2) { return input; } //move frist element in the list to result list and take it as pivot value std::list<T> result; result.splice(result.begin(), input, input.begin()); T pivot = *result.begin(); //partition the input array auto divide_point = std::partition(input.begin(), input.end(), [&](T const & t) { return t < pivot; }); std::list<T> lower_list; lower_list.splice(lower_list.end(), input, input.begin(), divide_point); auto new_lower(parallel_quick_sort(std::move(lower_list))); std::future<std::list<T>> new_upper_future (std::async(&parallel_quick_sort<T>, std::move(input))); result.splice(result.begin(), new_lower); result.splice(result.end(), new_upper_future.get()); return result; } int main() { std::list<int> my_list; my_list.push_back(565); my_list.push_back(566); my_list.push_back(561); my_list.push_back(561); my_list.push_back(557); my_list.push_back(560); my_list.push_back(561); my_list.push_back(556); my_list.push_back(552); my_list.push_back(559); my_list.push_back(551); my_list.push_back(556); my_list.push_back(557); my_list.push_back(552); my_list.push_back(554); my_list.push_back(556); my_list.push_back(551); my_list.push_back(552); my_list.push_back(547); std::cout<< "Array:"<<std::endl; for (auto &var : my_list) { std::cout << var << " "; } auto result = parallel_quick_sort<int>(my_list); std::cout<<std::endl<<"Sorted array:"<< std::endl; for (auto &var : result) { std::cout << var << " "; } std::cout<<std::endl; } Скріншот виконання програми:  Висновок - ознайомився з парадигмою фінкційного програмування
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!