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

In C++!!! 19. Se dau 4 puncte prin coordonatele lor în plan. Definind o funcţie, ce determină distanţa dintre 2 puncte, să se verifice dacă cele 4 puncte considerate reprezintă sau nu vârfurile unui paralelogram şi, în caz afirmativ, să se calculeze suma diagonalelor paralelogramului respectiv. In C++!!!​

Răspunsuri la întrebare

Răspuns de KeKeMachu
2

#include <bits/stdc++.h>

using namespace std;

struct Point{

   double x , y;

}p1 , p2 , p3 , p4 , mij1 , mij2;

int distanta(Point a , Point b)

{

   return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));

}

int main()

{

   cin >> p1.x >> p1.y >> p2.x >> p2.y >> p3.x >> p3.y >> p4.x >> p4.y;

   mij1.x = (p1.x + p3.x) / 2;

   mij1.y = (p1.y + p3.y) / 2;

   mij2.x = (p2.x + p4.x) / 2;

   mij2.y = (p2.y + p4.y) / 2;

   if(mij1.x == mij2.x && mij1.y == mij2.y) /// daca mijlocul coincide (la diagonale) => este paralelogram (proprietatea paralelogramului)

       cout << distanta(p1 , p3) << ' ' << distanta(p2 , p4);

   return 0;

}

Din lipsa de date atat am putut sa scriu , daca nu intelegi ceva sa imi zici


ictrl: bits/stdc++.h este biblioteca noua in care includ numai struct-ul si int distanta?
KeKeMachu: Este o librarie care include aproape toate librariile, max, cstring , string, map , cmath
KeKeMachu: Distanta e o functie facuta de mine, iar struct-ul este o metoda mai usoara de a tine datele, functioneaza ca un int doar ca umpic mai smecher, Dupa cum vezi acolo, am citit "p1.x , p1.y", imagineaza-ti ca sunt 2 lucruri in aceeasi data
KeKeMachu: Si am uitat sa zic ca la functia distanta sa pui double in loc de int
ictrl: Ok, mersi
Răspuns de boiustef
3

Răspuns:

Explicație:

#include <iostream>

#include <cmath>

using namespace std;

struct punct{

float x,y;

}A,B,C,D;

float dist(punct M, punct N)

{

   return (M.x-N.x)*(M.x-N.x)+(M.y-N.y)*(M.y-N.y);

}

int main()

{

   cout << "Dati coordonatele punctului A: ";

   cin >> A.x >> A.y;

   cout << "Dati coordonatele punctului B: ";

   cin >> B.x >> B.y;

   cout << "Dati coordonatele punctului C: ";

   cin >> C.x >> C.y;

   cout << "Dati coordonatele punctului D: ";

   cin >> D.x >> D.y;

   if (dist(A,B)==dist(C,D) && dist(A,D)==dist(B,C))

   {

       cout << "ABCD este paralelogram \n";

       cout << "Diagonala AC= " << sqrt(dist(A,C)) << "\n";

       cout << "Diagonala BD= " << sqrt(dist(B,D)) << "\n";

   }

   else cout << "ABCD nu este paralologram";

}

Alte întrebări interesante