TURBO PROLOG. Терёхин В.В. - 115 стр.

UptoLike

Составители: 

115
insert(X,[Y|Sorted_list],[Y|Sorted_list1]) :-
asc_order(X,Y), !, insert(X,Sorted_list,Sorted_list1).
insert(X,Sorted_list,[X|Sorted_list]).
asc_order(X,Y) :- X>Y.
/***** конец программы *****/
____________________________________________________________
Запустите программу на счет с целевыми утверждениями
insert_sort([4,7,3,9],S).
и
insert_sort([7,6,5,4,3,2,1],S).
* Упражнения
5.15. Запустите программу "Сортировка списка". Введите цель
insert_sort([53,11,93,77,11],S).
Что получится ?
5.16. Внесите в программу такие изменения, чтобы она могла сорти-
ровать целые числа в порядке убывания. Запустите на счет новый вариант
программы. Задайте следующее целевое
утверждение:
insert_sort([1,2,3,4,5,6,7],S).
Что получится ?
5.6 Компоновка данных в список
Иногда, при программировании определенных задач, возникает необ-
ходимость собрать данные из базы данных в список для последующей их
обработки. Турбо-Пролог содержит встроенный предикат, позволяющий
справиться с этой задачей без каких бы то ни было хлопот. Таким предика-
том является предикат
findall. Требуемый список представляется означенной
переменной, являющейся одним из объектов предиката.
Предописание встроенного предиката findall выглядит следующим
образом:
findall(Variable_name,Predicate_expression,List_name).
Variable_name обозначает здесь объект входного предиката
Predicate_expression, а List_name является именем переменной выходного
списка. Переменная должна относиться к домену списков, объявленному в
разделе domains.
Для пояснения только что сказанного рассмотрим
предикат базы дан-
ных
football(name,points)
Этот предикат порождает 5 утверждений :
ootball("Ohio State",116.0). football("Michigan",121.0).
football("Michigan State",114.0). football("Purdue",99.0).
football("UCLA",122.0).
      insert(X,[Y|Sorted_list],[Y|Sorted_list1]) :-
      asc_order(X,Y), !, insert(X,Sorted_list,Sorted_list1).
      insert(X,Sorted_list,[X|Sorted_list]).
      asc_order(X,Y) :- X>Y.
/*****         конец программы               *****/
____________________________________________________________

Запустите программу на счет с целевыми утверждениями
           insert_sort([4,7,3,9],S).
и
           insert_sort([7,6,5,4,3,2,1],S).

* Упражнения
     5.15. Запустите программу "Сортировка списка". Введите цель
            insert_sort([53,11,93,77,11],S).
Что получится ?
     5.16. Внесите в программу такие изменения, чтобы она могла сорти-
ровать целые числа в порядке убывания. Запустите на счет новый вариант
программы. Задайте следующее целевое утверждение:
            insert_sort([1,2,3,4,5,6,7],S).
Что получится ?

      5.6 Компоновка данных в список
      Иногда, при программировании определенных задач, возникает необ-
ходимость собрать данные из базы данных в список для последующей их
обработки. Турбо-Пролог содержит встроенный предикат, позволяющий
справиться с этой задачей без каких бы то ни было хлопот. Таким предика-
том является предикат findall. Требуемый список представляется означенной
переменной, являющейся одним из объектов предиката.
      Предописание встроенного предиката findall выглядит следующим
образом:
            findall(Variable_name,Predicate_expression,List_name).
      Variable_name обозначает здесь объект входного предиката
Predicate_expression, а List_name является именем переменной выходного
списка. Переменная должна относиться к домену списков, объявленному в
разделе domains.
      Для пояснения только что сказанного рассмотрим предикат базы дан-
ных
            football(name,points)
      Этот предикат порождает 5 утверждений :
      ootball("Ohio State",116.0). football("Michigan",121.0).
      football("Michigan State",114.0). football("Purdue",99.0).
      football("UCLA",122.0).




                                                                      115