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 電腦與網際網路 ➔ 程式設計
題目的意思應該是給定多邊形各頂點的座標,求出其周長。例如,
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⤋