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

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

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

Рік:
2024
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритми та методи обчислень

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

Кафедра ЕОМ Звіт з лабораторної роботи № 6 з дисципліни: “Алгоритми та методи обчислень” Варіант № 7 Мета роботи: ознайомитися з парадигмою реактивного програмування Вхідні дані 7: 565, 566, 561 Лістинг програми: #define WORK_SPACE int a = 0, b = 0 #define EXPRESSION ( C2*a + C1*b + C0 ) #define RUN_FOR_UPDATE EXPRESSION #define C2 565 #define C1 566 #define C0 561 #include "rxcpp/rx.hpp" namespace rx = rxcpp; namespace rxsub = rxcpp::subjects; namespace rxu = rxcpp::util; #include <cctype> #include <clocale> WORK_SPACE; // r = C2*a + C1*b + C0; void runForUpdateA(int value){ a = value; } void runForUpdateB(int value){ b = value; } void runForUpdateR(){ std::cout << "(C2=" << C2 << " C1=" << C1 << " C0=" << C0 << " a=" << a << " b=" << b << ")" << std::endl; std::cout << "r = C2*a + C1*b + C0 = " << RUN_FOR_UPDATE << std::endl; } int main() { std::cout << "(use key a, b, r; use <Ctrl+C> for exit)" << std::endl << "Run('r'<= merge('a', 'b')):" << std::endl; auto keys = rx::observable<>::create<int>( [](rx::subscriber<int> dest){ for (;;) { int key = std::cin.get(), value; if (std::tolower(key) == 'a') { std::cout << "="; std::cin >> value; runForUpdateA(value); } else if (std::tolower(key) == 'b') { std::cout << "="; std::cin >> value; runForUpdateB(value); } }). } dest.on_next(key); publish(); auto a = keys. filter([](int key){return std::tolower(key) == 'a'; }); auto b = keys. filter([](int key){return std::tolower(key) == 'b'; }); auto r = keys. filter([](int key){return std::tolower(key) == 'r'; }); r.merge(a, b). subscribe([](int key){ if (std::tolower(key) == 'r'){ runForUpdateR(); }); } else{ }  std::cout << "value updated" << std::endl; keys.connect(); // run the loop in create return 0; } Висновок - ознайомився з парадигмою реактивного програмування
Антиботан аватар за замовчуванням

14.10.2018 19:10-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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