Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

Информатика->Задача
В настоящее время все более актуальными становятся задачи оптимизации, поиска, реализации распределенных и (или) параллельных систем. Многие из них ле...полностью>>
Информатика->Реферат
Как отмечалось, инфологическая модель отображает реальный мир в некоторые понятные человеку концепции, полностью независимые от параметров среды хране...полностью>>
Информатика->Реферат
Современные компьютерные мониторы делятся на две большие группы: CRT мониторы (от Cathode Ray Tube, электронно-лучевая трубка – самый обычный тип мони...полностью>>
Информатика->Реферат
Актуальность темы исследования состоит в том, что динамичность процессов, происходящих в переходной экономике, требует постоянного анализа информации ...полностью>>

Главная > Курсовая работа >Информатика

Сохрани ссылку в одной из сетей:

1. ТОЧКА.

Синтаксис: ТОЧКА(Арг1,Арг2,Арг3)

Встроенный предикат ТОЧКА имеет три аргумента. Ниже приведены результаты выполнения в зависимости от типа аргумента.

ТОЧКА(ц1,ц2,ц3) Установить точку с координатами (ц1,ц2) и цветом ц3;

ТОЧКА(ц1,ц2,П3) П3 := цвет_точки(ц1,ц2);

ТОЧКА(ц1,П2,ц3) Рисовать линию с начальной точкой (ц1,0), конечной - (ц1,211) цветом ц3;

ТОЧКА(П1,ц2,ц3) Рисовать линию с начальной точкой (0,ц2), конечной - (255,ц2) цветом ц3;

ТОЧКА(П1,П2,ц3) Заполнить экран цветом ц3. В этих пяти случаях предикат истинен, иначе - выполнение программы прекращается и выводится сообщение об ошибке: "Невыполнимый предикат ТОЧКА".

2. ЛИНИЯ.

Синтаксис: ЛИНИЯ(Арг1,Арг2,Арг3,Арг4,Арг5).

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

ЛИНИЯ(ц1,ц2,ц3,ц4,ц) Рисовать линию с начальной точкой (ц1,ц2), конечной - (ц3,ц4), цветом ц

ЛИНИЯ(ц1,ц2,ц3,П4,ц) Рисовать закрашенный треугольник с вершинами (ц1,ц2), (ц3,0), (ц3,211) и цветом ц;

ЛИНИЯ(ц1,ц2,П3,ц4,ц) Рисовать закрашенный треугольник с вершинами (ц1,ц2), (0,ц4), (255,ц4) и цветом ц;

ЛИНИЯ(ц1,П2,ц3,ц4,ц) Рисовать закрашенный треугольник с вершинами (ц1,0), (ц1,211), (ц3,ц4) и цветом ц;

ЛИНИЯ(П1,ц2,ц3,ц4,ц) Рисовать закрашенный треугольник с вершинами (0,ц2), (255,ц3), (ц3,ц4) и цветом ц;

ЛИНИЯ(П1,П2,ц3,ц4,ц) | ЛИНИЯ(ц1,ц2,П3,П4,ц) |

ЛИНИЯ(ц1,П2,П3,П4,ц) | ЛИНИЯ(П1,ц2,П3,П4,ц) - Заполнение экрана цветом ц

ЛИНИЯ(П1,П2,ц3,П4,ц) | ЛИНИЯ(П1,П2,П3,ц4,ц) |

ЛИНИЯ(П1,П2,П3,П4,ц) | ЛИНИЯ(ц1,П2,ц3,П4,ц) - Вертикальный, закрашенный цветом ц прямоугольник, с вершинами (ц1,0), (ц1,211), (ц2,0), (ц2,211);

ЛИНИЯ(П1,ц2,П3,ц4,ц) Горизонтальный закрашенный цветом ц прямоугольник с вершинами (0,ц2), (255,ц2), (0,ц4), (255,ц4);

ЛИНИЯ(ц1,П2,П3,ц4,ц) Четырехугольник цветом ц с вершинами (ц1,0), (ц1,211), (0,ц4), (255,ц4);

ЛИНИЯ(П1,ц2,ц3,П4,ц) Четырехугольник цветом ц с вершинами (0,ц2), (255,ц2), (ц3,0), (ц3,211).

В этих шестнадцати случаях предикат истинен, иначе выполнение программы прекращается и выдается сообщение об ошибке.

3. ОКРУЖНОСТЬ.

Синтаксис: ОКРУЖНОСТЬ(Арг1,Арг2,Арг3,Арг4).

Встроенный предикат ОКРУЖНОСТЬ имеет четыре аргумента. Четвертым аргументом всегда должно быть целое, арифметическое выражение или переменная, конкретизированная целым. Ниже приведены результаты выполнения в зависимости от типов аргументов.

ОКРУЖНОСТЬ(ц1,ц2,ц3,ц) Окружность с центром (ц1,ц2), радиусом ц3, цветом ц;

ОКРУЖНОСТЬ(ц1,ц2,П3,ц) | ОКРУЖНОСТЬ(ц1,П2,П3,ц) |

ОКРУЖНОСТЬ(П1,ц2,П3,ц) Заполнение экрана цветом ц

ОКРУЖНОСТЬ(П1,П2,П3,ц) | ОКРУЖНОСТЬ(П1,П2,ц3,ц) |

ОКРУЖНОСТЬ(ц1,П2,ц3,ц) Вертикальный закрашенный цветом ц прямоугольник с вершинами: (ц1-ц3,0), (ц1-ц3,211), (ц1+ц3,0), (ц1+ц3,211);

ОКРУЖНОСТЬ(П1,ц2,ц3,ц) Горизонтальный закрашенный цветом ц прямоугольник с вершинами: (0,ц2-ц3), (255,ц2-ц3), (0,ц2+ц3), (255,ц2+ц3); В этих восьми случаях предикат истинен, иначе выполнение программы прекращается и выводится сообщение об ошибке: "Невыполнимый предикат ОКРУЖНОСТЬ"

4. ЗАКРАСКА.

Синтаксис: ЗАКРАСКА(Арг1,Арг2,Арг3,Арг4).

Встроенный предикат ЗАКРАСКА имеет четыре аргумента. Процедурно этот предикат означает закрасить цветом Арг3 внутри контура с граничным цветом Арг4 начиная с точки (Арг1,Арг2). Предикат всегда истинен. Все аргументы должны быть целыми, арифметическими выражениями или переменными, конкретизированными целыми. Если это условие не выполняется, то выполнение программы прекращается и выводится сообщение об ошибке: "Невыполнимый предикат ЗАКРАСКА".

Пример: закрашенный квадрат

рамка(x1',y1',x2',y2',цвет')<-ЛИНИЯ(x1',y1',x1',y2',цвет');

ЛИНИЯ(x1',y1',x2',y1',цвет');ЛИНИЯ(x1',y2',x2',y2',цвет');

ЛИНИЯ(x2',y1',x2',y2',цвет');

пример <- рамка(50,50,150,150,8),ЗАКРАСКА(100,100,15,8);

?пример;.

В качестве примера приводится описание угла, вершина которого находится в точке (x,y):

угол(x,y)<-ЛИНИЯ(x,y,10,10,1),ЛИНИЯ(x,y,150,50,1);

?угол(100,100);.

Сначала будет нарисован отрезок, соединяющий точки (100,100) и (10,10), а затем отрезок, соединяющий точки (100,100) и (50,50). Если бы пятым аргументом предикатов ЛИНИЯ было бы число равное нулю, то точки отрезков были бы не видимы. Не обязательно, чтобы описание всей картинки было записано в одном предложении. Часть описания может быть выделена в виде отдельного предложения. Программу предыдущего примера можно модифицировать:

угол(x,y)<-ЛИНИЯ(x,y,10,10,1),продолжение(x,y);

продолжение(x,y)<-ЛИНИЯ(x,y,50,50,1); ?угол(100,100);.

Новая программа будет выполнять те же самые функции, хотя и записывается в два предложения. Система Пролог -Д допускает возможность использования переменных в графических примитивах. В качестве примера приводится описание вектора, выходящего из точки A с кoординатами (x, y) в точку B координатами (s,t):

вектор(A(x,y),B(s,t))<-ЛИНИЯ(x,y,s,t,1);

Необходимо отметить особенность графических объектов, описываемых с помощью переменных. В процессе работы системы может оказаться, что какая-то переменная в описании графического примитива не определена. В этом случае графический примитив все равно будет выполнен, однако переменная принимает все допустимые для нее значения. Иными словами на экране появится геометрическое место точек, задаваемое уравнением графического объекта.

В качестве примера приводится вопрос:

?ЛИНИЯ(0,0,x,0,1);.

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

квадр(x,y,z,t)<-ЛИНИЯ(x,y,x,t,1),ЛИНИЯ(x,y,z,y,1),

ЛИНИЯ(x,t,z,t,1), ЛИНИЯ(z,y,z,t,1);.

7. Обработка списков

На практике часто встречаются задачи, связанные с перечислением объектов. Для описания таких объектов используются списки. Например, список учеников первого класса: [Саша,Петя,Дима,Ксюша,Лена,Оля,Катя].

Элементами списка могут быть не только атомы, но и функции и, вообще, любые элементы, даже списки. Например, список, состоящий из функций - список остановок поезда с указанием времени стоянки:

[Челябинск(0),Миасс(2),Златоуст(5),Вязовая(5),Усть-Катав(2), Аша(2), Уфа(20),Абдулино(3),Самара(20),Сызрань(2),Инза(2),

Рузаевка(10), Потьма(2), Рязань(5), Москва(0)].

Примером списка, состоящего из списков, может служить прямоугольная таблица (матрица), представляющая собой список строк, каждая из которых список элементов в данной строке. Например, таблица: 23 45 56 2 78 89 66 45 56 12 3 75 2 3 6 5 2 1 56 2 5 8 9 22 23 22 33 5 6 9 1 33 может быть представлена следующим списком, состоящим из списков:

[[23,45,56,2,78,89,66,45],[56,12,3,75,2,3,6,5],

[2,1,56,2,5,8,9,22],[2,1,56,2,5,8,9,22],[23,22,33,5,6,9,1,33]].

Во всех примерах квадратные скобки означают, что данный объект представляет собой список. Список может быть определен двумя способами: перечислением элементов списка, то есть так, как это было сделано выше и определением головы и хвоста списка. Например, список [X|Y] определен именно таким путем. X - это голова списка, а Y - его хвост. Различные шаблоны определяют различное внутреннее представление.

Шаблону [x,y] соответствует внутреннее представление

СПИСОК

/ \

x СПИСОК

/ \

y [ ]

Шаблону [x|y] соответствует внутреннее представление:

СПИСОК

/ \

x y

Разные шаблоны - разные внутренние представления - обуславливают различия в унификации. Используя представление списка можно решить ряд задач.

Решение

Задача 1.1.2

1.1.2. Опишите на языке логики первого порядка свойства отношения равенство.

Задача 2.1.2

2.1.2. Опишите на языке Пролог-Д состав своей семьи.

Я опишу некоторую, придуманную мной семью, состоящую из мамы, папы, дедушки (отца мамы) и бабушки. Родственные отношения описываются предикатами МАМА, ПАПА, ДЕДУШКА, БАБУШКА.

Ниже приведен текст программы (файл v8_212.prw)

%2.1.2.

МАМА(Оля,Петя);

ПАПА(Сергей,Катя);

МАМА(Лена,Сергей);

ПАПА(Толя,Оля);

БАБУШКА(X,Y)<-МАМА(X,Z),МАМА(Z,Y);

БАБУШКА(X,Y)<-МАМА(X,Z),ПАПА(Z,Y);

ДЕДУШКА(X,Y)<-ПАПА(X,Z),ПАПА(Z,Y);

ДЕДУШКА(X,Y)<-ПАПА(X,Z),МАМА(Z,Y);

Далее рассмотрим применение программы. Программа отвечает на вопросы о составе семьи.

Приведем примеры запросов:

? ДЕДУШКА(X,Петя);

? МАМА(X,Y);

Результат работы программы:

X=Коля

X=Оля

Y=Катя

X=Лена

Y=Сергей

Задача 2.2.4

2.2.4. На языке Пролог-Д напишите базу знаний, в которой определяется функция, заданная соотношением:

x, если x <-1,

F(x)=  x+1, если -1

x, если x >1.

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

Ниже приведен текст программы (файл v8_224.prw)

%2.2.4

ЗНАЧЕНИЕ(X,F)<-МЕНЬШЕ(X,-1),РАВНО(-1,F);

ЗНАЧЕНИЕ(X,F)<-МЕНЬШЕ(-1,X),МЕНЬШЕ(X,1),СЛОЖЕНИЕ(X,1,F);

ЗНАЧЕНИЕ(X,F)<-МЕНЬШЕ(1,X),РАВНО(X,F);

Приведем примеры запросов:

%Примеры вычислений

?ЗНАЧЕНИЕ(2,F);

?ЗНАЧЕНИЕ(-3,F);

?ЗНАЧЕНИЕ(0.2,F);

Результат работы программы:

F=2

F=-1

F=1.2

Нетрудно убедиться, что вычисления выполненны верно.

Чтобы работать с программой необходимо делать запросы: ЗНАЧЕНИЕ(аргумент,F);

После выполнения запроса в F будет содержатся значение вычисленного выражения.

Задача 2.2.5

2.2.5. Какие сложности могут возникнуть в базе знаний о мамах, если у двух мам дети будут тезками? Напишите программу на Прологе-Д, которая находит имя мамы мальчика Петя второго по порядку в базе знаний. Его маму зовут Оля, а не Саша.

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

Разрабатываемая программа предназначенна для того, чтобы определять имена матерей по именам их детей.

Ниже приведен текст программы (файл v8_225.prw)

%2.2.5.

%База мам и детей

МАМА(1,Наташа,Катя);

МАМА(2,Саша,Петя);

МАМА(3,Света,Ваня);

МАМА(4,Лена,Катя);

Пример запроса в ситуации, когда у матерей дети – тезки

%Какие сложности могут возникнуть в базе знаний о мамах, если у двух мам дети будут тезками?

? МАМА(_,X,Катя);

X=Наташа

X=Лена

Итак, для ребенка мы получили 2-х матерей.

Следующая часть задания:

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

? МАМА(2,X,Петя),РАВНО(X,Саша),НЕ(РАВНО(X,Оля));

Результат работы:

X=Саша

Итак, мы определили имя мамы мальчика Петя второго по порядку в базе знаний. Его маму зовут Оля, а не Саша.

Задача 2.3.2

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

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

1)S(0)=0

2)S(n)=n+S(n-1)

Ниже приведен текст программы (файл v8_232.prw)

%2.3.2.

%унификация вычисленного значения с выходной переменной

Сумма(0,S,S);

%рекурсивный вызов процедуры поиска суммы пока N>0

Сумма(N,P,S)<-СЛОЖЕНИЕ(N,P,L),СЛОЖЕНИЕ(M,1,N),Сумма(M,L,S),!;

Пример использования программы:

%пример вызова предиката

? Сумма(10,S);

Результат:

S=55

Несложная проверка показывает правильность произведенных вычислениий.

Для использования программы, надо вызывать предикат Сумма(X,S), подставляя вместо X число, до которого надо найти сумму.

Задача 2.3.1

2.3.1. Написать на языке Пролог-Д базу знаний, описывающую вычисление факториала.

Программа предназначенна для вычисления факториала числа n!=1*2*3…*n.

Воспользуемся следующим рекурсивным определением факториала:

1)0!=1

2)n!=n*(n-1)!

Итак, будем рекурсивно вызывать факториал, пока аргумент не станет равным – 0.

Программа аналогична программе для поиска суммы натуральных чисел.

Ниже приведен текст программы (файл v8_231.prw)

%2.3.1.

Факториал(N,F)<-Факториал(N,1,F);

%унификация вычисленного значения с выходной переменной

Факториал(0,F,F);

%рекурсивный вызов процедуры вычисления факториала, N*(N-1)*(N-2).....2*1 пока N>0

Факториал(N,P,F)<-УМНОЖЕНИЕ(N,P,S),СЛОЖЕНИЕ(M,1,N),Факториал(M,S,F),!;

Пример использования программы:

%пример вызова предиката

? Факториал(5,F);

Результат:

F=120

Несложная проверка показывает правильность произведенных вычислениий.

Для использования программы, надо вызывать предикат Факториал(X,F), подставляя вместо X число, факториал которого надо найти . Следует учесть, что факториал растет очень быстро и не задавать больших значений аргумента.

Задача 2.4.1

2.4.1. Напишите на языке Пролог-Д базу знаний, описывающую прямоугольный треугольник.

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

Ниже приведен текст программы (файл v8_241.prw)

%2.4.1.

%рисуем прямоугольный треугольник с катетами a и b

ПрямоугТреуг(a,b)<-ЗАПИСЬ_В("grp:"),СЛОЖЕНИЕ(10,a,c),СЛОЖЕНИЕ(10,b,d),

ЛИНИЯ(10,10,c,10,1),ЛИНИЯ(c,10,10,d,1),ЛИНИЯ(10,d,10,10,1);

Пример использования программы:

%Пример

? ПрямоугТреуг(100,150);

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

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

Задача 2.5.4

2.5.4. Напишите базу знаний, описывающую удаление n-oго элемента списка

Разрабатываемая программа предназначена для удаления элемента с заданным номером из списка.

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

Ниже приведен текст программы (файл v8_254.prw)

% 2.5.4

%Предикат удаления N-ого символа из списка L и помещение результата в список S

%Первый вызов DELNEL(L,N,1,[],Z) - удаляет символ и записывает результат в обратном порядке

% второй вызов DELNEL(L,0,1,[],S) - обращает обратно

DELNEL(L,N,S)<-DELNEL(L,N,1,[],Z),DELNEL(Z,0,1,[],S);

DELNEL([],_,_,S,S);

%если не N-ный символ

DELNEL([X|T],N,I,Y,S)<- НЕ(РАВНО(N,I)),ДОБАВИТЬ(X,Y,Z),СЛОЖЕНИЕ(1,I,J),DELNEL(T,N,J,Z,S);

%если N-ный символ

DELNEL([X|T],N,I,Y,S)<-РАВНО(N,I),СЛОЖЕНИЕ(I,1,J),DELNEL(T,N,J,Y,S);

%добавление элемента X в начало списка Y

ДОБАВИТЬ(X,Y,[X|Y]);

Пример использования программы, удалим 3-й элемент из списка:

%пример работы.

? DELNEL([1,8,9,7,5],3,S);

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

S=[1,8,7,5]

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

Список литературы

  1. Абдикеев Н.М. Проектирование интеллектуальных систем в экономике. Учебник / М.: Экзамен, 2004 – 526с.

  2. Алексеев М.Н., Бешенков С.А., Гейн А.Г., Григорьев С.Г. Информатика и информационные технологии: практические работы / Миасс, 2000 - 42 с.

  3. Бешенков С.А., Гейн А.Г., Григорьев С.Г. Информатика и информационные технологии. Екатеринбург: Уральский рабочий, 1995 - 134 с.

  4. Бешенков С.А. Школьная информатика: новый взгляд, новый курс// Педагогическая информатика. N2. 1993 с. 5-10

  5. Гаврилова Т.А., Хорошевский В.Ф., Базы знаний интеллектуальных систем. Учебник/ Санкт-Петербург:Питер, 2000- 382 с.

  6. Григорьев С.Г., Морозова Е.В. Информатика и информационные технологии: Сборник задач / ЛБЛ-Балтика. Санкт-Петербург, 1996 – 32 с.



Загрузить файл

Похожие страницы:

  1. Интеллектуальные информационные системы (2)

    Реферат >> Информатика
    ... можно представить этапами: «информационные системы» (ИС), «автоматизированные информационные системы» (АИС), «интеллектуальные информационные системы» (ИИС). Интеллектуальная информационная система - это компьютерная модель ...
  2. Интеллектуальные информационные системы (3)

    Реферат >> Информатика
    ... имеют дело. Перечисленные недостатки устраняются в интеллектуальных информационных системах (ИИС). Анализ структуры программы показывает ...
  3. Интеллектуальные информационные системы (4)

    Курсовая работа >> Информатика
    ... Курсовая работа по дисциплине: Информационные системы по теме: Интеллектуальные информационные системы Выполнил: студент 4 курса ... статистика», 2001. – 368 с. Луценко, Е.В. Интеллектуальные информационные системы/ Е.В. Луценко, Краснодар: КубГАУ, 2006. – 615 ...
  4. Интеллектуальные информационные системы в профессиональной деятельности

    Лекция >> Информатика, программирование
    ЛЕКЦИЯ Интеллектуальные информационные системы в профессиональной деятельности Учебные и воспитательные цели: 1. Ознакомить курсантов с понятием и классификацией интеллектуальных информационных систем ...
  5. Разработка алгоритма работы и реализация интеллектуальной информационной системы

    Курсовая работа >> Информатика
    ... «Интеллектуальные информационные системы» Тема: «Разработка алгоритма работы и реализация интеллектуальной информационной системы» ... различные дополнения, повышающие значимость интеллектуальной информационной системы как в информативном (наглядном) ...

Хочу больше похожих работ...

Generated in 0.0016717910766602