Se citesc coordonatele a trei puncte din plan. Să se precizeze dacă ele pot fi vârfurile unui triunghi. În caz afirmativ, să se spună de ce tip este triunghiul (oarecare, echilateral, isoscel, dreptunghic, dreptunghic isoscel) şi să se calculeze aria şi perimetrul triunghiului. 13
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double x1, y1, x2, y2, x3, y3;
cout << „Introduceti coordonatele pentru cele trei puncte: ” << endl;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
// Calculam lungimile laturilor triunghiului
double a = sqrt(pow(x2 – x1, 2) + pow(y2 – y1, 2));
double b = sqrt(pow(x3 – x2, 2) + pow(y3 – y2, 2));
double c = sqrt(pow(x1 – x3, 2) + pow(y1 – y3, 2));
if (a + b > c && a + c > b && b + c > a) {
cout << „Aceste puncte pot fi varfurile unui triunghi.” << endl;
if (a == b && b == c) {
cout << „Triunghiul este echilateral.” << endl;
} else if (a == b || b == c || a == c) {
cout << „Triunghiul este isoscel.” << endl;
if (pow(a, 2) + pow(b, 2) == pow(c, 2) || pow(a, 2) + pow(c, 2) == pow(b, 2) || pow(b, 2) + pow(c, 2) == pow(a, 2)) {
cout << „Triunghiul este dreptunghic isoscel.” << endl;
}
} else if (pow(a, 2) + pow(b, 2) == pow(c, 2) || pow(a, 2) + pow(c, 2) == pow(b, 2) || pow(b, 2) + pow(c, 2) == pow(a, 2)) {
cout << „Triunghiul este dreptunghic.” << endl;
} else {
cout << „Triunghiul este oarecare.” << endl;
}
// Calculam aria triunghiului
double p = (a + b + c) / 2;
double area = sqrt(p * (p – a) * (p – b) * (p – c));
cout << „Aria triunghiului este: ” << area << endl;
// Calculam perimetrul triunghiului
double perimeter = a + b + c;
cout << „Perimetrul triunghiului este: ” << perimeter << endl;
} else {
cout << „Aceste puncte nu pot fi varfurile unui triunghi.” << endl;
}
return 0;
}
Pentru a verifica dacă trei puncte date pot fi vârfurile unui triunghi, putem folosi regula determinantului. Dacă determinantul matricei formate din coordonatele celor trei puncte este nenul, atunci acestea pot fi vârfurile unui triunghi.
Pentru a determina tipul triunghiului, putem folosi formulele pentru laturile și unghiurile triunghiului, astfel:
- Dacă toate laturile sunt egale, avem un triunghi echilateral.
- Dacă două laturi sunt egale, avem un triunghi isoscel. De asemenea, putem verifica dacă unghiul opus laturii egale este un unghi drept, caz în care avem un triunghi dreptunghic isoscel.
- Dacă nicio latură nu este egală cu alta, avem un triunghi oarecare. Putem verifica dacă unghiul format de cele două laturi mai mici este un unghi drept, caz în care avem un triunghi dreptunghic, sau dacă unghiurile sunt toate mai mici de 90 de grade, caz în care triunghiul este acutunghic, sau dacă unghiul este mai mare sau egal cu 90 de grade, caz în care triunghiul este obtuzunghic.
Pentru a calcula aria triunghiului, putem folosi formula lui Heron, care se bazează pe semiperimetrul triunghiului:
semiperimetru = (a + b + c) / 2 aria = sqrt(semiperimetru * (semiperimetru – a) * (semiperimetru – b) * (semiperimetru – c))
Pentru a calcula perimetrul triunghiului, putem aduna lungimile laturilor.