The Buzzard 发表于 2022-7-6 15:02:33

这基本上就是我计划要做的。
我用这个做欧姆定律计算器。
您可以选择要执行的操作并提供两个已知值,然后返回第三个。我将使用DCL和矢量图像来进行此操作,以向用户确认正确的计算。

The Buzzard 发表于 2022-7-6 15:05:47

显然,我并没有像你们看到的那个样使用这些计算。他们将被安排履行其受人尊重的职责。早些时候,我挂断了两个计算器,并寻求帮助,但我决定自己解决这个问题。

David Bethel 发表于 2022-7-6 15:06:26

这里有一个关于这类东西的有趣资源。
 
http://www.engineeringtoolbox.com/
 
如果我记得正确(从很久以前)欧姆定律用于单相功率,三相材料有不同的值-大卫

CmdrDuh 发表于 2022-7-6 15:11:54

在C#中,我认为这称为重载构造函数。基本上你所描述的是正确的,你用相同的名字写了一堆函数,根据你输入的内容,它会给出正确的第三部分作为答案。

CAB 发表于 2022-7-6 15:14:15

我应该测试这些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)))
    )
   )
)
)

The Buzzard 发表于 2022-7-6 15:15:57

真 的!
 
那辆出租车很棒。虽然我已经测试了我发布的那些,发现它们工作正常,但这要彻底得多。我似乎用一种简单的格式处理事情,并围绕它进行构建,但你的格式会使编码变得更短。
 
非常感谢。

The Buzzard 发表于 2022-7-6 15:21:43

驾驶室,
 
应该这样吗
 
    ((= 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)))
    )
   )

CAB 发表于 2022-7-6 15:23:19

是的,你是对的。
当我尽快把它们打出来,然后去打网球&回来的时候就把它们贴出来了,我太累了,没法测试它们。我已经打扫干净了,正在找晚餐,祝你愉快。我会根据你的捕获在帖子中修复代码。
 
谢谢

The Buzzard 发表于 2022-7-6 15:27:06

我还在复习代码,以便完全理解它。
我需要看看这段代码如何适合我最初的方法。
我还没有决定如何实现DCL的接口,但这将很有趣。

Lee Mac 发表于 2022-7-6 15:31:16

我可以可视化一个用于选择目标数量的弹出列表,以及四个用于变量输入的列表框。。。保持事物干净和简单
页: 1 [2]
查看完整版本: 欧姆';s定律公式