Вычисление среднего значения числа студентов - Prolog
Формулировка задачи:
Сам пытался подсчитать среднее значение, но расчёты не удаются.
Решение задачи: «Вычисление среднего значения числа студентов»
textual
Листинг программы
class predicates среднее_количество_студентов:(среднееколичествостудентов) procedure(o). clauses среднее_количество_студентов(Количество):- assert(сумма1(0, 0)), группа(Номергруппы), количество_студентов_в_группе(Номергруппы, Количествостудентоввгруппе), retract(сумма1(Количествогрупп, Количествостудентов)), НовоеКоличествогрупп = Количествогрупп + 1, НовоеКоличествостудентов = Количествостудентов + Количествостудентоввгруппе, assert(сумма1(НовоеКоличествогрупп, НовоеКоличествостудентов)), fail; retract(сумма1(Количествогрупп, Количествостудентов)), Количество = Количествостудентов / Количествогрупп.
Объяснение кода листинга программы
- Задана процедура
среднее_количество_студентов, которая принимает один аргументКоличество. - Аргумент
Количествоне используется в процедуре, поэтому он может быть любым. - В процедуре используются следующие утверждения:
сумма1(0, 0)- это начальное значение суммы студентов и количества групп.группа(Номергруппы)- это утверждение о существовании группы с номеромНомергруппы.количество_студентов_в_группе(Номергруппы, Количествостудентоввгруппе)- это утверждение о количестве студентов в группе с номеромНомергруппы.
- Процедура выполняет следующие действия:
- Добавляет новое значение суммы студентов и количества групп.
- Увеличивает количество групп на 1.
- Увеличивает общее количество студентов на количество студентов в текущей группе.
- Добавляет новое значение суммы студентов и количества групп.
- Проваливается, чтобы не выводить результат.
- В конце процедуры вычисляется среднее количество студентов путем деления общего количества студентов на количество групп.
- Результат
Количествоне используется в процедуре, поэтому он может быть любым.