/
lyapdy
/
Object_oriented_programming_cpp_318
Обзор
Документация
Войти
/
lyapdy
/
Object_oriented_programming_cpp_318
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
lab4/task_8.cpp
81 строка
2 KB
danillyapunov
task4
25 июн 2025, 18:15
25 июн 2025, 18:15
4f23491
Код
Авторство
О чём код?
#include <iostream> #include <iostream> #include <functional> #include "task_8.h" using validateFcn = bool(*)(int, int); typedef bool(*td_validateFcn)(int, int); //#define type_alias #ifdef type_alias auto boolFcn(int a, int b, validateFcn pFcn) -> bool; #else auto boolFcn(int a, int b, td_validateFcn pFcn) -> bool; #endif auto boolFcn(int a, int b, td_validateFcn pFcn) -> bool { // �㭪�� ��� Task_8 return pFcn(a, b); } bool fcnAnd(int a, int b) { // �㭪�� ��� Task_8 return a && b; } bool fcnOr(int a, int b) { // �㭪�� ��� Task_8 return a || b; } bool fcnXor(int a, int b) { // �㭪�� ��� Task_8 return a ^ b; } void task_8() { std::cout << "������ �: "; int a; while (!(std::cin >> a) || (std::cin.peek() != '\n')) { std::cin.clear(); while (std::cin.get() != '\n'); std::cout << "Error!" << std::endl; } int b; std::cout << "������ b: "; while (!(std::cin >> b) || (std::cin.peek() != '\n')) { std::cin.clear(); while (std::cin.get() != '\n'); std::cout << "Error!" << std::endl; } int option; std::cout << "������ ���� (1-�, 2-���, 3-X�R): "; while (!(std::cin >> option) || (std::cin.peek() != '\n')) { std::cin.clear(); while ((std::cin.get() != '\n')); std::cout << "Error!" << std::endl;} switch(option) { case 1: { std::cout << "�������: "<< a << " * " << b << " = " << boolFcn(a, b, fcnAnd); break; } case 2: { std::cout << "�������: "<< a << " + " << b << " = " << boolFcn(a, b, fcnOr); break; } case 3: { std::cout << "�������: "<< a << " ^ " << b << " = " << boolFcn(a, b, fcnXor); break; } default: { std::cout << "�訡�� �����" << '\n'; break; } } }