misle.ru страница 1
скачать файл
Основы

представления

знаний



Методические указания
к лабораторным работам

Министерство образования и науки Российской Федерации
Балтийский государственный технический университет «Военмех»
Институт систем управления и управляющих систем
Кафедра информационных систем и компьютерных технологий

Основы


прЕДСТАВЛЕНИЯ

знаний


Методические указания
к лабораторным работам

Санкт-Петербург


2008

Составитель: А.Н. Гущин, доц., к.т.н.


УДК 004.82(075.8)
Основы представления знаний: Методические указания к лабораторным работам / Сост.: А.Н. Гущин; Балт. гос. техн. ун-т. – СПб., 2008. – с.

Методические указания содержат восемь лабораторных работ, предназначенных для выполнения на компьютере. Лабораторные работы расположены в порядке возрастающей сложности. В каждой работе представлены примеры вариантов индивидуальных заданий.

Предназначены для использования в лабораторных работах по курсу «Основы представления знаний» для студентов обучающихся по специальности «Теоретическая и прикладная лингвистика», а также для студентов обучающихся по специальностям «Автоматизированные системы обработки информации и управления» и «Информационные системы и технологии».

Рецензент – канд. техн. наук, проф. Н.Н. Смирнова



Утверждено
редакционно-издательским
советом университета

 Составитель, 2008


 БГТУ, 2008

Предисловие


При изучении курса «Основы представления знаний» студенты выполняют лабораторные работы, варианты которых приведены в данных методических указаниях.

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

Варианты заданий выдаются студентам заранее с тем, чтобы они имели возможность подготовиться к выполнению лабораторной работы: просмотреть теоретический материал по теме работы и продумать алгоритмы решения задач. Лабораторные работы выполняются на персональных компьютерах с использованием среды разработки Turbo Prolog. Основные сведения по работе в среде Turbo Prolog приведены в приложении 1.

Каждую программу в работающем виде (после отладки и тестирования) студент должен показать преподавателю, после чего лабораторная работа подлежит защите. К защите работы студент обязан подготовить отчет, включающий в себя, как правило, титульный лист, формулировку задания, описание способа решения задачи, текст программы или базы знаний и результаты тестирования. Пример оформления отчета приведен в приложении 2. Конкретное содержание разделов описания способа решения и текста программы (базы знаний) определяется конкретным заданием.

Защита лабораторной работы состоит из двух частей: практической и теоретической. В практической части студент должен объяснить принципы работы одной из представленных им программ, в теоретической – ответить на вопросы по теме лабораторной работы. При подготовке к защите студенту рекомендуется ответить на контрольные вопросы.

Лабораторная работа № 1.
ВВЕДЕНИЕ в СИСТЕМУ ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ TURBO PROLOG. Структура программы. ПРЕДСТАВЛЕНИЕ ФАКТОВ И УСЛОВНЫХ УТВЕРЖДЕНИЙ.


Цель работы – познакомиться со средой логического программирования Turbo Prolog, изучить типовую структуру программы на языке ПРОЛОГ, научиться описывать факты и условные утверждения.

Постановка задачи

Создать в среде Turbo Prolog новый проект для программы с текстовым интерфейсом. Набрать приведенный ниже текст программы, сохранить в своем индивидуальном каталоге. Проанализировать структуру утверждений-фактов и утверждений предикатов. Переписать программу согласно индивидуальному заданию, внеся соответствующие изменения в пользовательский интерфейс.

Написать программу для отображения следующих родственных связей:
В виде фактов представлять утверждения: матерью X является Y; отцом X является Y; X и Y состоят в браке.

В виде правил представлять утверждения: бабушкой X является Y; прабабушкой X является Y; дедушкой X является Y; прадедушкой X является Y; зятем X является Y; невесткой X является Y; тестем X является Y; тещей X является Y; свекром X является Y; свекровью X является Y; родным братом X является Y; родной сестрой X является Y; двоюродным братом X является Y; двоюродной сестрой X является Y; троюродным братом X является Y; троюродной сестрой X является Y.

Сформировать правила: «X может вступить в брак с Y», «X и Y родственники по крови», «X из одной семьи с Y».

Ситуация для описания: Петр является сыном Марии и Ивана, Оксана является дочерью Анастасии и Тойво; у Александра и Александры сын Александр и дочь Александра; Александра-младшая в браке с Петром; Александр-младший в браке с Оксаной. Василиса дочь Марии. Георгий сын Григория. Григорий в браке с Еленой. Елена мать Тойво.



Текст программы
predicates
nondeterm mother(string, string)

nondeterm father(string, string)

nondeterm vbrake(string, string)
clauses
mother("Петр", "Мария").

mother("Оксана", "Анастасия").

mother("Александра", "Александра").

mother("Александр", "Александра").

mother("Василиса", "Мария").

mother("Тойво","Елена").

father("Петр", "Иван").

father("Оксана", "Тойво").

father("Александра", "Александр").

father("Александр", "Александр").

father("Георгий", "Григорий").
vbrake("Александра", "Петр").

vbrake("Александр", "Оксана").

vbrake("Григорий", "Елена").
goal

mother(X,Y), father(X,Z), write(X,”, его мать ”,Y,

”, его отец ”,Z).

Алгоритм выполнения лабораторной работы


  1. Создайте средствами операционной системы на диске, выделенном для хранения информации студентов, каталог с именем, соответствующим номеру группы. Как правило, это диск N:, свой для каждого компьютера в аудитории.

  2. Запустите программу prolog.exe ­­

  3. Нажмите клавишу [Esc] для активизации верхнего горизонтального меню

  4. Клавишами перемещения курсора выделите подменю Files (оно будет выделено другим цветом) и нажмите клавишу [Enter]

  5. Выберите пункт New file – будет создан новый файл программы на прологе и открыт во встроенном текстовом редакторе.

  6. Наберите приведенный выше текст программы.

  7. Запустите программу на выполнение, для чего перейдите в основное меню нажав клавишу [Esc], а затем выберите пункт Run. В верхнем правом углу экрана отобразится окно диалога программы, в нем будет выведен ответ:

Петр, его мать Мария, его отец Иван

Под которым будет надпись «Press SPACE BAR» -- нажмите пробел для закрытия окна. Нажмите пробел и вернитесь в режим редактирования (пункт меню Edit).



  1. Закомментируйте раздел goal, так чтобы он выглядел следующим образом:

/* goal

mother(X,Y), father(X,Z), write(X,”, его мать ”,Y,

”, его отец ”,Z). */


  1. Запустите программу (пункт Run). В окне диалога появится приглашение интерактивного режима работы среды TURBO Prolog

Goal:

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



  1. Проверьте истинности утверждений «Александра и Петр состоят в браке» и «Александра и Иван состоят в браке», введя после приглашения команду vbrake("Александра","Петр")[Enter], а затем vbrake("Александра","Иван")[Enter]. Для первого утверждению должен быть получен ответ Yes (утверждение истинно), для второго – No (утверждение ложно).

  2. Кроме проверки истинности утверждений относительно констант, TURBO Prolog в интерактивном режиме также может определять условия истинности утверждений (то есть, при каких значениях не унифицированных изначально переменных утверждение обращается в истинное). Например, для определения, чьей матерью является Александра, необходимо ввести команду mother(X, "Александра")[Enter]. Должен быть получен ответ:

X=Александра

X=Александр

2 Solution

Это ответ означает, что введенное утверждения обращается в истинное, если переменная X унифицируется с константой "Александр" или "Александра", и всего имеется 2 решения. Аналогичным образом можно получить все брачные пары, если ввести команду vbrake(X,Y)[Enter].



  1. Модифицируйте программу для отображения дополнительных родственных связей, указанных в задании. Например, для выражения X является бабушкой Y по матери следует использовать правило

babushka(Y,X):-mother(Y,Z),mother(Z,X).

  1. После выполнения описания всех отношений общей части программы сохраните её для отчета и напишите новую программу, согласно индивидуальному заданию.

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


Примеры вариантов заданий

Вариант 1

Описать в виде утверждений и правил ситуацию: устройство X состоит из узлов Y1, Y2, … Yn; узел Y1 состоит из деталей Y1.1, Y1.2 или Y1.21, Y1.3 или Y1.31 и т.д. Сформировать правило, выводящее возможные варианты состава устройства X



Вариант 2

Описать в виде утверждений ситуации: «два слова являются синонимами», «два слова являются антонимами» и «два слова являются «омонимами». Не менее 10 примеров для каждого утверждения. Сформировать правило, выводящее все слова из двух других групп для второго слова из любой группы по указанному первому. Например, ищет все синонимы и омонимы ко всем антонимам заданного слова и т.д.


Контрольные вопросы

  1. Предложения в программе на языке Пролог. Виды предложений.

  2. Термы. Константы, переменные, предикаты. Функтор.

  3. Общая структура программы на языке Пролог.

  4. Порядок следования предложений для различных предикатов в разделе clauses и его влияние на формирование выводов.

  5. Унификация переменных. Правила унификации.

  6. Отличия унифицированных и сцепленных переменных.



Лабораторная работа № 2.
ИСПОЛЬЗОВАНИЕ РЕКУРСИИ В ЯЗЫКЕ ПРОЛОГ


Цель работы – изучить способы решения рекурсивных задач с помощью языка Пролог.

Постановка задачи

Набрать и отладить приведенную программу вычисления суммы целых положительных чисел, следующих друг за другом с шагом d, и заканчивающихся числом n. Значения d и n вводятся пользователем по запросу с экрана дисплея. В случае d > n сумма равна n.

Написать согласно индивидуальному заданию программу на языке ПРОЛОГ, вычисляющую заданную рекурсивную формулу.

Текст программы

domains


n,d,f=integer

predicates

sum(n,d,f)

result


clauses

sum(N,D,F):-D>N,F=N.

sum(N,D,F):-N>0,N1=N-D,sum(N1,D,F1),F=(N1+D)+F1.

result:-write("Введите число N="),

readint(N),N>0,

write("Введите шаг D="),readint(D),D>0,sum(N,D,F),

write("Сумма = ",F),nl,result.

goal


write("Результат"),nl,result.
Примеры вариантов заданий

Вариант 1

Написать программу вычисления факториала:





Вариант 2

Написать программу вычисления n-го числа Фибоначчи:





Вариант 3

Написать программу вычисления суммы n первых членов гармонического ряда:





Контрольные вопросы

  1. Что такое рекурсия?

  2. Для чего используется раздел domain в программе на языке ПРОЛОГ?

  3. Унифицируем ли переменные в доменах n, d и f в приведенной программе?

  4. Возможно ли задание в программе на языке ПРОЛОГ циклов без использования рекурсии?



Лабораторная работа № 3.
ПРЕДСТАВЛЕНИЕ СПИСОКВ. Программирование ПОИСКОВЫХ АЛГОРИТМОВ


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

Постановка задачи

Написать программу на языке ПРОЛОГ, выполняющую заданные в задании операции над списками строк, целых и рациональных чисел. При необходимости, реализовать также дополнительные операции, требующиеся для выполнения заданных действий.



Примеры вариантов заданий

Вариант 1

Реализовать операции над списками: выделить первый элемент списка; выделить последний элемент списка; удалить последний элемент списка.



Вариант 2

Реализовать операции над списками: удалить первое вхождение заданного элемента в списке; удалить все вхождения заданного элемента в списке; вывести элементы списка в обратном порядке; изменить порядок следования элементов в списке на противоположный.



Вариант 3

Из заданного списка образовать палиндром. Палиндром – это список, который читается одинаково как слева направо, так и в обратном направлении. Пример палиндрома – [1,2,3,2,1].



Вариант 4

Реализовать операции над списками: выделить первый элемент списка; выделить последний элемент списка; удалить последний элемент списка.



Вариант 5

Произвести циклический сдвиг элементов списка:



    – на одну позицию влево (вправо),

– на N позиций влево (вправо).

Вариант 6

Произвести сдвиг элементов списка (не циклический):



    – на одну позицию влево (вправо),

– на N позиций влево (вправо).

Вариант 7

Удалить начало списка до заданного элемента X (включительно). Удалить конец списка, начиная с заданного элемента X.



Вариант 8

Заменить в списке все элементы со значением X на значения Y



Вариант 9*

Разбить исходный список на N списков примерно одинаковой длины, где N задается пользователем и больше или равно 2.


Контрольные вопросы

  1. Синтаксис списков в языке ПРОЛОГ.

  2. Синтаксис задания доменов для списков в языке пролог.

  3. Встроенные предикаты для работы со списками.

  4. Унификация списков. Унификация головы и хвоста списка.

  5. Предикат отсечения ! и предикат неудачи fail. Применение при обработке списков для поиска всех возможных решений.



Лабораторная работа № 4.
ПРЕДСТАВЛЕНИЕ СЛОЖНЫХ СТРУКТУР ДАННЫХ


Цель работы – изучить способы представления в языке Пролог сложных структур данных, представляющих составные объекты.

Постановка задачи

Сформировать статическую базу данных (БД) о книгах с использованием структур. Каждая книга представляется структурой из следующих элементов: название, список авторов, издательство, год издания. Заполнить БД сведениями, не менее чем о 10 книгах. Сформировать следующие запросы к базе данных:

Названия всех книг заданного автора;

Все авторы, с которыми заданный автор когда-либо писал в соавторстве;

Книги без указания авторов;

Каких авторов публикует указанное издательство.



Примеры вариантов заданий

Вариант 1

Сформировать с использованием структур статическую БД о студентах. Для каждого студента хранить следующую информацию: Фамилия, Имя, Отчество, год рождения, номер зачетной книжки, список пар «название дисциплины» – «итоговая оценка». Сформировать следующие запросы к базе данных:

Все студенты заданной группы;

Все оценки конкретного студента;

Все однофамильцы во всех группах;

Самый «лучший» и самый «худший» набор на каждом факультете (по среднему баллу).



Вариант 2

Сформировать с использованием структур статическую БД об авторах. Для каждого автора хранить следующую информацию: Фамилия, Имя, Отчество, год рождения, список произведений. Каждое произведение задается структурой: название, год, вид, жанр. Сформировать следующие запросы к базе данных:

Названия всех произведений заданного автора;

Все жанры, в которых проявил себя указанный автор;

Все авторы, отметившиеся в указанном жанре;

Какие виды произведений встречаются среди произведений указанного жанра.


Контрольные вопросы

  1. Синтаксис структур в языке ПРОЛОГ.

  2. Синтаксис задания доменов, содержащих в себе структуры.

  3. Синтаксис списка структур и структур, содержащих в себе списки в качестве элемента.

  4. Унификация структур.



Лабораторная работа № 5.
ПРИМЕНЕНИЕ ДИНАМИЧЕСКОЙ БАЗЫ ДАННЫХ


Цель работы – приобретение практических навыков составления и использования программ, работающих с динамической базой данных (БД).

Постановка задачи

Разработать самообучающийся англо-русский словарь, сущность которого в следующем. В программе имеется некоторый набор пар английских и соответствующих им русских слов. По введенному слову мы должны получить его перевод (с английского на русский или наоборот). Если нужного слова в словаре нет, должна быть предусмотрена возможность пополнения словаря этим словом с его переводом. В конце работы программы дополненная БД должна сохраняться в файле, а при новом запуске программы информация из файла заносится в динамическую БД, которая может опять пополняться. В программе предусмотреть возможность редактирования и удаления отдельных предложений БД.



Примеры вариантов заданий

Вариант 1

Разработать программу, реализующую словарь синонимов для русского языка.



Вариант 2

Разработать программу, реализующую словарь антонимов для русского языка.



Вариант 3

Разработать программу, реализующую словарь омонимов для русского языка.



Вариант 4*

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



Контрольные вопросы

  1. Что такое динамическая база данных (БД)?

  2. Для чего предназначен раздел database?

  3. Как производится добавление утверждений в динамическую БД?

  4. Как производится удаление отдельных утверждений из динамической БД?

  5. Как производится удаление всех утверждений из динамической БД?

  6. Как выполняется сохранение динамической БД на внешнем носителе и чтение с внешнего носителя?

  7. Можно ли хранить в динамической БД предложения-правила?



Лабораторная работа № 6.
ПРОДУКЦИОННОЕ ПРЕДСТАВЛЕНИЕ ЗНАНИЙ


Цель работы – изучить способы продукционного представления знаний в программах на языке ПРОЛОГ на примере классификационной экспертной системы GENI.PRO. Научиться самостоятельно составлять базу знаний продукционного типа для указанной экспертной системы.

Постановка задачи

В поставку системы TURBO PROLOG входит пример продукционной экспертной системы GENI.PRO. Она позволяет, кроме интерактивного изменения знаний, использовать прямое редактирование файла базы знаний. Файл знаний является файлом сохраненной динамической базы данных и имеет следующий формат:

rule(номер_правила, общее_определение, уточненное_определение, список номеров условий, при одновременном выполнении которых истинно уточненное определение)

… (другие правила rule())

cond(номер_условия, вопрос, задаваемый пользователю. При ответе «Да» условие считается выполненным)

… (другие правила cond())

data_file(имя_самого_файла_базы_знаний)

topic(самое_общее_определение с которого начинается работа системы).

Необходимо отредактировать файл базы знаний таким образом, чтобы программа GENI.PRO вместо исходной классификации животных по их признакам выполняла классификацию объектов в новой предметной области согласно индивидуальному заданию. Поскольку программа GENI.PRO не умеет считывать базу знаний из каталога, отличного от каталога своего запуска, необходимо предварительно скопировать все файлы по маске GENI.* в персональный рабочий каталог. Изменение файла базы знаний GENI.GNI производить только на такой своей копии!

В отчете представить текст измененной базы знаний (вместо текста программы) и два-три примера работы программы GNI.PRO с измененной базой знаний.



Примеры вариантов заданий

Вариант 1

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



Вариант 2

Подготовить базу знаний для классификации методов межсубъектной коммуникации.



Вариант 3

Подготовить базу знаний для классификации естественных языков.


Контрольные вопросы

  1. В чем заключается продукционная модель представления знаний?

  2. Антецедент и консеквент в продукционной модели. Соответствие в формате базы знаний GENI.GNI.

  3. Основные достоинства и недостатки продукционной модели представления знаний.

  4. Поиск по цепочке вперед и поиск по цепочке назад. Достоинства и недостатки каждого способа.



Лабораторная работа № 7.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФРЕЙМОВ


Цель работы – изучить способы представления знаний в программах на языке ПРОЛОГ с помощью фреймов.

Постановка задачи

Написать программу на языке ПРОЛОГ, реализующую с помощью предикатов основные операции над фреймами, представленными в виде структуры («имя фрейма», «список атрибутов»). При этом атрибуты также представляются в виде структуры («имя атрибута», «список значений»), а значение представляется структурой («тип значения», «собственно значение»). С использованием разработанных предикатов представления отношений описать не менее 10 объектов заданной предметной области. Сформировать запросы к базе знаний, позволяющие получить представления обо всех атрибутах всех объектов в ней.



Примеры вариантов заданий

Вариант 1

Описать с помощью фреймов ситуацию «Читатель пришел записываться в библиотеку».



Вариант 2

Описать с помощью фреймов пункт аудио/видео проката.



Вариант 3

Описать с помощью фреймов ситуацию «Пользователь включил компьютер и запустил программу Microsoft Word».



Вариант 4*

Описать с помощью фреймов процесс выполнения данной лабораторной работы.



Контрольные вопросы

  1. Фреймовая модель представления знаний.

  2. Виды атрибутов фреймов.

  3. Соотношение между фреймами и предикатами первого порядка.

  4. Процедурные расширения фреймовой модели. Фреймы с присоединенными процедурами.

  5. Достоинства и недостатки фреймовой модели представления знаний.


Лабораторная работа № 8.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ СЕМАНТИЧЕСКИМИ СЕТЯМИ


Цель работы – изучить способы построения в программах на языке ПРОЛОГ семантических сетей для представления знаний.

Постановка задачи

Написать программу на языке ПРОЛОГ, реализующую в виде предикатов основные виды отношений в семантических сетях, такие как «Является частью», «Принадлежит» и т.д., см. [2]. С использованием разработанных предикатов представления отношений описать не менее 10 объектов заданной предметной области. Сформировать запросы к базе знаний, позволяющие получить представления обо всех объектах в ней и всех связях между ними.

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

Примеры вариантов заданий

Вариант 1

Описать в виде семантической сети отношения основных персонажей сказки «Золотой ключик».



Вариант 2

Описать в виде семантической сети отношения объектов и субъектов, участвующих в процессе восприятия зрителем новостей в программе «Вести» телеканала «Россия» в 20:00.



Вариант 3

Описать в виде семантической сети ситуацию «Ученик 9-а класса Иванов И.И. пишет в классе сочинение по произведению А.С.Пушкина «Евгений Онегин»».



Вариант 4*

Описать в виде семантической сети процесс выполнения данной лабораторной работы.



Контрольные вопросы

  1. Что такое семантическая сеть?

  2. Виды отношений.

  3. Классификация свойств отношений.

  4. Соотношение между предикатами первого порядка и отношениями в семантической сети.

  5. Продукционные расширения семантических сетей. Сети с присоединенными процедурами.

  6. Достоинства и недостатки семантических сетей.

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


  1. Гущин, А.Н. Языковые средства разработки интеллектуальных систем: учеб. пособие / А.Н. Гущин; Балт. гос. Техн. ун-т. – СПб., 2006.

  2. Гущин, А.Н. Основы представления знаний: учеб. пособие / А.Н. Гущин; Балт. гос. техн. ун-т. – СПб., 2007.

Приложение 1
Основные сведения по работе в среде TURBO Prolog


Приведем краткое описание основных пунктов меню среды программирования Turbo Prolog 2.0. Выход на строку меню происходит по нажатию клавиши ESC, для перемещения по пунктам меню используются клавиши управления курсором.

  1. Пункт меню Files содержит команды, осуществляющие работу с файлами и общее управление средой. К ним относятся:

Load – загрузка содержимого файла в среду программирования;

Pick – вывод на экран окно со списком ранее загружавшихся файлов. Перемещение по списку - клавиши управления курсором. Загрузка выбранного файла – клавиша Enter;

New File – очистка окна редактора. Если содержимое окна не было сохранено, то будет выведено сообщение, нужно ли его сохранять;

Save – сохранение содержимого окна редактора в файле с ранее заданным именем;

Write to – сохранение содержимого окна редактора в файле, имя которого нужно задать в появившемся окне. По умолчанию, Пролог-программы сохраняются в файлах с расширением PRO;

Directory – просмотр содержимого текущей директории. Перед выводом ее содержимого запрашивается маска, которая затем используется при выводе имен файлов (отображаются имена только тех файлов, которые удовлетворяют заданной маске). Символы ..\, расположенные в списке файлов, позволяют выйти из текущей директории на предыдущий уровень;

Change dir – задание текущей (рабочей) директории;

OS shell – временный выход в DOS (или среду командного интерпретатора Windows);

Quit – выход из среды программирования в операционную систему.

  1. Пункт меню Edit используется для перехода в окно редактирования программы.

  2. Пункт меню Run применяется для выполнения программы. Если в программе присутствует раздел goal, то начинают выполняться предикаты, расположенные после этого служебного слова. Если раздел goal в программе отсутствует, то в окне Dialog появляется сообщение о необходимости ввести целевое утверждение.

  3. Пункт меню Compile активизирует процесс компиляции программы. Перечислим подпункты данного пункта:

Memory – размещение оттранслированной программы в оперативной памяти;

OBJ file – создание только объектных файлов (файлов с расширением OBJ);

EXE file (auto link) – создание исполняемого файла (файла с расширением EXE);

Project (all modules) – компиляция всех модулей проекта.

  1. Пункт меню Options содержит несколько подпунктов, устанавливающих некоторые параметры компиляции:

