Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 13.04.2020
Сообщений: 13
1

Среднее арифметическое частей списка

21.03.2021, 12:40. Показов 883. Ответов 2

Есть список [-1,2,-5,4,6,7,1,-8,-7,-1,5,3,5], требуется вычислить среднее арифметическое отрицательных элементов первой половины списка и произведение положительных элементов второй половины списка.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2021, 12:40
Ответы с готовыми решениями:

Среднее арифметическое списка
Помогите пожалуйста!!! Напишите предикат, находящий среднее арифметическое списка

Среднее арифметическое списка
Предикат, считающий среднее арифметическое значение элементов списка. пжл с объяснением.

Среднее арифметическое элементов списка
Помогите найти среднее арифметическое элементов списка: domains i=integer* r=real ...

Вычислить среднее арифметическое элементов списка
domains i=integer* predicates sum(i,i) avg(i,i) length(i,i) clauses sum(, 0).

2
Модератор
Эксперт Python
28570 / 15438 / 3049
Регистрация: 12.02.2012
Сообщений: 25,299
Записей в блоге: 4
21.03.2021, 14:42 2
Лучший ответ Сообщение было отмечено Gerby1337 как решение

Решение

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
main:-
    process,
    halt.
    
    take(0,_,[]).
    take(N,[H|T],[H|R]) :- N1 is N-1, take(N1,T,R).
    
    drop(0,X,X).
    drop(N,[_|T],R):- N1 is N-1, drop(N1,T,R).
    
    split(X,X1,X2):- length(X,N), K is N div 2, take(K,X,X1), drop(K,X,X2).
    
    count_neg([],0,0).
    count_neg([H|T],S,C):- H<0, count_neg(T,S1,C1), S is S1+H, C is C1+1.
    count_neg([_|T],S,C):- count_neg(T,S,C).
    
    avg_neg(X,A) :- count_neg(X,S,C), C>0, A is S/C; fail. 
    
    prod_pos([],1).
    prod_pos([H|T],P):- H>0, prod_pos(T,P1), P is H*P1.
    prod_pos([_|T],P):- prod_pos(T,P).
    
    task(X,R1,R2) :- split(X,X1,X2), avg_neg(X1,R1), prod_pos(X2,R2).
    
process:-
        task([-1,2,-5,4,6,7,1,-8,-7,-1,5,3,5],R1,R2),write(R1),nl,write(R2),nl.
:- main.
0
0 / 0 / 0
Регистрация: 13.04.2020
Сообщений: 13
21.03.2021, 14:59  [ТС] 3
Я изучаю SWI Prolog, не могли бы вы показать как это будет выглядеть именно там

Добавлено через 14 минут
Разобрался, спасибо большое!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2021, 14:59

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Вычислить среднее арифметическое элементов списка
помогите вычислите среднее арифметическое его элементов DOMAINS LIST = integer* PREDICATES...

Среднее арифметическое и добавление в конец списка
1. Найти среднее арифметическое элементов списка целых чисел. 2. Добавить элемент в конец ...

Деревья. Преобразование дерева в список. Вывод списка в списке. Найти среднее арифметическое всех элементов
Дан список, элементы которого — непустые бинарные деревья с числами в качестве вершин. Для каждого...

Среднее арифметическое суммы элементов списка
Нужно написать программу, которая вычисляет сумму элементов введенного списка, считает его длину и...

Среднее арифметическое отрицательных чисел произвольного списка
Добрый вечер.Нужно вычислить среднее арифметическое отрицательных чисел произвольного списка. Есть...

Вычислить среднее арифметическое положительных чисел, которые являются элементами заданного списка
Вычислить среднее арифметическое положительных чисел, которые являются элементами заданного списка


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.