我用这个做欧姆定律计算器。
您可以选择要执行的操作并提供两个已知值,然后返回第三个。我将使用DCL和矢量图像来进行此操作,以向用户确认正确的计算。 显然,我并没有像你们看到的那个样使用这些计算。他们将被安排履行其受人尊重的职责。早些时候,我挂断了两个计算器,并寻求帮助,但我决定自己解决这个问题。 这里有一个关于这类东西的有趣资源。
http://www.engineeringtoolbox.com/
如果我记得正确(从很久以前)欧姆定律用于单相功率,三相材料有不同的值-大卫 在C#中,我认为这称为重载构造函数。基本上你所描述的是正确的,你用相同的名字写了一堆函数,根据你输入的内容,它会给出正确的第三部分作为答案。 我应该测试这些Lisp程序,但太懒了。
;;supply two of the three arguments to get the third
(defun OhmsLawPVR (P V R)
(cond
((not P) (/ (* V V) R))
((not V) (sqrt (* P R)))
((not R) (/ (* V V) P))
)
)
(defun OhmsLawPVI (P V I)
(cond
((not P) (* V I))
((not V) (/ P I))
((not I) (/ P V))
)
)
(defun OhmsLawVIR (V R I)
(cond
((not V) (* R I))
((not R) (/ V I))
((not I) (/ V R))
)
)
(defun OhmsLawPIR (P I R)
(cond
((not P) (* (* I I) R))
((not R) (/ P (* I I)))
((not I) (sqrt (/ P R)))
)
)
;;solve for S given 2 of the remaining 3 variables
;; S = string "P" "V" "R" "I"
;;should have error checking
(defun OhmsLaw? (S P V R I)
(setq S (strcase S))
(cond
((= S "P") ; return Power/Watts
(cond
((not R) (* V I))
((not V) (* (* I I) R))
((not I) (/ (* V V) R))
)
)
((= S "V") ; return Volts/EMF
(cond
((not P) (* R I))
((not R) (/ P I))
((not I) (sqrt (* P R)))
)
)
((= S "R") ; return Resistance/Ohms
(cond
((not P) (/ V I))
((not I) (/ (* V V) P))
((not V) (/ P (* I I)))
)
)
((= S "I") ; return Inductance/Amps
(cond
((not P) (/ V R))
((not R) (/ P V))
((not V) (sqrt (/ P R)))
)
)
)
) 真 的!
那辆出租车很棒。虽然我已经测试了我发布的那些,发现它们工作正常,但这要彻底得多。我似乎用一种简单的格式处理事情,并围绕它进行构建,但你的格式会使编码变得更短。
非常感谢。 驾驶室,
应该这样吗
((= S "V") ; return Volts/EMF
(cond
((not P) (* R I))
((not R) (/ P I))
((not V) (sqrt (* P R)))
)
)
是这个吗?
((= S "V") ; return Volts/EMF
(cond
((not P) (* R I))
((not R) (/ P I))
((not I) (sqrt (* P R)))
)
) 是的,你是对的。
当我尽快把它们打出来,然后去打网球&回来的时候就把它们贴出来了,我太累了,没法测试它们。我已经打扫干净了,正在找晚餐,祝你愉快。我会根据你的捕获在帖子中修复代码。
谢谢 我还在复习代码,以便完全理解它。
我需要看看这段代码如何适合我最初的方法。
我还没有决定如何实现DCL的接口,但这将很有趣。 我可以可视化一个用于选择目标数量的弹出列表,以及四个用于变量输入的列表框。。。保持事物干净和简单
页:
1
[2]