Вычислить среднее арифметическое элементов списка - Prolog (226407)

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

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

помогите вычислите среднее арифметическое его элементов

Решение задачи: «Вычислить среднее арифметическое элементов списка»

textual
Листинг программы
domains
reall=real*
 
predicates
sumn(reall,real,real)
avg(reall,real)
 
clauses
sumn([],0,0).
sumn([H|T],N,S) :- sumn(T,N1,S1), N=N1+1, S=S1+H.
 
avg(X,A) :- sumn(X,N,S), A=S/N.

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

  1. domains - определяются типы данных для переменных. В данном случае, переменная reall является числовой (real*).
  2. predicates - определяются функции, которые могут быть решены как истинные или ложные. В данном случае, определены две функции: sumn и avg.
  3. clauses - определяются конкретные решения функций. В данном случае, определено два правила: одно для функции sumn, другое для функции avg.
  4. sumn([],0,0). - это правило для функции sumn, которое гласит, что если входной список пуст, то сумма элементов списка равна 0, а переменные N и S не изменяются.
  5. sumn([H|T],N,S) :- sumn(T,N1,S1), N=N1+1, S=S1+H. - это правило для функции sumn, которое гласит, что если входной список не пуст, то сумма элементов списка равна сумме элементов оставшейся части списка (T) и текущего элемента (H), а переменные N и S изменяются соответственно.
  6. avg(X,A) :- sumn(X,N,S), A=S/N. - это правило для функции avg, которое гласит, что если входной список X и сумма его элементов S решены, то среднее арифметическое элементов списка (A) равно S, деленному на N.

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


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

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

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