0 / 0 / 0
Регистрация: 02.06.2014
Сообщений: 11
1

Обратить отрезок из m элементов, следующих за k-ым элементом данного списка l

16.06.2014, 22:08. Показов 1687. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Обратить отрезок из m элементов, следующих за k-ым
элементом данного списка l.
l - список, элементами которого являются списки.
Списки из обращенного отрезка не обращать. Visual Prolog.
Например,
revL(1,2,[[1,2,3],[4,5],[6,7,8],[9]],L).

L=[[1,2,3],[6,7,8],[4,5],[9]]
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2014, 22:08
Ответы с готовыми решениями:

Найти число элементов списка между минимальным элементом и максимальным элементом
Дан список L, элементы которого являются целыми числами. Найти число элементов между минимальным...

Функция, возвращающая список состоящий из элементов данного списка + n последних элементов списка
определить функцию принимающую в качестве параметров список символов и число и возвращающую в...

В массиве подсчитать количество положительных элементов, следующих за первым отрицательным элементом
3. Да одномерный массив 23 элементов. Подсчитать количество положительных элементов , следующих за...

Получить сумму всех элементов массива, следующих за первым элементом, равным A (Delphi 7)
Даны натуральное число n, целые числа А, Х1, ..., Хn. Если в последова- тельности есть хотя бы...

2
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
17.06.2014, 16:29 2
Лучший ответ Сообщение было отмечено widgi как решение

Решение

Турбо-Пролог:

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
28
29
30
31
32
domains
int=integer
intl=int*
intll=intl*
 
predicates
app(intll,intll,intll)
subs(intll,int,int,intll)
len(intll,int)
rev(intll,intll)
revl(int,int,intll,intll)
 
clauses
app([],L,L).
app([H|T],L,[H|R]):- app(T,L,R).
 
subs(_,0,0,[]).
subs([_|T],N,M,Z) :- N1=N-1, subs(T,N1,M,Z).
subs([H|T],0,M,[H|Z]) :- M1=M-1, subs(T,0,M1,Z).
 
len([],0).
len([_|T],N) :- len(T,N1),N=N1+1.
 
rev([],[]).
rev([H|T],Z) :- rev(T,Q), app(Q,[H],Z).
 
revl(N,M,L,Z) :- subs(L,0,N,Q1), subs(L,N,M,Q2), rev(Q2,Q2R), len(L,LL), M1=LL-N-M, B=N+M, 
subs(L,B,M1,Q3), app(Q1,Q2R,Q4), app(Q4,Q3,Z).
 
goal
 
revl(1,2,[[1,2,3],[4,5],[6,7,8],[9]],Z),write(Z),nl.
1
0 / 0 / 0
Регистрация: 02.06.2014
Сообщений: 11
17.06.2014, 22:08  [ТС] 3
Спасибо большое!!
0
17.06.2014, 22:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2014, 22:08
Помогаю со студенческими работами здесь

Найти сумму и количество нечетных положительных элементов, следующих за первым по порядку нулевым элементом
Дан массив А(50). Найти сумму и количество нечетных положительных элементов, следующих за первым по...

Лямба вызов (Получить разность между k - м элементом списка х и n - м элементом списка y)
Помогите пожалуйста Составить не рекурсивную программу в форме лямбда вызова. Получить разность...

Если в массиве есть элемент, равный числу P, то получить среднее арифметическое всех элементов, следующих за первым таким элементом
Дана линейная таблица, которая содержит N целых чисел. Если в таблице есть хотя бы один элемент,...

Получить разность между k-м элементом списка х и n-м элементом списка y
1. Даны два числовых списка x и Y, k и n - целые числа (k, n = 1, 2, 3). Получить разность между...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru