Форум программистов, компьютерный форум, киберфорум
Наши страницы
AutoLISP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
spartak46
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 3
1

Обход двумерного массива на AutoLisp

22.11.2015, 18:13. Просмотров 639. Ответов 2
Метки нет (Все метки)

Обход двумерного массива на AutoLisp
Преподаватель задал задачку. Необходимо совершить обход массива в соответствии с картинкой. Массив задается как список подсписков: каждая строка - подсписок. Буду очень благодарна, если натолкнете на светлые мысли. Пока из идей только совершить обход в прямом порядке, выводя элементы в подписки, потом это дело повернуть и избавиться от вложенности. Но до самой самой сути обхода дойти пока не могу. Писать код не прошу, помогите идеями, пожалуйста.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2015, 18:13
Ответы с готовыми решениями:

Программа в AUTOLISP
Здравствуйте,не могли бы вы мне помочь вот с таким заданием для AutoLisp ...

Запуск AutoLISP
Как запустить AutoLISP в AutoCad"e. Я выбираю Сервис=Приложения=... и в...

Программа в AutoLISP
Известна длинна окружности. Найти площадь круга, ограниченного этой окружностью.

Заливка цветом в AutoLisp
Доброго времени суток! Не подскажете, можно ли в автолиспе сделать заливку...

Autolisp. Построении дуги
Пробовал сам, искал, но не выходит. Только начал изучать и тут уже такое...

2
Lambdik
1038 / 932 / 106
Регистрация: 04.11.2012
Сообщений: 968
Записей в блоге: 3
22.11.2015, 20:56 2
Пусть массив выглядит так.
Lisp
1
(setq m '((1 2 3 4) (5 6 7 8) (9 10 11 12) (13 14 15 16)))
Я думаю, нужно написать функцию, которая будет обходить его по уровням. Закономерность здесь уловить трудно, потому придётся вручную прописывать каждый уровень. Например 1-й уровень выглядит так:
Lisp
1
2
(caddr (cadddr m))
(cadr (cadddr m))
0
Catstail
Модератор
24154 / 12143 / 2178
Регистрация: 12.02.2012
Сообщений: 19,723
22.11.2015, 21:14 3
Подсказываю идею:

1) Берешь j-ю строку
2) если номер очередного элемента меньше половины длины, а его координаты (j,i) то координаты следующего элемента будут (j+1,i-1)
3) если номер очередного элемента больше половины длины, а его координаты (j,i) то координаты следующего элемента будут (j+1,i+1)

При условии, что j+1 и i+/-1 не выходят за пределы списка. Иначе цикл завершается.

Начинать с последней строки и идти к первой.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2015, 21:14

AutoLISP работа с файлом
Здравствуйте! Необходимо реализовать вывод и ввод в файлы. Программа чертит...

Выполнить чертеж в AutoLisp
Подскажите пожалуйста, как сделать этот чертеж с помощью AutoLisp?

Программа-калькулятор AUTOLISP
Пожалуйста,помогите!Срочно нужна программа-калькулятор на AUTOLISP в среде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru