Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Строки. Добавление части строки внутрь другой
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
frikorsar frikorsar вне форума
Member
 
Сообщений: 26
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.12.2008
По умолчанию 21.01.2009, 15:21

Приветствую!
Такая задача на TurboProlog:
Разработать предикат, который позволит вставить одну строку внутрь другой строки, на позицию, которая идет за символом 1.

Код:
DOMAINS
str=string

PREDICATES
str_insert(str,str,integer,str)

CLAUSES
str_insert(S,S1,I,SO):-
I1=I-1,
frontstr(I1,S1,S1_1,S1_2),
concat(S1_1,S,S2),
concat(S2,S1_2,SO).
Программа позволяет добавить часть строки внутрь другой с указанием номера позиции в строке. А как усорвершенствовать код, чтобы добавление происходило именно после единицы? где в коде это указать?

Получиться должно примерно так:
str_insert("abc","def1g",SO)
1 Solution
SO="def1abcg"
Ответить с цитированием
  (#2 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,958
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 21.01.2009, 19:45

Задача имеет смысл только для реликтового Турбо-Пролога:
Код:
PREDICATES
str_insert(string,string,string)
GOAL str_insert("def1g","abc",S),write(S).
CLAUSES
str_insert(S,S1,S0):-frontchar(S,'1',R),!,concat(S1,R,S2),frontchar(S0,'1',S2).
str_insert(S,S1,S0):-frontchar(S,C,R),str_insert(R,S1,S2),frontchar(S0,C,S2).
Для современных Прологов задача делается даже без рекурсии, в одну строчку.
Ответить с цитированием
  (#3 (permalink)) Старый
frikorsar frikorsar вне форума
Member
 
Сообщений: 26
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.12.2008
По умолчанию 21.01.2009, 19:58

спасибо огромное!
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Соединение строки и строки? FIREDOG С/С++ 7 16.11.2011 20:46
Добавление строки в combobox ~Dry)|(6aH~ Visual C++ 1 20.03.2011 02:24
Добавление строки при помощи SQL Naac C++ Builder 1 11.04.2010 22:38
Добавить в конец первой строки, последние n2-n1 слов второй строки gika111 Вопросы начинающих программистов 1 20.01.2010 16:41
Строки kuller Prolog 9 22.10.2008 19:35
Как сделать в RichEditCtrl редактируемость только части строки Kosta Visual C++ 2 07.02.2007 14:57
Работа с Memo переход к нужной части строки Lin@ C++ Builder 11 10.09.2006 17:57
Выделение строки (или ее части) с текущей ячейкой MSC51 Visual Basic 6 11.08.2005 13:55
Программное добавление строки в Memo PAAG C++ Builder 27 07.02.2005 18:41
Добавление информации в столбец из другой таблицы Surfer MSSQL Server 1 22.01.2005 23:05
Добавление строки в RichEdit Ex WinAPI 1 05.09.2003 19:03
Имеются две строки CString, можно ли реализовать поиск части первой строки во второй Anonymous Visual C++ 4 23.05.2003 16:34



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов