Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Как создать третий список
Закрытая тема
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
olyas olyas вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.09.2002
По умолчанию Как создать третий список - 30.09.2002, 09:36

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

Мои потуги, результатов не дали.Наверное мыслю не в той плоскости.
Подскажите кто может.

Используемая среда программирования- Turbo Prolog 2.0.
  (#2 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 02.10.2002, 13:04

Код:
append([],[],[])
append([H1|T1],[H2|T2],[H1|[H2|R]] :-
        append(T1,T2,R).
У append 3 параметра: 2 исходных списка и результирующий.
Если исходные списки неодинакового размера, выдается fail.
Есть и другие варианты, но этот вроде самый короткий.
  (#3 (permalink)) Старый
olyas olyas вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.09.2002
По умолчанию 03.10.2002, 08:23


А если исходные списки разной длины?
  (#4 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 03.10.2002, 11:37

А как по-вашему тогда должны комбинироваться списки? Что делать с "хвостом"?
  (#5 (permalink)) Старый
olyas olyas вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.09.2002
По умолчанию 04.10.2002, 12:22

Вот текст задания:
создать правило сложения двух списков:
concat_list([a,b,c,d],[a,b,l,m,k],[a,a,b,b,c,l,d,m,k]) и
concat_list([a,b,c,d],[a,b,l,m,k],[a,a,b,b,c,l,d,m]).

Вот.
Ads.
  (#6 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 04.10.2002, 18:27

Все равно я не совсем все понял!
Ну да ладно! Давайте рассмотрим все возможные примеры!
Итак:
1. Вариант, который я уже приводил. Он комбинирует 2 списка одинаковой длины. Если списки неодинаковые - ошибка. Назовем его исходным вариантом.
2. Если у 2-го списка на 1 элемент больше, этот элемент добавляется в конец. Нужно добавить такое правило.
Код:
append([],[H|[]],[H|[]]).
3. Если какой-то из списков больше, весь остаток добавляется в конец. Тогда с исходному варианту нужно добавить
Код:
append([],L,L).
append(L,[],L).
Ну вот вроде бы и все!
Будут еще вопросы - пишите!
Ads
Закрытая тема

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать двусвязный список и продублировать в нём все единицы. Tyurs92 Вопросы начинающих программистов 0 12.05.2011 19:24
Как создать динамичный список в С++ hazardhz Вопросы начинающих программистов 4 17.09.2009 10:47
Помогите пожалуста создать список из списков {{CaspeR}} Prolog 3 04.06.2007 23:32
Можно ли создать список названий бибилитек DLL Shturmovik Delphi 1 13.01.2007 22:20
Как создать двусвязный список zhenyarm Вопросы начинающих программистов 4 18.10.2005 14:54
Как создать список на множество в С++ iit3 Вопросы начинающих программистов 3 15.06.2005 13:04
Как создать линнейный однонаправленный список ggg Вопросы начинающих программистов 1 31.03.2005 16:45
Как создать список lenanel Prolog 3 20.10.2004 22:51
Как создать список User в ActiveDirectory Kain Delphi 0 31.08.2004 16:41
Как создать список всех списков длины fest Prolog 2 28.06.2004 08:19
Как создать в меню список последних открывавшихся файлов Anonymous Delphi 2 04.02.2004 13:53
Как создать список инвертирования Anonymous Prolog 1 25.11.2002 15:55



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