Предикаты вывода на консоль.
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

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, просмотров: 177.