Выбор решения - Prolog

Узнай цену своей работы

Формулировка задачи:

Уважаемые! Решаю в Visual Prolog 5.2 следующую задачу(сразу оговорюсь- без использования списков-их не проходили еще со студентами): На улице, встав в кружок, беседует четыре девочки: Аня, Валя, Надя, Галя. Девочка в зеленом платье – не Аня и не Валя - стоит между девочкой в голубом платье и Галей. Девочка в белом платье стоит между девочкой в розовом платье и Валей. Какого цвета платье у каждой из девочек? Вот мой код:
Выдаются 2 решения.Недочет понятен:не отражено,что девочка в белом стоит между девочкой в розовом и Валей.Не подскажете,как это сделать?

Решение задачи: «Выбор решения»

textual
Листинг программы
girl('anya').
girl('valya').
girl('nadya').
girl('galya').
 
color('green').
color('blue').
color('white').
color('pink').
 
otnosh(X,Y):-
    girl(X),color(Y).
    
whois(X,Y,Z,W,X1,Y1,Z1,W1):-
   girl(X),girl(Y),girl(Z),girl(W), color(X1),color(Y1),color(Z1),color(W1),
   X\=Y,X\=Z, X\=W, Y\=Z, Y\=W, Z\=W, X1\=Y1,X1\=Z1, X1\=W1, Y1\=Z1, Y1\=W1, Z1\=W1,
  otnosh(X,X1),otnosh(Y,Y1),otnosh(Z,Z1),otnosh(W,W1),
  X1\='green', Y1\='green', Y1\='white', Y1\='pink', W1\='white', W1\='pink', W1\='blue'.
  
 start:-
     whois(X,Y,Z,W,X1,Y1,Z1,W1),
     write(X),write(' - '),writeln(X1),
     write(Y),write(' - '),writeln(Y1),
     write(Z),write(' - '),writeln(Z1),
     write(W),write(' - '),write(W1).

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

  1. Создаются четыре переменные типа girl для представления имен девочек: anya, valya, nadya, galya.
  2. Создаются четыре переменные типа color для представления цветов: green, blue, white, pink.
  3. Создается функция otnosh, которая требует, чтобы две переменные типа girl были равны друг другу, а две переменные типа color были равны друг другу.
  4. Создается функция whois, которая требует, чтобы четыре переменные типа girl и четыре переменные типа color были равны друг другу, а восемь различных пар девушек и цветов были представлены.
  5. Функция start запускается для представления информации, введенной пользователем.
  6. В функции start вызывается функция whois для проверки введенных пользователем данных.
  7. В функции start выводятся значения переменных X, Y, Z и W, а также соответствующих им переменных X1, Y1, Z1 и W1.

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


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

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

14   голосов , оценка 3.786 из 5
Похожие ответы