Đến nội dung


Hình ảnh
- - - - -

Giúp đỡ về hàm trong lisp.


  • Please log in to reply
6 replies to this topic

#1 songlaptruong

songlaptruong

    biết pan

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

Đã gửi 08 February 2014 - 08:21 AM

Em mới học lisp mong mọi người giúp đỡ em. Giờ em có thuật toán thế này ạ: 1.(nhập số liệu A)->2.(tính toán)->3.(nhập số liệu B )->4.(tính toán)->5.(điều kiện nếu đúng thì hiển thị kết quả lên màn hình, nếu sai quay lại bước 3). Em thấy hàm if không chuẩn lắm.

Em có câu hỏi nữa là: (setq a A b B c (/a b ) trong trường hợp mà B là 0 thì c không xác định mà em muốn gán cho c bằng không thì dùng hàm gì và khai báo thế nào ạ.


  • 0

#2 songlaptruong

songlaptruong

    biết pan

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

Đã gửi 08 February 2014 - 05:13 PM

Ơ không có bác nào giúp em với ạ.


  • 0

#3 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 10 February 2014 - 09:33 AM

Ơ không có bác nào giúp em với ạ.

hề hề hề,

Đầu năm mới, bánh chưng còn dính tay nên chửa gõ được, mong chủ thớt thông cảm.

Về hai vấn đề chủ thớt đưa ra, mình có suy nghĩ như sau và chủ thớt thử áp dụng xem có ổn không nhé.

1/- Có thể sử dụng vòng lặp (while ...... )

Tỷ dụ:

(setq a (getreal "\n Nhap gia tri tinh toan: "))

(while (/=  a nil)

                    (thực hiện tinh toan)

                    (if (= (ketquatinhtoan) (dieukiensosanh))

                        (progn

                               (hienthiketqua)

                              (setq a nil)

                       )

                       (setq a (getreal "\n Nhap gia tri tinh toan tiep theo: "))

                    )

)

2/- Sử dụng hàm điều kiện ( if  .......)

Tỷ dụ:

(setq a A b B c (if (= b 0) (setq c 0) (setq c (/ a b ))))


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#4 songlaptruong

songlaptruong

    biết pan

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

Đã gửi 16 February 2014 - 09:21 PM

Cám ơn bác Bình, đúng là thứ em cần. Tiện các bác cho em hỏi là em có 1 loạt các text được viết bởi 15 số cách nhau, giờ em muốn xuất ra file text hoặc cell. Nội dung là text nào tích trước thì xuất hiện trước, mỗi hàng cell 15 cột như 15 số trong 1 text, mỗi cột 1 số. Trong bài của em là 4 text và kết quả là 1 bảng cell chứa 4 hàng, 15 cột. Mong mọi người giúp đỡ em. Em cám ơn.


  • 0

#5 songlaptruong

songlaptruong

    biết pan

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

Đã gửi 16 February 2014 - 09:23 PM

Cad đây ạ.http://www.cadviet.c...861_cadviet.dwg


  • 0

#6 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 17 February 2014 - 11:04 AM

Hề hề hề,

Cad đây ạ.http://www.cadviet.c...861_cadviet.dwg

yêu cầu này không quá khó khăn. Do bạn đang muốn học viết lisp nên mình gợi ý như sau:

1/- mở một file để ghi số liệu vào

2/- Tạo một bộ chọn gồm các text được chọn thgeo trật tự mà bạn mong muốn.

3/- Tạo vòng lặp qua từng đối tượng này (có thể dùng vòng lặp while hay foreach hay repeat đều được cả tuy cú pháp có khác nhau).

4/- Trong vòng lặp, với từng đối tượng, thực hiện các nhiệm vự sau đây:

a/- Lấy giá tri của text bởi hàm (setq txt (cdr (assoc 1 (entget ent))))

b/- Tách text có sẵn txt này thành một list gồm các text thành phần, Có thể sử dụng lisp separate text đã có trên diễn đàn này của bác SSG hay bác Nguyễn Hoành. 

c/- Gán list này vào một list mẹ sử dụng hàm cons hay hàm append.

5/- Từ list mẹ có được sau vòng lặp tạo một vòng lặp qua từng phần tử trong list mẹ

6/- Với mỗi phần tử này (tức là một list gồm các text con) tạo một vòng lặp qua từng phần tử của nó

Trong vòng lặp này thực hiện các nhiệm vụ sau:

a/-Tao một chuỗi gồm các text con và các ký tư nhảy cột phù hợp với loại file sử dụng

7/-- Ghi text này vào file sử dụng.

8/- đóng file số liệu đã mở

 

Bạn hãy làm thử và post cái bạn làm lên, mọi người sẽ giúp bạn hoàn thiện nếu có sai sót.


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#7 songlaptruong

songlaptruong

    biết pan

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

Đã gửi 18 February 2014 - 12:13 AM

Em cám ơn anh Bình, hôm trước em có xem các lisp mọi người làm trên diễn đàn thì nếu xuất dữ liệu ra cell đều cho số liệu gộp trung vào cột A, hôm nay em cho ra file text và mở bằng cell chọn cách mở lại thì hoàn toàn được 15 cột như ý muốn.

Hề hề hề bắt trước bác tí nhé.


  • 0