Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Сравнение двух слов
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
videomag videomag вне форума
Member
 
Сообщений: 136
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.03.2009
По умолчанию 09.04.2009, 04:02

Код:
pos1(S,S1,A):-C is charAt(S, A),C1 is charAt(S1, A),C=C1,write(C).
pos(S,S1,8).
pos(S,S1,A):-pos1(S,S1,A), A1 is A+1,pos(S,S1,A1).
?-pos("cotmputer","cobmpaktr",0).
Почему не происходит сравнение после несовподающих символов?
вот что выводит:
Цитата:
co
и всё...
Ответить с цитированием
  (#2 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,990
Сказал(а) спасибо: 2
Поблагодарили 305 раз(а) в 305 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 12.04.2009, 18:40

Цитата:
Почему не происходит сравнение после несовподающих символов?
Потому что предикат pos1(S,S1,A) даёт откат и при этом никаких альтернатив прога не предусматривает.
Ответить с цитированием
  (#3 (permalink)) Старый
videomag videomag вне форума
Member
 
Сообщений: 136
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.03.2009
По умолчанию 13.04.2009, 07:37

Вот как получилось, просто добавил строку на проверку не совпадения:
Цитата:
pos1(S,S1,A):-C is charAt(S, A),C1 is charAt(S1, A),C\=C1,write(C:C1).
А есть ли возможность эти проверки зделать в одной строке?
Вот с этими функциями не выходит -> else , как их правильно расставить?
Ответить с цитированием
  (#4 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,990
Сказал(а) спасибо: 2
Поблагодарили 305 раз(а) в 305 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 13.04.2009, 16:50

Цитата:
А есть ли возможность эти проверки зделать в одной строке?
Есть. Через точку с запятой, т.е. через ИЛИ.
Ответить с цитированием
  (#5 (permalink)) Старый
videomag videomag вне форума
Member
 
Сообщений: 136
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.03.2009
По умолчанию 13.04.2009, 16:55

Действительно, всё очень просто:
Цитата:
pos1(S,S1,A):-C is charAt(S, A),C1 is charAt(S1, A),(C=C1,write©;C\=C1, write(C:C1)).
Ответить с цитированием
Ads.
Ads
Ответ

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При включении двух модулей памяти в двух канальном режиме компьютер не включается. gotosha Техническая поддержка 7 30.11.2011 05:59
Дан текст, для каждого из слов указать, сколько раз оно встречается среди слов текста wekze C++ Builder 8 19.02.2011 10:27
Атоматические сравнение двух изображений imported_Le0p0ld Visual C++ 0 16.11.2010 23:21
Сравнение двух списков zener Prolog 4 28.10.2010 15:40
Сравнение двух массивов в Excel'e edgar Visual Basic 2 20.08.2007 17:33
Сравнение двух столбцов на разных листах в Exel SISH Visual Basic 1 29.03.2007 00:51
Сравнение результатов двух запросов RomanR C++ Builder 1 16.06.2006 11:40
Сравнение двух слов @komissar@ Prolog 5 13.06.2006 05:52
Сравнение двух списков по элементно(с условием ...) degavi Prolog 15 19.12.2005 14:26
Сравнение двух таблиц в разных файлах nik_vba Visual Basic 1 13.09.2005 23:40
Сравнение двух файлов Nato С/С++ 4 27.03.2004 23:52
Сравнение двух файлов north_crow C++ Builder 6 22.02.2003 12:25



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