Java黑皮书课后题第8章:*8.32(几何:三角形面积)编写一个方法,使用下面的方法头,返回一个三角形的面积。编写一个程序,提示用户输入三角形的三个点,然后显示三角形的面积
生活随笔
收集整理的這篇文章主要介紹了
Java黑皮书课后题第8章:*8.32(几何:三角形面积)编写一个方法,使用下面的方法头,返回一个三角形的面积。编写一个程序,提示用户输入三角形的三个点,然后显示三角形的面积
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
*8.32(幾何:三角形面積)編寫一個方法,使用下面的方法頭,返回一個三角形的面積。編寫一個程序,提示用戶輸入三角形的三個點,然后顯示三角形的面積
- 題目
- 題目描述與運行示例
- 破題
- 代碼
題目
題目描述與運行示例
8.32(幾何:三角形面積)編寫一個方法,使用下面的方法頭,返回一個三角形的面積:
public static double getTriangleArea(double[][] points)
點保存在32的二維數組points中,三角形面積計算可以使用編程練習題2.19中公式,如果三個點在一條直線上方法返回0
編寫一個程序,提示用戶輸入三角形的三個點,然后顯示三角形的面積
博主補充三角形面積公式:
s = (side1 + side2 + side3) / 2
area = Math.sqrt(s*(s-side1)(s-side2)(s-side3))
運行示例:
Enter x1, y1, x2, y2, x3, y3: 2.5 2 5 -1.0 4.0 2.0 The area of the triangle is 2.25 Enter x1, y1, x2, y2, x3, y3: 2 2 4.5 4.5 6 6 The three points are on the same line破題
代碼
import java.util.Scanner;public class Test8_32 {public static void main(String[] args) {//1. 主方法:聲明一個3*2的二維數組points,double型double[][] points = new double[3][2];//2. 主方法:輸出提示輸入語句,使用循環接收點坐標Scanner input = new Scanner(System.in);System.out.print("Enter x1, y1, x2, y2, x3, y3: ");for (int i = 0 ; i < 3 ; i++){for (int j = 0 ; j < 2 ; j++){points[i][j] = input.nextDouble();}}//3. 主方法:調用自定義方法getTriangleArea,傳入二維數組pointsdouble feedback = getTriangleArea(points);//4. 主方法:根據返回值輸出對應內容if ( feedback == 0){System.out.println("The three points are on the same line");} else {System.out.printf("The area of the triangle is %.2f", feedback);}}public static double getTriangleArea(double[][] points){//5. 方法getTriangleArea:先判斷三個點是否在同一條直線上,如果在則返回0double k01 = 0 , k02 = 0, b01 = 0, b02 = 0;k01 = (points[1][1] - points[0][1] ) / (points[1][0] - points[0][0]);k02 = (points[2][1] - points[0][1]) / (points[2][0] - points[0][0]);b01 = points[0][1] - k01 * points[0][0];b02 = points[0][1] - k02 * points[0][0];if (k01==k02 && b01==b02){return 0;}//6. 方法getTriangleArea:計算三條邊double side1 = Math.sqrt(Math.pow(points[1][0] - points[0][0], 2) + Math.pow(points[1][1] - points[0][1], 2));double side2 = Math.sqrt(Math.pow(points[2][0] - points[0][0], 2) + Math.pow(points[2][1] - points[0][1], 2));double side3 = Math.sqrt(Math.pow(points[2][0] - points[1][0], 2) + Math.pow(points[2][1] - points[1][1], 2));//7. 方法getTriangleArea:計算公式中的sdouble s = (side1 + side2 + side3) / 2;//8. 方法getTriangleArea:返回面積return Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));} }總結
以上是生活随笔為你收集整理的Java黑皮书课后题第8章:*8.32(几何:三角形面积)编写一个方法,使用下面的方法头,返回一个三角形的面积。编写一个程序,提示用户输入三角形的三个点,然后显示三角形的面积的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java黑皮书课后题第8章:*8.31(
- 下一篇: Java黑皮书课后题第8章:*8.33(