Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Амир_ОИИ.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
192 Кб
Скачать
☆
  1. Написать предикат, вычисляющий среднее арифметическое элементов списка

Конечно, можно, как всегда, опереться на рекурсию, но проще воспользоваться тем, что у нас уже есть предикаты, которые позволяют вычислить количество и сумму элементов списка. Для нахождения среднего нам достаточно будет сумму элементов списка разделить на их количество. Это можно записать следующим образом:

avg(L,A):– summa(L,S), /* помещаем в переменную S сумму элементов списка */ length(L,K), /* переменная K равна количеству элементов списка */ A=S/K. /* вычисляем среднее как отношение суммы к количеству */

summa([],S,S). summa([H|T],N,S):-N_T=H+N,summa(T,N_T,S). sum2(L,S):-summa(L,0,S). length([], 0). length([_|T], L):-length(T, L_T),L = L_T + 1.  avg([],0):-!. avg(L,A):-sum2(L,S),length(L,K),A=S/K.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]