Informatică, întrebare adresată de fdhbfgnffgzgng, 8 ani în urmă

Ajutooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooor varog frumos un program in c++


Să se scrie un algoritm care citește 3 numerele si determina daca cele trei numere pot reprezenta laturile unui triunghi. În caz afirmativ sa se determine tipul triunghiului, perimetrul și aria acestuia.


fdhbfgnffgzgng: in c++

Răspunsuri la întrebare

Răspuns de Lightman
3

Salut!

Pentru ca 3 laturi sa formeze un triunghi trebuie ca suma oricaror 2 laturi sa fie mai mare decat a 3-a. Plus de asta laturile (cele 3 numere) trebuie sa fie mai mari ca 0.

#include <iostream>

using namespace std;

int main() {

int l1, l2, l3;

 

cout << "Latura 1: "; cin >> l1;

cout << "Latura 2: "; cin >> l2;

cout << "Latura 3: "; cin >> l3;

int P = l1 + l2 + l3;

int p = P / 2;

int ArieTriunghiHeron = sqrt(p * (p - l1) * (p - l2) * (p - l3));

if ((l1 + l2 > l3 && l1 + l3 > l2 && l2 + l3 > l1) && (l1 > 0 && l2 > 0 && l3 > 0)) {

 cout << "Este triunghi!" << endl;

 if (l1 == l2 && l1 == l3 && l2 == l3) {

  cout << "Este triunghi echilateral." << endl;

  cout << "Perimetrul este: " << 3 * l1 << endl;

  cout << "Aria este: " << (pow(l1, 2) * sqrt(3)) / 4 << endl;

 }

 else if (l1 == l2 || l2 == l3 || l1 == l3) {

  cout << "Este triunghi isoscel" << endl;

  cout << "Perimetrul este: " << P << endl;

  cout << "Aria este: " << ArieTriunghiHeron << endl;

 }

 else if ((pow(l1, 2) == pow(l2, 2) + pow(l3, 2)) || (pow(l2, 2) == pow(l1, 2) + pow(l3, 2)) || (pow(l3, 2) == pow(l1, 2) + pow(l2, 2))) {

  cout << "Este triunghi dreptunghic" << endl;

  cout << "Perimetrul este: " << P << endl;

  if (pow(l1, 2) == pow(l2, 2) + pow(l3, 2)) {

   cout << "Aria este: " << (l2 * l3) / 2 << endl;

  }

  else if (pow(l2, 2) == pow(l1, 2) + pow(l3, 2)) {

   cout << "Aria este: " << (l1 * l3) / 2 << endl;

  }

  else if (pow(l3, 2) == pow(l1, 2) + pow(l2, 2)) {

   cout << "Aria este: " << (l1 * l2) / 2 << endl;

  }

 }

 else {

  cout << "Este triunghi oarecare" << endl;

  cout << "Perimetrul este: " << P << endl;

  cout << "Aria este: " << ArieTriunghiHeron << endl;

 }

}

else {  

 cout << "Nu este triunghi.";

}

return 0;

}

Sa explic putin si codul :))

Am creat 3 variabile reprezentand laturile noastre. Se citesc de la tastatura.

Am creat inca 2 variabile reprezentand perimetrul si semiperimetrul pentru a fi mai usor codul. Apoi am creat variabila ArieTriunghiHeron care reprezinta formula pentru aflarea ariei unui triunghi oarecare. Am folosit formula si la triunghiul isoscel pentru ca era prea complicat sa aflam inaltimea.

Cele 3 if-uri mari reprezinta conditiile.

  1. Conditia pentru ca un triunghi sa fie echilateral este ca fiecare latura sa fie egala cu fiecare latura.
  2. Conditia ca un triunghi sa fie isoscel este ca 2 laturi sa fie egale. asa ca daca a sau b sunt egale sau b sau c sunt egale sau a sau c sunt egale e isoscel.
  3. Conditia ca un triunghi sa fie dreptunghic este ca una din laturi la patrat sa fie egala cu suma patratelor celorlalte 2 laturi. Generalizam asa ca avem 3 conditii la fel ca la isoscel.
  4. Triunghiul este oarecare daca nu indeplineste niciuna din conditiile de mai sus.

Am folosit si 2 functii (pow si sqrt). In caz ca nu stii ce sunt pow reprezinta puterea ca sa nu mai scrii a*a. Scrii direct pow(a,2). Functia e de forma pow(numar, putere). Sqrt reprezinta radicalul. Asa ca sqrt(2) va fi radical din 2.

Spune te rog daca nu intelegi ceva.

Cheers :D

Alte întrebări interesante