
- •1. Характеристика програмних та інтелектуальних систем
- •2. Експертні системи, як клас інтелектуальних
- •3. Особливості та інсталяція ms sql Server 2005 Express Edition.
- •Субд ms sql Server 2005/2008. Переваги та недоліки. Огляд версій та редакцій
- •4. Переваги та недоліки
- •4.1. Переваги
- •4.1.1. Незалежність від конкретної субд
- •4.1.2. Наявність стандартів
- •4.1.3. Декларативність
- •4.2. Недоліки
- •4.2.1. Невідповідність реляційної моделі даних
- •4.2.2. Складність
- •4.2.3. Відхилення від стандартів
- •4.2.4. Складність роботи з ієрархічними структурами
- •Загальна інформація про утиліти
- •10.Створення бд засобами sql Management Studio
- •11. Зміна властивостей бд засобами sql Management Studio
- •12. Перейменування і видалення бд засобами sql Management Studio
- •13. Категорії команд sql: ddl, dml, dcl
- •20,Оператор модифікації таблиць, синтаксис
- •21.Оператор видалення таблиць, синтаксис
- •22.Діаграми бази даних
- •23.Пакетні запити та сценарії
- •24.Типи даних в ms sql Server 2005
- •25.Поняття домену і способи їх створення
- •26.Створення, модифікація та видалення домену засобами ms sql Server
- •27.Створення домену за допомогою sql запитів
- •28.Створення домену за допомогою зберігаємих процедур
- •29.Історія створення Пролог
- •30.Візуальне середовище розробки додатків Visual Prolog
- •31.Створення нового проекту Visual Prolog
- •32.Основні поняття системи Пролог (база знань, терм, формула, речення, предикат, правило, факт). Навести приклади.
- •34.Побудова бази знань. Факти й правила
- •Арифметика в Пролог
- •Вбудовані предикати в Пролог
- •Рекурсія в Пролог
- •Графічні можливості системи Пролог
- •39.Обробка списків в Пролог
- •40.Прості типи даних системи Пролог
- •41.Структуровані типи даних системи Пролог
Арифметика в Пролог
Арифметичні операції здійснюються за допомогою спеціальних вбудованих предикатів. У системі Пролог-Д для виконання арифметичних дій передбачений один вбудований арифметичний предикат:
УМНОЖЕНИЕ(Арг1 ,Арг2,АргЗ,Арг4).
Даний предикат передбачає реалізацію такої формули: Арг1*Арг2+АргЗ=Арг4. Предикат передбачає оборотність аргументів і реалізує арифметичні операції в області цілих чисел. Також за допомогою даного предиката можна описати будь-які арифметичні операції:
СЛОЖЕНИЕ(Х,У,Z)<-УМНОЖЕНИЕ(1,Х,У,Z);
ВЫЧИТАНИЕ(Х,У,Z)<-УМНОЖЕНИЕ(1,Х,Z,У);
УМНОЖЕНИЕ(Х,У,Z)<-УМНОЖЕНИЕ(Х,У,0,Z);
ДЕЛЕНИЕ(Х,У,Z)<-УМНОЖЕНИЕ(У,Z,0,Х);
Поряд з арифметичним предикатом існують два предикати БОЛЬШЕ й НЕ. Вбудований предикат БОЛЬШЕ(Арг1,Арг2) призначений для порівняння двох цілих чисел або змінних. Він має два аргументи: цілих або змінних, конкретизованих цілими. Обидва аргументи до моменту виконання повинні бути визначені. Якщо ці вимоги не виконані, то з'явиться повідомлення про помилку: "Функція не може бути виконана.". Предикат виконаний, якщо Арг1 > Арг2, інакше - не виконаний. Незважаючи на те, що предикат БОЛЬШЕ один, його достатньо для опису всіх можливих предикатів для порівняння числової інформації: дорівнює - РАВНО; менше -МЕНЬШЕ; менше і дорівнює - МИР і так далі. Це показує база знань, наведена нижче:
РАВНО(Х,Х);
МЕНЬШЕ(Х,У)<-БОЛЬШЕ(У,Х);
МИР(Х,У)<-НЕ(БОЛЬШЕ(Х,У));
В останньому реченні використаний вбудований предикат НЕ, його синтаксис: НЕ(Арг1);
Цей вбудований предикат має один аргумент, він обов'язково повинен бути предикатом. Предикат НЕ виконаний тоді й тільки тоді, коли предикат-аргумент не виконаний.
Вбудовані предикати в Пролог
У системі Пролог-Д використав. такі предикати:
УМНОЖЕНИЕ (Арг1,Арг2,АргЗ,Арг4). Даний предикат передбачає реалізацію такої формули:Арг1*Арг2+АргЗ= Арг4.Також за допомогою даного предиката можна описати будь-які арифметичні операції:
СЛОЖЕНИЕ(Х,У,Z)<-УМНОЖЕНИЕ(1,Х,У,Z);
ВЫЧИТАНИЕ(Х,У,Z)<-УМНОЖЕНИЕ(1,Х,Z,У);
УМНОЖЕНИЕ(Х,У,Z)<-УМНОЖЕНИЕ(Х,У,0,Z);
ДЕЛЕНИЕ(Х,У,Z)<-УМНОЖЕНИЕ(У,Z,0,Х);
Поряд з арифметичним предикатом існують два предикати БОЛЬШЕ й НЕ. Вбудований предикат БОЛЬШЕ(Арг1,Арг2) призначений для порівняння двох цілих чисел або змінних. Він має два аргументи: цілих або змінних, конкретизованих цілими. Обидва аргументи до моменту виконання повинні бути визначені. Якщо ці вимоги не виконані, то з'явиться повідомлення про помилку. Предикат виконаний, якщо Арг1 > Арг2, інакше - не виконаний. Незважаючи на те, що предикат БОЛЬШЕ один, його достатньо для опису всіх можливих предикатів для порівняння числової інформації: дорівнює - РАВНО; менше -МЕНЬШЕ; менше і дорівнює - МИР і так далі. Це показує база знань, наведена нижче:
РАВНО(Х,Х);
МЕНЬШЕ(Х,У)<-БОЛЬШЕ(У,Х);
МИР(Х,У)<-НЕ(БОЛЬШЕ(Х,У));
В останньому реченні використаний вбудований предикат НЕ, його синтаксис: НЕ(Арг1);
Цей вбудований предикат має один аргумент, він обов'язково повинен бути предикатом. Предикат НЕ виконаний тоді й тільки тоді, коли предикат-аргумент не виконаний.
Останній вбудований предикат - це предикат "ОТСЕЧЕНИЕ", призначений для керування логічним виводом. Цей предикат буде потрібний для розв'язання наступних проблем:
Обмеження кількості знайдених розв'язків.
Знаходження деякого особливого розв'язку завдання.
3. Обмеження обсягу пошуку, з метою підвищення ефективності роботи комп'ютера.
Предикат " ОТСЕЧЕНИЕ " позначається знаком вигуку-(!).
Необхідно відзначити, що це традиційне позначення відсікання в системах логічного програмування. Якщо даний предикат використати у якості цілі в реченні, то отриманий при цьому ефект можна проілюструвати дверима, через які можна пройти тільки зліва направо, але не можна повернутися назад через ці двері. Роль дверей виконує символ !.
Як відомо, система Пролог-Д буде намагатися виконувати цілі в реченні у порядку перегляду зліва направо, починаючи від символу <-, від першої до останньої цілі. Якщо яка-небудь ціль виявляється не виконаною, то здійснюється повернення й робиться спроба знайти альтернативні розв'язки. Відсікання обмежує можливість пошуку альтернатив з того моменту, як була переглянута ціль, що позначена символом !. Із цієї причини, якщо не виконані цілі А,Б,В, повернення для знаходження альтернативних рішень у реченні приклад <- А,Б,В,!,Г,Д,Е; можливий, а, якщо не виконані цілі Г,Д або Е, те вже неможливо. Необхідно відзначити важливість цього предиката, особливо при описі завдань, що не допускають множинні розв'язки.