Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Написать программу преобразования списка которая реверсирует n элементов списка
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Ma3day Ma3day вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.10.2010
По умолчанию Написать программу преобразования списка которая реверсирует n элементов списка - 13.11.2010, 20:17

надо начинать с i-го элемента)
помогите кто чем может)
Ответить с цитированием
  (#2 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 13.11.2010, 20:33

Цитата:
Сообщение от Ma3day Посмотреть сообщение
надо начинать с i-го элемента)
помогите кто чем может)
до i-го порядок остаётся, начиная с i-го реверс?!
Ответить с цитированием
  (#3 (permalink)) Старый
Ma3day Ma3day вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.10.2010
По умолчанию 13.11.2010, 22:01

да) спасибо)
Ответить с цитированием
  (#4 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 14.11.2010, 00:27

Цитата:
DOMAINS
i=integer il=i*
PREDICATES
roll(i,il,il)
reverse(il,il,il)
CLAUSES
roll(0,A,B):- !, reverse(A,[],B).
roll(A,[B|C],[B|D]):- E=A-1, roll(E,C,D).

reverse([A|B],C,D):- !, reverse(B,[A|C],D).
reverse(_,A,A).
Цитата:
Goal: roll(5,[1,2,3,4,5,6,7,8,9,10,11],Out)
Out=[1,2,3,4,5,11,10,9,8,7,6]
1 Solution
Индексация с нуля. Если список "короткий"(нечего реверсить) - неуспех. Добавить в roll() третью строчку
roll(_,[],[]). - будет для "коротких" возвращать исходный.
Ответить с цитированием
  (#5 (permalink)) Старый
Ma3day Ma3day вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.10.2010
По умолчанию 14.11.2010, 14:07

Парент Спасибище!!! ты Бог!!!!
Ответить с цитированием
Ads.
Ads
Ответ

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Напишите функцию (drop L N), которая удаляет N элементов с конца списка L balbec Lisp 9 29.05.2011 18:12
Удаление элементов списка, согласно номерам второго списка SWI-Prolog 5.8.2 imported__ro Prolog 11 13.01.2011 02:01
Написать программу, возвращающую список всех перестановок элементов данного списка artwws Lisp 4 13.11.2010 11:18
Написать программу, возвращающую максимальную глубину списка ТеПлО и ЛаСкА Lisp 24 28.12.2009 10:16
Написать функцию, которая для списка-аргумента формирует список шкаф Lisp 14 13.12.2009 18:22
Написать программу формирования списка Kinoman Lisp 1 11.11.2009 01:45
Написать функцию RENOVEL, которая удаляет из списка последний элемент jack26 Lisp 13 05.12.2007 18:02
Написать функцию REMOVE, которая удаляет из списка совпадающие символы Undertaker Lisp 6 22.10.2007 01:31
Написать функцию LAST1, которая возвращает предпоследний элемент списка Sw1ft Lisp 9 17.05.2007 20:25
Написать функцию, осуществляющую замену элементов в списке W списка Y Lass Lisp 5 06.05.2007 22:25
Описать функцию, которая вычитает из элементов списка заданное число costa Lisp 4 18.11.2006 21:09
Написать программу, которая печатает ДА, если Х совпадает с одним из элементов CoolGoblin Вопросы начинающих программистов 5 17.03.2005 06:56



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