Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.
Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.
Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.
Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.
Meniu shortcuturi | ? |
Căutare probleme sau utilizatori | / |
Navigare printre rezultatele căutării | ↑, ↓ |
Meniu de contact și feedback | CTRL + Shift + F |
Ieșire din meniuri | Esc |
Setări editor | CTRL + Shift + S |
Schimbare stil editor | CTRL + Shift + E |
Șabloane de cod | CTRL + Shift + 1/2/3 |
Golire editor | CTRL + Shift + 4 |
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:
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:
Având această formulă, putem foarte ușor să rezolvăm problema.
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;
}