使用给定边查找区域:
例子 :
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
使用坐标查找区域:
如果我们给定了三个角的坐标,我们可以应用下面的鞋带公式来计算面积。
区域 = | 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