Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 18.12.2014
Сообщений: 64
1

Номер заданного элемента

21.12.2015, 01:16. Показов 3119. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Найти номер заданного элемента, если он стоит на середине, удалить элементы второй половины списка
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
33
34
35
36
domains
L=integer*
N=integer.
 
predicates
conc(L,L,L)
rev(L,L)
rd(N,L).
 
clauses
rd(0,[]).
rd(N,L):-
readint(A),
N1=N-1, rd(N1,L1),
L=[A|L1].
 
conc([],X,X).
conc([H|T],X,[H|Z]):-
conc(T,X,Z).
 
rev([],[]).
rev([H|T],Z):-
rev(T,Q), conc(Q,[H],Z).
/* номер позиции элемента*/
find_pos(list,int,int)
/* номер позиции элемента*/
find_pos([],_,0):-!.
find_pos([H|T],X,K):- X<>H,K1=K+1,find_pos(T,X,K1).
find_pos(_,_,K):-write(K),nl,!.
/* выведет элемент под номером N*/
find_n([],_,0):-!.
find_n([_|T],N,K):- N<>K,K1=K+1,find_n(T,N,K1).
find_n([H|_],_,_):-write(H),nl,!.
/*--------------------------------*/
/* удалить элемент с заданным номером */
del_n(list,int,int,list,list)
помогите все это нормально связать
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2015, 01:16
Ответы с готовыми решениями:

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

Вывести порядковый номер максимального элемента заданного массива
В данном коде в 29 строке (отметила комментарием) я пыталась вывести порядковый номер максимального...

Определить номер первого вхождения заданного элемента в список
Необходимо написать функцию, которая определяет номер первого вхождения заданого элемента в список L

Найти номер последнего экстремального элемента из заданного набора
Помогите пож-та решить примерчик. Дано целое число N и набор из N целых чисел. Найти номер...

8
0 / 0 / 1
Регистрация: 18.12.2014
Сообщений: 64
28.12.2015, 17:56  [ТС] 2
Prolog
1
2
3
4
5
6
7
8
9
10
domains
i=integer
il=i*
predicates
del(i,il,il)
clauses
del(1,_,[]):-!.
del(Num,[X|T],[X|T1]):-N=Num-1,del(N,T,T1).
goal
del(6,[4,11,-5,8,2,3,9,-5,2,10,11],L).
как сделать что бы она удаляла после заданного элемента а не поле того значения которое ей задашь

Добавлено через 20 часов 27 минут
подскажите как делать кто нибудь пожалуйста

Добавлено через 2 часа 51 минуту
хоть направление дайте как делать
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
29.12.2015, 15:28 3
Лучший ответ Сообщение было отмечено ВладимирС как решение

Решение

Удалить элемент по его номеру. Счет с нуля:

Prolog
1
2
3
4
5
6
7
8
9
10
11
domains
int=integer
intl=int*
 
predicates
delbynum(intl,int,intl)
 
clauses
delbynum([],_,[]).
delbynum([_|T],0,T).
delbynum([H|T],N,[H|R]) :- N1=N-1, delbynum(T,N1,R).
1
0 / 0 / 1
Регистрация: 18.12.2014
Сообщений: 64
29.12.2015, 16:58  [ТС] 4
Цитата Сообщение от Catstail Посмотреть сообщение
Удалить элемент по его номеру. Счет с нуля
СПАСИБО ОГРОМНОЕ а где будет производиться ввод заданного числа и как удалить вторую половину списка
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
29.12.2015, 17:14 5
Вот предикат, "отрезающий" хвост списка, начиная с заданного номера:

Prolog
1
2
3
cutbynum([],_,[]).
cutbynum(_,0,[]) :- !.
cutbynum([H|T],N,[H|R]) :- N1=N-1, cutbynum(T,N1,R).
Пользоваться всем этим можно так:

Prolog
1
2
3
goal
 
cutbynum([1,2,3,4,5,6,7,8],4,R), write(R), nl.
Должно напечататься [1,2,3,4].
0
0 / 0 / 1
Регистрация: 18.12.2014
Сообщений: 64
29.12.2015, 20:35  [ТС] 6
Цитата Сообщение от Catstail Посмотреть сообщение
Пользоваться всем этим можно так
вроде бы все соединил, оно ошибки выдает
0
0 / 0 / 1
Регистрация: 18.12.2014
Сообщений: 64
03.01.2016, 14:27  [ТС] 7
Цитата Сообщение от Catstail Посмотреть сообщение
Должно напечататься [1,2,3,4].
можно уточнить, поидее он должен удальть все элементы после цифры 4 а как можно сделать сто бы он еще проверял на какой он позиции и удалял только в том случае если эта цифра 4 была в середине
0
0 / 0 / 0
Регистрация: 06.05.2019
Сообщений: 15
24.12.2020, 16:47 8
Добавлено через 2 минуты
что нужно поменять чтоб удалялись числа перед перед веденным числом?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
24.12.2020, 17:32 9
Prolog
1
2
cuthead(0,X,X).
cuthead(N,[_|T],R):- N1 = N-1, cuthead(N1,T,R).
0
24.12.2020, 17:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2020, 17:32
Помогаю со студенческими работами здесь

Определить номер минимального элемента заданного одномерного массива
Определить номер минимального элемента заданного одномерного массива.

Найти номер первого элемента меньше заданного числа а.
Дан массив, упорядочить по убыванию. Найти номер первого элемента меньше заданного числа а.

Найти номер первого элемента массива, меньшего заданного числа а
Дан массив, упорядоченный по убыванию. Найти номер первого элемента, меньшего заданного числа а....

Найти значение и порядковый номер максимального элемента заданного массива
Здравствуйте уважаемые , нужна помощь в решение задачи и небольшая консультация по 2 во 2...


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

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