Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по Прологу.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
164 Кб
Скачать
☆

Контрольный пример

Ниже приведён текст модуля, производящего запросы к базе данных.

unit lab6Unit;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Amzi, StdCtrls, Buttons;

type

TForm1 = class(TForm)

LSEngine: TLSEngine;

OutPut: TListBox;

GroupBox1: TGroupBox;

BitBtn1: TBitBtn;

Label1: TLabel;

Label2: TLabel;

ComboBox1: TComboBox;

procedure FormCreate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

t: TTerm;

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

try

LSEngine.InitLS('lab6');

LSEngine.LoadXPL('lab6');

LSEngine.Main;

except

showmessage('База не загружена');

end;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

try

LSEngine.CloseLS;

except

showmessage('База не закрыта');

end;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

var

tf:boolean;

begin

Output.items.Clear;

tf := LSEngine.CallPStr(t, ComboBox1.Text);

while tf do

begin

if LSEngine.GetArity(t)=1 then Output.items.add(LSEngine.GetPStrArg(t, 1)+' is '+LSEngine.GetFunctor(t))

else Output.items.add(LSEngine.GetPStrArg(t, 1)+' is '+LSEngine.GetFunctor(t)+' of '+LSEngine.GetPStrArg(t, 2));

tf := LSEngine.Redo;

end;

end;

end.

Задание к работе

1. Составить программу, которая отображает все данные лабораторной работы № 1 на форме DELPHI приложения.

2. Подобрать тестовые данные, проверяющие работу программы.

3. Провести анализ ошибок и полученных результатов, составить отчет о проделанной работе.

Библиографический список

  1. Братко И. Программирование на языке Пролог для искусственного интеллекта. – М.: Мир, 1990.

  2. Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. – М.: Мир, 1990.

  3. Метакидес Г., Нероуд А. Принципы логики и логического программирования. – М.: Факториал, 1998

  4. Хоггер К. Введение в логическое программирование. – М.: Мир, 1988.

  5. Ин Ц., Соломон Д. Использование Турбо-Пролога. – М., 1990.

  6. Марсуллус Д. Программирование на языке пролог для искусственного интеллекта, М.: Мир, 1994

  7. Абилов В. Г., Зинченко Н. И. Turbo и Arity: два подхода к логическому программированию // «Мир ПК». 1990. – №2, 3.

  8. Чень Ч., Ли Р. Математическая логика и автоматическое доказательство теорем. – М.: Наука, 1983.

  9. Nilsson U., Maluszynski J., Logic, Programming and Prolog, 2 end., John Wiley and Sons, 1995.

Оглавление

Логическое программирование 1

Введение 2

Лабораторная работа № 1 5

Ознакомление с оболочкой AMZI! Prolog. Изучение основ программирования на языке Пролог. Отношения между данными 5

Лабораторная работа № 2 9

Использование рекурсивных правил и структурированных данных 9

Лабораторная работа № 3 14

Работа со списками 14

Лабораторная работа N 4 18

Бинарные деревья 18

Лабораторная работа № 5 21

Работа с динамическими базами данных 21

Лабораторная работа № 6 23

Использование возможностей логического сервера AMZI! Prolog в среде Delphi 23

Библиографический список 32

Оглавление 33

Учебное издание

Логическое программирование

Методические указание к выполнению лабораторных работ для студентов специальности 220400 – Программное обеспечение вычислительной техники и автоматизированных систем

Составители: Хачатрян Владимир Ервандович

Лыхин Евгений Валентинович

Шатров Денис Валерьевич

Редактор В. И. Пустовая

Корректор Т. В. Кучеренко

Изд. лиц. ИД № 00434 от 10.11.99.

Подписано в печать 29.12.00. Формат 60x84/16.

Усл. печ. л. 1,8. Уч.-изд. л. 2,0.

Тираж экз. Заказ Цена

Отпечатано в Белгородской государственной технологической академии

строительных материалов

308012, г. Белгород, ул. Костюкова, 46.