0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 12
1

Проверить, есть ли в заданном слове буква "к", стоящая на четных местах перед буквой "и"

07.05.2015, 21:37. Показов 1748. Ответов 18
Метки нет (Все метки)

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

Есть аналогичные задачи, но под свою мне никак не переписать код( Помогите пожалуйста
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2015, 21:37
Ответы с готовыми решениями:

SWI-Prolog: проверить, есть ли в слове X буква "к" , стоящая на четных местах перед буквой "и"
Надо решить вот такую задачу, тоже срочно! По теме "Обработка строк в языке Prolog": Составить...

Составить программу, проверяющую есть ли в слове X буква "к" , стоящая на четных местах перед буквой "и".
Здравствуйте надо решить вот такую задачу: по теме "Обработка строк в языке Prolog": Составить...

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

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

18
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
08.05.2015, 00:10 2
Уточняйте диалект.
0
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 12
08.05.2015, 13:34  [ТС] 3
Я на форуме тут недавно. Не могу еще до конца разобраться. Задача на мой взгляд трудная.
0
785 / 589 / 156
Регистрация: 07.10.2013
Сообщений: 1,313
09.05.2015, 13:09 4
Цитата Сообщение от Трина Посмотреть сообщение
Задача на мой взгляд трудная.
Prolog
1
2
3
4
5
6
:- set_prolog_flag(double_quotes, string).
 
is_k([_,"к","и" | _]) :-
    !.
is_k([_, _ | Teil]) :-
    is_k(Teil).
Prolog
1
2
3
4
5
?- is_k(["","к","и","р","г","и","з"]).
true.
 
?- is_k(["к","и","р","г","и","з"]).
false.
Добавлено через 4 минуты
а может и не так, точно это не сложная задача, для затравки пойдет, дальше сами
0
Black Fregat
09.05.2015, 15:34
  #5

Не по теме:

99% за то, что нужен ViP 5.2 :)

0
arlat
09.05.2015, 17:17
  #6

Не по теме:

Цитата Сообщение от Black Fregat Посмотреть сообщение
99% за то, что нужен ViP 5.2
да может и 99,9% :) на парность задача для пролога не трудная по определению :)

0
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 12
09.05.2015, 18:30  [ТС] 7
Спасибо за подсказку) Если хорошо разобраться в Прологе,то да, она не трудная. А для студентки,где ничего не объясняют на лекциях,поверьте,очень трудно(
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
34334 / 19123 / 4020
Регистрация: 12.02.2012
Сообщений: 32,033
Записей в блоге: 13
09.05.2015, 19:17 8
Цитата Сообщение от Трина Посмотреть сообщение
А для студентки,где ничего не объясняют на лекциях,поверьте,очень трудно(
- интересно, а что же происходит у вас на лекциях? Лекция, это ведь сплошное объяснение...

Добавлено через 21 минуту
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
predicates
len(string,integer)
chk(string,integer)
task(string)
 
clauses
 
len("",0).
len(S,N) :- frontchar(S,_,B), len(B,N1), N=N1+1.
 
chk(X,_) :- len(X,L), L<2, fail.
chk(X,N) :- frontchar(X,X1,R1), frontchar(R1,X2,_),(N mod 2)=0, X1='k',X2='y', !.
chk(X,N) :- frontchar(X,_,R), NN=N+1, chk(R,NN).
 
task(X) :- chk(X,1).
0
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 12
09.05.2015, 20:03  [ТС] 9
В том то и дело,что ничего не объясняют. Учитель сам не знает предмет,а требует слишком много.Теории дают 0,а решайте сами как хотите. Большое спасибо за помощь в решении)
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
34334 / 19123 / 4020
Регистрация: 12.02.2012
Сообщений: 32,033
Записей в блоге: 13
09.05.2015, 20:43 10
Цитата Сообщение от Трина Посмотреть сообщение
Теории дают 0
- а на что же тратится лекционное время?
0
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 12
10.05.2015, 00:35  [ТС] 11
За пол года занятий всего 2 лекции. И вместо лекции,раздается материал и читается самостоятельно. Задаешь вопрос,что тебе не понятно,получаешь вместо ответа-вопросы от учителя. Она долго думает,и увы,не знает ответа сама. Так что получай знания как хочешь,объяснять никто и ничего не собирается
0
785 / 589 / 156
Регистрация: 07.10.2013
Сообщений: 1,313
10.05.2015, 09:53 12
Цитата Сообщение от Трина Посмотреть сообщение
раздается материал и читается самостоятельно
Как сказать, это тоже неплохо. Вопрос какой материал, это уже да... Хоть этого на форуме уже немало, но повторюсь ещё раз, читайте "классику" или "истоки", как угодно, но любые прочие материалы по Прологу будут восприниматься легче и быстрее, однозначно.
Программирование на языке Пролог - Клоксин У + Меллиш К
Новичкам особо, но в принципе любой должен это проработать.
Я периодически просто для удовольствия просматриваю
1
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 12
10.05.2015, 13:34  [ТС] 13
Раздается методичка,где почти нет материала. Ни одного учебника не дается. Спасибо за источник информации. Почитаю)
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
34334 / 19123 / 4020
Регистрация: 12.02.2012
Сообщений: 32,033
Записей в блоге: 13
11.05.2015, 22:56 14
Трина, не гони. Не бывает методичек, в которых нет материала. А Прологу издано много книг. Клоксин-Меллиш - далеко не единственная.

Добавлено через 1 минуту
Цитата Сообщение от Трина Посмотреть сообщение
Ни одного учебника не дается.
- а самим поискать слабО? Ведь высшее образование получаешь, можно и поисковиком научиться пользоваться. Наука нехитрая.
0
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 12
12.05.2015, 22:23  [ТС] 15
У нас в университете свои методички делают. И Пролог это дисциплина, которую мы для галочки изучаем. Поэтому нам ничего по нему не дают. Это даже не профильный предмет.
0
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 12
17.05.2015, 22:12  [ТС] 16
Цитата Сообщение от Catstail Посмотреть сообщение
predicates
len(string,integer)
chk(string,integer)
task(string)
clauses
len("",0).
len(S,N) :- frontchar(S,_,B), len(B,N1), N=N1+1.
chk(X,_) :- len(X,L), L<2, fail.
chk(X,N) :- frontchar(X,X1,R1), frontchar(R1,X2,_),(N mod 2)=0, X1='k',X2='y', !.
chk(X,N) :- frontchar(X,_,R), NN=N+1, chk(R,NN).
task(X) :- chk(X,1).
Разбиралась в решении вашей задачи. Вы бы могли дать краткую консультацию и мысли по данной задаче, что и как мы тут делаем на некоторых этапах. Буду признательна за ответ.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
34334 / 19123 / 4020
Регистрация: 12.02.2012
Сообщений: 32,033
Записей в блоге: 13
17.05.2015, 22:28 17
Лучший ответ Сообщение было отмечено Трина как решение

Решение

Цитата Сообщение от Трина Посмотреть сообщение
Разбиралась в решении вашей задачи
- своей задачи (не моей!)


Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
predicates
len(string,integer)
chk(string,integer)
task(string)
 
clauses
 
%% определение длины строки
 
len("",0).  %% пустая строка имеет нулевую длину
len(S,N) :- frontchar(S,_,B), len(B,N1), N=N1+1. %% длина непустой = длина строки без 1-го символа + 1
 
%% Проверка и подсчет
 
chk(X,_) :- len(X,L), L<2, fail. %% если длина строки < 2 - выход
%% иначе если в начале стоит нужная пара букв и второй параметр четен - значит нашли
chk(X,N) :- frontchar(X,X1,R1), frontchar(R1,X2,_),(N mod 2)=0, X1='k',X2='y', !.
%% иначе сдвигаемся на символ и рекурсивный вызов
chk(X,N) :- frontchar(X,_,R), NN=N+1, chk(R,NN).
 
 
%% запускающий предикат - вызов chk со вторым пар=1 (счет с первой позиции)
 
task(X) :- chk(X,1).
1
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 12
30.05.2015, 11:27  [ТС] 18
Цитата Сообщение от Catstail Посмотреть сообщение
- своей задачи (не моей!)
Спасибо большое за подробное объяснения)А вы не подскажете как раздел goal оформлять?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
34334 / 19123 / 4020
Регистрация: 12.02.2012
Сообщений: 32,033
Записей в блоге: 13
30.05.2015, 16:50 19
Цитата Сообщение от Трина Посмотреть сообщение
как раздел goal оформлять?
Prolog
1
2
3
goal
 
task("Tra-ta-ta").
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2015, 16:50
Помогаю со студенческими работами здесь

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

В слове x перед каждой буквой "к", которой предшествует буква "с", вставить бкуву "н"
В слове x перед каждой буквой &quot;к&quot;, которой предшествует буква &quot;с&quot;, вставить бкуву &quot;н&quot;....

В слове Х перед каждой буквой "к", которой предшествует буква "с", вставить букву "н"
Привет всем) вот условие задачи:В слове Х перед каждой буквой &quot;к&quot;, которой предшествует буква &quot;с&quot;,...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru