SWI Prolog, реализовать запрос: "Найти предприятие, у которого больше всего вакансий"

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

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

Здравствуйте, Уважаемые Профессионалы! Возникли сложности при реализации запроса в среде SWI Prolog. По заданию была создана База знаний. Структура Базы знаний представлена в виде составных термов.
Запросы типа: "Найти все должности, для которых подходят соискатели со средним образованием" реализовать удалось методами сопоставления и унификации.
Необходимо реализовать запрос: "Найти предприятие, у которого больше всего вакансий". Ни в какую не получается... Если кто-нибудь может подкинуть идею, было бы просто замечательно. Заранее Большое Спасибо, Уважаемые Профессионалы!

Решение задачи: «SWI Prolog, реализовать запрос: "Найти предприятие, у которого больше всего вакансий"»

textual
Листинг программы
vacancy(company('Юлмарт','менеджер',30000), education('высшее экономическое'), sex('мужской'), spec('менеджер'), lang('английский'), age(25)).
%vacancy(company('Юлмарт','консультант',20000), education('высшее экономическое'), sex('женский'), spec('менеджер'), lang('английский'), age(20)).
%vacancy(company('Юлмарт','программист',40000), education('высшее техническое'), sex('мужской'), spec('техник'), lang('английский'), age(21)).
vacancy(company('Электросила','столяр',50000), education('среднее специальное'), sex('мужской'), spec('столяр'), lang('нет'), age(23)).
vacancy(company('Ниагара','продавец',35000), education('среднее специальное'), sex('женский'), spec('менеджер'), lang('английский'), age(18)).
vacancy(company('Электросила','токарь',45000), education('среднее специальное'), sex('мужской'), spec('токарь'), lang('нет'), age(25)).
vacancy(company('Ниагара','кассир',20000), education('среднее'), sex('женский'), spec('менеджер'), lang('английский'), age(20)).

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

  1. У нас есть факт vacancy(A, B, C, D, E, F), где A - компания, B - должность, C - зарплата, D - образование, E - пол, F - возраст.
  2. Мы хотим найти компанию с наибольшим количеством вакансий.
  3. Для этого мы можем использовать счетчик, который будет увеличиваться каждый раз, когда мы встречаем новую вакансию.
  4. Мы также можем использовать переменную, чтобы сохранить компанию с наибольшим количеством вакансий.
  5. Мы проходим по каждой вакансии и увеличиваем счетчик, если компания совпадает с текущей компанией.
  6. Если счетчик для текущей компании больше, чем счетчик для сохраненной компании, мы обновляем сохраненную компанию.
  7. В конце процесса мы получаем компанию с наибольшим количеством вакансий.
  8. Мы можем отсортировать результаты по возрастанию или убыванию количества вакансий.
  9. Мы можем отобразить результаты в консоли или использовать их для других целей.

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


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

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

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