Для студентов МГТУ им. Н.Э.Баумана по предмету Разработка программных системЛабораторная работа №1 (вариант 2)Лабораторная работа №1 (вариант 2)
4,0051
2021-04-012021-04-01СтудИзба
Лабораторная работа 1: Лабораторная работа №1 (вариант 2) вариант 2
Описание
Программа работает некорректно!
Текст задания
Составить программу, решающую задачу разрешимости логического выражения, содержащего 3 переменные (т.е. задачу отыскания значений всех комбинаций 3 логических переменных, делающих выражение истинным). Замечание. Логическое выражение реализовать в виде функции языка СИ с тремя аргументами.
Для проверки истинности логического выражения на каждой комбинации переменных организовать 8 параллельно выполняемых процессов, при этом родственные связи процессов имеют вид дерева с тремя ярусами. В качестве значений логических переменных целесообразно использовать значения, возвращаемые системным вызовом fork. В каждом процессе осуществить печать значений переменных и истинности выражения.
Описание структуры программы
Задача реализуется при помощи последовательных вызовов fork(). Каждый вызов fork порождает новый процесс и возвращает pid процесса родителю и 0 себе. Pid процесса это некоторое не нулевое число. Применяя двойное отрицание к возвращаемому функцией fork() значению, первое отрицание сделает из этого числа ноль, а второе сделает из ноля один – значения логических переменных(пременная может быть либо 0 либо 1, так как двоичная система счисления). Затем они обрабатываются в функции вместе с введенными логическими операциями. Используемые данные Константная переменная n задает количество логических переменных в получаемом на вход выражении. В задании необходимо составить таблицу истинности для 3 лог переменных. Функции void check(bool *pid, int size, char* buf) проверяет является ли выражение истиной, здесь pid массив логических переменных, size размер этого массива, buf это массив логических операций. Функции bool switch_op(bool a, bool b, char op) на вход получает 2 логические переменные и логический оператор и возвращает результат применения оператора к переменным
Текст задания
Составить программу, решающую задачу разрешимости логического выражения, содержащего 3 переменные (т.е. задачу отыскания значений всех комбинаций 3 логических переменных, делающих выражение истинным). Замечание. Логическое выражение реализовать в виде функции языка СИ с тремя аргументами.
Для проверки истинности логического выражения на каждой комбинации переменных организовать 8 параллельно выполняемых процессов, при этом родственные связи процессов имеют вид дерева с тремя ярусами. В качестве значений логических переменных целесообразно использовать значения, возвращаемые системным вызовом fork. В каждом процессе осуществить печать значений переменных и истинности выражения.
Описание структуры программы
Задача реализуется при помощи последовательных вызовов fork(). Каждый вызов fork порождает новый процесс и возвращает pid процесса родителю и 0 себе. Pid процесса это некоторое не нулевое число. Применяя двойное отрицание к возвращаемому функцией fork() значению, первое отрицание сделает из этого числа ноль, а второе сделает из ноля один – значения логических переменных(пременная может быть либо 0 либо 1, так как двоичная система счисления). Затем они обрабатываются в функции вместе с введенными логическими операциями. Используемые данные Константная переменная n задает количество логических переменных в получаемом на вход выражении. В задании необходимо составить таблицу истинности для 3 лог переменных. Функции void check(bool *pid, int size, char* buf) проверяет является ли выражение истиной, здесь pid массив логических переменных, size размер этого массива, buf это массив логических операций. Функции bool switch_op(bool a, bool b, char op) на вход получает 2 логические переменные и логический оператор и возвращает результат применения оператора к переменным
Характеристики лабораторной работы
Учебное заведение
Семестр
Номер задания
Вариант
Просмотров
219
Покупок
4
Размер
612,16 Kb
Список файлов
Ваше удовлетворение является нашим приоритетом, если вы удовлетворены нами, пожалуйста, оставьте нам 5 ЗВЕЗД и позитивных комментариев. Спасибо большое!