编写一个函数 area_trangle(a, b, c),其中 a, b, c 是三角形的三条 #边,要求输入三条边求三角形的面积。
时间: 2024-05-08 22:18:12 浏览: 79
边长,函数返回三角形的面积。
思路:根据海龙公式,可以计算出三角形的半周长,然后套用面积公式求解。
代码如下:
```
def area_triangle(a, b, c):
s = (a + b + c) / 2 # 计算半周长
area = (s * (s - a) * (s - b) * (s - c)) ** 0.5 # 计算面积,使用 ** 表示的是次方运算
return area
```
注意,此函数只能计算三角形的面积,如果输入的三条边不能构成三角形,则会出现错误。
相关问题
编写一个java应用程序,该程序中有3个类:Trangle,Lader和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下: Trangle类具有类型为double的三个边,Trangle类具有返回周长、面积以及修改三个边的方法。另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个数能否构成一个三角形。 Lader类具有类型为double的上底、下底、高属性,具有返回面积的方法。 Circle类具有类型为double的半径属性,具有返回周长、面积的功能。
以下是符合要求的Java程序:
Trangle类:
```java
public class Trangle {
private double side1;
private double side2;
private double side3;
private boolean isValid;
public Trangle(double side1, double side2, double side3) {
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
// 判断三个数能否构成三角形
if (side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1) {
this.isValid = true;
} else {
this.isValid = false;
}
}
public double getSide1() {
return side1;
}
public double getSide2() {
return side2;
}
public double getSide3() {
return side3;
}
public boolean isValid() {
return isValid;
}
public void setSide1(double side1) {
this.side1 = side1;
}
public void setSide2(double side2) {
this.side2 = side2;
}
public void setSide3(double side3) {
this.side3 = side3;
}
public double getPerimeter() {
return side1 + side2 + side3;
}
public double getArea() {
double p = getPerimeter() / 2;
return Math.sqrt(p * (p - side1) * (p - side2) * (p - side3));
}
}
```
Lader类:
```java
public class Lader {
private double upperBottom;
private double lowerBottom;
private double height;
public Lader(double upperBottom, double lowerBottom, double height) {
this.upperBottom = upperBottom;
this.lowerBottom = lowerBottom;
this.height = height;
}
public double getUpperBottom() {
return upperBottom;
}
public double getLowerBottom() {
return lowerBottom;
}
public double getHeight() {
return height;
}
public double getArea() {
return (upperBottom + lowerBottom) * height / 2;
}
}
```
Circle类:
```java
public class Circle {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getPerimeter() {
return 2 * Math.PI * radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
}
```
可以在主函数中进行测试:
```java
public static void main(String[] args) {
// 测试Trangle类
Trangle trangle = new Trangle(3, 4, 5);
System.out.println("Trangle perimeter: " + trangle.getPerimeter());
System.out.println("Trangle area: " + trangle.getArea());
// 修改边长
trangle.setSide1(5);
System.out.println("Trangle perimeter: " + trangle.getPerimeter());
System.out.println("Trangle area: " + trangle.getArea());
// 测试Lader类
Lader lader = new Lader(3, 5, 4);
System.out.println("Lader area: " + lader.getArea());
// 测试Circle类
Circle circle = new Circle(2);
System.out.println("Circle perimeter: " + circle.getPerimeter());
System.out.println("Circle area: " + circle.getArea());
}
```
用java中类的机制,编写一个Java应用程序,该程序中有3个类:Trangle、Lader和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下:Trangle类具有类型为doubled的三个边,Trangle类具有返回周长、面积以及修改三个边的功能。此外, Trangle类还具有一个boolean型的方法,该方法用来判断三个数能否构成一个三角形。Lader类具有类型为doublede上底、下底、高的三个属性,并具有返回面积的功能。Circle类具有类型为double的半径属性,具有返回周长和面积的功能。
好的,以下是我为您准备的Java程序:
```
public class Triangle {
private double side1;
private double side2;
private double side3;
public Triangle(double s1, double s2, double s3) {
side1 = s1;
side2 = s2;
side3 = s3;
}
public double getPerimeter() {
return side1 + side2 + side3;
}
public double getArea() {
double p = (side1 + side2 + side3) / 2;
return Math.sqrt(p * (p - side1) * (p - side2) * (p - side3));
}
public void setSides(double s1, double s2, double s3) {
side1 = s1;
side2 = s2;
side3 = s3;
}
public boolean isTriangle() {
return (side1 + side2 > side3) && (side1 + side3 > side2) && (side2 + side3 > side1);
}
}
public class Lader {
private double upper;
private double lower;
private double height;
public Lader(double u, double l, double h) {
upper = u;
lower = l;
height = h;
}
public double getArea() {
return (upper + lower) * height / 2;
}
}
public class Circle {
private double radius;
public Circle(double r) {
radius = r;
}
public double getPerimeter() {
return 2 * Math.PI * radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
}
```
这个程序中,我们定义了三个类:Triangle、Lader和Circle,分别用来表示三角形、梯形和圆形。在Triangle类中,我们定义了三个属性:side1、side2和side3,分别表示三角形的三条边。我们还定义了getPerimeter()和getArea()方法,用来计算三角形的周长和面积。我们还定义了setSides()方法,用来修改三角形的三条边。最后,我们定义了isTriangle()方法,用来判断三个数能否构成一个三角形。
在Lader类中,我们定义了三个属性:upper、lower和height,分别表示梯形的上底、下底和高。我们还定义了getArea()方法,用来计算梯形的面积。
在Circle类中,我们定义了一个属性:radius,表示圆形的半径。我们还定义了getPerimeter()和getArea()方法,用来计算圆形的周长和面积。
希望这个程序能够满足您的需求!
阅读全文