/*
Fnd the missing Point of a parallelogram. A(x1,y1), B(x2,y2), C(x3,y3) -> D(x4,y4) = ?
Realizati un program in limbajul de programare C care citeste de la tastatura trei puncte A, B si C,
date prin abscisele si ordonatele lor. Se cere sa determinati coordonatele punctului D, astfel incat
figura obtinuta prin unirea punctelor, sa fie paralelogram.
*/
#include <stdio.h>
struct TPoint {
ord;
};
typedef struct TPoint Point;
void read(Point *P) {
}
Point computeMissingPoint(Point A, Point B, Point C) {
Point D;
D.ord = A.ord + C.ord - B.ord;
return D;
}
void display(Point P) {
printf("Point D(%.2f, %.2f)\n", P.
abs, P.
ord); }
int main(int argc, char const *argv[])
{
Point A, B, C, D;
read(&A);
read(&B);
read(&C);
display(A);
display(B);
display(C);
D = computeMissingPoint(A, B, C);
display(D);
return 0;
}
LyoKICAgICAgICAgICAgICBGbmQgdGhlIG1pc3NpbmcgUG9pbnQgb2YgYSBwYXJhbGxlbG9ncmFtLiBBKHgxLHkxKSwgQih4Mix5MiksIEMoeDMseTMpIC0+IEQoeDQseTQpID0gPwogICAgICAgICAgICAgIAogICAgICAgICAgICAgIFJlYWxpemF0aSB1biBwcm9ncmFtIGluIGxpbWJhanVsIGRlIHByb2dyYW1hcmUgQyBjYXJlIGNpdGVzdGUgZGUgbGEgdGFzdGF0dXJhIHRyZWkgcHVuY3RlIEEsIEIgc2kgQywgCiAgICAgICAgICAgICAgZGF0ZSBwcmluIGFic2Npc2VsZSBzaSBvcmRvbmF0ZWxlIGxvci4gU2UgY2VyZSBzYSBkZXRlcm1pbmF0aSBjb29yZG9uYXRlbGUgcHVuY3R1bHVpIEQsIGFzdGZlbCBpbmNhdCAKICAgICAgICAgICAgICBmaWd1cmEgb2J0aW51dGEgcHJpbiB1bmlyZWEgcHVuY3RlbG9yLCBzYSBmaWUgcGFyYWxlbG9ncmFtLgoqLwogCiNpbmNsdWRlIDxzdGRpby5oPgoKc3RydWN0IFRQb2ludCB7CiAgICAgICBmbG9hdCBhYnMsCiAgICAgICAgICAgICBvcmQ7IAp9OwoKdHlwZWRlZiBzdHJ1Y3QgVFBvaW50IFBvaW50OwoKdm9pZCByZWFkKFBvaW50ICpQKSB7CgogICAgIHByaW50ZigiJXNcbiIsICJQb2ludCAtPiAiKTsKICAgICBzY2FuZigiJWYgJWYiLCAmUC0+YWJzLCAmUC0+b3JkKTsKfQoKUG9pbnQgY29tcHV0ZU1pc3NpbmdQb2ludChQb2ludCBBLCBQb2ludCBCLCBQb2ludCBDKSB7CgogICAgICBQb2ludCBEOwoKICAgICAgRC5hYnMgPSAgQS5hYnMgKyBDLmFicyAtIEIuYWJzOwogICAgICBELm9yZCA9ICBBLm9yZCArIEMub3JkIC0gQi5vcmQ7IAogICAgICAgIAogICAgICByZXR1cm4gRDsgIAp9Cgp2b2lkIGRpc3BsYXkoUG9pbnQgUCkgewoKICAgICBwcmludGYoIlBvaW50IEQoJS4yZiwgJS4yZilcbiIsIFAuYWJzLCBQLm9yZCk7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyIGNvbnN0ICphcmd2W10pCnsKCVBvaW50IEEsIEIsIEMsIEQ7CgoJcmVhZCgmQSk7CglyZWFkKCZCKTsKCXJlYWQoJkMpOwoJZGlzcGxheShBKTsKCWRpc3BsYXkoQik7CglkaXNwbGF5KEMpOwogICAgRCA9IGNvbXB1dGVNaXNzaW5nUG9pbnQoQSwgQiwgQyk7CglkaXNwbGF5KEQpOwoKCXJldHVybiAwOwp9