Презентация Типовые процедуры обработки списков в программах на языке Пролог онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Типовые процедуры обработки списков в программах на языке Пролог абсолютно бесплатно. Урок-презентация на эту тему содержит всего 30 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Типовые процедуры обработки списков в программах на языке Пролог



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    30 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    156.00 kB
  • Просмотров:
    57
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
Язык SWI Prolog Типовые
Содержание слайда: Язык SWI Prolog Типовые процедуры обработки списков в программах на языке Пролог

№2 слайд
Типовые процедуры обработки
Содержание слайда: Типовые процедуры обработки списков Типовые процедуры обработки списков не являются стандартными предикатами системы программирования языка Пролог.

№3 слайд
Предикат add Предикат add
Содержание слайда: Предикат add Предикат add(X,Y,Z) истинен, если список Z получается добавлением терма Х в начало списка Y. Схема отношения этого предиката имеет вид: add(<терм>,<список>,<список>).

№4 слайд
Декларативное описание
Содержание слайда: Декларативное описание предиката add Декларативное описание предиката add формулируется следующим образом: Терм X является головой списка Z, а список Y  хвостом списка Z. Процедура add(X,Y,Z) состоит из факта: add(X,Y,[X|Y]).

№5 слайд
Предикаты revers и revers .
Содержание слайда: Предикаты revers1 и revers2. Предикаты revers1 и revers2 являются предикатами обращения списков и определяют одно и то же отношение различными способами. Схема отношения этого предиката имеет вид: revers(<список>,<список>).

№6 слайд
Предикаты revers и revers .
Содержание слайда: Предикаты revers1 и revers2. Процедура revers определяется двумя способами: простым обращением; обращением с накоплением.

№7 слайд
Предикаты revers Предикат
Содержание слайда: Предикаты revers Предикат revers(X,Y) истинен, если список Y содержит все элементы списка Х, которые записаны в списке Y в обратном порядке. Перестановку элементов списка в обратном порядке можно произвести путем многократного выполнения процедуры append.

№8 слайд
Простое обращение.
Содержание слайда: Простое обращение. Декларативное определение предика revers1 1) обращенный пустой список есть пустой список; 2) если список Х можно разделить на голову Н и хвост Xs, то Zs есть обращенный список, если Ys обращенный хвост списка X, Zs получен путем присоединения к Ys головы Н списка X.

№9 слайд
Процедура простого обращения
Содержание слайда: Процедура простого обращения Простое обращение выполняется процедурой revers1, которая использует процедуру append и состоит из двух предложений: revers1([ ],[ ]). revers1([H|Xs],Zs): revers1(Xs,Ys), append(Ys,[H],Zs).

№10 слайд
Обращение с накоплением В
Содержание слайда: Обращение с накоплением В процедуре revers2 введен дополнительный предикат rev с тремя аргументамисписками, где первый аргумент  исходный список, второй аргумент  накапливающийся список, а третий аргумент  результирующий, обращенный список.

№11 слайд
Декларативное определение
Содержание слайда: Декларативное определение предиката rev Декларативное определение предиката rev формулируется следующим образом: 1) если первый аргумент есть пустой список, то второй и третий аргументы представляют собой один и тот же список;

№12 слайд
Декларативное определение
Содержание слайда: Декларативное определение предиката rev 2) первый аргумент непустой список [H|Хs], и его можно разделить на голову Н и хвост Xs; в этом случае применение предиката rev к списку [H|Хs] и накапливающемуся списку L равносильно применению предиката rev к хвосту списка Xs и списку [H|L]; при этом получается обращенный список Y.

№13 слайд
Процедура revers Обращение
Содержание слайда: Процедура revers2 Обращение списка с накоплением выполняется процедурой revers2, состоящей из трех предложений и содержит дополнительный предикат rev: revers2(X,Y):rev(X,[ ],Y). rev([ ],Y,Y). rev([H|Xs],L,Y):rev(Xs,[H|L],Y).

№14 слайд
Предикат delete Предикат
Содержание слайда: Предикат delete Предикат delete(X,L,M) принимает значение “истина”, если список M получается в результате удаления первого вхождения терма Х из списка L. Схема отношения этого предиката имеет вид: delete(<терм>,<список>,<список>).

№15 слайд
Декларативное описание
Содержание слайда: Декларативное описание предикат delete Декларативное описание предиката next формулируется следующим образом: 1) Если X  голова списка L, то предикат delete(X,L, M) истинен и M есть хвост списка L. 2) Если X принадлежит хвосту списка, то предикат delete необходимо применить к хвосту списка L.

№16 слайд
Декларативное описание
Содержание слайда: Декларативное описание предикат delete 3) Если X не принадлежит списку L, то предикат delete(X,L, M) ложен.

