📜  求三角形面积的程序

📅  最后修改于: 2021-10-23 08:14:48             🧑  作者: Mango

使用给定边查找区域:

例子 :

Input : a = 5, b = 7, c = 8
Output : Area of a triangle is 17.320508


Input : a = 3, b = 4, c = 5
Output : Area of a triangle is 6.000000

可以使用以下公式简单地评估三角形的面积。

Area = sqrt(s*(s-a)*(s-b)*(s-c))
where a, b and c are lengths of sides of
triangle and s = (a+b+c)/2

C++
// C++ Program to find the area
// of triangle
#include 
using namespace std;
 
float findArea(float a, float b, float c)
{
    // Length of sides must be positive
    // and sum of any two sides
    // must be smaller than third side.
    if (a < 0 || b < 0 || c < 0 ||
       (a + b <= c) || a + c <= b ||
                       b + c <= a)
    {
        cout << "Not a valid triangle";
        exit(0);
    }
    float s = (a + b + c) / 2;
    return sqrt(s * (s - a) *
                    (s - b) * (s - c));
}
 
// Driver Code
int main()
{
    float a = 3.0;
    float b = 4.0;
    float c = 5.0;
 
    cout << "Area is " << findArea(a, b, c);
    return 0;
}
 
// This code is contributed
// by rathbhupendra


C
#include 
#include 
 
float findArea(float a, float b, float c)
{
    // Length of sides must be positive and sum of any two sides
    // must be smaller than third side.
    if (a < 0 || b < 0 || c <0 || (a+b <= c) ||
        a+c <=b || b+c <=a)
    {
        printf("Not a valid triangle");
        exit(0);
    }
    float s = (a+b+c)/2;
    return sqrt(s*(s-a)*(s-b)*(s-c));
}
 
int main()
{
    float a = 3.0;
    float b = 4.0;
    float c = 5.0;
 
    printf("Area is %f", findArea(a, b, c));
    return 0;
}


Java
// Java program to print
// Floyd's triangle
     
class Test
{
    static float findArea(float a, float b, float c)
    {
        // Length of sides must be positive and sum of any two sides
        // must be smaller than third side.
        if (a < 0 || b < 0 || c <0 || (a+b <= c) ||
            a+c <=b || b+c <=a)
        {
            System.out.println("Not a valid triangle");
            System.exit(0);
        }
        float s = (a+b+c)/2;
        return (float)Math.sqrt(s*(s-a)*(s-b)*(s-c));
    }
         
    // Driver method
    public static void main(String[] args)
    {
        float a = 3.0f;
        float b = 4.0f;
        float c = 5.0f;
     
        System.out.println("Area is " + findArea(a, b, c));
    }
}


Python
# Python Program to find the area
# of triangle
 
# Length of sides must be positive
# and sum of any two sides
def findArea(a,b,c):
 
    # must be smaller than third side.
    if (a < 0 or b < 0 or c < 0 or (a+b <= c) or (a+c <=b) or (b+c <=a) ):
        print('Not a valid triangle')
        return
         
    # calculate the semi-perimeter
    s = (a + b + c) / 2
     
    # calculate the area
    area = (s * (s - a) * (s - b) * (s - c)) ** 0.5
    print('Area of a triangle is %f' %area)
 
 
# Initialize first side of triangle
a = 3.0
# Initialize second side of triangle
b = 4.0
# Initialize Third side of triangle
c = 5.0
findArea(a,b,c)
 
# This code is contributed by Shariq Raza


C#
// C# program to print
// Floyd's triangle
using System;
 
class Test {
     
    // Function to find area
    static float findArea(float a, float b,
                        float c)
    {
         
        // Length of sides must be positive
        // and sum of any two sides
        // must be smaller than third side.
        if (a < 0 || b < 0 || c <0 ||
        (a + b <= c) || a + c <=b ||
            b + c <=a)
        {
            Console.Write("Not a valid triangle");
            System.Environment.Exit(0);
        }
        float s = (a + b + c) / 2;
        return (float)Math.Sqrt(s * (s - a) *
                            (s - b) * (s - c));
    }
         
    // Driver code
    public static void Main()
    {
        float a = 3.0f;
        float b = 4.0f;
        float c = 5.0f;
     
        Console.Write("Area is " + findArea(a, b, c));
    }
}
 
// This code is contributed Nitin Mittal.


PHP


Javascript


C++
// C++ program to evaluate area of a polygon using
// shoelace formula
#include 
using namespace std;
  
// (X[i], Y[i]) are coordinates of i'th point.
double polygonArea(double X[], double Y[], int n)
{
    // Initialize area
    double area = 0.0;
  
    // Calculate value of shoelace formula
    int j = n - 1;
    for (int i = 0; i < n; i++)
    {
        area += (X[j] + X[i]) * (Y[j] - Y[i]);
        j = i;  // j is previous vertex to i
    }
  
    // Return absolute value
    return abs(area / 2.0);
}
  
// Driver program to test above function
int main()
{
    double X[] = {0, 2, 4};
    double Y[] = {1, 3, 7};
  
    int n = sizeof(X)/sizeof(X[0]);
  
    cout << polygonArea(X, Y, n);
}


Java
// Java program to evaluate area of
// a polygon usingshoelace formula
import java.io.*;
import java.math.*;
 
class GFG {
 
    // (X[i], Y[i]) are coordinates of i'th point.
    static double polygonArea(double X[], double Y[], int n)
    {
        // Initialize area
        double area = 0.0;
     
        // Calculate value of shoelace formula
        int j = n - 1;
        for (int i = 0; i < n; i++)
        {
            area += (X[j] + X[i]) * (Y[j] - Y[i]);
             
            // j is previous vertex to i
            j = i;
        }
     
        // Return absolute value
        return Math.abs(area / 2.0);
    }
     
    // Driver program
    public static void main (String[] args)
    {
        double X[] = {0, 2, 4};
        double Y[] = {1, 3, 7};
 
        int n = X.length;
        System.out.println(polygonArea(X, Y, n));
    }
}
 
 
// This code is contributed
// by Nikita Tiwari.


Python3
# Python 3 program to evaluate
# area of a polygon using
# shoelace formula
 
# (X[i], Y[i]) are coordinates of i'th point.
def polygonArea(X,Y, n) :
 
    # Initialize area
    area = 0.0
   
    # Calculate value of shoelace formula
    j = n - 1
    for i in range( 0, n) :
        area = area + (X[j] + X[i]) * (Y[j] - Y[i])
        j = i  # j is previous vertex to i
     
     
    # Return absolute value
    return abs(area // 2.0)
 
   
# Driver program to test above function
X = [0, 2, 4]
Y = [1, 3, 7]
 
n = len(X)
print(polygonArea(X, Y, n))
 
 
# This code is contributed
# by Nikita Tiwari.


C#
// C# program to evaluate area of
// a polygon usingshoelace formula
using System;
 
class GFG {
 
    // (X[i], Y[i]) are coordinates
    // of i'th point.
    static double polygonArea(double []X,
                       double []Y, int n)
    {
        // Initialize area
        double area = 0.0;
     
        // Calculate value of shoelace
        // formula
        int j = n - 1;
        for (int i = 0; i < n; i++)
        {
            area += (X[j] + X[i]) *
                        (Y[j] - Y[i]);
             
            // j is previous vertex to i
            j = i;
        }
     
        // Return absolute value
        return Math.Abs(area / 2.0);
    }
     
    // Driver program
    public static void Main ()
    {
        double []X = {0, 2, 4};
        double []Y = {1, 3, 7};
 
        int n = X.Length;
        Console.WriteLine(
                 polygonArea(X, Y, n));
    }
}
 
// This code is contributed by anuj_67.


PHP


Javascript


输出 :

Area is 6

使用坐标查找区域:

如果我们给定了三个角的坐标,我们可以应用下面的鞋带公式来计算面积。

区域=\frac{1}{2} | \sum_{i=1}^{n-1} x_i y_{(i+1)}+x_ny1 - \sum_{i=1}^{n-1}x_{(i+1)}y_i-x_1y_n = | 1/2 [ (x 1 y 2 + x 2 y 3 + … + x n-1 y n + x n y 1 ) – (x 2 y 1 + x 3 y 2 + … + x n y n-1 + x 1 y n ) ] |

C++

// C++ program to evaluate area of a polygon using
// shoelace formula
#include 
using namespace std;
  
// (X[i], Y[i]) are coordinates of i'th point.
double polygonArea(double X[], double Y[], int n)
{
    // Initialize area
    double area = 0.0;
  
    // Calculate value of shoelace formula
    int j = n - 1;
    for (int i = 0; i < n; i++)
    {
        area += (X[j] + X[i]) * (Y[j] - Y[i]);
        j = i;  // j is previous vertex to i
    }
  
    // Return absolute value
    return abs(area / 2.0);
}
  
// Driver program to test above function
int main()
{
    double X[] = {0, 2, 4};
    double Y[] = {1, 3, 7};
  
    int n = sizeof(X)/sizeof(X[0]);
  
    cout << polygonArea(X, Y, n);
}

Java

// Java program to evaluate area of
// a polygon usingshoelace formula
import java.io.*;
import java.math.*;
 
class GFG {
 
    // (X[i], Y[i]) are coordinates of i'th point.
    static double polygonArea(double X[], double Y[], int n)
    {
        // Initialize area
        double area = 0.0;
     
        // Calculate value of shoelace formula
        int j = n - 1;
        for (int i = 0; i < n; i++)
        {
            area += (X[j] + X[i]) * (Y[j] - Y[i]);
             
            // j is previous vertex to i
            j = i;
        }
     
        // Return absolute value
        return Math.abs(area / 2.0);
    }
     
    // Driver program
    public static void main (String[] args)
    {
        double X[] = {0, 2, 4};
        double Y[] = {1, 3, 7};
 
        int n = X.length;
        System.out.println(polygonArea(X, Y, n));
    }
}
 
 
// This code is contributed
// by Nikita Tiwari.

蟒蛇3

# Python 3 program to evaluate
# area of a polygon using
# shoelace formula
 
# (X[i], Y[i]) are coordinates of i'th point.
def polygonArea(X,Y, n) :
 
    # Initialize area
    area = 0.0
   
    # Calculate value of shoelace formula
    j = n - 1
    for i in range( 0, n) :
        area = area + (X[j] + X[i]) * (Y[j] - Y[i])
        j = i  # j is previous vertex to i
     
     
    # Return absolute value
    return abs(area // 2.0)
 
   
# Driver program to test above function
X = [0, 2, 4]
Y = [1, 3, 7]
 
n = len(X)
print(polygonArea(X, Y, n))
 
 
# This code is contributed
# by Nikita Tiwari.

C#

// C# program to evaluate area of
// a polygon usingshoelace formula
using System;
 
class GFG {
 
    // (X[i], Y[i]) are coordinates
    // of i'th point.
    static double polygonArea(double []X,
                       double []Y, int n)
    {
        // Initialize area
        double area = 0.0;
     
        // Calculate value of shoelace
        // formula
        int j = n - 1;
        for (int i = 0; i < n; i++)
        {
            area += (X[j] + X[i]) *
                        (Y[j] - Y[i]);
             
            // j is previous vertex to i
            j = i;
        }
     
        // Return absolute value
        return Math.Abs(area / 2.0);
    }
     
    // Driver program
    public static void Main ()
    {
        double []X = {0, 2, 4};
        double []Y = {1, 3, 7};
 
        int n = X.Length;
        Console.WriteLine(
                 polygonArea(X, Y, n));
    }
}
 
// This code is contributed by anuj_67.

PHP


Javascript


输出:

2
 

https://www.youtube.com/watch?v=-fuEL8MEtOc