Write (<переменная или константа любого типа>, ...) - печать на консоль содержание переменной. Количество аргументов у предиката произвольно. Количество аргументов у предиката произвольно. Стиль вывода на печать устанавливается в опциях проекта. Например, в процессе отладки можно включить печать имен переменных вместе с их содержимым или кавычки у строковых переменных.
WriteLn (<переменная или константа любого типа>, ...) - печать на консоль содержание переменной или константы и перевод курсора на следующую строку. Количество аргументов у предиката произвольно.
Nl - перевод курсора консоли на следующую строку.
Предикаты определения типов переменных.
IsInteger(<переменная>) - предикат является истинным, если поступающая на вход переменная - целочисленная.
IsReal(<переменная>) - проверяет, является ли переменная реальным числом.
IsNumeric(<переменная>) - проверяет, является ли переменная числовой, то есть либо реальной, либо целой. Использование функции IsNumeric предпочтительнее, чем IsInteger и IsReal, так как в ходе некоторых арифметических операций над целыми числами результат получается дробным (например, при делении).
IsString(<переменная>) - проверяет, является ли переменная строкой.
IsBoolean(<переменная>) - проверяет, является ли переменная логической.
IsList(<переменная>) - проверяет, является ли переменная списком.
IsStruct(<переменная>) - проверяет, является ли переменная структурой.
IsFree(<переменная>) - проверяет, является ли переменная свободной.
Предикаты для работы с базами данных.
Предикаты открытия, закрытия и создания баз данных отсутствуют, так как объявленные базы данных открываются (и создаются, если не были созданы ранее) при запуске программы.
DBAppendZ(<имя базы>:String, <поле1>, ... , <полеN>) - добавляет запись в конец базы данных. Количество полей и их типы должны в точности совпадать с полями базы данных. Имя базы данных записывается в кавычках.
DBAppendA(<имя базы>:String, <поле1>, ... , <полеN>) - добавляет запись в начало базы данных. Количество полей и их типы должны в точности совпадать с полями базы данных. Имя базы данных записывается в кавычках.
DBDelete(<имя базы>:String, <поле1>, ... , <полеN>) - удаляет из базы данных запись. Количество полей и их типы должны в точности совпадать с полями базы данных. Возможно, удалять сразу группу записей, если какие-либо из полей будут обозначены пустой константой nil. Тогда будут удалены все записи базы данных, в которых совпадают значения остальных полей (которые имеют значения отличные от nil).
DBClear(<имя базы>:String) - очищает базу данных.
Предикаты работы с файлами.
Данная версия Пролога работает только с текстовыми файлами.
Для идентификации файла при работе программы используется целочисленный номер обработчика файла, по которому можно обращаться к файлу.
FileOpenRead(<имя файла>:String, <номер обработчика>:Integer) - открыть файл для чтения. Предикат возвращает во втором параметре номер обработчика файла. Во втором параметре предиката должна стоять свободная переменная.
FileOpenWrite(<имя файла>:String, <номер обработчика>:Integer) - открыть файл для записи. Предикат возвращает во втором параметре номер обработчика файла. Во втором параметре предиката должна стоять свободная переменная.
FileRead(<номер обработчика>:Integer,<значение>) - чтение из файла. Второй параметр должен быть свободной переменной, иначе интерпретатор выдаст ошибку "Неверные параметры при вызове предиката".
FileWrite(<номер обработчика>:Integer,<значение>:String) - запись в файл.
FileClose(<номер обработчика>:Integer) - закрытие файла. Данный предикат применять не обязательно, так как при завершении программы интерпретатор сам закрывает все открытые файлы.
EOF(<номер обработчика>:Integer) - проверка конца файла. Предикат истинен, если конец файла достигнут.
Разное.
StringToList (String, <список>) - превращает строку в список, состоящий из символов этой строки, и возвращает его через параметр <список>.
Fail - предикат всегда возвращает ложь.
Описание функций
Арифметические функции.
Sin (<Integer, Real>):Real - операция синуса. Аргументом может быть как реальное, так и целое число. Функция возращает реальное число.
Cos (<Integer, Real>) :Real - операция косинуса.
Tan (<Integer, Real>) :Real - операция тангенса.
Exp (<Integer, Real>) :Real - экспонента.
Ln (<Integer, Real>) :Real - натуральный логарифм.
Int (<Integer, Real>) :Integer - выделение целой части числа. Функция используется также для явного преобразования реального числа в целое.
Frac (<Integer, Real>) :Real - выделение дробной части числа.
Abs(<Integer, Real>):<Integer, Real> - взятие модуля числа.
Функции работы со строками.
SubStr(String, N1:Integer, N2:Integer):String - выделение подстроки, начиная с элемента с индексом N1 длиной N2 символов.
FindStr(S1:String, S2:String):Integer - находит позицию подстроки S2 в строке S1 и возвращает индекс первого символа подстроки в строке S1. Если в строке S1 не было найдено подстроки S2, то функция возвращает 0.
Chr(Integer):String - возвращает символ, соответствующий числу по таблице ASCII.
Asc(String):Integer - возвращает ASCII-код первого символа строки.
NumbToStr(<Integer или Real>):String - превращает число в строку
StrToNumb(String):<Integer или Real> - превращает строку в целое или реальное число, в зависимости от содержания строки. Интерпретатор сначала пытается преобразовать строку в целое число. Если не получается, то пытается превратить строку в реальное число. Если преобразование не удалось, то выводится сообщение об ошибке.
Логические функции.
Not(Boolean):Boolean - инвертирует значение логического выражения. (ВНИМАНИЕ: чтобы инвертировать значение, возвращаемое предикатом или базой данных необходимо перед именем предиката или базы данных поставить символ "~")
Дата: 2019-07-24, просмотров: 212.