Đến nội dung


Hình ảnh
* * * * - 7 Bình chọn

[Hỏi]Đố vui với LISP


  • Please log in to reply
391 replies to this topic

#81 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 16 September 2011 - 09:07 PM

Thấy mấy bác đố vui mà ham. Các câu đố của các bác khó quá nên kiếm thank không dễ. Câu đố này hơi "mặt trận" tí, nghĩa là mỗi người kiếm một tí thank cho vui cửa vui nhà nhé!
Khái niệm (ai cũng biết rồi nhưng vẫn phải nói): khi ta đánh "U' vào command thì lệnh trước đó sẽ hoàn trả lại.
Đố: hãy liệt kê các lệnh mà "U' không có hiệu lực gì cả!
Mỗi lệnh được chỉ ra là 1 thank.

Các lệnh trích xuất file : Lệnh Qsave, Save, SaveAs,attext, wblock,acisout, DXFout, mslide... trước đã bác hè ^^
Hay đóng mở hộp thoại : ADCCLOSE, Help
Rồi thì các lệnh Delay, Dblist, Plot, Dist, Hide, Id, Shell, Status, Quit, Redraw, Redraw-all, Regenall, resume..
Hay load thông tin : load, appload...
Ôi....
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#82 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 17 September 2011 - 01:29 AM

Các bác vui vẻ nhé. Mình phải tạm trốn vài hôm kg bị đuổi việc mất.
@Ketxu : Mình bận quá chưa test hàm của bạn cho đề tài của mình đc. Vài hôm mình quay lại
  • 0

#83 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 17 September 2011 - 08:31 AM

Cho 2 list a và list b
Ví dụ
(setq a '(2 3 5 6 0 9 5))
(setq b '(1 2 3 5 6 8 9 0))
Hãy viết 1 hàm kiểm tra phần tử của a có nằm trong b không?
Nếu có một phần tử của a nằm trong b thì hàm trả về T, ngược lại, nếu từng phần tử của a không nằm trong b thì trả về Nil. Kiểu dữ liệu của từng phần tử trong a và b có thể là kiểu bất kì nào đó
(defun ktra(a b )
...
)
Điều kiện viết : Số dấu ( phải nhỏ hơn hoặc bằng 10
-Cơ cấu giải thưởng :
+ 4 tick thanks khi viết có tổng số dấu ( bằng 10
+ 5 tick thanks khi viết có tổng số dấu ( bằng 9
+ 6 tick thanks khi viết có tổng số dấu ( bằng 8
......
Cứ thế, số dấu ( càng ít thì số thanks tăng lên theo số gia +1
Hấp dẫn quá, mời các bạn tham gia cho vui.
  • 0

#84 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 17 September 2011 - 08:42 AM

Cho 2 list a và list b
Ví dụ
(setq a '(2 3 5 6 0 9 5))
(setq b '(1 2 3 5 6 8 9 0))
Hãy viết 1 hàm kiểm tra phần tử của a có nằm trong b không?
Nếu có một phần tử của a nằm trong b thì hàm trả về T, ngược lại, nếu từng phần tử của a không nằm trong b thì trả về Nil. Kiểu dữ liệu của từng phần tử trong a và b có thể là kiểu bất kì nào đó
(defun ktra(a b )
...
)
Điều kiện viết : Số dấu ( phải nhỏ hơn hoặc bằng 10
-Cơ cấu giải thưởng :
+ 4 tick thanks khi viết có tổng số dấu ( bằng 10
+ 5 tick thanks khi viết có tổng số dấu ( bằng 9
+ 6 tick thanks khi viết có tổng số dấu ( bằng 8
......
Cứ thế, số dấu ( càng ít thì số thanks tăng lên theo số gia +1
Hấp dẫn quá, mời các bạn tham gia cho vui.

Kiếm ít thank cái đã!

(defun HA (lis1 lis2 / n)
(setq trung nil)
(foreach n lis2
(if (member n lis1)
(setq trung T)))
trung)

  • 2

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#85 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1431 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 17 September 2011 - 08:53 AM

Kiếm ít thank cái đã!


(defun HA (lis1 lis2 / n)
(setq trung nil)
(foreach n lis2
(if (member n lis1)
(setq trung T)))
trung)

Có thể bỏ bớt 1 dấu ngoặc :
- bỏ dòng (setq trung nil)
- và thay thế (defun HA (lis1 lis2 / n) với (defun HA (lis1 lis2 / trung )
  • 1

#86 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 17 September 2011 - 08:57 AM

Kiếm ít thank cái đã!


(defun HA (lis1 lis2 / n)
(setq trung nil)
(foreach n lis2
(if (member n lis1)
(setq trung T)))
trung)

Mình chưa ra xong điều kiện. Viết cơ cấu giải thưởng xong rồi mới viết điều kiện tiếp. Bạn DVH ra tay nhanh quá -> Xin tặng bạn 7 cái tick Thanks ứng với 7 cái (
Điều kiện của mình là : Có thể sử dụng biến tạm -> và điều kiện là không được giải phóng biến tạm theo kiểu (setq trung nil)
Các biến tạm đều được giải phóng khi hàm kết thúc
và dòng
(defun HA (lis1 lis2 / n) -> không chứa biến cục bộ nào cả
chỉ là (defun HA (lis1 lis2) thôi
  • 0

#87 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 17 September 2011 - 09:03 AM

Mình chưa ra xong điều kiện. Viết cơ cấu giải thưởng xong rồi mới viết điều kiện tiếp. Bạn DVH ra tay nhanh quá -> Xin tặng bạn 7 cái tick Thanks ứng với 7 cái (
Điều kiện của mình là : Có thể sử dụng biến tạm -> và điều kiện là không được giải phóng biến tạm theo kiểu (setq trung nil)
Các biến tạm đều được giải phóng khi hàm kết thúc
và dòng
(defun HA (lis1 lis2 / n) -> không chứa biến cục bộ nào cả
chỉ là (defun HA (lis1 lis2) thôi

Hay không bằng hên! Đây là lôi từ kho tài nguyên ra thôi (chứ cái / n là dư và như bác Gia_bach góp ý là đúng). Sẽ nghiên cứu kiếm thêm ít thank nữa. Ôi, 1 ngày thứ 7 đẹp trời quá! Ha ha ha!
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#88 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 17 September 2011 - 09:04 AM

Mình chưa ra xong điều kiện. Viết cơ cấu giải thưởng xong rồi mới viết điều kiện tiếp. Bạn DVH ra tay nhanh quá -> Xin tặng bạn 7 cái tick Thanks ứng với 7 cái (
Điều kiện của mình là : Có thể sử dụng biến tạm -> và điều kiện là không được giải phóng biến tạm theo kiểu (setq trung nil)
Các biến tạm đều được giải phóng khi hàm kết thúc
và dòng
(defun HA (lis1 lis2 / n) -> không chứa biến cục bộ nào cả
chỉ là (defun HA (lis1 lis2) thôi

Cách cổ điển :
1- Srr cách này sai ^^
2-

(defun ktra(a B)(and (vl-remove nil (mapcar '(lambda(x)(vl-position x B)) a))))

  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#89 hochoaivandot

hochoaivandot

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 106 (tàm tạm)

Đã gửi 17 September 2011 - 09:19 AM

Thấy mấy bác đố vui mà ham. Các câu đố của các bác khó quá nên kiếm thank không dễ. Câu đố này hơi "mặt trận" tí, nghĩa là mỗi người kiếm một tí thank cho vui cửa vui nhà nhé!
Khái niệm (ai cũng biết rồi nhưng vẫn phải nói): khi ta đánh "U' vào command thì lệnh trước đó sẽ hoàn trả lại.
Đố: hãy liệt kê các lệnh mà "U' không có hiệu lực gì cả!
Mỗi lệnh được chỉ ra là 1 thank.
P/S (10h37' - 16/9/2011): do câu hỏi bị sơ hở nên Ketxu đã lượm thank nhanh quá (vẫn thank vài cái). Nay sửa lại chính xác như sau:
Hãy liệt kê các lệnh có làm thay đổi trên screen (không kể dialoge, menu) mà lệnh "U" không có hiệu lực gì cả!


Lệnh Ctrl+N, Ctrl+O (open), Close. Đố Doan Van Ha undo đó. hehe! Mấy cái đó có tính không?
  • 1

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#90 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 17 September 2011 - 09:27 AM


Lệnh Ctrl+N, Ctrl+O (open). Đố Doan Van Ha undo đó. hehe!

Hãy liệt kê các lệnh có làm thay đổi trên screen (không kể dialoge, menu) mà lệnh "U" không có hiệu lực gì cả!
Bạn làm xuất hiện dialoge! Dù sao cũng thank 1 cái.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#91 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 17 September 2011 - 10:04 AM

Dialoge dưới đây có thể được gọi bằng 2 cách: lệnh CAD và hàm LISP. Hỏi:
- Dùng lệnh gì để gọi nó tại dòng command? Đúng thì được 2 thank.
- Dùng các hàm lisp nào để paste vào dòng command thì gọi được nó (chú ý: không được dùng kiểu (command “X”…))? Nếu số hàm lisp > đáp án: 1 thank, = đáp án: 3 thank, < đáp án: 5 thank. Mỗi dấu "(" được hiểu là 1 dòng lisp.
Hình đã gửi
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#92 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 17 September 2011 - 10:27 AM

Dialoge dưới đây có thể được gọi bằng 2 cách: lệnh CAD và hàm LISP. Hỏi:
- Dùng lệnh gì để gọi nó tại dòng command? Đúng thì được 2 thank.
- Dùng các hàm lisp nào để paste vào dòng command thì gọi được nó (chú ý: không được dùng kiểu (command “X”…))? Nếu số hàm lisp > đáp án: 1 thank, = đáp án: 3 thank, < đáp án: 5 thank. Mỗi dấu "(" được hiểu là 1 dòng lisp.
Hình đã gửi

Sang express rồi ^^

Lệnh :
Command: superhatch
Hàm lisp :
Command: (c:superhatch)


  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#93 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 17 September 2011 - 10:32 AM

Sang express rồi ^^

Tức ghê! Đáng lẽ cấm (command "X") thì phải cấm luôn cả (C:X) mới phải, ai ngờ Ket lẹ quá. Thôi đành bấm thank mõi tay vậy.
P/S: sao mới sáng mà hết quota rồi, mới thank được 1, nợ số còn lại mai thank.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#94 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 17 September 2011 - 10:53 AM

Tức ghê! Đáng lẽ cấm (command "X") thì phải cấm luôn cả (C:X) mới phải, ai ngờ Ket lẹ quá. Thôi đành bấm thank mõi tay vậy.
P/S: sao mới sáng mà hết quota rồi, mới thank được 1, nợ số còn lại mai thank.

Đố mẹo thì phải nhanh tay trả lời mẹo chứ. Khà khà
Hoặc gọi nó ra bằng cách này cho giống ý bác ^^ :

(load "sprhatch.lsp") ;Dong nay phai co de phong chua Load SuperHatch
(dd_htype_info) ;Dong nay de goi hop thoai

  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#95 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 17 September 2011 - 11:37 AM

Đố mẹo thì phải nhanh tay trả lời mẹo chứ. Khà khà
Hoặc gọi nó ra bằng cách này cho giống ý bác ^^ :


(load "sprhatch.lsp") ;Dong nay phai co de phong chua Load SuperHatch
(dd_htype_info) ;Dong nay de goi hop thoai

Đúng rồi! Đó là đáp án.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#96 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 17 September 2011 - 06:02 PM

Cách cổ điển : 1- Srr cách này sai ^^ 2-

 (defun ktra(a B)(and (vl-remove nil (mapcar '(lambda(x)(vl-position x B)) a)))) 

Ketxu viết tổng cộng có 8 (
-> Xin tặng Ketxu 6 tick thanks. Đã tick đến cái thứ 5 rồi. Đến cái thư 6 thì hết quota. Mai mốt tick tiếp vậy.

+ Cũng với câu đố ấy. Nhưng không sử dụng các hàm VL, các điều kiện và cơ cấu giải thưởng như trên. Mời các bác tham gia giải đố tiếp
Riêng với Ketxu, đã nhận 6 tick thanks, tương ứng với 8 cái (
, nếu Ketxu viết Lisp có ít hơn 1 cái ( , thì được tặng 1 thanks, ít hơn bao nhiêu cái ( , thì được tặng bấy nhiêu cái Thanks theo đúng như cơ cấu giải thưởng
Hấp dẫn quá! Nào, mời các bạn tiếp tục.....
  • 0

#97 npham

npham

    biết lệnh rotate

  • Members
  • PipPipPip
  • 136 Bài viết
Điểm đánh giá: 75 (tàm tạm)

Đã gửi 17 September 2011 - 07:30 PM


(defun ktra(a B)(and (vl-remove nil (mapcar '(lambda(x)(vl-position x B)) a))))


Bớt được 2 cái ngoặc. haha

(defun ktra(a B) (apply 'or (mapcar '(lambda (x) (vl-position x B)) a)))

Cách khác


(defun ktra(a B) (null (equal (foreach x a (setq B (vl-remove x B))) B)))

  • 1

#98 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 17 September 2011 - 07:45 PM


(defun ktra(a B) (apply 'or (mapcar '(lambda (x) (member x B)) a)))
P/s : Giống đáp án 1 của bác npham (nhưng thay vl-position bằng mem) mất rồi :(
  • 2

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#99 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 18 September 2011 - 09:22 AM

srr
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#100 admin

admin

    Administrator

  • Root Admin
  • PipPipPipPip
  • 280 Bài viết
Điểm đánh giá: 484 (tốt)

Đã gửi 18 September 2011 - 11:31 AM

Đề nghị các bạn không thank (like this) theo các mục đích cá cược hay đố.

Chỉ thank vào các bài viết hay, để hệ thống có sự đánh giá đúng với các bài viết.

Cảm ơn các bạn
  • 0