![]() |
|
![]() ![]() ![]() |
|
Octane |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.5.2007 Где: Волгоград Репутация: нет Всего: нет |
Здравствуйте.
Решаю задачу: «Определить, является ли массив упорядоченным по возрастанию. В случае отрицательного ответа, определить номер первого элемента, нарушившего такую упорядоченность». Часть функции написал в «MULISP»:
Но как вывести номер элемента, никак не придумаю. Помогите, пожалуйста, доделать задачу, ну или хотя бы подсказать правильный алгоритм решения. Это сообщение отредактировал(а) Octane - 19.11.2008, 01:45 |
|||
|
||||
adejneka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 8.7.2005 Где: Москва, Россия Репутация: 9 Всего: 11 |
Можно передавать количество просмотренных элементов списка как второй параметр check. Т.е. написать функцию check1 (list, n), которая возвращает n+(номер первого элемента list, нарушающего...). Тогда check(list)=check1 (list, 0).
Кстати, Ваша программа работает не с массивом, а со списком. |
|||
|
||||
VH_ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 31.10.2006 Репутация: 10 Всего: 11 |
Зачем рассматривать вариант (atom x), если в задаче сказано «...является ли массив (читай список) упорядоченным...» |
|||
|
||||
Octane |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.5.2007 Где: Волгоград Репутация: нет Всего: нет |
Вариант (atom x) рассматривал для выхода из рекурсии, когда (cdr x) возвращает атом «NIL», по аналогии с реализацией функции «length» в «MULISP»:
Изменил в вашем примере (1+ N) на (+ 1 N), но всеравно в ответе всегда «N», а не число. Может быть в «MULISP» не поддерживается «&optional»? В каком диалекте вы писали? |
|||
|
||||
_sg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 119 Регистрация: 16.5.2007 Репутация: 2 Всего: 2 |
как вариант:
--------------------
vk.com/ansicommonlisp |
|||
|
||||
![]() ![]() ![]() |
Правила форума LISP | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | LISP | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |