Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Работа со списками
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
MastaK
Guest
 
Сообщений: n/a
Thumbs up 06.02.2009, 13:34

Несколько задачек со списками. Исходные строки программы есть, надо только задать правильный порядок...Выручите пожалуйста, а то завтра экзамен.

1. Установите последовательность следования элементов Пролог-программы в разделе CLAUSES с использованием отсечения для решения задачи "Определить предикат kolch(L1, L2) для нахождения количества четных элементов списка L1. Результат формируется в списке L2."
Код:
1) ,kol(T1,KNew,KR)
2) kol([ ],KR,KR)
3) kolch(L,K):-kol(L,0,K).
4) ,!
5) :-!.
6) ,!.
7) ,KNew=K+1
8) X mod 2=0
9) kol([_|T1],K,KR):-kol(T1,K,KR).
10) kol([X|T1],K,KR):-
2. Установите последовательность следования элементов Пролог-программы для решения задачи "Определить предикат shl2(L1, L2) для сдвига влево на 2 элемента списка L1. Результат формируется в списке L2." Рассматриваемые случаи поведения предиката расположите в порядке, который соответствует увеличению длины исходного списка, начиная с пустого. Разделы DOMAINS и PREDICATES опущены.
Код:
1) shl_([ ],[ ],_):-!.
2) shr2([1,2,3,4],L2).
3) shl_([_,_|T1],T2,1):-shl_(T1,T2,0),!.
4) shl_([H|T1],[H|T2],0):-shl_(T1,T2,0).    
5) shl_([_],[ ],1):-!.
6) shl2(L1,L2):-shl_(L1,L2,1).
7) clauses
8) shl_([_,_],[],1):-!.
9) goal
10) shl_([H],[H],0):-!.
3. Установите последовательность следования элементов Пролог-программы в разделе CLAUSES с использованием отсечения для решения задачи "Определить предикат minnch(L, М) для нахождения наименьшего нечетного элемента списка L. Результат формируется в переменной М".
Код:
1) min_([ ],MR,MR)
2) min_([_|T1],M,MR)
3) :-min_(L,32767,M).
4) :-X mod 2<>0,X<M
5) minnch(L,M)
6) !.
7) min_(T1,X,MR),
8) min_([X|T1],M,MR)
9) ,!,
10) :-min_(T1,M,MR).
11) :-!.
4. Установите последовательность следования элементов Пролог-программы для решения задачи "Определить предикат shr2(L1, L2)для сдвига вправо на 2 элемента списка L1. Результат формируется в списке L2. Рассматриваемые случаи поведения предиката расположите в порядке, который соответствует увеличению длины исходного списка, начиная с пустого. Разделы DOMAINS и PREDICATES опущены."
Код:
1) shr2([ ],[ ]):-!.
2) shr2([_],[ ]):-!.    
3) shr2([_,_],[ ]):-!.
4) clauses
5) shr2([1,2,3,4],L2).
6) goal
7) shr2([H|T1],[H|T2]):- shr2(T1,T2).
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа со списками 3ai4i6ka Prolog 0 20.10.2011 22:12
Работа со списками. BLACKRIDER Prolog 3 10.05.2010 12:34
работа со списками Novichok92 Prolog 1 10.11.2009 19:15
работа со списками FEAR Prolog 8 09.11.2009 01:08
работа со списками ShokoLad Prolog 18 24.07.2009 02:53
работа со списками из_семи Prolog 12 04.05.2009 01:22
Работа со списками wert30 Prolog 2 24.01.2009 16:04
Работа со списками Михаил_1987 Prolog 3 19.01.2009 09:18
Работа со списками. status Prolog 17 01.11.2008 13:06
Работа со списками izen Prolog 1 04.05.2008 21:55
Работа со списками NRGize Prolog 2 25.05.2007 00:43
Работа с списками ViL Prolog 1 15.04.2006 08:51



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов