Comprobador de rectángulos avanzado
/*
Muy buenas a todos. Bienvenidos a otro programa, aunque, si seguis mi blog, este ya os sonara.
Como os dije la ultima vez, tenia pendiente subir un programa identico al anterior, pero sin la
desventaja de que el rectangulo tuviera que ser paralelo obligatoriamente para que el programa
pudiese responder correctamente. Y para quien no sepa de quien hablo: os presento un programa
en donde tu introduces las coordenadas de los vertices de un supuesto rectangulo, y el programa
te dira si efectivamente es un rectangulo o no. A diferencia de un programa identico que subi anteriormente, en este no es necesario que el rectangulo sea paralelo a los ejes (cosa que en el
anterior programa si lo era), pudiendo estar el rectangulo torcido, inclinado, o como prefirais decirlo.
Espero mucho que os guste.
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
printf(" Bienvenido. Si quiere determinar si su figura\n es un rectangulo, este es su programa.\n\n");
printf(" Se recuerda que este programa determinara si\n su figura es un rectangulo a partir de\n los puntos de coordenadas que la delimitan,\n estando situado este rectangulo en\n cualquier posicion posible.\n\n");
printf(" Se insiste en la correcta colocacion de los\n puntos en el papel antes de ejecutarlos\n en el programa.\n\n");
printf(" En caso de no ser asi, el programa finalizara\n con error.\n\n");
printf(" Muy bien.\n");
printf(" Introduzca las coordenadas del punto A:\n");
printf(" En eje x: ");
float Ax2;
scanf(" %f", &Ax2);
printf("\n En eje y: ");
float Ay2;
scanf(" %f", &Ay2);
printf("\n\n Introduzca las coordenadas del punto B:\n");
printf(" En eje x: ");
float Bx2;
scanf(" %f", &Bx2);
printf("\n En eje y: ");
float By2;
scanf(" %f", &By2);
printf("\n\n Introduzca las coordenadas del punto C:\n");
printf(" En eje x: ");
float Cx2;
scanf(" %f", &Cx2);
printf("\n En eje y: ");
float Cy2;
scanf(" %f", &Cy2);
printf("\n\n Introduzca las coordenadas del punto D:\n");
printf(" En eje x: ");
float Dx2;
scanf(" %f", &Dx2);
printf("\n En eje y: ");
float Dy2;
scanf(" %f", &Dy2);
printf("\n Muy bien; ya ha escrito todo lo necesario. Ahora\n calculamos el resultado...\n\n");
float dist_AB = (sqrt((((Bx2 - Ax2))*((Bx2 - Ax2))) + (((By2 - Ay2))*((By2 - Ay2)))));
float dist_CD = (sqrt((((Dx2 - Cx2))*((Dx2 - Cx2))) + (((Dy2 - Cy2))*((Dy2 - Cy2)))));
float dist_AD = (sqrt((((Dx2 - Ax2))*((Dx2 - Ax2))) + (((Dy2 - Ay2))*((Dy2 - Ay2)))));
float dist_BC = (sqrt((((Cx2 - Bx2))*((Cx2 - Bx2))) + (((Cy2 - By2))*((Cy2 - By2)))));
float dist_AC = (sqrt((((Cx2 - Ax2))*((Cx2 - Ax2))) + (((Cy2 - Ay2))*((Cy2 - Ay2)))));
float dist_BD = (sqrt((((Dx2 - Bx2))*((Dx2 - Bx2))) + (((Dy2 - By2))*((Dy2 - By2)))));
float TP1 = (dist_AB*dist_AB)+(dist_BC*dist_BC);
float TP2 = (dist_BC*dist_BC)+(dist_CD*dist_CD);
float HP1 = (dist_AC*dist_AC);
float HP2 = (dist_BD*dist_BD);
float TP3 = (dist_AC*dist_AC)+(dist_BC*dist_BC);
float TP4 = (dist_AC*dist_AC)+(dist_CD*dist_CD);
float HP3 = (dist_AD*dist_AD);
float HP4 = (dist_BC*dist_BC);
if (HP3 == TP4 || HP4 == TP3){
printf(" Error en los datos introducidos o mala interpretacion en el papel.");
return 0;
}
else if (HP1 == TP1 && HP2 == TP2){
printf(" Es un rectangulo. Enhorabuena");
}
else{
printf(" No es un rectangulo. Lo siento.");
}
return 0;
}