找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1190|回复: 6

[求助] [求助]:lsp里,怎样把一个表里的实数从小到大重新排列?

[复制链接]
发表于 2002-4-9 11:29:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
lsp里,怎样把一个表里的实数从小到大重新排列?这个表的元素数目不一定的
比如一个表 (600.0 300.0 500.0 400.0 )
变成(300.0 400.0 500.0 600.0)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-4-9 11:40:38 | 显示全部楼层

Re: [求助]:lsp里,怎样把一个表里的实数从小到大重新排列?

最初由 无忧 发布
[B]lsp里,怎样把一个表里的实数从小到大重新排列?这个表的元素数目不一定的
比如一个表 (600.0 300.0 500.0 400.0 )
变成(300.0 400.0 500.0 600.0) [/B]


XDRX_API相关函数:


  1. 20.xdrx_realsort1

  2. 功能:对给定的一组整(实数)从小到大排升序,省略重复项。

  3. 调用格式:(xdrx_realsort1 <数1> <数2> ... [数n])

  4. 返回值:返回排序后的表。

  5. 示例:a='(3 4.6 56.0 2.1 4.6)
  6.       (apply 'xdrx_realsort1 a)
  7.       返回:(2.1 3.0 4.6 56.0)

  8. 21.xdrx_realsort2

  9. 功能:对给定的一组整(实数)从小到大排升序,不省略重复项。

  10. 调用格式:(xdrx_realsort2 <数1> <数2> ... [数n])

  11. 返回值:返回排序后的表。

  12. 示例:a='(3 4.6 56.0 2.1 4.6)
  13.       (apply 'xdrx_realsort1 a)
  14.       返回:(2.1 3.0 4.6 4.6 56.0)

  15. 22.xdrx_rlistsort1

  16. 功能:根据关联表的索引值,把关联表从小到大排升序,省略重复项。

  17. 调用格式:(xdrx_rlistsort1 <关联表项1> <关联表项1> ... [关联表项n])

  18. 返回值:返回排序后的表。

  19. 示例:a='((34.0 "a")(2.0 (2 3))(34 ("a" "b")))
  20.       (apply 'xdrx_rlistsort2 a)
  21.       返回值:((2.0 (2.0 3.0)) (34 ("a" "b")))

  22. 23.xdrx_rlistsort2

  23. 功能:根据关联表的索引值,把关联表从小到大排升序,不省略重复项。

  24. 调用格式:(xdrx_rlistsort2 <关联表项1> <关联表项1> ... [关联表项n])

  25. 返回值:返回排序后的表。

  26. 示例:a='((34.0 "a")(2.0 (2 3))(34 ("a" "b")))
  27.       (apply 'xdrx_rlistsort2 a)
  28.       返回值:((2.0 (2.0 3.0)) (34 ("a" "b")) (34.0 "a"))

  29. 24. xdrx_rlistdel1

  30. 功能:根据关联表的索引值,把关联表中和给定的索引值相同的项删除。不省略重复项。凡是相等的都删除。

  31. 调用格式:(xdrx_rlistdel1 <索引值> <关联表项1> <关联表项1> ... [关联表项n])

  32. 返回值:返回表。

  33. 示例:将关联表a='((3 "a" "b")(5 ("a" "c"))(3 (2 3)))中索引值为3的关联表项删除
  34.       (apply 'xdrx_rlistdel1 (cons 3 a))
  35.       返回值为:'((5 ("a" "c")))

  36. 25. xdrx_rlistdel2

  37. 功能:根据关联表的索引值,把关联表中和给定的索引值相同的项删除。省略重复项。只删除第一个相等的关联表项。

  38. 调用格式:(xdrx_rlistdel2 <索引值> <关联表项1> <关联表项1> ... [关联表项n])

  39. 返回值:返回表。

  40. 示例:将关联表a='((3 "a" "b")(5 ("a" "c"))(3 (2 3)))中索引值为3的关联表项删除
  41.       (apply 'xdrx_rlistdel1 (cons 3 a))
  42.       返回值为:'((5 ("a" "c"))(3 (2 3)))

复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-4-9 11:51:18 | 显示全部楼层
谢谢xd,请删掉一个我的一个主题。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-4-12 20:17:31 | 显示全部楼层
autocad 2000以上
(vl-sort '(600.0 300.0 500.0 400.0 ) '<)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2002-4-14 05:55:04 | 显示全部楼层

天正里的

(defun range (a / b x x1)
  (while (setq x (car a))
    (setq x1 x
          a (cdr a))
    (foreach y a (if (> y x)
                   (setq x y)
                 )
    )
    (setq a (subst x1 x a))
    (if (or (< x (car b)) (not b))
      (setq b (cons x b))
    )
  )
  b
)
(defun range1 (a / b x x1)
  (while (setq x (car a))
    (setq x1 x
          a (cdr a))
    (foreach y a (if (> (car y) (car x))
                   (setq x y)
                 )
    )
    (setq a (subst x1 x a))
    (if (or (< (car x) (caar b)) (not b))
      (setq b (cons x b))
    )
  )
  b
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8个

财富等级: 恭喜发财

发表于 2002-4-14 05:59:32 | 显示全部楼层

还是(vl-sort '(600.0 300.0 500.0 400.0 ) '<)

还是(vl-sort '(600.0 300.0 500.0 400.0 ) '<)简洁一些
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-4-17 01:21:54 | 显示全部楼层

Re: 还是(vl-sort '(600.0 300.0 500.0 400.0 ) '<)

最初由 前生 发布
[B]还是(vl-sort '(600.0 300.0 500.0 400.0 ) '<)简洁一些 [/B]

vl-sort 是visuallisp函数,在r14下如果没有加载vlisp库是不能使用的,就象要使用XD的函数必须加载XDapi一样。
排序有标准算法,无论哪个函数,都是基于算法的移植,天正程序体现了算法的过程,比较适合想深入了解API的朋友。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-5 10:13 , Processed in 0.505200 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表