2016-05-30 9 views
-1

[パイソン3]任意の三角形の周囲を計算:私は、Pythonのオンラインコースを、次の、そしてこの活動に立ち往生していています

Assume distance2D(x1, y1, x2, y2) has already been defined. Using it, define a function trianglePerimeter(xA, yA, xB, yB, xC, yC) which calculates the perimeter of a triangle whose three points are (xA, yA), (xB, yB) and (xC, yC).

今distance2Dは、2点間の距離を計算するための関数である。

Assume hypotenuse(a, b) has already been defined. Using it, define a function distance2D(x1, y1, x2, y2) which calculates the distance between the point (x1, y1) and the point (x2, y2).

仰角は、直角三角形の斜辺を計算するだけです。このサイトでは、distance2D関数を使用してtrainglePerimeter関数を定義するよう求めています。

以下は私のコードです。

def trianglePerimeter(xA,yA,xB,yB,xC,yC): 
    a = distance2D(xA,yA,xB,yB) 
    b=distance2D(xB,yB,xC,yC) 
    return a+b 

私はコードを変更しようとしましたが、何も動作していないようです。誰かしてください助けて! iが取得

エラーメッセージ:

Before running your code: We defined a function distance2D. Program executed without crashing. The grader said: Running trianglePerimeter(0, 0, 0, 3, 4, 0) … Error: trianglePerimeter(0, 0, 0, 3, 4, 0) has wrong value 10.0, expected 12.0

+0

あなたの関数はどこに 'distance2D'ですか? – qvpham

+1

a、b、cに等しい辺を持つ三角形の場合、周囲を計算する式は非常に奇妙です(a * b - b)。 [適切な数式がある](https://en.wikipedia.org/wiki/Perimeter)。 – zezollo

+0

ポリゴンの「周囲」が何を指しているか知っていますか?使用している式がどこにあるのか分かりませんが、三角形の周囲の計算には関係ありません。 – TigerhawkT3

答えて

1

入力三角形は長さ3,4の側面を有しており、多角形の5周囲は、その辺の長さの和に等しいです。この三角形については、3 + 4 + 5、または12となります。しかし、2つの辺の長さを掛けて、それらの辺の長さの1つを3 * 5-5、または10で引いています。なぜあなたがこれをやっているのか分からない。単純に、各辺の長さを取得し、それらのすべてを追加します。

def trianglePerimeter(xA,yA,xB,yB,xC,yC): 
    a = distance2D(xA, yA, xB, yB) 
    b = distance2D(xB, yB, xC, yC) 
    c = distance2D(xC, yC, xA, yA) 
    return a+b+c 
+0

実際に誤って間違ったコードを貼り付けて校正しませんでした。私の実際のコードはあなたのものと似ていましたが、私はc変数をスキップして+ bを返しました。申し訳ありませんが、あなたのコードを試してみます。 :) – AaishaM

1

3辺の距離を追加周囲を計算するには、この

import math 
def distance2D(xA,yA,xB,yB): 
    return math.sqrt((xA-xB)*(xA-xB)+(yA-yB)*(yA-yB)) 

def trianglePerimeter(xA,yA,xB,yB,xC,yC): 
    return distance2D(xA,yA,xB,yB)+distance2D(xA,yA,xC,yC)+distance2D(xC,yC,xB,yB) 

print trianglePerimeter(1,5,6,2,7,6) 
16.0368200508 
0

を参照してください。あなたの方程式は明らかにそれをしていません。

def perimeter(xA,yA,xB,yB,xC,yC): 
    len_a = distance2D(xA,yA,xB,yB) 
    len_b = distance2D(xB,yB,xC,yC) 
    len_c = distance2D(xC,yC,xA,yA) 
    return len_a + len_b + len_c 

あなたは、指定された面に対して12の回答を得られます。

関連する問題