- •Міністерство освіти і науки,
- •Передмова
- •1 Лабораторна робота № 1 пошук з поверненням. Використання динамічної бази фактів
- •Мета роботи
- •Вказівки до виконання лабораторної роботи
- •Завдання до лабораторної роботи
- •Зміст звіту
- •Завдання до лабораторної роботи
- •Зміст звіту
- •Завдання до лабораторної роботи
- •Зміст звіту
- •Контрольні питання
- •Література
- •Додаток а Середовище Visual Prolog
- •Додаток б Стандартні предикати
Міністерство освіти і науки,
МОЛОДІ ТА СПОРТУ УКРАЇНИ
Запорізький національний технічний університет
МЕТОДИЧНІ ВКАЗІВКИ
до лабораторних робіт з дисципліни
“Візуальне програмування в проектуванні САПР”
для студентів спеціальності 7.05010102
„Інформаційні технології проектування ”
денної форми навчання
2012
Методичні вказівки до лабораторних робіт з дисципліни “Візуальне програмування в проектуванні САПР” для студентів спеціальності 7.05010102 „Інформаційні технології проектування” денної форми навчання / Укладачі: Л.Ю. Дейнега, І.В. Левада. – Запоріжжя: ЗНТУ, 2012. – 28 с.
Укладачі: Л. Ю. Дейнега, ст. викладач
І. В. Левада, ст. викладач
Рецензент: канд. техн. наук, доцент A. B. Пархоменко
Відповідальний за випуск: ст. викладач Л. Ю. Дейнега
Затверджено
на засіданні кафедри “Програмних засобів”
Протокол № 14 від 08.06.12 р.
ЗМІСТ
ПЕРЕДМОВА 4
1 ЛАБОРАТОРНА РОБОТА № 1 5
ПОШУК З ПОВЕРНЕННЯМ. ВИКОРИСТАННЯ ДИНАМІЧНОЇ БАЗИ ФАКТІВ 5
2 ЛАБОРАТОРНА РОБОТА № 2 12
ОБРОБКА РЯДКІВ В VISUAL PROLOG. ВИСХІДНА РЕКУРСІЯ. ВІДСІК. 12
3 ЛАБОРАТОРНА РОБОТА № 3 15
ОБРОБКА СПИСКІВ В VISUAL PROLOG. НИЗХІДНА РЕКУРСІЯ. 15
ЛІТЕРАТУРА 19
Додаток А 20
Середовище Visual Prolog 20
Додаток Б 24
Стандартні предикати 24
Передмова
Метою викладання дисципліни є вивчення основ логічного програмування і методів та прийомів розробки програм на мові програмування Prolog.
Методичні вказівки містять завдання та рекомендації до виконання лабораторних робіт з дисципліни.
Під час виконання лабораторних робіт студенти повинні:
- вивчити базові поняття логічного програмування;
- одержати базові знання та навики програмування на мові Prolog;
- отримати практичні навики подавання даних та використання методів їх обробки для вирішення поставленої задачі.
1 Лабораторна робота № 1 пошук з поверненням. Використання динамічної бази фактів
Мета роботи
Мета роботи - одержати знання і навики використання механізму повернення та предикатів роботи з динамічними фактами.
Вказівки до виконання лабораторної роботи
Перед виконанням завдання треба ознайомитися з нижче поданими прикладами, скопіювати по черзі приклади в текстовий редактор оболонки Visual Prolog, встановити по замовчанню для предикатів, з якими записують декілька тверджень характеристики nondeterm і виконати програму.
Приклад 1_1. Нехай є декілька груп студентів. Про кожного студента відомо: прізвище, шифр групи, середній бал по дисциплінам. Використовуючи динамічні факти, отримати середній бал для певної групи.
Для прикладу утворимо набір фактів, що містить вказані у завданні відомості про студентів груп іот-714 та іот-414. Отримаємо середній бал студентів групи іот-714 програмно:
facts
single підрахунок(integer,real) /*кількість студентів певної групи, сума балів для всіх студентів певної групи*/
predicates
студент(string,string,real)/*прізвище, код групи, середній бал одного студента по дисциплінам */
правило1_1
clauses
підрахунок(0,0.0).
студент("Петренко","іот-714",4.5).
студент("Сидоренко","іот-714",4.2).
студент("Ищенко","іот-714",3.0).
студент("Бабаян","іот-414",2.8).
студент("Антоненко","іот-714",5.0).
студент("Дубов","іот-415",4.0).
правило1_1:-студент(_,"іот-714",Бал), підрахунок(Кількість,Сума), Кількість1=Кількість+1,
Сума1=Сума+Бал, assert(підрахунок(Кількість1,Сума1)), fail.
правило1_1:-підрахунок(Кількість,Сума), Середнє=Сума/Кількість, write(Середнє).
goal
правило1_1.
Приклад 1_2. Дано файл з фактами, які мають дати свят та дати вихідних днів. Сформувати новий файл з фактами, які мають дати, які є одночасно святковими і вихідними днями.
facts
свята(integer,integer) /*число, місяць*/
вихідні(integer,integer)
facts - св
свят_вих(integer,integer)
predicates
приклад1_2()
clauses
приклад1_2():- свята(День, Місяць), вихідні(День, Місяць),
assert(свят_вих(День, Місяць),св), fail.
приклад1_2.
goal
consult("календар.txt"), приклад1_2(), save("календар2.txt", св).
Вміст файлу "календар.txt":
свята(1,1).
свята(8,3).
свята(1,5).
вихідні(1,1).
вихідні(1,5).
вихідні(3,6).
вихідні(4,8).
Вміст файлу "календарь2.txt":
свят_вих(1,1)
свят_вих(1,5)