Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Учебные пособия » Розробка експертних систем засобами мови Турбо-Пролог

Реферат Розробка експертних систем засобами мови Турбо-Пролог





/span>

exam (В«99-233В», Математика , 3).

exam ("99-235", Інформатика , 5).

Тепер виведемо інформацію про всіх студентів факультету АТП, які здали іспит з інформатики з оцінкою 5. Для чого задамо ціль (Num,, Інформатика , 5), student (Num, Name, АТП ), write (Name), nl, fail.

Пролог-програма переглядає всі факти з предикатом exam до тих пір, поки не знаходить факт exam ("99-235", Інформатика , 5), відповідає другому предикату правила. В результаті чого вільна мінлива Num отримує значення "99-235". Таким чином, перший предикат мети погоджений, і програма переходить до узгодження наступного предиката student ("99-235", Name, АТП ). Так як в програмі є факт student ( 99-235 , Демидов З . А. , АТП ), предикат виявляється правдивий, і у результаті мінлива Name отримує значення Демидов С.А. , яке і буде виведено на екран у результаті перевірки предиката write (Name). Решта предикати nl і fail призначені для перегляду та пошуку інформації по всьому списку студентів.

БД у наведеному прикладі є частиною коду програми і не може бути змінена в процесі її виконання, тобто наведені фрагменти є прикладом статичної БД.

Однак Пролог надає кошти по створенню динамічних БД, тобто БД, в які можна додавати і видаляти записи в процесі роботи програми. Для роботи з такою БД, її предикати необхідно описати в розділі database. Розділ має наступний формат:

database [- <ім'я БД>] (...) (...)

..................

Наприклад,

database - tabel (symbol, symbol, symbol.)

dexam (symbol, symbol, integer)

Перераховані здесь предикати після підстановки в них замість змінних констант (тобто перетворення їх у факти) можуть бути поміщені і, якщо буде потрібно, видалені під час виконання програми в динамічну базу даних. Робиться це за допомогою стандартних (вбудованих в систему) предикатів: asserta, assertz, retract, save, consult, readterm, findall. У програмі можна використовувати декілька розділів database, при цьому кожному з них потрібно призначити унікальне ім'я. Якщо ім'я розділу database не призначено (такий розділ в програмі може бути тільки один), компілятор за замовчуванням призначає ім'я dbasedom. br/>

Стандартні предикати для роботи з динамічними БД


. Предикат asserta заносить новий факт до бази даних, що розташовується в оперативній пам'яті комп'ютера (резидентна БД). Новий факт поміщається перед всіма вже внесеними твердженнями даного предиката. Цей предикат має такий синтаксис:

asserta (<факт>)

Таким чином, щоб помістити в БД твердження

dstudent ( 99-233 , Степанов И.А . , АТП )

перед уже наявними там твердженням

dstudent ( 99-234 , Іванов А.В . , ПМА ),

стоїть в даний момент в базі даних на першому місці, необхідно наступне предикатное вираз

asserta (dstudent ( 99-233 , Степанов І . О. , АТП )).

2. Предикат assertz так само, як і asserta, заносить нові твердження в базу даних. Однак він поміщає нове твердження за всіма вже наявними в базі твердженнями того ж предиката. Синтаксис предиката той же. Наприклад,

assertz (dstudent ( 99-235 , Демидов З . О. , АТП )).

Зауваження: іно...


Назад | сторінка 2 з 14 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Поняття предиката. Безліч істинності предиката. Класифікація предикатів
  • Реферат на тему: Allusion as discourse symbol
  • Реферат на тему: Розробка програми, що використовує однофайловий базу даних на Pascal
  • Реферат на тему: Розділ опису предикатів внутрішньої бази даних
  • Реферат на тему: Розробка програми для роботи з базою даних