Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 23

Сформировать список L1 из элементов: максимальный элемент всего списка

25.11.2018, 19:27. Показов 3570. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста, нужно выполнить задание:

Сформировать список L1 из элементов: максимальный элемент всего списка L, максимальный элемент среди первых (n-1) элементов L и т. д.

Заранее спасибо)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2018, 19:27
Ответы с готовыми решениями:

Список: Найти и удалить максимальный элемент списка
Сформировать однонаправленный список, в котором будут храниться целые числа. Найти и удалить максимальный элемент списка. Первый элемент...

Число элементов списка, среднее значение, минимальный и максимальный элемент в списке, медиану списка
Напишите функцию print_statistics(arr), которая принимает список целых чисел и печатает несколько так называемых статистик этого списка:...

Сформировать список L и перенести в конец списка его первый элемент
Сформировать список L: - перенести в конец списка его первый элемент; - в списке из каждой группы подряд идущих равных элементов...

12
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,679
Записей в блоге: 14
26.11.2018, 15:45
Лучший ответ Сообщение было отмечено Alka467 как решение

Решение

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
domains
int=integer
intl=int*
 
predicates
max(intl,int)
task(intl,intl)
 
clauses
max([X],X).
max([H|T],H) :- max(T,U), H>U.
max([H|T],X) :- max(T,X), X>H.
 
task([],[]).
task([H|T],[M|R]) :- max([H|T],M), task(T,R).
0
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 23
26.11.2018, 18:16  [ТС]
Спасибо!А можно пример запроса?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,679
Записей в блоге: 14
27.11.2018, 08:36
Лучший ответ Сообщение было отмечено Alka467 как решение

Решение

Prolog
1
2
3
goal
 
task([2,1,-3,4,-6,2],U),write(U),nl.
1
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 23
29.11.2018, 21:53  [ТС]
Catstail, а это нормально?
Миниатюры
Сформировать список L1 из элементов: максимальный элемент всего списка  
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,679
Записей в блоге: 14
30.11.2018, 10:18
На каких данных запущен код? Если максимум в конце, то да, нормально.
0
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 23
30.11.2018, 16:41  [ТС]
Catstail, где цель (2,4,-6,10,14)

Добавлено через 9 минут
я думала, что если максимальный элемент среди всего списка, а потом среди первых (n-1), то результат будет следующим:14,10,4,2,2
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,679
Записей в блоге: 14
30.11.2018, 17:38
Alka467, опс... А это я ошибся. Вы правы. Я сделал для последних элементов. Позже переделаю.
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
30.11.2018, 17:38
Prolog
1
2
3
4
5
max_n1([], []).
max_n1(L, [M | R]) :-
  max_list(L, M),
  append(L1, [_], L),
  max_n1(L1, R).
Prolog
1
2
3
4
?- L = [2,4,-6,10,14], max_n1(L, L1).
L = [2, 4, -6, 10, 14],
L1 = [14, 10, 4, 4, 2] ;
false.
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,679
Записей в блоге: 14
30.11.2018, 17:50
Не столь компактно, но работает:
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
domains
int=integer
intl=int*
 
predicates
max(intl,int)
lst(intl,intl)
app(intl,intl,intl)
rev(intl,intl)
task(intl,intl) 
 
clauses
max([X],X).
max([H|T],H) :- max(T,U), H>U.
max([H|T],X) :- max(T,X), X>H.
 
lst([],[]).
lst([H|T],[M|R]) :- max([H|T],M), lst(T,R).
 
app([],X,X).
app([H|T],X,[H|R]):-app(T,X,R).
 
rev([],[]).
rev([H|T],R):- rev(T,R1),app(R1,[H],R).
 
task(X,R) :- rev(X,RX),lst(RX,R).
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
30.11.2018, 17:58
А, ну да, если вспомнить про реверс
Prolog
1
2
3
4
5
6
7
max_n2(L, L2) :-
  reverse(L, L1),
  max_n2_(L1, L2).
max_n2_([H], [H]).
max_n2_([H | T], [M | R]) :-
  max_n2_(T, R),
  max_list([H | T], M).
Prolog
1
2
3
4
?- L = [2,4,-6,10,14], max_n2(L, L1).
L = [2, 4, -6, 10, 14],
L1 = [14, 10, 4, 4, 2] ;
false.
1
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 23
30.11.2018, 18:27  [ТС]
Спасибо Вам большое) Теперь осталась самая малость - разобраться в коде
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
01.12.2018, 12:22
отладчик - лучший помощник
max_n
если онлайн не удовлетворяет - надо SWI-Prolog инсталлировать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.12.2018, 12:22
Помогаю со студенческими работами здесь

Если первый и последний элементы списка-аргумента - символы, то сформировать список с первого и последнего элементов, иначе вернуть начальный список
Напишите, пожалуйста, функцию, которая для аргумента-списка формирует список-результат за правилом: если первый и последний элементы...

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

Максимальный элемент каждой строки матрицы заменить средним арифметическим элементов всего массива
Требования к выполнению заданий 1.Массивы приватизировать случайными числами (от -5 до 5). 2.Написать функции инициализации массива и...

По списку элементов сформировать новый список элементов согласно заданному списка порядковых номеров
Собственно, по списку элементов сформировать новый список элементов согласно заданному списка порядковых номеров

Сформировать массив из 10 элементов. Найти минимальный элемент и максимальный
Помогите:) 1. Сформировать массив из 10 элементов. Найти минимальный элемент и максимальный.


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru