Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Change(T,S3,F),concat(C,S3,S2).

И последними буквами

6) Определение наличия в строке численных данных

7) Подсчет количества слов в строке, длина которых больше заданно

8) Реверсация строки

9) Реверсация строки через реверсацию списка

10) Преобразование строки в список символов

11) Преобразование строки в список атомов

12) Удаление из строки пробелов

13) В заданной последовательности символов удалить каждый символ * и повторить каждый символ, отличный от *

14) В последовательности слов, разделенных пробелами, после каждого слова перед пробелом вставить запятую, кроме последнего слова.

15) Дана строка символов. Если в ней нет символа *, то строку оставить без изменения, иначе заменить символ, стоящий после первой *, на символ +

16) Дана последовательность слов, разделенных пробелами. Первая буква слова - большая, остальные - малые. Вывести на экран слова, внутри которых имеется хотя бы одна буква, с которой слово начинается.

17) Удаление каждого 2-ого и 3-его символа в строке

18) Найти букву в середине слова, либо 2 буквы, если количество символов четное

19) В словах “килограм”, “граматика”, “грамофон” исправить грамматические ошибки (с помощью составленной программы).

20) Разбиение стороки на 2 по границе слова

21) Самое длинное слово

22) Нахождение в строке самого короткого слова

____________________________________________________

1)Подсчет количества слов в строке

Predicates

Kol_words(string,integer)

Clauses

kol_words("",0).

Kol_words(Str,N):-fronttoken(Str,_,Str2),kol_words(Str2,N1),

N=N1+1.

Goal

Clearwindow,

write("Enter string"),nl,

Readln(Str),

Kol_words(Str,N),

write("Rezult=",N).

_____________________________________________________

2)Подсчитать, сколько раз во введенной строке встречается буква ‘a’

Predicates

Simbol_A(string,integer)

Clauses

simbol_A("",0).

Simbol_A(Str,N):-frontchar(Str,S1,Ost),

S1='a',

simbol_A(Ost,N1),N=N1+1.

Simbol_A(Str,N):-frontchar(Str,S1,Ost),

S1<>'a',

Simbol_A(Ost,N).

Goal

Clearwindow,

write("Enter string"),nl,

Readln(Str),

Simbol_A(Str,N),

write("Rezult=",N).

___________________________________________________

3)Проверить, имеются ли в заданной строке две подряд идущие буквы ‘н’

Predicates

Simbol_2N(string)

Clauses

simbol_2N("").

Simbol_2N(Str):-frontchar(Str,S1,Ost),

S1='n',

Frontchar(Ost,S2,Ost1),

S2='n',write("Yes").

Simbol_2N(Str):-frontchar(Str,S1,Ost),

S1<>'n',

Simbol_2N(Ost).

Goal

Clearwindow,

write("Enter string"),nl,

Readln(Str),

Simbol_2N(Str).

4)В последовательности слов, разделенных пробелами, определить количество слов, начинающихся с буквы ‘a’

Predicates

Begin_simbol_A(string,integer)

Clauses

begin_simbol_A("",0).

Begin_simbol_A(Str,N):-fronttoken(Str,S1,Ost),

Frontchar(S1,Beg,Ost1),

Beg='a',

Begin_simbol_A(Ost,N1),

N=N1+1.

Begin_simbol_A(Str,N):-fronttoken(Str,S1,Ost),

Frontchar(S1,Beg,Ost1),

Beg<>'a',

Begin_simbol_A(Ost,N).

Goal

Clearwindow,

write("Enter string"),nl,

Readln(Str),

Begin_simbol_A(Str,N),

Write(N).

___________________________________________________

Нахождение в строке слов с одинаковыми первыми

И последними буквами

Domains

list=string*

Predicates

Fl(string,list)

Clauses

fl("",[]).

fl(Str,[Word|T]):-fronttoken(Str,Word,Ost),

Str_len(Word,Len_word),

Frontstr(1,Word,Char_1,Ost_w),

Len=Len_word-1,

Frontstr(Len,Word,_,Char_l),

Char_1=Char_l,

Fl(Ost,T).

Fl(Str,T):-fronttoken(Str,Word,Ost),

Str_len(Word,Len_word),

Frontstr(1,Word,Char_1,Ost_w),

Len=Len_word-1,

Frontstr(Len,Word,_,Char_l),

Char_1<>Char_l,

Fl(Ost,T).

Goal

Clearwindow,

write("Enter string"),nl,

Readln(Str),

Fl(Str,L),

write("Rezult=",L).

___________________________________________________

Определение наличия в строке численных данных

Predicates

Proverka(string,integer)

Clauses

proverka("",0).

Proverka(Str,N):-frontchar(Str,Char,Ost),

Char>='0',Char<='9',

proverka(Ost,N1),N=N1+1.

Proverka(Str,N):-frontchar(Str,Char,Ost),

Char<'0',

Proverka(Ost,N).

Proverka(Str,N):-frontchar(Str,Char,Ost),

Char>'9',

Proverka(Ost,N).

Goal

Clearwindow,

write("Enter string"),nl,

Readln(Str),

