- 代码已经适用于 L=90°。
- 是的,高度必须是点
A 到点B 和C 之间的基础a 的距离,与基础形成一个直角。推导做出了这个假设,特别是关于它在第二个面积公式1/2 h a 中使用h 和a 的方式。如果 h 的绘制方式不同,则该确切公式将不适用。
- 您的第二组输入导致非真实答案的原因是,有时一组数学参数可能彼此不一致并描述了一个不可能的构造,而您的
P、h 和 @987654331 @values 正是这样做的。具体来说,他们描述了一个不可能的三角形。
给定一个高度h 和角度L,可以实现的最小周长P 是一个等腰三角形,中间被h 分割。使用L=30,这将有周长P = a + b + c = 2h tan15 + h/cos15 + h/cos15,插入h=3,会产生P=7.819。您改为尝试使用P=3+sqrt(3)=4.732。尝试使用小于 7.819 的各种数字(加上一点;我在这里四舍五入),你会看到它们都会产生虚构的结果。这就是数学告诉你你正在计算的东西在现实中是不存在的。
如果您在第 5 行中填写 Y 和 / 之间缺少的右括号,那么您的代码可以完美运行。
我写的代码和你略有不同,我是这样做的:
Prompt P
Prompt H
Prompt L
HP²/(2H(1+cos(L))+2Psin(L))→Y
(HP-Ysin(L))/H→Z
Z²-4Y→D
If D<0:Then
Disp "IMAGINARY"
Stop
End
(Z+√(D))/2→C
Y/C→B
P-(B+C)→A
Disp A
Disp B
Disp C
编辑: @Gabriel,角度 30-60-90 没有什么特别的(关于这个问题);描述此类三角形的 P、h 和 L 输入集的数量是无限的。但是,如果您真的想在答案中得出这样的三角形,那么您实际上已经改变了问题;您现在知道三个角度 (30-60-90) 加上 P 和 h,而不是只知道一个角度 L 加上 P 和 h。您现在已经过度指定了三角形,因此可以确定一组随机生成的输入将描述一个不可能的三角形。作为一个人为的例子,如果您将h 指定为 0.0001 并将 P 指定为 99999,那么这显然是不可能的,因为具有很小的高度和相当不极端的角度(30-60-90 是)的三角形不可能达到周长其高度的许多倍。
如果您只想从P 或h 之一开始,那么您可以从已知的P 或h 加上30-60 的知识推导出方程来计算三角形的所有参数-90 角。
举一个例子,如果我们假设边 a 构成 90° 和 60° 角之间三角形的底边,那么我们有 L=30 并且(将 60° 角标记为 B)我们有h=b,你可以得到所有参数的简单方程:
P = a + h + c
sin60 = h/c
cos60 = a/c
=> P = c cos60 + c sin60 + c
P = c(cos60 + sin60 + 1)
c = P/(cos60 + sin60 + 1)
b = h = c sin60
a = c cos60
插入P=100 我们有
c = 100/(cos60 + sin60 + 1) = 42.265
b = h = 36.603
a = 21.132
如果您将P=100、h=36.603 和L=30 插入代码,您会看到您得到这些确切的结果。