> 1 <

Автор Сообщение

3dvol

Members


Статус

1 сообщений

Где: Ukraine
Род занятий:
Возраст:

#2342   2010-06-09 03:11 GMT+3 часа(ов)      
Помогите, плиз, решить задачки!!!

1. Используя приемы рекурсии в Лиспе, выполнить преобразования:
Получая, к качестве исходного, любой многоуровневый список вида
(a b c (d (e f (g h i j (k (nil) 1 2) 3) 4) 5 6) 7 8 9 10) образовать результирующий список вида (7 8 9 10 (5 6 (4 (3 (1 2 (nil) k) g h I j) e f) d) a b c), то есть, в каждом уровне все элементы, стоящие впереди единственного подсписка данного уровня, переместить (не меняя порядка их следования) за подсписок, а стоящие после подсписка – аналогичным образом переместить вперед.

2. Под именами x, y, z ввести списки (17 25), (9 44), (3 7). Затем ввести S-выражение, которое позволяло бы осуществлять попарное сопоставление списков с целью проверки (сообщения t или nil) того, не является ли один из сопоставляемых списков таковым, что каждый его элемент больше любого из элементов второго сопоставляемого списка. Сопоставить введенные списки.

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

4. Под именами X и Y заданы списки ((a b) c) и (d (e f)), соответственно. Требуется получить список (e f (c d) a b), освободив при этом одну списковую ячейку памяти.

Откликнувшимся, огромное спасибо!!!
> 1 <


Онлайн :

0 пользователь(ей), 58 гость(ей) :