Proverka(Str,N),

write("Rezult=",N).

______________________________________________________

Подсчет количества слов в строке, длина которых больше заданной

Predicates

Kol_words(string,integer,integer)

Clauses

kol_words("",L,0).

Kol_words(Str,L,N):-fronttoken(Str,Word,Ost),

str_len(Word,Len),Len > L,

kol_words(Ost,L,N1),N=N1+1.

Kol_words(Str,L,N):-fronttoken(Str,Word,Ost),

str_len(Word,Len),Len <= L,

Kol_words(Ost,L,N).

Goal

Clearwindow,

write("Enter string"),nl,

Readln(Str),

write("Enter zadannyu dlinu"),nl,

Readint(L),

Kol_words(Str,L,N),

write("Rezult=",N).

 

Реверсация строки

Predicates

Revers(string,string)

Clauses

revers("","").

Revers(Str,Str2):-frontstr(1,Str,Char,Ost),

Revers(Ost,Str3),

Concat(Str3,Char,Str2).

Goal

Clearwindow,

write("Enter string"),nl,

Readln(Str),

Revers(Str,Str2),

write("Rezult=",Str2).

_____________________________________________________

Реверсация строки через реверсацию списка

Domains

list=char*

Predicates

Revers(list,list)

Revers1(list,list,list)

Convert(string,list)

Convert1(list,string)

Clauses

revers([],[]).

revers(L,Lrev):-revers1(L,[],Lrev).

revers1([],Lrev,Lrev).

revers1([H|T],L,Lrev):-revers1(T,[H|L],Lrev).

convert("",[]).

convert(Str,[H|T]):-frontchar(Str,H,Str1),convert(Str1,T).

convert1([],"").

convert1([H|T],Str):-convert1(T,Str1),frontchar(Str,H,Str1).

Goal

Clearwindow,

write("Enter string"),nl,

Readln(Str),

Convert(Str,L),

Revers(L,L1),

Convert1(L1,Str1),

write("Rezult=",Str1).

___________________________________________________

Преобразование строки в список символов

Domains

list=char*

Predicates

Convert(string,list)

Clauses

convert("",[]).

convert(Str,[H|T]):-frontchar(Str,H,Ost),convert(Ost,T).

Goal

Clearwindow,

write("Enter string"),nl,

Readln(Str),

Convert(Str,L),

write("Rezult=",L).

__________________________________________________

Преобразование строки в список атомов

Domains

list=string*

Predicates

Convert(string,list)

Clauses

convert("",[]).

convert(Str,[H|T]):-fronttoken(Str,H,Ost),convert(Ost,T).

Goal

Clearwindow,

write("Enter string"),nl,

Readln(Str),

Convert(Str,L),

write("Rezult=",L).

__________________________________________________

Удаление из строки пробелов

Predicates

Del_spase(string,string)

Clauses

del_spase("","").

Del_spase(Str,Str2):-fronttoken(Str,Word,Ost),

Del_spase(Ost,Str3),

Concat(Word,Str3,Str2).

Goal

Clearwindow,

write("Enter string"),nl,

Readln(Str),

Del_spase(Str,Str2),

write("Rezult=",Str2).

13)В заданной последовательности символов удалить каждый символ * и повторить каждый символ, отличный от *.

Predicates

Del_el(string,string)

Clauses

del_el("","").

del_el(Str,Str1):-frontchar(Str,Ch,Ost),Ch='*',

Del_el(Ost,Str2),

Concat(Ost,Str2,Str1).

del_el(Str,Str1):-frontchar(Str,Ch,Ost),Ch<>'*',

Write(Ch,Ch), del_el(Ost,Str1).

Goal

Clearwindow,

write("Enter string:"),nl,

Readln(Str),

write("New string:"),nl,

Del_el(Str,Str1).

____________________________________________________

В последовательности слов, разделенных пробелами, после каждого слова перед пробелом вставить запятую, кроме последнего слова.

Predicates

Ins(string,string)

Clauses

ins("","").

ins(S1,S2):-fronttoken(S1,W,T),str_len(T,X),X>0,

concat(W,", ",S4),ins(T,S3),concat(S4,S3,S2).

ins(S1,S2):-fronttoken(S1,W,T),str_len(T,X),X<=0,

concat(W,"",S4),ins(T,S3),concat(S4,S3,S2).

Goal

write("Enter string"),nl,

Readln(Str),

Ins(Str,Str2),

write("Rezult=",Str2).

____________________________________________________

15)Дана строка символов. Если в ней нет символа *, то строку оставить без изменения, иначе заменить символ, стоящий после первой *, на символ +.

Predicates

Change(string,string,integer)

Clauses

change("","",_).

change(S1,S2,F):-F=0,frontstr(1,S1,C,T),C="*",

Frontstr(1,T,C1,T1),

change(T1,S3,1),concat("*+",S3,S2).

change(S1,S2,F):-F<>0,frontstr(1,S1,C,T),

change(T,S3,F),concat(C,S3,S2).

change(S1,S2,F):-F=0,frontstr(1,S1,C,T),C<>"*",

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...