- •Общие сведения о Прологе, области применения, отличия Пролога от других языков программирования.
- •4. Способы объявления доменов (типов данных) в Турбо-Прологе.
- •5.Объявление предикатов в программах Турбо-Пролога.
- •6. Утверждения программы Турбо-Пролога: факты и правила.
- •7.Внутренняя и внешняя цели в программах Турбо-Пролога.Раздел goal
- •8.Этапы программирвоания на тп
- •9.Декларативный и процедурный смысл программы на Турбо-Прологе.
- •10.Сопоставление. Правила сопоставимости термов, структур.
- •11.Арифметика в тп, Арифметические функции в тп
- •12.Рекурсия.Пример рекурсивного правила(вычисление факториала, возведение числа в целую степень).
- •13 Стандартные предикаты. Поточный шаблон стандартного предиката.
- •14 Стандартные предикаты ввода-вывода в Турбо-Прологе.
- •15Отсечение в программах на Турбо-Прологе.
- •16Списки. Описание списков в программе. Голова и хвост списка.
- •17Основные стандартные предикаты Турбо-Пролога для работы со строками.
- •18Преобразование строки в список символов.
- •Преобразование строки в символ
- •19 Преобразование строки в список атомов
- •20 Основные предикаты Турбо Пролога для преобразования данных из одного типа в другой
- •Преобразование строки в символ
- •Преобразование, определяемые пользователем
- •21Предикаты Турбо-Пролога для переадресации внешних устройств.
- •22 Описание файловых доменов в Турбо-Прологе.
- •23 Запись данных в файл в программах на Турбо-Прологе.
- •24 Чтение данных из файла в программах на Турбо-Прологе.
- •25 Дозапись данных в конец существующего файла в программах на Турбо-Прологе
- •26 Предикаты Турбо-Пролога для работы с окнами
- •27Статические и динамические базы данных в программах на Турбо-Прологе
- •28Создание динамических баз данных средствами Турбо-Пролога
- •30Способы занесения информации в динамическую базу данных
- •29Предикаты Турбо-Пролога для работы с базой данных.
- •Общие сведения о Прологе, области применения, отличия Пролога от других языков программирования.
- •Основные элементы Турбо-Пролога: имена объектов, термы, константы, переменные, структуры, атомы.
16Списки. Описание списков в программе. Голова и хвост списка.
Список – специальный вид сложного терма, состоящий из последовательности термов, заключенных в [ ] и разделенных запятыми.
domains
list = integer* % целочисленный список
Если элементы списка имеют смешанный тип, то должно быть соответствующее описание:
domains
element = c (char); i (integer)
list = element*
[c(‘a’), i(6), i(-8), c(‘X’)]
Списки являются основной структурой программы на ТП. Для удобства обработки введены два понятия: голова (head), хвост (tail).
Основные примеры обработки списков:
Список |
Голова |
Хвост |
[‘a’, ‘b’, ‘c’] |
‘a’ |
[‘b’, ‘c’] |
[1] |
1 |
[ ] |
[ ] |
не определена |
не определена |
[[1, 2, 3], [2, 3, 4], [ ]] |
[1, 2, 3] |
[[2, 3, 4], [ ]] |
Для отделения головы спсика от хвоста используется символ “|” [X|Y].
17Основные стандартные предикаты Турбо-Пролога для работы со строками.
Стандартные предикаты для работы со строками
Определение длины строки
Str_len (строка, длина) (string, string) : (i, o) (i, i)
(i, o) – с параметром длина связывается количество символов в строке
(i, i) – выполняетсмя успешно, если строка имеет указанную длину.
Конкатенация строк
concat (Стр1, Стр2, Стр3) (string, string, string) : (i, i, o) (o, i, i) (i, o, i) (i, i, i)
Создание подстрок
frontstr (КопСтр, ВхСтр, ВыхСтр, Остаток) (integer, string, string, string) : (i, i, o, o)
Разделение строки на две части
frontchar (строка, ПервСимвол, Остаток) (string, char, string) (i, o, o) (i, i, o) (i, o, i) (i, i, i)(o, i, i)
Используется для преобразования строки в список символов
convert (“ “, [ ]).
convert (Str, [H|T]):- frontchar (Str, H, Ost), convert (Ost, T).
Прверка на строку
isname (строка) (string) : (i)
Имена испоьзуются для обозначения символических констант, предикатов и переменных.
Формирование атомов из строк
fronttoken (Строка, Атом, Остаток) (string, string, string) : (i, o, o) (i, i, o) (i, o, i) (i, i, i) (o, i, i)
Атом – последовательность символов, имеющих смысл. Атомы могут быть : именем ТП, строчным представлением числа, отдельным символом (кроме пробела).
(i, i, o) fronttoken (“Go to cursor”, X, Y) X=”Go” Y=”to cursor”
18Преобразование строки в список символов.
ТП для преобразования данных из одного типа в другой имеет следующие стандартные предикаты.
Преобразование прописных букв в строчные и наоборот
upper_lower (Стр1, Стр2) (string, string) : (i, i) (i, o) (o, i)
(i, i) upper_lower (“B”, “b”) True
(i, o) upper_lower (“ABC”, X) X=”abc”
(o, i) upper_lower (X, “abc”) X=”ABC”