SHARE
    TWEET
    Valemmil

    Untitled

    Oct 13th, 2023
    2,160
    0
    Never
    Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
    Lisp 1.32 KB | Source Code | 0 0
    1. ; задание уравнения в виде списка
    2. (setq meEquation '(A * x = B))
    3. ; выделение левой части относительно символа op
    4. (defun left(e op)
    5. (if e
    6. (let ((f (first e)))
    7. (if (eq f op) nil
    8. (cons f (left (rest e) op))
    9. )
    10. )
    11. nil
    12. )
    13. )
    14. ; выделение правой части относительно символа op
    15. (defun right(e op)
    16. (if e
    17. (let ((r (rest e)))
    18. (if (eq (first e) op) r
    19. (right r op)
    20. )
    21. )
    22. nil
    23. )
    24. )
    25. ; решение уравнения
    26. (defun res(e)
    27. (let ((l (left e '=)))
    28. (if l
    29. (let(
    30. (r (first (right e '=)))
    31. (k (first (left l '*)))
    32. (var (first (right l '*)))
    33. )
    34. (if (and r k var)
    35. (list var '= r '/ k)
    36. nil
    37. )
    38. )
    39. nil
    40. )
    41. )
    42. )
    43. ; вывод сообщения об ошибке при неправильно заданном уравнении
    44. (defun res2(e)
    45. (let ((r (res e)))
    46. (if r r "Ошибка")
    47. )
    48. )
    49. ; вывод результата решения
    50. (print (res2 meEquation))
    Advertisement
    Add Comment
    Please, Sign In to add comment
    Public Pastes
    We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
    Not a member of Pastebin yet?
    Sign Up, it unlocks many cool features!

    AltStyle によって変換されたページ (->オリジナル) /