Булевские ф-ции, упрощение булевских ф-ций |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Булевские ф-ции, упрощение булевских ф-ций |
rol5en |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 27 Пол: Мужской Репутация: 0 |
Помогите решить задачу!
Данные: строка содержащая булевскую функцию от переменных A, B, .....(отрицание А записывается как \А), для определения которой использованы только операции +, *, \ (скобки отсутствуют). Задание упростить функцию, исключив повторяющиеся слагаемые или сомножетели и нулевые слагаемые. Заранее спасибо! |
klem4 |
Сообщение
#2
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Мог бы ты написать пару примеров входных и выходных данных ?
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
Сообщение
#3
|
Гость |
To: klem4
А зачем? Без данных слабо? const To: rol5en Погоняй на разных примерчиках, в принципе (хотя это и не проверялось !!!) должно работать с любым количеством переменных, НО (!!!) обозначения переменных должны быть по порядку: (a, b, c, d, ...) Само желаемое количество переменных задается здесь: const Найдешь глюки - говори, на каких значениях поймал их. Задание, кстати, довольно интересное Сообщение отредактировано: volvo - |
rol5en |
Сообщение
#4
|
Новичок Группа: Пользователи Сообщений: 27 Пол: Мужской Репутация: 0 |
Перед последним begin`ом в строчке // s: string = 'a*\b + b'; ставит курсор
на // и пишет begin expected |
klem4 |
Сообщение
#5
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
В BP и TP нету комментария вида //, убери // и все что за ним стоит или заключи это
между { и } я думаю дело в этом ... -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
Сообщение
#6
|
Гость |
Вот что значит FPC
Замени на { s: string = 'a*\b + b'; } а можешь вообще удалить, это было просто для теста... |
rol5en |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 27 Пол: Мужской Репутация: 0 |
Ему не нравиться переменная //s можно поменять на ps !!!
|
rol5en |
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 27 Пол: Мужской Репутация: 0 |
А вот ещё если написать строчку s: string = 'a*\a*b+a*\b+b';
как s: string = 'a*\a*b+a*\b+b+b; по идее должно получиться a*\b + 2*b' там ведь в задание написаноисключив повторяющиеся слагаемые я это понимаю как b+b=2*b или я что не так понял |
volvo |
Сообщение
#9
|
Гость |
To: rol5en
То, что ты написал в предыдущем посте на вяжется никак с названием топика. У тебя тема какая? Цитата Булевские ф-ции, упрощение булевских ф-ций Допустим, b = True... Что имеем? True + True = 2 * True? Нет, в булевой алгебре True + True = True or True = True !!! А то, что ты написал - это приведение подобных, и к булевой алгебре никакого отношения не имеет... |
rol5en |
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 27 Пол: Мужской Репутация: 0 |
Да ты прав! Извини!
|
rol5en |
Сообщение
#11
|
Новичок Группа: Пользователи Сообщений: 27 Пол: Мужской Репутация: 0 |
Я тут знаешь подумал над твоим True + True = True or True = True!!! и пришёл к выводу что исключение повторяющихся слагаемых значит b+b=b т.е. a*\a*b+b+b будет равно b! Как бы это сделать???
|
volvo |
Сообщение
#12
|
Гость |
Цитата Как бы это сделать??? Уже сделано... Я исправил программу, проверяй новую версию... Она как раз это и делает... |
rol5en |
Сообщение
#13
|
Новичок Группа: Пользователи Сообщений: 27 Пол: Мужской Репутация: 0 |
А где её взять? Новую версию? Или ты ту отредактировал?
Сообщение отредактировано: rol5en - |
volvo |
Сообщение
#14
|
Гость |
Цитата Или ты ту отредактировал? Именно... Пост №3... Все исправления будут вноситься мной туда... Там всегда будет самая последняя и правильная версия... |
rol5en |
Сообщение
#15
|
Новичок Группа: Пользователи Сообщений: 27 Пол: Мужской Репутация: 0 |
А как мне туда перейти? Кинь ссылку=)
|
volvo |
Сообщение
#16
|
Гость |
А что, в начало этой же страницы ты без ссылки не сможешь подняться?
|
rol5en |
Сообщение
#17
|
Новичок Группа: Пользователи Сообщений: 27 Пол: Мужской Репутация: 0 |
Извини да ступил! Но раз это последняя версия то убери может тогда
// s: string = 'a*\b + b'; и ещё если написать a+b+a*\b+a то получиться +a+b+a*\b как убрать плюс??? |
volvo |
Сообщение
#18
|
Гость |
To: rol5en
В следующий раз копируй программу ПОЛНОСТЬЮ - со всеми пробелами !!! Ты упустил какой-то пробел (ищи теперь сам где он был), и теперь будешь получать неверный результат... У меня только что нормально отработало. |
rol5en |
Сообщение
#19
|
Новичок Группа: Пользователи Сообщений: 27 Пол: Мужской Репутация: 0 |
Ещё раз извини!
|
rol5en |
Сообщение
#20
|
Новичок Группа: Пользователи Сообщений: 27 Пол: Мужской Репутация: 0 |
Ещё вопрос это я упустил или а*а даёт ноль?
|
Текстовая версия | 21.12.2024 20:15 |