Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
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 тізімдерінің кө бейтіндісінің суммасын табу бағ дарламасы.
|