Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Агрегаты фактів

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Список з нульовим кількістю эл-в окреслюється порожній список, не має ні заголовка ні хвоста. MEMO (,) — де м.б. заданий або ім'ям Sp, або безпосередньо константами, які входять у цей список. Список в domains м.б. опосредствован через ім'я перемінної, эл-ты кіт. збираються в список. Константы, хто у список, записуються в і відокремлюються друг від друга комами. SAVE (<ім'я файла>) — скорочує… Читати ще >

Агрегаты фактів (реферат, курсова, диплом, контрольна)

Агрегаты фактов

1. Списки.

Если в пр-ме необхідно організувати зі змінними чи заздалегідь невизначеним кількістю об'єктів, то испол. списки.

СПИСОК — упорядкована послідовність эл-в одного типу невизначеною довжини, кіт м. складатися з 0 і більше эл-в.

Константы, хто у список, записуються в [ ] і відокремлюються друг від друга комами.

Исходя з визначення списку, два списку, сост. з одних тієї ж.

эл-в, але розміщених у різному порядку вважаються різними. У розділі domains эл-ты списку обяз-но д.б. порівняно з певним типом домену (Sp=integer*).

Список в domains м.б. опосредствован через ім'я перемінної, эл-ты кіт. збираються в список.

domains.

k_fms = string, kol = integer,.

Sp = kol*.

predicates.

fms (k_fms, kd, …).

Списки складаються з заголовка (початку списку) і захоплення (закінчення списку). До заголовку стосується лише 1-ї эл-т списку, інше — хвост.

Список з нульовим кількістю эл-в окреслюється порожній список, не має ні заголовка ні хвоста.

Для роботи з списками у мові є низка вбудованих предикатов.

MEMO (,) — де м.б. заданий або ім'ям Sp, або безпосередньо константами, які входять у цей список.

Предикат визначає приналежність эл-та до списку.

I — розподіл списку на голову і хвіст [ Head I Tail] чи [H I T].

H — чи перемінної для позначення заголовка.

T — — «— хвоста ПРИМЕР.

domains.

list=char*.

predicates.

test (List).

clouses.

test ([‘A', ‘B', ‘З', ‘D']).

goal.

test ([H/T]),.

nl,.

write (H).

APPEND ([ эл-ты старого списку ],[ эл-ты нового списку ],< ім'я нового списку >).

— з 2-х списків, й нового, створюють III список.

REVERS ([ эл-ты старий. списку], < ім'я нового списку >).

— змінює послідовність эл-в на противоположную.

FINDALL (< ім'я перемінної >,< формат предиката >,< ім'я списку >).

ПРИМЕР.

domains.

post = string.

Kol, Cena, Sum = integer.

Sp = integer* (Sp = Kol*).

Kod = string.

predicates.

tmc (P, Kol, Cena).

sum (Sp, Sum).

goal.

write («Запровадьте код»),.

readln (Kod),.

nl,.

findall (Kol, tmc (Pos1, Kod, Kol, Cena), Sp),.

sum (Sp, Sum),.

write («Кількість =», Sum).

clauses.

tmc («001», «001», 45, 80).

.

.

.

sum ([ ], 0).

sum ([ H/T ], Sum) if.

sum (T, Sum1).

Sum = H + Sum1.

В мові є можливість роботи з динамічної базою фактів, у якій м. об'єднуватися як однорідні, і різнорідні предикаты-факторы.

База фактів — щось середнє у реляційної СУБД і масивом. У час активізації все факти бази переносяться в ОЗУ із зовнішнього зап. устрою. Робота з БД створюється новий розподіл програми, в кіт. визначаються прототипи предикатов-фактов, объедененных в базу.

Database.

прототипы в цьому розділі описуються за тими самими правилам, що у predicates.

Раздел database записується перед розділом predicates і предикати, кіт. у ньому описуються не можуть описуватися розділ predicates, а ис-ся в розділах clouses і goal. Активізація бази в галузі ОЗУ, кіт. за умовчанням має тип домену dbasedom. Цей тип програміст не вказує явно у програмі розділ domains, але м. його використовувати як аргументів вбудованих предикатів мови, що дозволяє скоротити текст програми під час роботи з базой.

domains.

dbasedom = tms (Post, Kod, Kol, Cena).

.

.

.

database.

.

.

tmc (Post, Kod, Kol, Cena).

Возможно доповнення бази новими фактами, видалення застарілих, коригування окремих фактів. Усі операції у базі фактів виробляються з допомогою стандартних вбудованих предикатов:

asserta.

(< факт >) (dbasedom): (i).

assertz.

— використовується для додавання нового факту до бази. Факт д.б. обов’язково визначено і належить до області dbasedom. З використанням предиката asserta факт додається перед іншими фактами наявного предиката.

assertz — додавання після — «—.

retraсt (< факт>)(dbasedom): (і) — видалення з БД першого факту, кіт. порівнюється із зазначеним в retraсt фактом. Можливо видалення групи. Причому у факті вказується загальне видалення фактів значення, але в місці решти змінних записуються ті перемінні, кіт. нема на цьому предикате.

SAVE (< ім'я файла >) — скорочує все факти дин. бази з ОЗУ на магн. диск під именем.

string: (і) заданим в предикаті save/.

CONSULT (< ім'я файла >) — додає в опер. дин. базу все факти з файла на диску з.

string: (і) зазначеним именем.

2. Прийоми роботи з динамічної базою фактов.

1.Перезапись фактів із розділу clouses до бази на МД.

domains.

Post, Kod = string.

Kol, Cena = integer.

database.

tmc (Post, Kod, Kol, Cena).

predicates.

perezap.

dauses.

tmc («001», «001», 45,80).

.

.

.

perzap if.

save («data»).

gocel.

perezap.

2. Створення бази на процесі диалога.

domains.

Post, Kod = string.

Kol, Cena = integer.

Pc = integer &&ознака закінчення ввода.

database.

tmc (Post, Kod, Kol, Cena) &&база створюється первоначально.

predicates.

vvod.

clouses.

vvod if.

write («Запровадьте код поставщика»),.

nl,.

readln (post),.

nl,.

write («Запровадьте код ТМЦ»),.

nl,.

readln (Kod),.

nl, write («Запровадьте у ТМЦ»),.

nl,.

readint (Kol),.

write («Запровадьте цену»),.

nl,.

readint (Cena),.

assertz (tmc (Post, Kod, Kol, Cena)),.

write («Запровадьте ознака продовження s/0»),.

pr=0,.

vvod.

goal.

vvod,.

save («data»).

3.Дополнение бази новими фактами.

.

.

.

goal.

consult («data»),.

vvod,.

save («data').

4.Активизация фактів з файла на диск.

domaines.

Post, Kod = string.

Kol, Cena = integer.

Sum, Sum1 = integer.

Sp = kol*.

database.

tmc (Post, Kod, Kol, Cena).

predicates.

sum (Sp, Sum).

clouses.

sum ([ ], 0).

sum ([ H/t ], Sum) if.

sum (T, Sum1),.

Sum= H + Sum1.

goal.

consult («data»),.

write («Запровадьте код ТМЦ»),.

nl,.

readln (Kod),.

sum (Sp, Sum),.

write (Sum).

5.Удаление конкретних фактів з БД.

domains.

Post, Kod = string.

Kol, Cena = integer.

database.

tmc (Post, Kod, Kol, Cena).

predicates.

udal.

clouses.

udal if.

write («Зазначте код поставщика»),.

nl,.

readln (Post),.

write («Зазначте код ТМЦ»),.

nl,.

readln (Kod),.

retract (tmc (Post, Kod, Kol, Cena)),.

goal.

consult (data),.

udal,.

save («data').

6.Удаление групи факторов.

dauses.

udal if.

write («Запровадьте код поставщика»),.

nl,.

readln (post),.

retract (tmc (Post, Kod, Kol, Cena)),.

.

.

.

С допомогою retract відбувається видалення дин. бази фактів з ОЗУ.

Корректировка вмісту факта.

Операции проихзводятся в 2-а этапа:

1— з допомогою retract осущ. видалення застарілого факти із базы.

2— assertz — додавання нового факту в базу.

3. Структури.

СТР-РА — набір об'єктів, логічно пов’язаних між собою у процесі виконання завдання і об'єднаних під ім'ям. Стр-ра в П. використовується під час створення складної бази фактів і правил.

Если об'єкти стр-ры ставляться одного типу доменів. то стр-ра зв. однодоменной. Допускається исп-е доменів різного типу, у разі стр-ра зв. разнодоменной.

Исп-е стр-ры в програмах дозволяє впорядкувати базу, дозволяється звернення до стр-рам по имени.

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

Для підготовки даної роботи було використані матеріали із сайту internet.

Показати весь текст
Заповнити форму поточною роботою