Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Стандартные предикаты ввода-вывода в Турбо-Прологе




Служат для организации взаимодействия программы с пользователем.

write (l1, l2, …) ((i)*)

Запись заданных констант или значений переменных l1, l2, … в активное окно на текстовом устройстве вывода. Аргументы могут быть как константами так и переменными, связанными со значениями стандартных типов данных.

write f (формат, a1, a2, …) (i, (i)*)

Осуществляется форматный вывод. Общий вид формата %-m.p,

где % - начальный символ, - – указывает выравнивание по левой границе, по умолчанию – по правой границе, m – минимальная ширина поля вывода (необязательно), p – точность выводимых чисел.

readln (строка) (string): (o)

Читает строку с текстового устройства ввода и связывает ее с заданной переменной. Конец строки – ввод. Переменная может быть символьного типа.

readint (целочисленная переменная) (integer): (o)

Читает целое число и связывает его с заданной переменной. Переменная не должна быть определена до вызова предиката.

readreal (вещественная переменная) (real): (o)

readchar (символьная переменная) (char): (o)

inkey (символ) (char): (o)

Читает символ, в отличии от readchar выполнение программы не прерывается. Поэтому применяется для организации циклов ожидания. Предикат inkey не выполняется, если не введен ни один символ.

Отсечение в программах на Турбо-Прологе.

В процессе достижения цели Пролог-система осуществляет автоматический перебор вариантов, делая возврат при неуспехе какого-либо из них. Такой перебор – полезный программе механизм, так как он освобождает пользователя от необходимости производить этот перебор самому. С другой стороны ничем не ограниченный перебор может быть источником неэффективности программы. Поэтому требуется его ограничить или исключить вовсе. Для этого предусмотрено специальное целевое утверждение «!,», называемое отсечением. Отсечение реализуется следующим образом: после согласования ЦУ, стоящего перед отсечением, все предположения с тем же предикатом расположенные после отсечения не рассматриваются

Можно выделить три основных функции отсечения:

1. Для устранения бесполезного цикла (вычисление суммы 1+2+…+N)

сумма (1, 1):-,!

сумма (N, K):- N1=N-1, сумма (N1, K1), K=K1+N.

Если граничное условие будет записано в виде сумма (1, 1)., то сопоставление головы правила с запросом будет происходить успешно и при n=0, то есть будет предпринята попытка доказать цель сумма (0, К), что в свою очередь приводит к цели сумма (-1, К) и т.д.

2. При программировании взаимоисключающих утверждений.

max (X, Y, Max)

max (X, Y, X):- X>=Y.

max (X, Y, Y).

Или

max (X, Y, X):- X>=Y,!

max (_, Y, Y).

3.При необходимости неудачного завершения цели.





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 764 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Люди избавились бы от половины своих неприятностей, если бы договорились о значении слов. © Рене Декарт
==> читать все изречения...

2514 - | 2318 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.