IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Буквенно-цифровые ребусы, рекурсия, решение любых ребусов
сообщение
Сообщение #1


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Недавно снова попалась мне на глаза задачка типа "решить ТОЧКА+КРУГ=КОНУС", вместе с решением. И, как обычно, это решение вызвало у меня внутреннее отвращение.. ага, набор переменных: t,o,c,k,a, r,u,g,.. Тоска, короче )). Программирование для арифмометра. Я думаю, вы уже поняли, что я сделал.. yes2.gif А потом я подумал - чего добру пропадать? забацаю-ко я темку.. Но, как человек, претендующий на корректность по отношению к другим, я сначала запустил поиск по "ребус*" на нашем Форуме..

Моему вниманию открылся список тем, многие из которых были вполне по предмету. Идя по ним, я все больше утверждался в мнении, что, по крайней мере, тут подобный подход не применялся - пока, наконец, не наткнулся на это сообщение:
помогите решить ребус!

Sir volvo снова меня опередил! smile.gif Но - что интересно! - на этот пост нет ни одного ответа ((. И, более того, после этого все снова и снова предлагались "решения" по типу "тоска", описанному выше.. Я, конечно, не упустил своей (не такой уж редкой, впрочем)) возможности поставить +1 автору, но хочу спросить его: volvo, почему ты даже не упомянул там ГЛАВНОГО?? Ведь главное, ессно, не то, что циклы заменены на рекурсию!! А то, что этот код годится для решения ЛЮБЫХ ребусов вида a+b=c! Достаточно просто заменить входные строки.. ))

Итак, ближе к делу.. Признавая первенство volvo, я все же публикую свой код (причем в новой теме, которую предполагаю в дальнейшем двинуть в FAQ). Этот код имеет некоторые преимущества (которые, я уверен, volvo мог бы легко добавить при желании), а именно: допустимы несколько знаков операций (как слева, так и справа от знака = ), в том числе +, -, *, / (без приоритетов). Ну и по мелочам, типа русские буквы..

Вот, собсно, код (писался под FP):
REBUS v.1.0 (Показать/Скрыть)

Если у кого-то есть вопросы/критика по коду - милости прошу.

Казалось бы - все, но есть еще один аспект этого вопроса. И про него я сейчас создам тему в разделе Свободное Общение.. ))
(тема создана: Конкурс ребусов! )


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Размещаю новую версию программы, разгадывающей ребусы.
Что нового:

1. Интерфейс. Теперь в начале выдается информация о том, сколько присутствует различных букв. Мне кажется, это полезно (так как надо следить, чтоб их число не превзошло 10).

2. Теперь можно использовать и цифры! Цифры, конечно, просто имеют свои значения. Например, ребус:
a*3-5=7
- имеет одно решение:
4*3-5=7
(помним, что решением называется ВСЯ строка).
В связи с этим интересная особенность: ребус, составленный из одних только цифр (без букв) может служить для проверки верности соотношения. И это совсем нелишне, потому что не каждый калькулятор сделает вам вычисления БЕЗ учета приоритетов операций! smile.gif

3. Исправлена небольшая ошибка (умножение и деление фактически не работали, извиняюсь..) - отсутствовали символы * и / в операторе CASE (исправления уже внесены в предыдущий пост, так что тот код тоже верен теперь).

Итак, прошу любить и жаловать:
REBUS v.1.1 (Показать/Скрыть)


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Первый раз использовал Вашу программу (1.1) и сразу заметил невообразимое!
Ввёл последовательность Ножницы+Бумага=Кусочки.
В итоге мне говорится что тут 14 решений И на следующей строке выводится надпись "Задача не разрешима"
Пользуюсь Borland Pascal'ем

Извиняюсь за вопрос) Повнимательней взглянул на алгоритм, я понял, что решений должно быть меньше 10.

Сообщение отредактировано: Cheburashka -


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
В итоге мне говорится что тут 14 решений
Не 14 решений, а 14 разных букв... Именно поэтому задача и неразрешима.

Только если в 16-ричной СС решать ребусы smile.gif
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.12.2024 21:05
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name