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
#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
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";
}