Вопрос 7. Написать программу для вставки элемента в список после всех вхождений указанного.


Добавил:DMT
Дата создания:30 декабря 2007, 19:22
Дата обновления:30 декабря 2007, 19:22
Просмотров:7995 последний сегодня, 0:06
Комментариев: 8
Вопрос 7. Написать программу для вставки элемента в список после всех вхождений указанного.
up

Комментарии для "Вопрос 7. Написать программу для вставки элемента в список после всех вхождений указанного. "


Пользователь: DMT
Сообщений: 123
Статус: Программист
Зарегистрирован:
18 октября 2007, 2:35
Был:13 ноября 2017, 4:54
DMT
smsup
Дата: 4 января 2008, 16:12 Сообщение № 1
Вариант 1:
Код на Lisp
  1. domains
  2. int=integer
  3. str=string
  4. strp=str*
  5. predicates
  6. insert(str,str,strp,strp).
  7. /* вставка элемента в список перед указанными
  8. параметры:
  9. 1- вставляемый элемент
  10. 2- элемент после
  11. которого происходит вставка
  12. 3- исходный список
  13. 4- измененный список*/
  14. clauses
  15. insert(X,_,[],[]):-!.
  16. insert(X,Head,[Head|Z],[Head,X|T]):-insert(X,Head,Z,T),!.
  17. insert(X,Y,[Head|Z],[Head|N]):- insert(X,Y,Z,N).
  18. goal
  19. insert("4","3",["1","2","3","5"],T).
При использовании обязательна ссылка на http://DMTSoft.ru

Вариант 2:
Код на Lisp
  1. domains
  2. s=symbol
  3. i=integer
  4. ss=s*
  5. predicates
  6. ins(s,s,ss,ss).
  7. clauses
  8. ins(N,P,[ ],[ ]).
  9. ins(N,P,[P|H],[N,P|H]).
  10. ins(N,P,[M|H],[M|H]).
  11. ins(N,P,H,H1).
  12. goal
  13. ins(a,c,[b,c,d],T),write(T).
При использовании обязательна ссылка на http://DMTSoft.ru

Предложите Ваш вариант...
Пользователь: lilo
Сообщений: 38
Статус: Незримый
Зарегистрирован:
8 января 2008, 12:39
Был:9 апреля 2008, 19:55
lilo
smsup
Дата: 17 января 2008, 15:49 Сообщение № 2
как мы поняли "после всех вхождений указанного" имеется ввиду, что после последнего встреченного указанного элемента, т.е. если он 2 раза попался то вставляем только второй раз, тогда оба кода получаются не рабочими, вот другой вариант:
Код на Lisp
  1. domains
  2. str=string
  3. strp=str*
  4. predicates
  5. revers(strp,strp,strp)
  6. /* инверсия списка(вспомогательный предикат)
  7. - аккумулятор
  8. - исходный список
  9. - получаемый список */
  10. insert(str,str,strp,strp)
  11. /* вставка элемента в список перед первым вхождением указанного
  12. - вставляемый элемент
  13. - элемент перед которым происходит вставка
  14. - исходный список
  15. - измененный список
  16. */
  17. clauses
  18. revers(Y, [], Y).
  19. revers(X1, [Z|X2], Y):-
  20. revers([Z|X1], X2, Y).
  21. insert(_, _, [], []):-
  22. !.
  23. insert(X, Y, [Y|Z], [X, Y|Z]):-
  24. !.
  25. insert(X, Y, [H|Z], [H|N]):-
  26. insert(X, Y, Z, N).
  27. goal
  28. Ls=["2", "3", "5", "3", "5"],
  29. revers([], Ls, Ls1),
  30. insert("1", "3", Ls1, Ls2),
  31. revers([], Ls2, Ls3).
  32.  
При использовании обязательна ссылка на http://DMTSoft.ru
Пользователь: DMT
Сообщений: 123
Статус: Программист
Зарегистрирован:
18 октября 2007, 2:35
Был:13 ноября 2017, 4:54
DMT
smsup
Дата: 17 января 2008, 16:30 Сообщение № 3
"после всех вхождений указанного" - так и имеется ввиду!!!!
Вполне понятное предложение!! В задании нет такого вставить элемент после последнего его вхождения!!!!!!!!
Пример по заданию:
Элемент после которого вставлять 2
Что вставляем 555
Список [4,5,7,2,8,2,5,3]
Результат [4,5,7,2,555,8,2,555,5,3]

С этим точно справляются варианты!!!!!! sm
Пользователь: DMT
Сообщений: 123
Статус: Программист
Зарегистрирован:
18 октября 2007, 2:35
Был:13 ноября 2017, 4:54
DMT
smsup
Дата: 17 января 2008, 22:48 Сообщение № 4
"После всех вхождений указанного"
"После каждого вхождения указанного"
"После последнего вхождения указанного"

"После всех" = "После каждого" или "После последнего"

Вопрос в следующем: Всех = всех возможных??
Мой ответ: Да, т.к в вопросе применено слово "вхождение", на мой взгляд оно поясняет, что вставка элемента осуществляется за всеми элементами(каждым элементом) заданного значения. Вхождение само определяет, что надо вставлять за каждым.

Демогогия какая-то, но это моё мнение.
За текст программы спасибо, опубликую отдельно!! sm
Пользователь: lilo
Сообщений: 38
Статус: Незримый
Зарегистрирован:
8 января 2008, 12:39
Был:9 апреля 2008, 19:55
lilo
smsup
Дата: 17 января 2008, 23:55 Сообщение № 5
я не говорю, что твоя программа не работает, я говорю что не совсем понятна формулировка задания.
Пользователь: wetmurlyka
Сообщений: 6
Статус: Незримый
Зарегистрирован:
8 января 2008, 20:08
Был:27 февраля 2008, 19:13
wetmurlyka
smsup
Дата: 18 января 2008, 0:01 Сообщение № 6
Давайте спросим у АБ =) она-то точно знает о чем там говорится =)
Пользователь: nikamka
Сообщений: 2
Статус: Незримый
Зарегистрирован:
16 октября 2012, 1:14
Был:16 октября 2012, 1:20
nikamka
smsup
Дата: 16 октября 2012, 1:17 Сообщение № 7
Хочу поделиться своим открытием. В свое время очень долго мучилась с добавлением элементов в списки, ничего не получалось. Решение проблемы нашла тут: http://hashcode.ru/questions/153767/java-вставка-элемента-в-список
Пользователь: nikamka
Сообщений: 2
Статус: Незримый
Зарегистрирован:
16 октября 2012, 1:14
Был:16 октября 2012, 1:20
nikamka
smsup
Дата: 16 октября 2012, 1:20 Сообщение № 8
[url=http://hashcode.ru/questions/153767/java-вставка-элемента-в-список] java Вставка элемента в список [/url]