Составители:
Рубрика:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 113
- 114
- 115
- 116
- 117
- …
- следующая ›
- последняя »