计算三角形面积(方案)

时间:2019-12-09 01:03:21

标签: scheme

我具有计算面积所需的所有功能,但是在三角函数中,我使用距离函数分配a,b和c以确定其边的长度。我要实现的下一步是用a,b和c调用s函数,但是每当我尝试执行时,它都会说变量是未绑定的。当列出a,b和c时,将显示正确的值。我尝试过:

(let ([side (s a b c)]) (list side))

,但是看来变量实际上并不能绑定并传递给另一个函数。我该如何解决?

(define distance  
        (lambda (x1 x2 y1 y2)
                (sqrt (+ (*(- x1 x2) (- x1 x2)) (* (- y1 y2) (- y1 y2))))))

(define s
        (lambda (a b c)
                (/ ( + (+ a b) c) 2)))

(define T
        (lambda (s a b c)
                (* s (* (- s a) (* (- s b) (- s c))))))

(define (area T)
        (cond ((> T 0)  (sqrt T))
              ((< T 0) -1)))

(define triangle
              (lambda (x1 y1 x2 y2 x3 y3)
                      (let ([a (distance x1 x2 y1 y2)]
                            [b (distance x2 x3 y2 y3)] 
                            [c (distance x3 x1 y3 y1)])
                            (list a b c))))



(triangle 4 3 3 9 8 2 )

0 个答案:

没有答案