Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2013, 19:45   #1
igrokk
 
Регистрация: 30.04.2013
Сообщений: 5
Восклицание Prolog

Задача 1.
Напишите программу замены в слове X всех букв "а" на сочетание "ку".
Вот моя попытка решить
domains
char_list = char*
str = string
predicates
conver(str, char_list)
clauses
conver("", [ ] ).
conver(Str, [ Head | Tail] ) :- frontchar (Str, Head, Str1), conver (Str1,Tail).
Помоги плис.
igrokk вне форума Ответить с цитированием
Старый 01.05.2013, 11:16   #2
igrokk
 
Регистрация: 30.04.2013
Сообщений: 5
Лампочка

1 задачу решил помогите со 2
Задача 2
Создайте предикат, осуществляющий переписывание из одного файла, содержащего числа, в другой файл только тех чисел, которые являются четными.
Есть пример но не знаю как его можно переделать.

Переписать числа из файла в другой, дописав за каждым его квадрат.
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.

Последний раз редактировалось igrokk; 01.05.2013 в 11:20.
igrokk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Prolog qip2005 Помощь студентам 0 01.12.2011 02:05
Prolog ankatito Помощь студентам 6 13.11.2011 20:53
Prolog SeRhy Помощь студентам 0 13.11.2010 17:10
prolog Studento4ka Помощь студентам 0 18.04.2010 11:17
Prolog Darck Angel Софт 0 17.01.2010 20:32