Aria unui triunghi folosind coordonatele acestora în C++

Dându-se trei puncte în plan, să se determine aria triunghiului pe care îl formează.

Exemplu. Pentru punctele (1, 1), (4, 3) și (-2, 3), triunghiul are aria 6. Putem observa triunghiul în imagine:

https://i.ibb.co/cTK3fkv/Untitled.png

Metoda de rezolvare

Am discutat într-un alt articol cum se calculează distanța dintre două puncte. Astfel, știind coordonatele punctelor, putem foarte ușor să determinăm laturile triunghiului. De aici, putem calcula perimetrul, și implicit, semiperimetrul triunghiului nostru (perimetrul împărțit la 2).

Există în matematică o formulă celebră de determinare a ariei unui triunghi, având doar semiperimetrul acestuia. Formula lui Heron ne spune că aria unui triunghi este egală cu formula:

https://i.ibb.co/jgsm70L/image.png

Având această formulă, putem foarte ușor să rezolvăm problema.

Implementare C++

Vom folosi anumite funcții care să ne ajute să calculăm valorile cerute.

#include <iostream>
#include <cmath> //Pentru funcția sqrt

using namespace std;

double dist(int x1, int y1, int x2, int y2) { //Funcție ajutătoare pentru a calcula distanța dintre două puncte
    int deltaX = x1 - x2;
    int deltaY = y1 - y2;
    return sqrt(deltaX * deltaX + deltaY * deltaY);
}

int main()
{
    //Declarăm și citim coordonatele celor trei puncte
    int x1, y1, x2, y2, x3, y3;
    cout << "Primul punct: ";
    cin >> x1 >> y1;
    cout << "Al doilea punct: ";
    cin >> x2 >> y2;
    cout << "Al treilea punct: ";
    cin >> x3 >> y3;

    //Declarăm și calculăm laturile triunghiului, precum și perimetrul acestuia
    double a, b, c, p; //Folosim double, deoarece distanțele nu sunt neapărat numere întregi
    a = dist(x1, y1, x2, y2);
    b = dist(x1, y1, x3, y3);
    c = dist(x2, y2, x3, y3);
    p = (a + b + c) / 2;

    //Calculăm și afișăm aria, folosind formula lui Heron
    double arie = sqrt(p * (p - a) * (p - b) * (p - c));
    cout << "Aria triunghiului este " << arie;
    return 0;
}

Alte note și resurse

DS

Autorul acestei lecții

Dominic Satnoianu

Această lecție a fost redactată de către Dominic Satnoianu.

© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.

Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.

Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te