Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DOMAINS
- list_string = string*
- number_list = integer*
- I = integer
- C = char
- PREDICATES
- nondeterm result
- nondeterm str_poisk(string,string)
- del_letter(char,string,string)
- str_pos(char,string,integer)
- str_delete(string,integer,integer,string)
- CLAUSES
- str_poisk("",Result):-
- nl,
- write(" Words with latin letters: "),nl,
- write(Result),nl.
- str_poisk(Sin,Letter):-
- frontchar(Sin,C,S1),
- del_letter(C,Letter,Result),
- str_poisk(S1,Result).
- del_letter(C,StrIn,StrOut):-
- str_pos(C,StrIn,Npos),
- Npos > 0, !, str_delete(StrIn,Npos,1,StrOut); str_delete(StrIn,1,0,StrOut).
- str_pos(C,S,1):-
- frontchar(S,C,_),!.
- str_pos(_,_,0).
- str_delete(S,I,C,SO) :-
- I1 = I - 1,
- frontstr(I1,S,S1,S2),
- frontstr(C,S2,_,S3),
- concat(S1,S3,SO).
- result:-
- nl, nl,
- write(" 4. Check if there are words with latin letters in the string."), nl,
- write(" Enter the string: "),
- readln(Str),
- Letter = "abcdefghijklmnopqrstuvwxyz",
- str_poisk(Str,Letter),
- readchar(_),!.
- GOAL
- result.
- PREDICATES
- is_latin_letter(char).
- check_string(string).
- check_string(string, integer, integer). %i, i, o
- between( integer, integer, integer ).
- print_result(string, integer).
- CLAUSES
- is_latin_letter( Letter ) :-
- upper_lower( UpperCaseLetter, Letter ),
- char_int( UpperCaseLetter, Code),
- char_int('A',CodeA),
- char_int('Z',CodeZ),
- between(CodeA, CodeZ, Code).
- check_string( String ) :-
- check_string( String, 0, LatinLetterCount ),
- print_result( String, LatinLetterCount ).
- check_string("", N, N ).
- check_string( S, N1, N2 ) :-
- frontchar(S, Char, S1),
- if is_latin_letter( Char ) then
- M1 = N1 + 1
- else
- M1 = N1
- end if,
- check_string( S1, M1, N2 ).
- between( Low, High, _Value ):-
- Low > High, !, fail.
- between( Low, High, Low ).
- between( Low, High, Value ):-
- NextLow is Low + 1,
- between( NextLow, High, Value).
- print_result(String, LatinLetterCount ):-
- str_len(String, Len),
- if LatinLetterCount = Len then
- write("Строка латинских букв =", String),
- write("Длина = ", Len).
- else
- write("Количество латинских букв в строке =", LatinLetterCount ).
- end if.
- GOAL
- check_string("B45X2FG0OP"),% Строка, содержащая произвольные символы.
- check_string("ABCdef"). % Строка, содержащая только прописные и строчные латинские буквы.
Add Comment
Please, Sign In to add comment