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

nhinhinhi

Thành viên
  • Số lượng nội dung

    3
  • Đã tham gia

  • Lần ghé thăm cuối

Bài đăng được đăng bởi nhinhinhi


  1. dạ, em cảm ơn ạ!

    em có thể thử làm câu 1 với repeat được không ạ?

    23 phút trước, 7o7 đã nói:

    Bạn mới học lisp mà đã viết kiểu đệ qui rồi. Đệ qui nếu làm không khéo dễ tạo vòng lặp dài vô tận, đó là lỗi bạn gặp phải.

    Tôi có cách viết đơn giản hơn dùng repeat.

    • cadvietlisp.lsp
      lisp help
    •  
    
    (defun tdd (x / S KQ) 
    	(setq s x
    				kq 0)
    	(repeat s
    		 (setq kq (if (= (rem x 2) 0) (+ kq x) (- kq x))
    					 x (1- x))
    	) kq
    )

     

     


  2. Em chào mọi người ạ, em là sinh viên mới học về cad và lisp. Em có 2 bài tập chưa biết làm ạ:

    1. tạo hàm tính mũ: Mu (A n), với n nguyên.

    2. tính tổng dãy số đổi dấu TDD n, ví dụ n=8 thì chương trình sẽ tính 8-7+6-5+4-3+2-1; n=7 thì sẽ là -7+6-5...-1

    (câu 2 em có thử làm như sau: (DEFUN TDD (X)
      (SETQ Y (REM X 2))
      (IF (= Y 0) (- X (+ (- X 1) (TDD (- X 2))) 1)) (+ X (- (- X 1)) (TDD (- X 2))) 1)

    nhưng máy báo lỗi: Hard error occurred ***
    internal stack limit reached (simulated) )

     

    Mong các anh chị giúp em ạ, em cảm ơn mọi người!

×