Chuyển đến nội dung
Diễn đàn CADViet
ketxu

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

Các bài được khuyến nghị

Câu này khó, e chưa có time tìm nhưng mà bác Tuệ đã treo giải 8 cái thì cũng chẳng vừa ^^

P/S : cứ thấy điều chưa biết cần học hỏi thì thanks thôi :)

Tranh thủ đi hỏi thôi ^^

Còn chuyện nôn nóng nhận Thanks thì là lẽ đương nhiên rồi, keke , nhưng mà lấy được Thank từ các bác e là khó :D

 

|

|

\/

.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nó là lệnh của CAD đấy Ketxu à. Và một điều tất nhiên là nó có thể viết bằng Lisp

(Command.....)

Lẽ đương nhiên, nó sẽ là khó với người chưa biết, và rất dễ với người biết đến nó :)

Đây là 1 câu đố vui, chắc là "lừa" được rất nhiều người rồi. Vì có rất nhiều người chưa biết tới nó :D

Mời các bạn cùng thư giãn

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nhìn hộp thoại em đoán là của CAD rồi, vì DCL không có icon đó ^^.

Câu trả lời :

 

(command "_aidimstyle" "o")

 

8 thanks, 8 thanks ô la la ^^

Ngoài ra còn 1 số thứ khác mà giờ mới để ý đến ^^ Tks bác Tuệ vì câu đố này :)

 

What.gif

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nhìn hộp thoại em đoán là của CAD rồi, vì DCL không có icon đó ^^.

Câu trả lời :

 

(command "_aidimstyle" "o")

 

8 thanks, 8 thanks ô la la ^^

Ngoài ra còn 1 số thứ khác mà giờ mới để ý đến ^^ Tks bác Tuệ vì câu đố này :)

.......

Xin chúc mừng Ketxu đã giải trúng câu đố. Thấy Ket vui quá đi à :D

Đã tick đủ 8 Thanks cho Ketxu :)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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ả!

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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....

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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)

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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 )

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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))))

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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?

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

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.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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.

untitled_67.jpg

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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.

untitled_67.jpg

Sang express rồi ^^

Lệnh :

Command: superhatch

Hàm lisp :

Command: (c:superhatch)

 

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Đố 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.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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.....

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

(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)))

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

(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 :(

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Đề 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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×