Получение нескольких ответов Visual Prolog
Формулировка задачи:
Добрый день! Нужно реализовать программу "Англо-русский словарь". Возникла такая проблема: база хранится в отдельном файле, при работе программа выводит не все возможные переводы слова, а только первый. Пожалуйста, помогите разобраться, в чем дело
Код:
Файл с базой (пока пробный, поэтому маленький):
Заранее благодарю всех, кто отзовется
Я подумала, что для вывода всех возможных переводов нужно использовать предикат findall. Только я никак не могу понять, как записать его аргументы (для перевода русских слов строчки 50-54). В конце программы (84 строчка) findall собирает целые факты, проблем с пониманием этого нет. А тут нужно ведь выбрать только перевод слова...
Решение задачи: «Получение нескольких ответов Visual Prolog»
textual
Листинг программы
punkt('1'):-nl, write("Введите русское слово: "),readln(Rus), not( rus2eng(Rus, Eng), not( write("Перевод: ",Eng),nl,nl ) ), readchar(_),menu.
Объяснение кода листинга программы
- Вывод сообщения
Введите русское слово:
и чтение русского слова из стандартного ввода (Rus). - Преобразование русского слова в английский (rus2eng(Rus, Eng)).
- Если перевод не удался, то выводится сообщение
Ошибка перевода
и процесс повторяется. - Если перевод удался, то выводится сообщение
Перевод:
и перевод (Eng) выводится на экран. - Чтение символа из стандартного ввода (readchar(_)).
- Переход в главное меню (menu).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д