№17 слайд
Процедура delete Процедура
Содержание слайда: Процедура delete Процедура delete(X,Y,L) состоит из двух правил: delete(X,[X|B],B):!. delete(X,[Y|L],[Y|M]): delete(X,L,M).

№18 слайд
Предикат number list Предикат
Содержание слайда: Предикат number_list Предикат number_list(L) определяет, является ли список X списком числовых термов. Схема отношения этого предиката имеет вид: number_list(<список>).

№19 слайд
Декларативное описание
Содержание слайда: Декларативное описание предиката number_list(L) 1) Список L включает один элемент Х. Тогда предикат number_list([X]) истинен, если X числовой терм. 2) Список L можно разделить на голову Н и хвост Xs. Тогда L есть список числовых термов, если H числовой терм и хвост списка есть список числовых термов.

№20 слайд
Процедура number list
Содержание слайда: Процедура number_list Процедура number_list(X,Y) состоит из двух правил: number_list([]): number(X). number_list(X,[_|T]):  number(X), number_list(X,T). Предикат number(X) стандартный предикат системы Arity Prolog, этот предикат истинен, если Х  числовой терм.

№21 слайд
Предикат sumlist Предикат
Содержание слайда: Предикат sumlist Предикат sumlist(L,Sum) определяет сумму элементов числового списка. Схема отношения этого предиката имеет вид: sumlist(<список>,<целочисленный терм>).

№22 слайд
Декларативное описание
Содержание слайда: Декларативное описание предиката sumlist(L) Сумма элементов пустого списка равна нулю. Если исходный список состоит L из головы Н и хвоста Т, то сумма элементов списка L равна сумме элементов хвоста списка T плюс Н.

№23 слайд
Процедура sumlist Процедура
Содержание слайда: Процедура sumlist Процедура sumlist(L,Sum) состоит из двух правил: sumlist([ ],0). sumlist([H|T],Sum): sumlist(T,SumT), Sum is SumT+H.

№24 слайд
Предикат delrepeat Предикат
Содержание слайда: Предикат delrepeat Предикат delrepeat (L,LS) истинен, если список получается из списка S путем удаления всех повторений элементов. Схема отношения этого предиката имеет вид: delrepeat(<список>,<список>).

№25 слайд
Предикат delrepeat Удаление
Содержание слайда: Предикат delrepeat Удаление повторений элементов выполняется процедурой delrepeat с накоплением списка, состоящей из четырех предложений и содержит дополнительный предикат delrep.

№26 слайд
Декларативное описание
Содержание слайда: Декларативное описание предиката delrepeat 1) если первый аргумент есть пустой список, то второй и третий аргументы представляют собой один и тот же список; 2) если первый аргумент непустой список [H|Хs], и голова Н принадлежит хвосту списка T, то процедура delrep рекурсивно вызывается с аргументами T и S1; при этом элемент H не включается в накапливающийся список S1;

№27 слайд
Декларативное описание
Содержание слайда: Декларативное описание предиката delrepeat 3) если первый аргумент непустой список [H|Хs], и голова Н не принадлежит хвосту списка T, то элемент H включается в накапливающийся список S1 и получается список S2. Затем процедура delrep рекурсивно вызывается с аргументами T и S2.

№28 слайд
Процедура delrepeat delrepeat
Содержание слайда: Процедура delrepeat delrepeat(S,SF):-delrep(S,[ ],SF). delrep([ ],S,S). delrep([H|T],S1,SF):-member(H,T),!,delrep(T,S1,SF). delrep([H|T],S1,SF):-append(S1,[H],S2),delrep(T,S2,SF).

№29 слайд
Полный текст процедуры
Содержание слайда: Полный текст процедуры delrepeat delrepeat(S,SF):-delrep(S,[ ],SF). delrep([ ],S,S). delrep([H|T],S1,SF):-member(H,T),!, delrep(T,S1,SF). delrep([H|T],S1,SF):-append(S1,[H],S2), delrep(T,S2,SF). member(X,[X|_]). member(X,[Y|T]):-member(X,T). append([],X,X). append([H|T1],X,[H|T2]):-append(T1,X,T2).

№30 слайд
Выполнение процедуры
Содержание слайда: Выполнение процедуры delrepeat % d:/ИИС/Для МИСИС/ПРАКТИКА/delrepeat.txt compiled 0.02 sec, 2,208 bytes 1 ?- delrepeat([1,1,2,2,4,7,4,8],SF). SF = [1, 2, 7, 4, 8] Yes 2 ?-

Скачать все slide презентации Типовые процедуры обработки списков в программах на языке Пролог одним архивом: