|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.03.2015, 09:03 | #1 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Логический калькулятор, как построить таблицу истинности?
Ребят, возникла идея написать логический калькулятор на С++, (хотя возможно на делфи проще) . В общем столкнулся с проблемой просмотра введенных в QLineEdit значений , допустим как из строки
А или В->В и С в шапку таблицы вывести А | В | С | А или В | В и С| А или В импликация В и С препод дал подсказку что при помощи рекурсии (с ней у меня туго) поэтому может быть есть другой способ? Допустим первый цикл смотрит буквы из набора алфавита, второй -операции, правда возникает проблема-если выражение, то оно может быть еще и со скобками. Попытался понять как работает парсер, но увы не очень ясно , есть ли у кого более упрощенные примеры? (если эта ссыль противоречит правилам форума, то простят меня модераторы)
from dark to light)
|
29.03.2015, 09:11 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Так тебе наверное синтаксический анализатор нужен?
Что-то типа: http://www.programmersforum.ru/showthread.php?t=61703 Угадал?
I'm learning to live...
|
29.03.2015, 09:19 | #3 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Да, но лексем не достаточно, так как планирую импликацию распознать по присутствию в строке букв imp, например, в смысле я имел то, что алгоритм разобьет выражение на:
А||В imp B&&C на 13 символов сначала, но потом нужно как-то составить еще три выражения А или В,..., в шапке таблицы и в зависимости от операции выполнять действия
from dark to light)
|
29.03.2015, 09:45 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А только пол ЛИСП диалект писал анализатор (собсно им и пользуюсь), так что кроме предложенного выше врядли предложу что-то от себя.
I'm learning to live...
|
29.03.2015, 09:51 | #5 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Спасибо на добром слове, и еще вопрос, графику не проходили пока, решил сам с чего-то начать, например определение что эффективное: СДНФ или СКНФ, минимизация (знаю только карты Карно, хотя может есть и эффективнее), а затем строить схему-это задача сложнее, т.к. честно говоря даже с canvas делфи проблемы были, допустим красиво нарисовать провода от блока к блоку, а не просто прямые линии . Жаль все делаем в qt, прочитал где-то что qpainter подходит, но возникает проблема-масштаб.
from dark to light)
|
29.03.2015, 11:20 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Я не сишник )
Тут тоже не подскажу.
I'm learning to live...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Составьте таблицу истинности | Andrewwwww | Помощь студентам | 3 | 27.04.2013 21:08 |
Логический калькулятор | Avely | Помощь студентам | 1 | 16.04.2011 17:03 |
Программа выводящая таблицу истинности | and-silaev | Помощь студентам | 2 | 06.01.2011 18:30 |
Построить логический вектор | katya36 | Помощь студентам | 2 | 14.03.2009 13:32 |