Đến nội dung


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

Hỏi về Lisp (thuật toán, ý tưởng, coding,...)


  • Please log in to reply
2854 replies to this topic

#1661 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 03 May 2013 - 04:37 PM

@ Bác Hà: 2/3 = 0.7 nên của KK ra 0.7 là đúng?

cal:

2/3 >> 0.7

test

2/3 >> 0.7

@TL: Trường hợp của TL là do lỗi của thằng rtos thôi

(rtos 4e14) -> "400000000000000.0"

(rtos 4e15) -> "4000000000000000"

(rtos 4e16) -> "4.0E+16"

(rtos 4e17) -> "4.0E+17"

....

Không hiểu sao 4e15 lại bị vậy.


  • 0

#1662 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 03 May 2013 - 04:42 PM

@ Bác Hà: 2/3 = 0.7 nên của KK ra 0.7 là đúng?

cal:

2/3 >> 0.7

test

2/3 >> 0.7

@TL: Trường hợp của TL là do lỗi của thằng rtos thôi

(rtos 4e14) -> "400000000000000.0"

(rtos 4e15) -> "4000000000000000"

(rtos 4e16) -> "4.0E+16"

(rtos 4e17) -> "4.0E+17"

....

Không hiểu sao 4e15 lại bị vậy.

 

Cái Ni răng bác : 

(Cách khắc phục Tue_NV đã trả lời bác ở bài viết trước). 

 
Command: TEST
 
 Nhap chuoi: 20/300
0.1
 
Command:
Command: cal
>> Expression: 20/300
0.0666666667

  • 1

#1663 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 03 May 2013 - 04:42 PM

Mình cũng đoán Thaistreetz viết hàm đó dựa vào việc bổ sung các ký tự space cho đủ. 

Nhưng làm như thế nào? viết ra sao để có 1 hàm tổng quát? đối số cần những gì? để ra được 1 một list_box gọn gàng và chính xác, có đủ canh trái, phải, giữa như thế chắc không phải đơn giản. Bạn cũng đã có ý định làm phương án này cho chương trình trên của bạn nhưng rồi cũng nghĩ là không làm được đành bỏ cuộc đấy thui. Mình thích ý tưởng độc này của Thaistreetz, nhưng mới nghĩ đến 1 hàm như thế đã thấy ngại rồi.

 

PS: Ngoài ra thì mình quan tâm đến 2 hộp thoai trên của Thaistreetz hơn, có khá nhiều điều mình thấy lạ! Nó khác hẳn những gì mình có thể viết. Thanh menu của list_box ở đâu ra? hay hình silde chẳng hạn.

1). Thanh menu của list_box: image?

2). Mình nghĩ bạn dư sức qua cầu với 2 phương án mình đề xuất. Phương án 2 thì rắc rối nhưng PA1 thì đơn giản thôi mà (vì khi đó các ký tự đều rộng như nhau, tuy nó có 1 nhược điểm). Ai ngờ bạn ngại.

Ít bữa rảnh mình viết tặng bạn cả 2 cái.

Lúc đầu mình nghĩ không làm được, nhưng khi nhìn hình mình ngộ ra làm được, và đã tìm ra hướng làm. Chuyện này hết sức bình thường.


  • 1

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


#1664 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 03 May 2013 - 04:55 PM

@ Bác Hà: 2/3 = 0.7 nên của KK ra 0.7 là đúng?

Đúng để lãnh đủ à?

 

Command:

TEST

 Nhap chuoi: 3*2/3

3.0*0.7

 

Command:

Command: cal

>> Expression: 3*2/3

2

Command:
TEST
 Nhap chuoi: 3*2/3
3.0*0.7
 
Command:
Command: cal
>> Expression: 3*2/3
2

  • 1

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


#1665 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 03 May 2013 - 04:56 PM

OK Thanks bác Tue_NV lần nữa. Code mới sửa đây: 

(defun C:Test( / i j a b c)
  (setq a(getstring T "\n Nhap chuoi: " ))
  (setq i 1 a1 "")
  (while (<= i (strlen a))
    (setq j(- (strlen a) i -1))
    (while (> j 0)
      (setq b(substr a i j))
      (if (and (= (vl-string-search "+" b) nil) (= (vl-string-search "-" b) nil) (= (vl-string-search "/" b) nil) (= (vl-string-search " " b) nil))
	(if (setq c(distof b))
	  (setq a1(strcat a1 (substr a 1 (- i 1)) (rtos c 2 1))
		a(substr a (+ j i))
		i 1 j 0)))
      (setq j(- j 1)))
    (setq i(1+ i)))
  (setq a1(strcat a1 a))
  (princ a1)
  (princ)
  )

