Среднее арифметическое и добавление в конец списка - Prolog
Формулировка задачи:
1. Найти среднее арифметическое элементов списка целых чисел.
2. Добавить элемент в конец
asl :-
write('Input list L '),
nl,
read(L),
nl,
write('List L= '),
write(L),
nl,
avg(L, A),
write('AVG= '),
write(A).
sum([], 0).
sum([H|T], S) :–
sum(T, S_T),
S is S_T + H.
avg([],0):–
!.
avg(L,A):–
sum(L, S),
length(L, K),
A=S/K.
conclist :-
write('Input list L1 '),
nl,
read(L1),
nl,
write('List L1 = '),
write(L1),
nl,
write('Input list L2 '),
nl,
read(L2),
nl,
write('List L2 = '),
write(L2),
nl,
conc(L, L1, L2),
write("L = "),
write(L).
conc([], L, L).
conc([X|L1], L2, [X|L3]) :-
conc(L1, L2, L3).
swiprolog 4 ошибки "Operator expected" Почему и как это исправить?
Решение задачи: «Среднее арифметическое и добавление в конец списка»
textual
Листинг программы
push_back([X|Xs], Elem, [X|Xs1]) :- push_back(Xs, Elem, Xs1). push_back([], Elem, [Elem]).
Объяснение кода листинга программы
- В коде представлена процедура push_back, которая добавляет элемент Elem в конец списка Xs.
- Если список Xs пуст, то в него добавляется элемент Elem.
- Если список Xs не пуст, то рекурсивно вызывается процедура push_back для списка Xs и элемента Elem, при этом Xs1 - это результат выполнения рекурсивного вызова.
- Результатом выполнения процедуры является список Xs1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д