Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ к лаб. раб. Візуальне прог..doc
Скачиваний:
4
Добавлен:
07.02.2016
Размер:
198.66 Кб
Скачать

27

Міністерство освіти і науки,

МОЛОДІ ТА СПОРТУ УКРАЇНИ

Запорізький національний технічний університет

МЕТОДИЧНІ ВКАЗІВКИ

до лабораторних робіт з дисципліни

Візуальне програмування в проектуванні САПР”

для студентів спеціальності 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 пошук з поверненням. Використання динамічної бази фактів

  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)