Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Еламан_II.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
67.41 Кб
Скачать

67) Создать предикат, который будет дублировать символ, введенный пользователем с клавиатуры

double_char:–

repeat,

readchar(C), /* читаем символ с клавиатуры

в переменную C */

write(C,C), nl,/* выводим на экран значение

переменной C */

C=’.’,!, /* сравниваем значение переменной C

с символом ‘.’*/

nl,write("Была введена точка. Закончили.").

GOAL

write("Вводите символы, которые нужно повторить (точка —

завершение)"),nl,

double_char.

73) Написать предикат, позволяющий получать элемент списка по его номеру

73)n_element([X|_],1,X).  n_element([_|L],N,Y):–  N1=N–1,  n_element(L,N1,Y).

79) Написать предикат, который будет преобразовывать строку в список атомов

79)domains  list = char*  predicates  string_to_list(string, list)  list_to_string(list, string)  clauses  string_to_list("", []):-!.  string_to_list(String, [Head|ListTail]):-  frontchar(String, Head, StringTail),  string_to_list(StringTail, ListTail).  list_to_string([], ""):-!.  list_to_string([Head|ListTail], String):-  list_to_string(ListTail, StringTail),  frontchar(String, Head, StringTail).  goal  string_to_list("test string", List),  list_to_string(List, String),  write(String).

85)Разработать предикат, который будет копировать часть строки

85)str_copy(S,I,C,SO) :–  I1=I–1, /* I1 — это количество  символов, расположенных  в начале строки S, которые  не нужно копировать */  frontstr(I1,S,_,S1),  /* S1 — строка, состоящая  из всех символов строки S,  с I-го и до последнего */  frontstr(C,S1,SO,_).  /* SO — первые C символов  строки S1 */

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]