Программирование на Турбо-Прологе


Программирование на Турбо-Прологе - стр. 8


2.3.Арифметические действия
     Турбо-Пролог располагает двумя числовыми типами доменов: целыми и действительными  числами. Четыре основные арифметические операции - это сложение,  вычитание,  умножение и деление. Для их реализации в Турбо-Прологе используются предикаты.
     Пример 1. Поиск нужного элемента в списке
domains
     i=integer
     s=symbol
     i_list=i*  /* определение
типа "список целых чисел" */
     s_list=s*  /* определение типа "список атомов" */
predicates
     /* предикат member определяется над списками двух типов */
     member(i,i_list)
     member(s,s_list)
clauses
     member(Head,[Head|_]).
     member(Head,[_|Tail]):-member(Head,Tail).
     Пример 2. Определение суммы элементов списка
domains
     i=integer
     i_list=i*
predicates
     sum_list(i_list,i)
clauses
     /* Если список пуст, то сумма его элементов равна нулю */
     sum_list([],0).
     /* Иначе найти сумму элементов хвоста списка
                и прибавить к ним голову  */
     sum_list([H|T],Sum,Number):- sum_list(T,Sum1,Number1), Sum=H+Sum1.
     Пример 3. Реализация арифметики
domains
     i=integer
     r=real
predicates
     add(i,i,i)
     sub(i,i,i)
     mul(i,i,i)
     div(i,i,i)
     fadd(r,r,r)
     fsub(r,r,r)
     fmul(r,r,r)
     fdiv(r,r,r)
clauses
     add(X,Y,Z) :- Z=X+Y.      sub(X,Y,Z):-  Z=X-Y.
     mul(X,Y,Z):- Z=X*Y.     div(X,Y,Z):-  Z=X/Y.
     fadd(X,Y,Z) :-Z=X+Y.    fsub(X,Y,Z):- Z=X-Y.
     fmul(X,Y,Z):-Z=X*Y.     fdiv(X,Y,Z):-Z=X/Y.
2.3. Варианты заданий
     1. Определить максимальный элемент в списке.
     2. Определить число элементов в списке.
     3. Определить произведение элементов списка.
     4. Исключить из списка отрицательные элементы.
     5. Выполнить сортировку элементов списка по возрастанию.
     6. Даны два списка, имеющие ненулевое пересечение. Построить список, включающий все элементы указанных двух списков без повторений.



- Начало -  - Назад -  - Вперед -



Книжный магазин