Алгоритм действий (нахождение среднего значения элементов списка) - Prolog

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

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

Всем привет. Срочно нужно узнать алгоритм действий программы. (Т.е что за чем идет, к примеру первое - это вопрос, второе - это строка #2 и т.п) Что представляет собой каждая строка я знаю, но вот порядок - нет. Код:
Помогите) Очень срочно :с

Решение задачи: «Алгоритм действий (нахождение среднего значения элементов списка)»

textual
Листинг программы
sum([], 0).  %% сумма эл-тов пустого списка = 0
sum([H|T], S) :-sum(T, S_T), %% сумма эл-тов списка = сумма эл-тов хвоста
S = S_T + H. %% плюс голова
length([], 0). %% длина пустого списка = 0
length([_|T], L) :-length(T, L_T), %% длина списка = длина хвоста
L = L_T + 1. %% плюс 1
avg(L,A):-sum(L,S), %% для списка L сумма=S
length(L,K), %% длина = K
A=S/K. %% среднее...
?-avg([8,7,3],A),write(A)

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

  1. sum([], 0). - Эта строка кода определяет функцию sum, которая принимает два аргумента: список и сумму. Если список пуст, то сумма равна 0.
  2. sum([H|T], S) :-sum(T, S_T), - Здесь функция sum рекурсивно вызывается для хвоста списка T с суммой S_T. Затем к этой сумме добавляется значение головы списка H.
  3. length([], 0). - Эта строка кода определяет функцию length, которая принимает два аргумента: список и его длину. Если список пуст, то его длина равна 0.
  4. length([_|T], L) :-length(T, L_T), - Здесь функция length рекурсивно вызывается для хвоста списка T с длиной L_T. Затем к этой длине добавляется 1.
  5. avg(L,A):-sum(L,S), - Эта строка кода определяет функцию avg, которая принимает два аргумента: список L и переменную A. Функция sum вызывается для списка L с переменной S, а функция length вызывается для списка L с переменной K. Затем вычисляется среднее значение, разделяя сумму на длину.
  6. write(A) - Эта строка кода выводит значение переменной A, которое является средним значением списка [8,7,3].
  7. ?-avg([8,7,3],A),write(A) - Это строка кода, которая вызывает функцию avg с аргументами [8,7,3] и переменной A. Затем результат выводится с помощью функции write.

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


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

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

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