|
заставил Бендера
|
|
Програмирование упращения логических выражений25.12.2010, 10:10. Показов 13988. Ответов 35
Метки нет (Все метки)
Что прошу:
программа | каркас | идея | помощь На свой выбор и умение прошу помочь. Что нужно: Программа которая сможет упрощать введенные логические функции (булевы функции). Приводить их к компактному виду, преобразовывать сокращать. Есть программа на делфи (нету исходника) - ссылка Отличная статья по законам алгебры логики и законами преобразования - ссылка Задача: повторить функционал программы или помочь с мат.моделью программы. Возможно буду выполнять на флеше с возможностью работы онлайн. Почему выбрал с++ как место для создания темы - если мне напишут исходник на с++, для меня будет проще всего разобраться в коде. Добавлено через 11 часов 9 минут странно, может плохо описал задачу?
0
|
|
| 25.12.2010, 10:10 | |
|
Ответы с готовыми решениями:
35
Вычисление логических выражений Запись логических выражений
|
|
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 75
|
|
| 25.12.2010, 19:34 | |
|
походу надо определиться с обозначениями и набором функций для начала
0
|
|
|
заставил Бендера
|
|
| 25.12.2010, 19:48 [ТС] | |
|
есть идея сначала присвоить всем 19 правилам логического упрощения свои переменные
при вводе пользователем лог функции идет поиск по этой строке на истинность какой либо из 19 переменных все истинные (магически) начинают сокращаться, а не истинные переходят просто в следующий цикл, в следующем цикле идет следующий поиск на истинность, и так пока цикл не будет полностью ложным когда уже будет не чего сократить тогда идет ответ на вывод PS: возможно бред...
0
|
|
|
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
|
| 25.12.2010, 20:18 | |
|
надо построить из входного логического выражения дерево, потом пройти по дереву и поискать комбинации, которые можно упростить - заменять такие комбинации соответствующими упрощенными (заменять узлы дерева.) Рекомендую определить несколько функций для определения упрощаемых комбинаций и несколько для упрощения, чтобы вызывать их применимо к узлам.
1
|
|
|
заставил Бендера
|
|
| 25.12.2010, 20:36 [ТС] | |
|
подскажите что почитать или что использывать...
0
|
|
|
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 75
|
|
| 25.12.2010, 21:03 | |
|
Как оформить это дерево? Принцип понятен но как параллельно считать несколько скобок или раскрывать их? как программа выделит нужные части выражения?
0
|
|
|
заставил Бендера
|
|
| 25.12.2010, 21:04 [ТС] | |
|
а у меня другой вопрос, если приоритет равный - что далее? немного не ясно.
0
|
|
|
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
|||||||||||||||||||||
| 25.12.2010, 21:05 | |||||||||||||||||||||
|
у меня тут есть программка для построения дерева:
data = google("упрощение логических выражений C++"); braine << data; braine >> result; prepod << result; ![]() ну например выражение X & X можно упростить подставив X. функция для определения такого выражения в дереве
П. С. вот че нашел.
1
|
|||||||||||||||||||||
|
заставил Бендера
|
|||
| 25.12.2010, 22:23 [ТС] | |||
|
спасибо))) будем внедрять.. тему не бросаю, есть непонятности)
Добавлено через 9 минут Добавлено через 1 час 3 минуты Добавлено через 2 минуты может моя идея проще? там после каждого цикла идет сохранение в переменную и после опять идет сканирование на возможность упращения.. без узелков..
0
|
|||
|
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 75
|
|
| 25.12.2010, 23:08 | |
|
возможно проще но логика не верна, возможны пропуски сокращений
0
|
|
|
заставил Бендера
|
|
| 25.12.2010, 23:17 [ТС] | |
|
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 26.12.2010, 00:11 | |
|
А можете привести пример работы вашей будущей программы, т.е. пример ввода и пример соответствующего вывода.
0
|
|
|
заставил Бендера
|
|
| 26.12.2010, 00:25 [ТС] | |
|
Да пожалуйста.
НЕ(A*B) - первый закон де моргана (ввел например человек в программу - да что угодно, просто в этом случае оно очень легко раскрывается) ответ программы: НЕ A + НЕ B Таблица истинности для данного выражения: X Y F 0 0 = 1 0 1 = 1 1 0 = 1 1 1 = 0 как то так.
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 26.12.2010, 01:57 | ||
|
0
|
||
|
заставил Бендера
|
|
| 26.12.2010, 02:29 [ТС] | |
|
хотя бы две...
0
|
|
|
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
|||
| 26.12.2010, 17:02 | |||
|
и я извиняюсь за
0
|
|||
|
заставил Бендера
|
||
| 26.12.2010, 18:27 [ТС] | ||
|
Нашел на паскале похожий исходник, толку мало оказалось. Добавлено через 16 минут мне интересно, а нельзя ли через функцию #define присвоить 19 констант(правила упращения) и при вводе пользователем функции при нахождении совпадения с дефайн идет замена, если замена была осуществлена то ставится логический плюсик, и выражение (уже упращенно) попадает еще раз в цыкл и ищется очередное совпадение дефайн, если совпадений для замены более не найдено то устанавливается логический нолик и конечное выражение выводится на дисплей. - критикуйте.
0
|
||
|
заставил Бендера
|
|
| 28.12.2010, 11:58 [ТС] | |
|
хм... какая логика для программы - которая должна чтото упрощать по заданным правилам. что то оно не хочет получатся) помогайте.
0
|
|
|
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 75
|
|
| 28.12.2010, 18:08 | |
|
а разве код на С++ не работает? или ты хочешь упростить код программы?
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||||||
| 28.12.2010, 18:14 | ||||||
Сообщение было отмечено как решение
Решение
3
|
||||||
| 28.12.2010, 18:14 | |
|
Помогаю со студенческими работами здесь
20
Компилятор арифметико-логических выражений Построение простых логических выражений Написать калькулятор логических выражений на С Вывести на экран значения логических выражений Разработать программу для вычисления логических выражений Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|