logo
Моделирование систем / Моделирование систем / Теория / Dop / АИС_Конспект

Приложения Приложение №1. Базовые сведения о языке программирования Visual Prolog

При составлении программы в Visual Prolog ключевые слова языка программирования, константы, имена доменов, предикатов записываются латинскими буквами в нижнем регистре. В общем виде программа представляет собой структуру, состоящую из следующих разделов:

/*Структура программы

Visual Prolog

*/

domains

%Домены программы

predicates

%Описание предикатов

clauses

%предложения программы

goal

%Целевой предикат программы

В теле программы могут быть использованы комментарии. Однострочный комментарий должен начинаться со специального символа %, многострочный комментарий размещают в паре символов /* , */.

Домены программы – области допустимых значений, из которых могут выбираться значения констант и переменных поставляемые в предикаты.

Задается домен в программе в виде:

dom_name=system_domen

Здесь dom_name – имя домена выбранное программистом, а system_domen – наименование системного домена VIP, выбранное из таблиц 1.1 и 1.2.

Таблица 1.1. Количественные домены.

Домен

Описание

Реализация, диапазон кодирования

short

Короткое, знаковое, целое число.

16 бит

(-32 768–32767)

ushort

Короткое, беззнаковое, целое число.

16 бит

(0–65 535)

long

Длинное, знаковое, целое число.

32 бит

(-2 147 483 648-

2 147 483 647)

ulong

Длинное, беззнаковое, целое число.

32 бит

(0-4 294 967 295)

integer

Знаковое, целое число, имеет платформо-зависимый размер.

16 бит

(-32 768–32 767)

32 бит

(-2 147 483 648-

2 147 483 647)

unsigned

Беззнаковое, количественное имеет платформо – зависимый размер.

16 бит

(0—65 535)

32 бит (0-4 294 967 295)

byte

8 бит

(0–255)

word

16 бит

(0–65 535)

dword

32 бит

(0-4 294 967 295)

Таблица 1.2. Вещественные и символьные домены.

Домен

Описание

Реализация, диапазон кодирования.

real

Число с плавающей запятой.

Разрядность 8 байт. Допустимый диапазон кодирования 1∙10+308 до 1∙10-308

char

ASCII код символа.

Разрядность 8 бит.

symbol

Последовательность символов.

255 байт – символов

string

Последовательность символов, заключенная в двойные кавычки.

255 байт – символов

Примечание. При использовании домена string строки могут заключаться в двойные кавычки и содержать как символы кириллицы, так и латинские буквы. Строки без двойных кавычек могут содержать только латинские буквы, первый символ – строчная буква. Домен symbol позволяют использовать любую последовательность латинских символов, начинающихся со строчной буквы.

Примеры:

hello_world – домены string и symbol;

“Привет МИР” – домен string.

Символьный домен char дает возможность использовать символы напрямую или в виде кода:

‘\169’ – код сим;

‘a’ – символ.

В разделе предикатов приводится описание всех предикатов создаваемой программы.

Аргумент предиката – условное обозначение домена, из которого может принимать значение переменная или константа предметной области программы. Допускается указывать напрямую имена доменов, в этом случае раздел доменов в программе может отсутствовать. Допускается наличие предикатов, не содержащих аргументов. Обычно такие предикаты используются для программирования правил.

Для организации вывода в окно утилиты TestGoal используются системные предикаты:

write – вывод в окно;

writef – форматный вывод в окно;

nl – переход на следующую строку при выводе.

При организации вывода в предикатах write и writef могут быть использованы служебные символы, показанные в таблице 1.3.

Таблица 1.3. Служебные символы.

Символ

Назначение

\n

Переход на другую строку

\t

Табулирование значения

\r

Переход в начало выводимой строки

Предикат write имеет формат write(param1,param2,…).В качестве параметра может выступать имя переменной, либо строка.

Формат предиката writef writef(Format_String,param1,param2,…)

где Format_String – форматная строка. Форматная строка должно содержать форматные спецификаторы. В общем виде такой спецификатор имеет вид %-m.pf, описание спецификатора приводится в таблице 1.4.

Таблица 1.4. Форматный спецификатор.

Элемент

Назначение

-

Выравнивание поля по левому краю

m

Минимальная длина поля вывода

p

Максимальное число символов, выводимых в поле, число десятичных разрядов

f

Формат вывода числа

Форматы вывода чисел сведены в таблицу 1.5..

Таблица 1.5. Примеры форматов для чисел.

Формат

Назначение

f

Вещественное число с фиксированной точкой

e

Вещественное число в экспоненциальном представлении

d

Целое знаковое число

o

Целое восьмеричное число

x

Целое шестнадцатеричное число

Для организации ввода с клавиатуры в Visual Prolog используются системные предикаты, показанные в таблице 1.6.

Таблица 1.6. Системные предикаты ввода.

Системный предикат

Назначение

readln

Чтение строки символов

readint

Чтение целого числа

readreal

Чтение вещественного числа

readchar

Чтение символа

В качестве аргумента задается имя переменной, которая инициализируется вводимым значением.

Пример. Правило для ввода с клавиатуры двух целых чисел, их сложения и вывода суммы на экран.

sum:-readint(X1),nl,readint(X2),X3=X1+X2,write(X3).