Informatică, întrebare adresată de DerekHale, 9 ani în urmă

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.
REZOLVARE IN CODEBLOCKS (C++)

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
0

#include <iostream>

#include <math.h>

using namespace std;

double len(double x, double y){

return sqrt(x*x + y*y);

}

struct punct{

double x;

double y;

};

punct vec[4],O;

struct diag{

punct *a = (PUNCT*) 0ULL, *b;

};

diag diag_a, diag_b;

int main(){

for(int i = 0; i < 4; i++)

cin >> vec[i].x >> vec[i].y;

int o[2],p;

for(int i = 0; i < 4; i++){

for(int j = i+1; j < 4; j++){

p = 0;

for(int k = 0; k < 4; k++){

if(k != i && k != j)o[p++] = k;

}

if(vec[i].x + vec[j].x == vec[o[0]].x + vec[o[1]].x && vec[i].y + vec[j].y == vec[o[0]].y + vec[o[1]].y){

diag_a.a = &vec[i];

diag_a.b = &vec[j];

diag_b.a = &vec[o[0]];

diag_b.b = &vec[o[1]];

break;

}

}

}

if(diag_a.a){

cout << "Suma diagonalelor este: " << (len(diag_a.a->x- diag_a.b->x, diag_a.a->y - diag_a.b->y)+len(diag_b.a->x- diag_b.b->x, diag_b.a->y - diag_b.b->y));

}else{

cout << "NU REPREZINTA UN PARALELOGRAM";

}

}


DerekHale: Ia-ta eroare. Ajutama te rog (https://prnt.sc/nfetdi)
CinevaFaraNume: Cu litere mici: punct*
Alte întrebări interesante