Найти фамилии студентов данной группы, которые получили максимальный балл (программа не запускается) - Prolog

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

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

дана инф ввиде:ФИО,группа,балл. найти фамилии студентов данной группы,которые получили максимальный балл

Решение задачи: «Найти фамилии студентов данной группы, которые получили максимальный балл (программа не запускается)»

textual
Листинг программы
Domains
intl=integer*
 
PREDICATES
 
student(string,string,integer).
nondeterm max(intl,integer).
 
CLAUSES
 
student("Krjanovskaya Oksana ", "IVT", 80).
student("Chaichenko Anna", "IVT" ,81).
student("Smolenkaya Marina", "IVT", 82).
student("Gudkova Tatiana", "IVT", 83).
student("Kirillov Vladislav", "IVT", 84).
student("Aitbaeva Zarina", "IVT", 85).
student("Satutybalbaev Tilek", "IVT", 86).
student("Sadirov Ernazar", "IVT", 87).
student("Mukaev Temirlan", "IVT", 88).
student("Bulanbekov Erlan", "IVT", 89).
 
max([X],X).
max([H|Tail],H):-max(Tail,M),H>M,!.
max([_|Tail],M):-max(Tail,M).
 
GOAL
findall(Ball,student(FIO,Gr,Ball),L),max(L,X),write(X),nl,student(Name,Gr,X),write(Name),nl.

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

  1. В коде используется язык программирования Prolog.
  2. Код содержит два основных блока: определение доменов и определение предикатов.
  3. Домен intl определен как integer*, что означает, что он может содержать любое количество целых чисел.
  4. Предикат student определен как student(string,string,integer), где первые два аргумента являются строками (именем и фамилией студента), а третий аргумент - целым числом (баллом студента).
  5. В блоке clauses определены студенты группы с их именами, фамилиями и баллами.
  6. Предикат max определен для нахождения максимального значения в списке целых чисел.
  7. В блоке goals определена задача: найти фамилии студентов с максимальным баллом и вывести их на экран.
  8. Для решения задачи используется функция findall, которая ищет все значения, удовлетворяющие заданному предикату (студенты с максимальным баллом), а затем функция max используется для нахождения максимального значения в полученном списке.
  9. Затем фамилии студентов с максимальным баллом выводятся на экран с помощью функции write.

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


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

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

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