Форум программистов, компьютерный форум, киберфорум
Наши страницы
Prolog
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
VeryBigSecret
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 4
1

Написать программу, выясняющую, есть ли в слове X буква "а", стоящая на нечётном месте после буквы "к""

13.01.2014, 20:23. Просмотров 702. Ответов 2
Метки нет (Все метки)

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

"Написать программу, выясняющую, есть ли в слове X буква "а", стоящая на нечётном месте после буквы "к""
Prolog
1
2
3
4
5
6
7
8
check(Word):-frontchar(Word,C,Tail),check(1,C,Tail).
 
opp(1,0).
opp(0,1).
 
check(1,'k',W):-frontchar(W,'a',_),!.
check(N,'k',W):-frontchar(W,_,W1),opp(N,N1),check(N1,'k',W1).
check(_,_,W):-frontchar(W,C,W1),check(1,C,W1).
Мне нужно искать буквы "к" на четных местах после букв "и". Хочу сделать, но голова уже кипит...)
почему предикат check в первой строке содержит разное количество переменных?
Дальше совсем запуталась.... Буду очень признательна, если направите на путь истинный.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2014, 20:23
Ответы с готовыми решениями:

Написать программу, выясняющую, есть ли в слове X буква "а", стоящая на нечётном месте после буквы "к"
Написать программу, выясняющую, есть ли в слове X буква "а", стоящая на...

Проверить, есть ли в заданном слове буква "к", стоящая на четных местах перед буквой "и"
Здравствуйте!Помогите пожалуйста решить задачу. Составьте программу,...

Подсчитать в слове все сочетания "нн". Считать, что в последовательности "ннн" "нн" встречается один раз
напишите, пожалуйста, программу подсчета в слове всех сочетаний "нн". считать,...

Prolog - заменить в слове X все буквы "а" на сочетание "ку"
1)Напишите программу замены в слове X всех букв "а" на сочетание "ку". ...

Определить правила "призывник", "запасник", "отсрочка"...[GNU Prolog 1.3.1]
GNU Prolog 1.3.1! Задание 1 призывник(Х) – здоровые мужчины в возрасте от 18...

2
Taatshi
14.01.2014, 07:12
  #2
 Комментарий администратора 
VeryBigSecret, читаем правила форума. Одна тема - один вопрос.
0
keidin
97 / 97 / 14
Регистрация: 07.02.2013
Сообщений: 128
14.01.2014, 14:32 3
Лучший ответ Сообщение было отмечено Taatshi как решение

Решение

VeryBigSecret, в Прологе можно использовать одинаковые имена предикатов с разным количеством аргументов. Это связано с определение функторов через связку имя-арность (местность, количество аргументов).

Как работает frontchar, думаю, Вы уже поняли. opp служит для определения четной-нечетной позиции. Ну а дальше поменять один символ:
Prolog
1
2
3
check(0,'и',W):-frontchar(W,'к',_),!.
check(N,'и',W):-frontchar(W,_,W1),opp(N,N1),check(N1,'и',W1).
check(_,_,W):-frontchar(W,C,W1),check(1,C,W1).
Не стоит забывать, что отсчет позиций начинается, после нахождения буквы 'и'
P.S. Разделы predicates и goal опишите самостоятельно
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2014, 14:32

Подсчитать сумму мест, на которых в заданном слове стоит буква "б"
Напишите программу подсчета суммы мест, на которых в заданном слове стоит буква...

Построить программу "сжать", назначение которой - преобразование английских слов в их "звуковой" код
Всем привет . Не могли бы помочь решить данную задачу ?) Построить программу...

Arity Prolog. Вычеркнуть все буквы "о", стоящие в слове Х на четных местах
Arity Prolog. программа вычеркивания всех букв <<о>>, стоящих в слове Х на...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru