- •Общие сведения о Прологе, области применения, отличия Пролога от других языков программирования.
- •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Предикаты Турбо-Пролога для работы с базой данных.
- •Общие сведения о Прологе, области применения, отличия Пролога от других языков программирования.
- •Основные элементы Турбо-Пролога: имена объектов, термы, константы, переменные, структуры, атомы.
11.Арифметика в тп, Арифметические функции в тп
ТП обладает теми же арифметическими возможностми, что и другие языки программирования. ТП выполняет 4 основных арифметических операции +, -, *, / над целыми и вещественными числами. Кроме того: div – целочисленное деление, mod – остаток целочисленного деления. Соотношение типов операндов и результатов опреации приведены в таблице :
Операнд 1 |
Оператор |
Операнд 2 |
Рзультат |
integer |
+ - * |
integer |
integer |
integer |
+ - * / |
real |
real |
real |
+ - * / |
integer |
real |
real |
+ - * / |
real |
real |
integer |
/ |
integer |
real |
В арифметических выражениях (АВ) могу присутствовать операнды (константы и переменные), операторы арифметических операций, скобки, 16-чные числа с идентифицирующим символом $.
Логические операторы.
>, >=, <, <=, =, <>, ><
При сравнении строк ТП преобразует их в соответствующие символы строке коды ASCII и сравнивает их как числа.
Арифметические функции в ТП
Предикат |
Описание |
bitand (X, Y, Z) |
X, Y, Z – целые 16-чные числа |
bitor (X, Y, Z) |
X, Y – числа над которыми выполняются побитовые операции |
bitxor (X, Y, Z) |
Z – результат |
bitnot (X, Z) |
|
bitleft (X, N, Z) |
|
bitright(X, N, Z) |
Сдвиг на N разрядов |
X mod Y |
Остаток от деления |
X div Y |
Частное от деления |
abs (X) |
Модуль X |
cos (X) |
В радианах |
sin (X) |
|
tan (X) |
|
arctan (X), exp (X), ln (X), log (X), sqrt (X), random (X) |
12.Рекурсия.Пример рекурсивного правила(вычисление факториала, возведение числа в целую степень).
Мощным средством программирования в ТП является рекурсия. Р – определение некоторого отношения через самого себя. Так как в ТП отсутствуют операторы цикла, то Р. служит основным средством программирования циклических процессов.
Пример Вычисление факториала.
domains
n, f = real
predicates
factorial (n ,f)
clauses
factorial (1, 1).
factorial (N, F):- N>0, N1=N-1, factorial (N1, F1), F=F1*N.
Программа демонстрирует другой метод вычисления факториала. Здесь рекурсивный метод заменнен на итеративный. При итеративном вычислении нет обратного хода.
predicates
factorial (integer, real)
factorial_oux (integer, real, integer, real)
clauses
factorial (N, F):- factorial_oux (N, F, 1, 1).
factorial_oux (N, F, I, P):- I<=N, NewI=I+1, NewP=P*I,
factorial_oux (N, F, NewI, NewP).
factorial_oux (N, F, I, F):- I>N.