Алгоритмдер жєне деректер структурасы


-10 тақырып. Прологта логикалық программалау. Мәліметтер базасы



бет24/34
Дата02.01.2022
өлшемі0.74 Mb.
#453425
1   ...   20   21   22   23   24   25   26   27   ...   34
ПРОЛОГ мысалдары

9-10 тақырып. Прологта логикалық программалау. Мәліметтер базасы.

Мақсаты: Прологтағы мәліметтер базасын және сұраныстарды мысалдармен қарастыру.

1-мысал. Қарапайым орысша – қазақша сөздігін дайындау керек. Фактілер aud (<орысша сөз>, <қазақша аудармасы>) түрінде берілсін: Турбо Прологта берілгендер қорын мынадай түрде дайындауға болады.

Predicates

Aud (string, string)

Clouses


Aud(голова, бас)

Aud(нос, мұрын)

Aud(рот, ауыз)

Aud(тело, дене)

Aud(человек, адам)

Aud


…………………

Цель: Aud (голова,X)

X=бас

2-мысал. Адамдардың қарапайым телефон анықтамалығын құрып, сұрақ бойынша жауап шығару керек.



Оның мақсаты predicates бөліміне енгізген түрде құрылуы:

Predicates

Tel(string, string)

Goal


Write (“фамилия”-?),

Readln(Fam),

Tel(fam, telef_Nom)

Write (“телефон нөмірі “ telef_Nom”), n1.

Clauses

Tel(“Үмбетов. О”, “52-21-60”)

Tel(“Сүлтанов.М”, “55-32-14”)

Tel(“Ержан.К”, “52-21-36”).

Программа іске қосылған кезде бірден фамилия сұралады:

Fam-? Үмбетов.О

Телефон нөмірі=52-21-60

Программаға енгізілген n1-келесі жазуды жаңа жолдан бастау (курсорды жаңа жолдың басына орналастыру) стандартты операторы, Write-стандартты предикат (оператор).

Прологта пайдаланылатын айнымалылар әдеттегі программалау тілдеріндегі айнымалылардай емес. Олар үшін жадтан арнайы орын бөлінбейді. Олардың мәндері - берілгендер қорында сақталған нысандар атаулары.

Коньюнкциялы сұрақтың жазылуы да коньюнкциялы фактінің жазылуы сияқты: әр мақсат үтір арқылы бөлініп жазылады. Мысалы, сәйкес білім қоры дайындалып, Нұрғали да, Баян да ұнататын нысан сұралса, оны жазылуы:

?- unatedy (nurgali,X), unatedy (baian,X).

Мұнда Пролог берілгендер қорынан алдымен сұраққа енгізілген бірінші мақсатқа сәйкес фактіні іздейді. Егер берілгендер қорында бірінші болып «ұнатады (Нұрғали,ыстық)» фактісі кездессе, жүйе Х айнымалысына «ыстық» мәнін меншіктеп (Х=ыстық), оның мәнін басқа мақсаттарда кездесетін осындай айнымалылардың орнына қойып шығады. Одан әрі берілгендер қорынан «ұнатады (баян, ыстық)» мақсатын іздейді. Ол табылса, оған белгі қойып, екі мақсатты да қанағаттандыратын жауапты басып шығарады. Әйтпесе, Пролог іздеуді берілгендер қорыны басынан бастап қайта жүргізеді. Мұндай процесті қайту процесі не қайту механизмі деп атайды.

Сұрақта белгісіз аргументтер саны бірнеше болуы да мүмкін.



Достарыңызбен бөлісу:
1   ...   20   21   22   23   24   25   26   27   ...   34




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет