English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

class Polygon
{
int x[]; // 還沒空間
int y[];

Polygon(int x[],int y[])
{

}
double perimeter()
{

}
}

public class homework
{
public static void main(String args[])
{


}
}


老師給我們的作業
可是我怎麼想都想不出來= =
要先算出每個邊的邊長
再相加算出三邊形跟五邊形的周長

會在主程形裡宣告三邊形跟五邊形
老師有提到要用陣列 還有在perimeter裡 會用到開根號


如果有人看的懂我說的 = = 那麻煩給我點意見吧

2006-03-20 18:08:24 · 1 個解答 · 發問者 ㄩˊㄑ一ˊ 1 in 電腦與網際網路 程式設計

1 個解答

題目的意思應該是給定多邊形各頂點的座標,求出其周長。例如,

public static void main(String[] args) {
Polygon p1 = new Polygon(new int[]{2,4,6,5,3},new int[]{2,1,3,5,4}); //五邊形的座標
Polygon p2 = new Polygon(new int[]{-1,-4,-2},new int[]{-1,-3,-5}); //三邊形的座標
double d1 = p1.perimeter(); //五邊形的周長
double d2 = p2.perimeter(); //三邊形的周長
System.out.println("總周長:" + (d1+d2)); //印出周長的和
}

因此在建構子中

Polygon(int[] x, int[] y) {
this.x = x; this.y = y;
}

而在 perimeter() 中,利用各頂點的座標來求出各邊長,將其加總成為周長。
兩點間距為 √[(X座標差)²+(Y座標差)²],故

double perimeter() {
double d = 0.0D;
for (int i = 1; i < x.length; i++) { // 從 i = 1開始,意謂從第二點開始計算
d += Math.sqrt(Math.pow(x[i]-x[i-1],2) + Math.pow(y[i]-y[i-1],2));
}
// 計算第一點與最後一點的距離
d += Math.sqrt(Math.pow(x[x.length-1]-x[0],2) + Math.pow(y[y.length-1]-y[0],2));
return d;
}

2006-03-28 08:16:19 · answer #1 · answered by ? 7 · 0 0

fedest.com, questions and answers