fork(9) download
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. int main () {
  6. setlocale(LC_ALL,"Russian");
  7. int xa, xb, xc, xd, ya, yb, yc, yd;
  8. long double l, m;
  9. //диагонали AC и BD четырёхугольника ABCD обозначим, как l и m, они являются векторами
  10. //используем значения переменных с плавающей точкой
  11. cout << "Тип четырёхугольника: " << endl;
  12. cin >> xa >> xb >> xc >> xd >> ya >> yb >> yc >> yd;
  13. l= abs(sqrt((xc - xa) * (xc - xa) + (yc - ya) * (yc -ya)));
  14. m= abs(sqrt((xd - xb) * (xd - xb) + (yd - yb) * (yd -yb)));
  15. //вычисляем длины векторов
  16. if (((xc - xb) * (yd - ya) == (xd - xa) * (yc - yb)) || ((xb - xa) * (yc - yd) == (xc - xd) * (yb - ya))) {
  17. if (((xb - xa) * (yc - yd) == (xc - xd) * (yb - ya)) && ((xc - xb) * (yd - ya) == (xd - xa) * (yc - yb)))
  18. if (l==m)
  19. cout << "Прямоугольник" << endl;
  20. else {
  21. cout << "Параллелограмм" << endl;
  22. }
  23. else {
  24. cout << "Трапеция" << endl;
  25. }
  26. }
  27. else {
  28. cout << "Произвольный четырехугольник" << endl;
  29. }
  30. //последовательно используем основные свойства всех вышеуказанных типов четырёхугольника и аппарат векторной алгебры
  31. return 0;
  32. }
Success #stdin #stdout 0s 3460KB
stdin
0 0 1 1 0 1 1 -1
stdout
Тип четырёхугольника: 
Трапеция