PS: Thanks bác Tue nhưng bấm nhầm vào bác Hà rồi. Mai sẽ Like bù bác Tue phát nữa nhé. Hôm nay hết quyền like rồi


  • 0

#1666 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 03 May 2013 - 05:03 PM

KK có thừa nhận bài #1664 không? Nếu thừa nhận thì nhầm chấp nhận được, còn không thì tôi... trả lạ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.


#1667 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 03 May 2013 - 05:14 PM

OK bác Hà. Chấp nhận lỗi, đã sửa lai code mới rồi bác. Nếu được thì bác Like bác Tue hộ với. Mới like cho bác ấy 1 cái thôi còn Like bác 3 cái rồi


  • 0

#1668 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 03 May 2013 - 05:20 PM

Cái Ni răng bác : 

(Cách khắc phục Tue_NV đã trả lời bác ở bài viết trước). 

 
Command: TEST
 
 Nhap chuoi: 20/300
0.1
 
Command:
Command: cal
>> Expression: 20/300
0.0666666667

Ví dụ này chính là ví dụ 2/3 thôi. Đã like bác Tue_NV giùm KK rồi nhé!


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


#1669 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 03 May 2013 - 05:26 PM

:lol:  :lol:  :lol: Thanks bác Hà (không kèm Like nhé) 


  • 0

#1670 VoHoan

VoHoan

    biết lệnh move

  • Members
  • PipPipPip
  • 129 Bài viết
Điểm đánh giá: 8 (bình thường)

Đã gửi 04 May 2013 - 08:05 AM

Sorry các PRO! Chen ngang nội dung của các bác đế hỏi thuật toán này với.

Mình muốn viết 1 vòng lặp mà khi ấn phím ENTER thì thoát vòng lặp đó, nhờ bác nào viết hộ cái!?


  • 0

#1671 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

  • Members
  • PipPipPipPip
  • 288 Bài viết
Điểm đánh giá: 142 (tàm tạm)

Đã gửi 04 May 2013 - 08:10 AM

1). Thanh menu của list_box: image?

2). Mình nghĩ bạn dư sức qua cầu với 2 phương án mình đề xuất. Phương án 2 thì rắc rối nhưng PA1 thì đơn giản thôi mà (vì khi đó các ký tự đều rộng như nhau, tuy nó có 1 nhược điểm). Ai ngờ bạn ngại.

Ít bữa rảnh mình viết tặng bạn cả 2 cái.

Lúc đầu mình nghĩ không làm được, nhưng khi nhìn hình mình ngộ ra làm được, và đã tìm ra hướng làm. Chuyện này hết sức bình thường.

1) Bạn có thể viết image kèm với text? Mình nghĩ là không thể

2) Mình chờ hàng của bạn ^^


  • 0

#1672 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 04 May 2013 - 08:46 AM

1). Image là 1 hình thì kèm gì trong đó không được, cứ gì text?

2). Bạn test lisp viết theo PA1 xem sao. Như tôi đã nói, nó có 1 nhược điểm. Còn PA2 thì đợi tí. Mà nếu bạn OK PA1 thì khỏi viết PA2.

67029_untitled3.png

LSP+DCL:

 http://www.cadviet.c.../67029_ha_1.zip


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


#1673 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 04 May 2013 - 10:35 AM

@Linh: Hộp thoại chương trình chính, thanh header (gọi nó là header chư không ai gọi là menu nhé) đúng là không phải image. Còn hộp thoại tra thép, đó không fải là slide mà chính xác là 1 image. Hoàn toàn có thể dùng text trong image, nhưng đó là text đồ họa 8bit hoặc text vector. Cái này thì em rành quá rồi. Image không sử dụng chung font chữ với text của các tile bình thường khác,là font đồ họa 16 và 32bit
Tối về check email nhé.
@Tue_nv: Chương trình thống kê thép này em viết chưa hoàn thiện, gần xong thì nghỉ việc nên vứt xó nó hơn 1 năm qua, giờ cũng không có ý định fát triển tiếp nữa. Lúc nào rảnh em sẽ làm cái tut giới thiệu toàn bộ để bác coi.
@ĐVH: hình tôi post đúng là win8 đấy. Chiều rộng các tile không chỉ fụ thuộc vào tham số width mà còn fụ thuộc vào các yếu tố khác: chiều rộng tổng thể của hộp thoại, tỷ lệ chiều rộng giữa các tile trong cùng hàng....
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#1674 VoHoan

VoHoan

    biết lệnh move

  • Members
  • PipPipPip
  • 129 Bài viết
Điểm đánh giá: 8 (bình thường)

Đã gửi 04 May 2013 - 11:04 AM

Mình có câu hỏi ở mục #1670 nhờ AE đang theo dõi topic này trả lời giúp với!


  • 0

#1675 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

  • Members
  • PipPipPipPip
  • 288 Bài viết
Điểm đánh giá: 142 (tàm tạm)

Đã gửi 04 May 2013 - 11:19 AM

@Thaistreetz: Thanks man!  :D

@ĐVH: Code thế mà bạn bảo đơn giản ư! Rất hay và chả dễ tí nào! tuy sử dụng fixed_width_font = true không đẹp bằng của Thaistreetz nhưng hoàn toàn chấp nhận được.


  • 0

#1676 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 04 May 2013 - 11:30 AM

@Thaistreetz: Thanks man!  :D

@ĐVH: Code thế mà bạn bảo đơn giản ư! Rất hay và chả dễ tí nào! tuy sử dụng fixed_width_font = true không đẹp bằng của Thaistreetz nhưng hoàn toàn chấp nhận được.

:D TL ơi! Lúc đầu nãy ra ý tưởng thì thấy đơn giản, nhưng khi nhảy vào thì thấy nó đủ thứ hằm bà lằng. Vì đã hứa với bạn nên tối qua phải làm đến khuya. Đậm là nhược điểm của nó. Mình có gởi kèm trong file lisp để bạn code theo PA2, nhưng nay có cả rồi thì thôi. Không biết PA của Thai có phụ thuộc font chữ không?

@Hoan: (while (setq a (getreal "\nNhap 1 so: ")))


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


#1677 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 04 May 2013 - 11:39 AM

1). Image là 1 hình thì kèm gì trong đó không được, cứ gì text?

2). Bạn test lisp viết theo PA1 xem sao. Như tôi đã nói, nó có 1 nhược điểm. Còn PA2 thì đợi tí. Mà nếu bạn OK PA1 thì khỏi viết PA2.

67029_untitled3.png

LSP+DCL:

 http://www.cadviet.c.../67029_ha_1.zip

1. Kèm image vào listbox bằng cách nào vậy bác?

2.Duy cũng thử theo hướng fixed_width_font=true được rồi nhưng ghét cái là text nó chàng hảng, đậm đen => hông ưng. Cách lấy dộ rộng từng ký tự bác chỉ hướng Duy cày thử với!


  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#1678 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 04 May 2013 - 11:52 AM

1). Tôi có nói kèm image vào list_box đâu. Image là header rời mà.

2). Trong file lisp tôi đã gởi có 1 hàm cuối cùng để lấy pixel của ký tự, cày cái này được lúa đấy! Chữ nó nhạt và không chàng hảng đâu. Tôi thử rồi.


  • 1

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


#1679 VoHoan

VoHoan

    biết lệnh move

  • Members
  • PipPipPip
  • 129 Bài viết
Điểm đánh giá: 8 (bình thường)

Đã gửi 04 May 2013 - 02:22 PM

Hoan: (while (setq a (getreal "\nNhap 1 so: ")))

Cảm ơn ĐVH đã trả lời, nhưng chắc do câu hỏi của mình không rõ ràng nên bạn trả lời chưa trúng.

Ý mình là muốn có 1 vòng lặp thực hiện các công việc A B C, đế thoát vòng lặp thì nhấn ENTER hoặc ESC. Khi thoát vòng lặp thì lisp vẫn không bị lỗi và thực hiện các lệnh tiếp theo.

Mình diễn đạt không biết đã rõ chưa, mong ĐVH giúp nhé!


  • 0

#1680 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 04 May 2013 - 02:33 PM

Vẫn không hiểu. Bạn có cho 1 ví dụ trực quan hơn, như lisp đang làm chẳng hạ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.