Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Использование встроенных предикатов.
Для управления процессом вывода информации на экран в Турбо Прологе существуют встроенный предикат write, который производит вывод заданного количества аргументов (константы или переменные) на текущее устройство вывода. На момент вывода переменные не должны быть свободными. Формат write ( A 1, A 2,..., AN ). Согласуется всегда успешно. Предикат nl обеспечивает переход на новую строку в текущем устройстве вывода (то же, что write("\n")). Эти предикаты удобно использовать в разделе описания внутренней цели, например: GOAL Write (“Родственные отношения :”), nl , father ( X , “Анна”), write (“Отцом Анны является”, X ).
Для ограничения пространства поиска, с целью повышения эффективности работы программ используется предикат отсечения cut (записывается как “!”). Он всегда завершается успешно. После того, как до него дошла очередь, он устанавливает "забор", который не дает "откатиться назад", чтобы выбрать альтернативные решения для уже "сработавших" подцелей. То есть для тех, которые расположены левее отсечения . На цели , расположенные правее, отсечение не влияет. Кроме того, отсечение отбрасывает все предложения процедуры, расположенные после предложения , в котором находится отсечение . Например, для нахождения максимума из двух чисел можно воспользоваться следующим правилом: max2(X,Y,X):- X>Y,!./* если первое число больше второго, то первое число - максимум */ max2(_,Y,Y). /* в противном случае максимумом будет второе число */
Задание для лабораторной работы В соответствии с вариантом задания, определенным преподавателем, построить базу знаний «Родственные отношения», содержащую предикаты родитель, мужчина, женщина. Требуется определить новое отношение и выявить круг лиц ему удовлетворяющих. Оформить отчет с указанием варианта задания, текста базы знаний, результатов выполнения запросов, трассы и деревьев вывода для правил. Варианты заданий
Контрольные вопросы.
Неизвестное_правило(X, Z) :- родитель( X , Y ), родитель( Y , Z ), мужчина( X ).
Неизвестное_правило(X, К) :- родитель( Y , X ), родитель( Y , Z ), X <> Z , родитель( Z ,К), женщина(К).
Лабораторная работа № 3 ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ VISUAL PROLOG Цель работы: изучить основные элементы ИСР VISUAL PROLOG и получить практический навык их использования.
Создание нового проекта. Для создания нового проекта VISUAL PROLOG необходимо выполнить команду Project a New , появится окно Project Settings (Настройки проекта). На закладке General необходимо заполнить следующие поля • Project Name - название проекта; • Base Directory - основная папка для хранения проекта. Затем нажать кнопку [Create]. Активизируется окно проекта, которое содержит окно дерева проекта – для отображения списка файлов проекта и окно сообщений – для вывода сообщений компилятора. Создание формы. Для создания формы необходимо выполнить командуFile - New . Появится окно Create Project Item (Создание элементов проекта). На левой панели окна выбрать пункт Form и в поле Name ввести его название (предпочтительно на английском языке). После нажатия на кнопку [ Create ] появится окноForm Properties (Свойства формы), в котором можно установить размеры окна( Size ), текст заголовка ( Title ), атрибуты шрифта( Font ) и т.д. После настройки необходимых параметров и нажатия на [ OK ] появятся окна редактора формы рис 3.1. рис. 3.1. Окна редактора формы
Окно Controls содержит визуальные компоненты доступные для перемещения на форму, Layout - служит для выравнивания размеров и положения компонентов. Для компиляции программы используется команда Build - Build , клавиша [F9] или соответствующая кнопка на панели инструментов. Работа с меню Для активизации пунктов меню в окне дерева проекта дважды щелкнуть по пункту TaskMenu.mnu , откроется окно TaskMenu (Настройки пунктов меню) изображенное на рис 3.2. Рис.3.2.Окно настроек пунктов меню
В нижней части этого окна расположено дерево меню. Для активизации пункта меню необходимо открыть нужную ветвь , щелкнуть по пункту и убрать галочку в пункте Disabled. Затем закрыть окно редактора меню подтвердив изменения с помощью кнопки[Sаve]. Для того чтобы при выборе пункта меню выполнялось определенное правило, надо в окне дерева проектов в контекстном меню пункта TaskWindow.win выбрать команду CodeExpert . Появится окно Dialog and Window Expert. Пример .Создать обработчик команды File - New, создающий новое окно . Для этого в окне Dialog and Window Expert выбрать команду Menu/TaskMenu/ id_file/ id_file_new. В нижней части окна нажать кнопку [Add] и дважды щелкнуть по ветке id_file_new ->onFileNew. Откроется редактор текста программы содержащий следующую заготовку: clauses Предикат onFileNew будет выполняться в том случае если пользователь выполнит команду File - New Для добавления функциональности к этому предикату воспользуемся конструктором new создающим новое окно, и зададим ему имя Form. Для отображения этого окна используется метод show (). Таким образом, для открытия формы с именем query предикат onFileNew, будет выглядеть следующим образом: clauses |
||
Последнее изменение этой страницы: 2018-05-10; просмотров: 470. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |