Получение нескольких ответов 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.

Объяснение кода листинга программы

  1. Вывод сообщения Введите русское слово: и чтение русского слова из стандартного ввода (Rus).
  2. Преобразование русского слова в английский (rus2eng(Rus, Eng)).
  3. Если перевод не удался, то выводится сообщение Ошибка перевода и процесс повторяется.
  4. Если перевод удался, то выводится сообщение Перевод: и перевод (Eng) выводится на экран.
  5. Чтение символа из стандартного ввода (readchar(_)).
  6. Переход в главное меню (menu).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5