|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.04.2013, 19:51 | #1 |
Регистрация: 30.04.2013
Сообщений: 5
|
Prolog
1)Создайте предикат, осуществляющий переписывание из одного файла, содержащего числа, в другой файл только тех чисел, которые являются четными.
Даже нет идей как решать может есть подобное задание у кого-нить? |
01.05.2013, 05:21 | #2 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
какой диалект пролога?
|
01.05.2013, 05:36 | #3 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
на SWI вот как-то так:
Код:
|
03.05.2013, 13:36 | #4 |
Регистрация: 30.04.2013
Сообщений: 5
|
Можешь помочь пример переделать?
domains strElement=string strList=strElement* intElement=integer intList=intElement* predicates /************************преобразова ние в список*/ separ(string,strlist) scan (string,strlist,string) /*********************************** *************/ /******преобразование списка слов в список чисел*/ convertStrListToIntList(strList,int List) csltil(intList,intList,strElement) /*********************************** *************/ /*******************дополнение списка квадратами*/ p( intList, intList ) /*********************************** *************/ clauses /************************преобразова ние в список*/ separ(Str,[T|L]):- frontchar(Str,S3,S2), str_char(S5,S3), scan(S2,[T|L],S5),!. separ(_,[]). scan(Str,[T|L],S):- frontchar(Str,S3,S2), NOT(S3=' '), str_char(S5,S3), concat(S,S5,S1), scan(S2,[T|L],S1),!. scan("",[T|L],S):- T=S,separ("",L). scan(Str,[T|L],S):- T=S,frontchar(Str,_,S2), separ(S2,L),!. /*********************************** *************/ /******преобразование списка слов в список чисел*/ convertStrListToIntList([],[]):-!. convertStrListToIntList([HS|TS],LI):- convertStrListToIntList(TS,TI), csltil(TI,LI,HS). csltil(TL,[HI|TL],HS):- str_int(HS,HI),!. csltil(TL,TL,_):-!. /*********************************** *************/ /*******************дополнение списка квадратами*/ p( [], [] ). p( [H|T], [H|[HH|TT]] ):- HH = H*H, p(T,TT). /*********************************** *************/ goal %S="1 2 3 4 12 asd 24 12", file_str("input.txt",S), separ(S,LS), convertStrListToIntList(LS,IL), write(IL),nl, p(IL,RL), write(RL),nl.domains strElement=string strList=strElement* intElement=integer intList=intElement* predicates /************************преобразова ние в список*/ separ(string,strlist) scan (string,strlist,string) /*********************************** *************/ /******преобразование списка слов в список чисел*/ convertStrListToIntList(strList,int List) csltil(intList,intList,strElement) /*********************************** *************/ /*******************дополнение списка квадратами*/ p( intList, intList ) /*********************************** *************/ clauses /************************преобразова ние в список*/ separ(Str,[T|L]):- frontchar(Str,S3,S2), str_char(S5,S3), scan(S2,[T|L],S5),!. separ(_,[]). scan(Str,[T|L],S):- frontchar(Str,S3,S2), NOT(S3=' '), str_char(S5,S3), concat(S,S5,S1), scan(S2,[T|L],S1),!. scan("",[T|L],S):- T=S,separ("",L). scan(Str,[T|L],S):- T=S,frontchar(Str,_,S2), separ(S2,L),!. /*********************************** *************/ /******преобразование списка слов в список чисел*/ convertStrListToIntList([],[]):-!. convertStrListToIntList([HS|TS],LI):- convertStrListToIntList(TS,TI), csltil(TI,LI,HS). csltil(TL,[HI|TL],HS):- str_int(HS,HI),!. csltil(TL,TL,_):-!. /*********************************** *************/ /*******************дополнение списка квадратами*/ p( [], [] ). p( [H|T], [H|[HH|TT]] ):- HH = H*H, p(T,TT). <-------------------------------------------ТУТ ПРАВИЛО НЕ ЗНАЮ КАК ИЗМЕНИТЬ НАДО ЧТОБ ТОЛЬКО ЧЕТНЫЕ ВЫВОДИЛ ЧЕРЕЗ МОД ВРОДЕ. /*********************************** *************/ goal %S="1 2 3 4 12 asd 24 12", file_str("input.txt",S), separ(S,LS), convertStrListToIntList(LS,IL), write(IL),nl, p(IL,RL), write(RL),nl. |
03.05.2013, 16:10 | #5 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
вижу нашел мой код на соседнем форуме )
Код:
|
03.05.2013, 19:30 | #6 |
Регистрация: 30.04.2013
Сообщений: 5
|
Спасибо выручил.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Prolog | ankatito | Помощь студентам | 6 | 13.11.2011 20:53 |
Prolog | SeRhy | Помощь студентам | 0 | 13.11.2010 17:10 |
Prolog | Darck Angel | Софт | 0 | 17.01.2010 20:32 |
Prolog | Debro | Помощь студентам | 2 | 26.12.2009 10:16 |
Prolog | @Katushka@ | Помощь студентам | 0 | 03.10.2009 22:44 |