Link options – определяет нужно ли создавать MAP-файл (Map file) и позволяет подключить библиотеку на этапе компиляции (Libraries);

Edit PRJ file – позволяет отредактировать главный файл проекта;

Compiler directives – содержит параметры компиляции. Среди них наиболее важным является Memory allocation, позволяющий задать размеры кодового сегмента, сегмента стека, динамической памяти («кучи») и т. п.

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

Colors – задание цветов изображения и фона. После выбора этого подпункта на экране появляется еще одно окно, где выбирается элемент, цвет которого нужно изменить.

Window Size – задание размеров окон. После выбора этого подпункта на экране появляется еще одно окно, где выбирается элемент, размеры которого нужно изменить. Для изменения размеров окна используются клавиши управления курсором. Местоположение окна производится Shift+клавиши управления курсором. Нажатие клавиши ESC осуществляет переход к меню команды Setup;

Directories – задание имен директорий, к которым осуществляется обращение по умолчанию. Таковыми являются: Current directory (текущая директория), OBJ directory (директория объектных файлов), EXE directory (директория для выполняемых файлов), Turbo directory (системная директория);

Miscellaneous – задание параметров настройки графического адаптера, текстового редактора и строки подсказки;

Save SYS file – сохранение файла конфигурации;

Load SYS file – загрузка файла конфигурации.
Далее рассмотрим текстовый редактор Turbo Prolog 2.0. Программа на языке Пролог находится в текстовом файле с расширением PRO. Для ее создания можно воспользоваться любым текстовым редактором, однако система программирования снабжена специализированным редактором, из которого можно осуществить проверку программы, оттранслировав ее компилятором системы.

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

Основные возможности редактора системы Turbo Prolog 2.0 перечислены в таблицах 1-4.

Таблица 1. Команды перемещения курсора



Значение

Клавиши

Значение

Клавиши

На символ влево.

Ctrl+S или

Вниз на страницу.

Ctrl+C или PgDn

На символ вправо.

Ctrl+D или

К началу строки.

Ctrl+Q, S или HOME

На слово влево.

Ctrl+A или Ctrl+

К концу строки.

Ctrl+Q, D или END

На слово вправо.

Ctrl+F или Ctrl+

К началу файла.

Ctrl+Q, R или Ctrl+PgUp

Вверх на строку.



К концу файла.

Ctrl+Q, C или Ctrl+PgDn

Вниз на строку.



К началу блока.

Ctrl+Q, B

Вверх на страницу.

Ctrl+R или PgUp

К концу блока.

Ctrl+Q, K

Таблица 2. Команды вставки и удаления



Значение

Клавиши

Режим вставки/замены.

Ctrl+V или INSERT

Стереть левый символ.

BACKSPACE

Стереть символ под курсором.

DELETE

Стереть строку.

Ctrl+BACKSPACE

Стереть символы до конца строки, начиная с позиции, на которую указывает курсор.

Ctrl+Q, Y

Таблица 3. Команды работы с текстовыми блоками



Значение

Клавиши

Отметить начало блока.

Ctrl+K, B

Отметить конец блока.

Ctrl+K, K

Скопировать блок.

Ctrl+K, C

Передвинуть блок.

Ctrl+K, V

Стереть блок.

Ctrl+K, Y

Считать блок с диска.

Ctrl+K, R или F7

Записать блок на диск.

Ctrl+K, W

Снять отметку с блока.

Ctrl+K, H

Таблица 4. Команды общего назначения






Значение

Клавиши

Дополнительный редактор.

F8

Перейти к строке.

Ctrl+F2

Закончить редактирование.

ESC или F10

Поиск.

Ctrl+F3

Продолжение поиска.

Shift+F3

Поиск и замена.

F4

Остановимся более подробно на организации поиска фрагментов текста. Прежде всего, нужно поместить курсор в произвольное место файла выше искомого фрагмента текста. Самым подходящим местом является начало программы.

Для поиска фрагмента текста пользуются клавишами Ctrl+F3. В нижней части окна редактирования появляется строка, где набирается искомый текст. После этого снова нажимаются клавиши Ctrl+F3 - курсор переместится на строку, где находится первый искомый фрагмент. Для повторного поиска того же фрагмента используются клавиши Shift+F3.

Поиск и замена позволяет найти фрагмент текста и заменить его другим. Сначала нажимается клавиша F4. Появившаяся подсказка предложит задать заменяемый текст. После набора этого текста снова нажимается клавиша F4. Другая подсказка предлагает задать заменяющий текст, после которой нажимается клавиша Enter.

После этого задается, какую замену нужно произвести: локальную или глобальную. Если нажать клавишу G, то будет произведена глобальная замена. Если воспользоваться клавишей L, то будет осуществлена локальная замена: система заменит только первое вхождение искомого текста ниже курсора.

Затем система просит указать, нужно ли запрашивать разрешение на замену при каждом обнаружении искомого фрагмента текста. Если ответить на этот вопрос, нажав клавишу Y, то при нахождении каждого экземпляра текста для замены редактор будет выдавать сообщение, нужно ли замещать этот экземпляр.

Дополнительный редактор вызывается при нажатии клавиши F8. Появляется окно со списком файлов, которые можно разместить в этом окне. После выбора файла можно осуществлять его редактирование.


Приложение 2
Образец оформления отчета по лабораторной работе


Балтийский государственный технический университет «Военмех» им. Д. Ф. Устинова

Кафедра И5

«Информационные системы и компьютерные технологии»

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

«Использование рекурсии в языке ПРОЛОГ»

Вариант 1




Выполнил:

Студент Иванов И. И.

Группа Ф151
Преподаватель:

Гущин А. Н.

Санкт-Петербург

2008


Задача

Дано натуральное число N (вводится с клавиатуры), найти и вывести на экран факториал числа N, используя рекурсию.


Решение:

predicates

fact(integer, integer)

result


clauses

fact(1,1).

fact(N,F):-N>1,N1=N-1,fact(N1,F1),F=F1*N.

result:-write("Введите число N="),

readint(N),N>0,fact(N,F),

write("Факториал = ",F),nl,result.

goal

nl,result.



Результаты выполнения программы:

Введите число N=2

Факториал = 2

Введите число N=3

Факториал = 6

Введите число N=6

Факториал = 720

Введите число N=4

Факториал = 24

Введите число N=5

Факториал = 120

Введите число N=

Оглавление


Предисловие 3

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


ВВЕДЕНИЕ в СИСТЕМУ ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ TURBO PROLOG. Структура программы. ПРЕДСТАВЛЕНИЕ ФАКТОВ И УСЛОВНЫХ УТВЕРЖДЕНИЙ. 4

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


ИСПОЛЬЗОВАНИЕ РЕКУРСИИ В ЯЗЫКЕ ПРОЛОГ 7

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


ПРЕДСТАВЛЕНИЕ СПИСОКВ. Программирование ПОИСКОВЫХ АЛГОРИТМОВ 9

Лабораторная работа № 4.


ПРЕДСТАВЛЕНИЕ СЛОЖНЫХ СТРУКТУР ДАННЫХ 10

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


ПРИМЕНЕНИЕ ДИНАМИЧЕСКОЙ БАЗЫ ДАННЫХ 12

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


ПРОДУКЦИОННОЕ ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 13

Лабораторная работа № 7.


ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФРЕЙМОВ 15

Лабораторная работа № 8.


ПРЕДСТАВЛЕНИЕ ЗНАНИЙ СЕМАНТИЧЕСКИМИ СЕТЯМИ 16

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

Приложение 1
Основные сведения по работе в среде TURBO Prolog 19

Приложение 2


Образец оформления отчета по лабораторной работе 24


Основы представления знаний
Составитель: Гущин Артем Николаевич
Редактор Г. М. Звягина

Подписано в печать __.__.2008. Формат 60х84/16.

Бумага документная. Печать трафаретная. Усл. печ. л. ___ .

Уч.-изд. л. ___. Тираж ___ экз. Заказ №

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

Типография БГТУ



190005, С.-Петербург, 1-я Красноармейская ул., д.1
скачать файл



Смотрите также: