Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Domains






g1=integer*

g2=symbol*

PREDICATES

f[g1]

l[g2]

Тізімдер мысалы:

[10, 5, 7, 12]

[1.1, 5.8, 11.5]

[" қ аң тар", " ақ пан", " желтоқ сан" ]

Тізімді басы мен қ ұ йрығ ына бө лу операциясы:

Мысал 1. Тізім элементтерін бейнелеу бағ дарламасы:

DOMAINS

List1 = integer*

List2 = symbol*

PREDICATES

name [List1]

score [List2]

CLАUSES

name [" Иванов", " Сидоров", " Петров" ].

score [1, 2, 3, 4].

GOAL

Name [X],

Name [ _, Y, _ ],

Score [Z, _, F, _ ], write(X, ” ”, Y, ” ”, Z, ” ”, F)

Пролог – бағ дарламада белгісіз элемент саны бар тізімді пайдалану ү шін тізімді басы мен қ ұ йрығ ына бө лу ә дісі қ олданылады. Бұ л ә діс тізім ө ң деудің рекурсивтілігін қ амтамасыз етеді. Тізімді бө лу операциясы вертикальды сызық пен белгіленеді жә не келесі тү рде жазылады: [Head | Tail].

Мысал 2. Тізім қ ұ рамын баспағ а шығ ару бағ дарламасы:

DOMAINS

List1=integer*

List2=symbol*

PREDICATES

Print _ list (List1)

Print _ list (List2)

CLAUSES

Print _ list ([ ]).

Print _ list ([Head | Tail]): -write (Head), nl,

Print _ list (Tail).

GOAL

Print _ list ([1, 2, 3, 4])

Бұ л бағ дарламада берілгендер символдық немесе бү тін типті болуы мү мкін. Бағ дарламада тізім элементтерін рекурсивті тү рде ө ң деу қ олданылады. Бағ дарламаның бірінші сө йлемі print_list([ ]) бос тізім екінші сө йлемдегі рекурсиядан шығ у шарты болып табылады. Біріншіден print_list([1, 2, 3, 4]) сауалы print_list([ ]) бірінші сө йлемімен салыстырылады. Ол салыстыру табыссыз аяқ талады, ө йткені, [1, 2, 3, 4]? [ ]. Одан кейін сауал екінші сө йлеммен салыстырылады. Операция табысты аяқ талады. Тізімнің сол жағ ында тізімнің басы мен қ ұ йрығ ына бө лінуі, ал оң жағ ында – тізім басын экранғ а шығ ару орындалады. Сонан соң nl предикаты орындалады–келесі қ атарғ а ө ту. Одан кейін print_list([2, 3, 4]) рекурсивтік шақ ырылуы орындалады, ал ол print_list([ ]) процедурасын шақ ырады жә не т.с.с.

Мысал 3. X, Y тізімдерінің кө бейтіндісінің суммасын табу бағ дарламасы.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал