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

работа со списками(дописать задание)

18.12.2011, 15:34. Показов 1529. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите дописать задачку. Понимаю, что такая задача наверняка уже рассматривалась и я находила решения, но только на турбо-прологе или SWI, а я программирую через приложение PIE-32...

Задание: Из списка символов S1, S2, ..., SN исключить все символы между круглыми скобками. Сами скобки тоже должны быть отброшены. Од-нако, если внутри круглых скобок есть другая пара круглых скобок, то она и содержащиеся в ней символы должны быть сохранены. И так далее рекурсивно. Например, последовательность "ab(c(d(ef(gh)z)fg)r)dd(ik(l))" преобразуется в "ab(d(gh)fg)dd(l)".

Вот то, что написала, но надо отредактировать, чтобы нормально работала...
Prolog
1
2
3
4
5
del([],_,L,L).
del(['('|B],_,L,R):- del(B,0,L,R).
del([')'|B],_,L,R):- del(B,1,L,R).
del([H|B],0,L,R) :- H\=='(',H\==')', del(B,0,R,R).
del([H|B],1,L,R) :- H\=='(',H\==')', del(B,1,R,[H|R]).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.12.2011, 15:34
Ответы с готовыми решениями:

Работа со списками
Всем привет, бьюсь уже несколько часов над двумя заданиями... 1. необходимо удалить из списка все повторяющиеся подсписки. Я сделала,...

Работа со списками
1) Создать список перевертыш. 2) Создать из чётных. _________________________________ Срочно нужна помощь помогите!!!...

Работа со списками.
Здравствуйте. Помогите пожалуйста. Из списка L1 получить список L2, очередной элемент которого равен среднему арифметическому ...

12
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
18.12.2011, 17:39
Prolog
1
2
3
4
5
6
7
8
9
del([],_,[]).
del(['('|B],D,L):- D mod 2=:=0,!,D1 is D+1,del(B,D1,L).
del([')'|B],D,L):- D mod 2=:=0,!,D1 is D-1,del(B,D1,L).
del(['('|B],D,['('|L]):- !,D1 is D+1,del(B,D1,L).
del([')'|B],D,[')'|L]):- !,D1 is D-1,del(B,D1,L).
del([_|B],D,L) :- D mod 2=:=1,!,del(B,D,L).
del([H|B],D,[H|L]) :- del(B,D,L).
 
del(A,B):-del(A,0,B).
1
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 10
18.12.2011, 18:35  [ТС]
Спасибо огромное!!!! Только напишите пожалуйста, как сделать запрос. что-то не получается...
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
18.12.2011, 19:28
Ну как это может быть не понятно? Есть предикат с двумя параметрами.
?- del([a,'(',b,')',c],Ans),write(Ans).
1
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 10
18.12.2011, 19:53  [ТС]
Я программирую в Prolog Inference Engine и тот запрос, который вы написали не работает.

В том коде, который я написала, запрос был следующим : например, просто del([1,2], X) и потом выдавался результат.
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
18.12.2011, 20:18
Ну сделайте просто del, в чем проблема? Если не работает, то что выдает?
1
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 10
18.12.2011, 20:25  [ТС]
Ну, разумеется, я уже по разному писать пробовала и в итоге просто выдаёт No solutions.

Вот ещё, что пишет:
Сначала пишу запрос, например:
del([a,'(',b,f,')',d,d], X)
No solutions
После этого снова компилирую и после этого он ещё выдаёт:
del([(|B],D,L) :- D mod 2
Syntax error in parser
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
18.12.2011, 20:45
2й вариант точно не верен, скобки надо в кавычках писать.
Кстати, ошибку нашла, 3е правило надо изменить на
del([')'|B],D,L):- D mod 2=:=1,!,D1 is D-1,del(B,D1,L).
Наверно в Вашем диалекте нету mod или is или =:=, проверьте это.
1
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 10
18.12.2011, 21:04  [ТС]
всё равно ничего не работает, видимо действительно в диалекте нету mod или is или =:=. А что тогда делать, как модифицировать...
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
18.12.2011, 21:06
Я же сказала, проверьте чего именно нет. И замените на аналог, который есть.
1
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 10
18.12.2011, 21:14  [ТС]
а вот это =:= что значит?
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
18.12.2011, 21:19
Это равенство значений алгебраических выражений.
1
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 10
18.12.2011, 21:53  [ТС]
я исправила =:= на ==, теперь он просто работает хотя бы, но только выдаёт тот же список, который я ввожу, но не удаляет скобки.

Пример запросов:
del([1,2], X)
X= [1,2]
1 Solution
del([a,b,'(',v,d,')',d,s], X)
X= [a,b,(,v,d,),d,s]
1 Solution

А как можно mod заменить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.12.2011, 21:53
Помогаю со студенческими работами здесь

Работа со списками
Привет всем. Есть такой вопрос - нужно написать функцию, которая для заданных произвольного списка и числового строит список вида: (a...

Работа со списками...
Здравствуйте, у меня тут назрел вопрос.... Кок можно решить такую задачу... Вот, собственно, условие: Нужно создать...

Работа со списками
REALIST07, помогите с решение задачи Разработать программу, которая выполняет следующие операции: - удаление из списка каждого...

Работа со списками
Уважаемые, сижу на экзамене, нужна помощь с решением задачи.. Дано список с фамилиями авторов, которые пишут прозу и список авторов...

Работа со списками.
Ребят, не в службу, а в дружбу. Нужна помощь. Задания совсем простые, только вот я ни бе, ни ме, ни кукареку :gsorry: вот, формулировка: ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
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
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru