|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
сортировки по 3-м переменным пример
Регистрация: 15.08.2005
Сообщений: 35
|
||
Просмотров: 3960
|
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
Код:
но это ничего не значит, это только режим отображения, на самом деле цифры разные, и это можно проверить: Код:
А вчем вообще проблема? Зачем вам возвращенное число с этой точностью - если нужна строка, то: Код:
а может я что-то не понял, тогда объясните суть подробнее. :roll: |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
А преобразовать типы? Ведь как тут сравнение производится - одному каду известно (подозреваю, что по коду символа, но не уверен)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Цитата:
(acad_strlsort '("65001" "10000000000000" "8")) -> ("10000000000000" "65001" "8") и тут все правильно А в твоем примере нужно сначала преобразовать типы (setq a (atoi "65001") b (atoi "10000000000000")) (< a b) -> T |
|||
![]() |
|
||||
webcad.pro Регистрация: 06.01.2005
Московская обл.
Сообщений: 501
|
Chapay, имейте в виду, что в примере о котором я говорил происходит сравнение строк, а не чисел, и сравнение идет посимвольно начиная с первых. БOльшим считается символ с бОльшим кодом. Большей считается строка в которой найден символ бОльший соответствующего символа другой строки. Для чисел представленных строкой сравнение (с точки зрения восприятия их именно как чесел) без преобразование будет корректно только для случаяя одинакового количества символов в стоках (как это было в вашем и моем примерах).
|
|||
![]() |
|
||||
Регистрация: 15.08.2005
Сообщений: 35
![]() |
Пардон, задача изменилась первое не всегда 6-и значное.
В итоге все свелось приблизительно к этому: нада отсортировать по возрастанию список типа: '(("61010200302" "xxx" "xxxx")("2100010102" "xxx" "xxxx")("310001010212" "xxx" "xxxx")("650010104" "xxx" "xxxx")("2100010105" "xxx" "xxxx")) а в акаде ограничения! действительные свыше 2147483647 не понимает! функции типа vl-.... не понимает 14 акад, а компилировать влом -не разбирался, да и отладки еще будет ого-го! да и скиньте пожалуста доки на русском с описанием vl-... какие они хоть бывают? ничто про них низнаю. мож начну все по-человечески писать. )) |
|||
![]() |
|
||||
webcad.pro Регистрация: 06.01.2005
Московская обл.
Сообщений: 501
|
>Chapay
У меня в 2000-ном такой код вполне работоспособен Код:
|
|||
![]() |
|
||||
Регистрация: 15.08.2005
Сообщений: 35
![]() |
Да, все заработало, спасибо всем!
а доки уж скиньте пожалуста? an-rud@yandex.ru |
|||
![]() |
|
||||
Цитата:
|
||||
![]() |