Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Lisp] Помогите решить задачки. Сессия горит! 
V
    Опции темы
jamalrs
Дата 4.2.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.2.2008

Репутация: нет
Всего: нет



Привет ребята, помогите мне решить следующие задачи на Lisp. Сам я оченб далек от программирования на Lisp. А сессия горит из-за этого(...

Заранее спасибо!

Задача 1
Список ( 3 5 7 ) имееет имя Р. Записать S-выражение, которое формирует новый список, который состоит из двух подсписков. В первом подсписке, должно содержаться сообщение (t или nil) о том, является ли произведение элементов заданного списка положительным, а во втором подсписке – сообщение, является ли это произведение четным.

Задача 2
Матрица представляется двухуровневым списком, последовательно расположенным слева направо, подсписки которого являются первой второй и так далее строками матрицы. Элементами матрицы могут быть произвольными (числами, списками). Допускаются различные длины строк. Исходную и результирующую матрицы, вывести на экран в виде матрицы. Задание: Преобразовать матрицу, удленив каждую ее нечетную строку на 2 элемента, дописыванием вконце строки первого, а затем второго элемента данной строки.

Задача 3
Составить функции separate и connect, которые осуществляют преобразование списков, являющихся их аргументами от формы представления ( a b c . . ) к форме ( . . . ( a ) b ) c) . . . ) и наоборот, соответственно. Примечание: Для облегчения написания рекурсивной функции separate возможно использование либо дополнительного аргумента либо вспомогательной фукнции.

Задача 4
Образовать функцию exclusive (исключительный) с двумя аргуметами, каждый из которых является списком неповторяющихся в пределах данного списка элементов. Функция должна возвращать список элементов, невходящих в оба аргумента одновременно.

Задача 5
Используя приемы рекурсии в Лиспе, выполнить преобразования: получая в качестве исходного любой многоуровневый список вида ( a b ( c d e ( f ) g (h i ) j k ) l m n ) образовать результирующий список вида ( a b ( c d e ( f 3 ) g ( h i 3 ) j k 2 ) l m n 1 ), тоесть, в строке и в каждом подсписке, перед закрывающей скобкой следует дописать в дополнительной позиции значение уровня закрываемого списка или подсписка.

Очень нужно, если кто может чем помоч, пожалуйста пишите или в тему или на почту [email protected]
PM MAIL   Вверх
VH_
Дата 4.2.2008, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 31.10.2006

Репутация: 1
Всего: 11



Задача 1
Код
((lambda (prod) (list (list (plusp prod)) (list (evenp prod)))) (apply '* P))

Задача 3
Хювёнен-Сеппянен "Мир Лиспа" т.1:
Код
(defun SEPARATE (L) ; в оригинале РАСПРЕДЕЛИ
 (LAYER L (list (car L))))
(defun LAYER (L result) ; в оригинале СЛОЙ
 (cond
  ((null L) result)
  ((null (cdr L)) result)
  (T (LAYER (cdr L) (list result (cadr L))))))

Код
(defun CONNECT (L) ; в оригинале ПОДНИМИ
 (if (atom (car L)) L
  (append (CONNECT (car L)) (cdr L))))

Задача 4
Хювёнен-Сеппянен "Мир Лиспа" т.1:
Код
(defun EXCLUSIVE (X Y) ; в оригинале СИММЕТРИЧЕСКАЯ-РАЗНОСТЬ
 (cond
  ((null X) Y)
  ((member (car X) Y) (EXCLUSIVE (cdr X) (remove (car X) Y)))
  (T (cons (car X) (EXCLUSIVE (cdr X) Y)))))

Задача 5
Код
(defun LISTLEVEL (L &optional (level 1))
 (if (null L) (cons level L)
  ((lambda (elem result)
    (cons
     (if (atom elem) elem
      (LISTLEVEL elem (1+ level)))
     result))
   (car L)
   (LISTLEVEL (cdr L) level))))


Это сообщение отредактировал(а) VH_ - 4.2.2008, 10:55
PM MAIL   Вверх
jamalrs
Дата 4.2.2008, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.2.2008

Репутация: нет
Всего: нет



VH, Спасибо ОГРОМНОЕ! Выручил очень сильно! Просто нереальнО!
Очень признателен!

Добавлено через 1 минуту и 30 секунд
А по поводу второй задачи, никаких мыслей нет?!
И какую обочку лучше использовать, чтобы продемонстрировать преподавателю вышеизложенный код?!
PM MAIL   Вверх
jamalrs
  Дата 24.5.2008, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.2.2008

Репутация: нет
Всего: нет



 smile 

Уважаемые прошу помочь в решении следующих задач!!! Очень прошу! smile Все тот же лисп!

Задача №1.

Составить с применением макросов и функций высших порядков динамическую, самомодифицирующуюся программу, гибко адаптирующуюся к особенностям решающейся задачи. Уточняющую информацию программа должна получать от пользователя в процессе диалога, который следует вести в форме приближенной к нормам естественного языка (разговорного). 
В программе должны быть предусмотрены специализированные варианты её  работы с числом, не менее 3.

В число специализированных вариантов работы включить следующее:
- последовательно применить некоторую процедуру к укорачивающимся хвостам списка, являющимся аргументом.
Затем последовательно применить ко всем элементам образовавшегося результирующего списка некоторую иную информацию.

Задача №2

Под именем х задан список ЛИСПа (а в с d e f ).
 Требуется образовать список (((а в)с d)((а в) с d)), имеющему имя у.
При этом допускается израсходовать не более одной дополнительной списковой ячейки памяти.

Задача №3

Файл с Задачей №3

Заранее спасибо! Вы уже один раз помогли я на Вас расчитываю!!! 

PM MAIL   Вверх
jamalrs
Дата 30.5.2008, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.2.2008

Репутация: нет
Всего: нет



ЗА ДЕНЬГИ!!!!!!!!!!! Кто возьмется ?!!!!! Пишите на [email protected]

Добавлено через 1 минуту и 6 секунд
СРОЧНО НУЖНО! СРОЧНО! ЗА ДЕНЬГИ. СКРОК ДО 7 ИЮНЯ ВКЛЮЧИТЕЛЬНО!
ОПЛАТА БЕЗНАЛОМ НА РАСЧЕТНЫЙ СЧЕТ ИЛИ ДЕНЕЖНЫМ ПЕРЕВОДОМ!
ПИШИТЕ НА [email protected]
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0775 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.