|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.12.2011, 01:23 | #1 |
Новичок
Джуниор
Регистрация: 22.12.2011
Сообщений: 1
|
Prolog(Сборные конструкции)
SWI-Prolog
Здравствуйте...Помогите пожалуйста с задачкой: Составить букет из нечетного количества цветов, соблюдая следущие условия: 1)В букете могут встречаться два и более цветка одного цвета, если они разного сорта. 2)Последовательность подбора растений должна соответствовать одной из двух последвательностей: - розовый красный оранжевый желтый - голубой синий фиолетовый 3)Максимальное количество цветов первой последовательности - 7, второй - 9. 4) Допускаются пропуски нескольких цветов Написать программу формирования сборной конструкции. Создать базу данных которая представляет сборные компоненты. Информации в БД должно быть достаточно для формирования нескольких решений. ---------------------------------------------------------------------- Есть мой код, в котором создана БД, есть пропуски цветов, и *вроде как* учтена нечетность количества ( Берем первый элемент, далее выбираем по два и проверяем условия, таким образом количество будет нечетным. ) %%% Data Base plants_db_filling:- recordz(plant,(r1,a,red)), %Idetifier, Sort, Colour recordz(plant,(r2,a,orange)), recordz(plant,(r3,b,orange)), recordz(plant,(r4,c,yellow)), recordz(plant,(r5,d,pink)), recordz(plant,(r6,e,lightblue)), recordz(plant,(r7,e,blue)), recordz(plant,(r8,f,cyan)), recordz(plant,(r9,g,cyan)), recordz(plant,(r10,b,orange)), recordz(plant,(r11,b,yellow)). %Yslovia sledovania cvetov------------------------- % ?Colour, ?Next Colour folow(pink,red). folow(red,orange). folow(orange,yellow). folow(lightblue,blue). folow(blue,cyan). %-------------------------- %Podkluchenie BD-------------- % - Multyring main(Mult):- recorded(plant,_), !, main1(Mult). main(Mult):- plants_db_filling, main1(Mult). %------------------------------ main1([First|Plants]):- recorded(plant,(First,_,C)), add_plant(_,C,Plants). add_plant(_,C,[First,Next|Plants]):- next_colour(C,C1), next_colour(C1,C2), recorded(plant,(First,_,C1)), recorded(plant,(Next,P2,C2)), add_plant(P2,C1,Plants). add_plant(_,C,[]):- \+ (next_colour(C,C1), next_colour(C1,C2), recorded(plant,(_,_,C1)), recorded(plant,(_,_,C2))). %Sobludenie usloviy sledovaniya next_colour(C,C1):- folow(C,C1). %Uslovie propuska cvetov next_colour(C,C1):- folow(C,Cp), next_colour(Cp,C1). |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Интересные конструкции с++ | Sparky | Помощь студентам | 6 | 13.10.2011 22:47 |
циклические конструкции | nex 9119 | Помощь студентам | 1 | 18.12.2010 17:34 |
селективные конструкции (switch) | Ste | Общие вопросы C/C++ | 9 | 04.12.2010 17:05 |
Вопрос по конструкции if() С++ | ROD | Помощь студентам | 2 | 20.12.2008 20:14 |