6. Wzór Herona

Pole trójkąta można również policzyć ze wzór Herona. Wzór ten pozwala obliczyć pole dowolnego trójkąta, gdy znamy długości wszystkich trzech boków \(a\), \(b\) i \(c\).

We wzorze Herona najpierw obliczmy połowę obwodu trójkąta:

\(p = \frac{a+b+c}{2}\)

\( P=\sqrt{p\cdot(p-a)\cdot (p-b) \cdot (p-b) \cdot (p-c)} \)

 

Python C++
# Program: Pole trójkąta za pomocą wzoru Herona
# Autor: Jarosław Drzeżdżon
# Data: 2025-09-16

from math import sqrt

a = float(input("Podaj dlugosc boku a: "))
b = float(input("Podaj dlugosc boku b: "))
c = float(input("Podaj dlugosc boku c: "))

# Sprawdzenie warunku istnienia trójkąta
if a + b > c and a + c > b and b + c > a:
    s = (a + b + c) / 2
    area = sqrt(s * (s - a) * (s - b) * (s - c))
    print(f"Pole trojkata wynosi {area:.2f}")
else:
    print("Z tych bokow nie da sie zbudowac trojkata.")

//Program : Wzór Herona
//Autor : Jarosław Drzeżdżon
//Data : 2025 - 09 - 16

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    double a, b, c;

    // Wczytanie boków
    cout << "Podaj dlugosc boku a: ";
    cin >> a;
    cout << "Podaj dlugosc boku b: ";
    cin >> b;
    cout << "Podaj dlugosc boku c: ";
    cin >> c;

    // Sprawdzenie warunku istnienia trójkąta
    if (a + b > c && a + c > b && b + c > a)
    {
        double s = (a + b + c) / 2;
        double area = sqrt(s * (s - a) * (s - b) * (s - c));
        cout.precision(2);
        cout << fixed << "Pole trojkata wynosi " << area << endl;
    }
    else
    {
        cout << "Z tych bokow nie da sie zbudowac trojkata." << endl;
    }

    return 0;
}

Efekt wykonania kodu programu:

Pole: 9.789