Cálculo de lados de un triángulo rectángulo - informatica-ieef-etsidi/formulas-aritmeticas-e105-ee105 GitHub Wiki
//Desarrollador: Javier Redondo Hernando
El programa calcula la hipotenusa o el cateto de un triangulo. Da la opción de hacerlo a partir de dos lados o a partir de un lado y el ángulo.
#include<stdio.h>
#include<math.h>
i = 1;
float pi = 3.14159;
void main() {
int op, op2, op3; //variables para elegir las opciones
float hipotenusa, cateto1, cateto2, angulo, temp; //variables para las operaciones matematicas
char continuar; //variable para facilitar el borrado de la pantalla tras optener un resultado
do {
printf("Elija la ecuacion que quiere resolver:\n");
printf("Para resolver la ecuacion de pitagoras--> 1\n");
printf("Para resolver ecuaciones de trigonometria--> 2\n");
scanf_s("%d", &op);
system("cls");//limpia la pantalla
switch (op) { //elegir entre las ecuaciones a solucionar
case 1:
printf("Elija la ecuacion que quiere resolver:\n");
printf("Para hallar la hipotenusa--> 1\n");
printf("Para hallar un cateto--> 2\n");
scanf_s("%d", &op2);
system("cls");
switch (op2) { //elegir entre que parte de la ecuacion se quiere hallar
case 1:
printf("Introduzca un cateto: ");
scanf_s("%f", &cateto1);
printf("Introduzca segundo cateto: ");
scanf_s("%f", &cateto2);
hipotenusa = sqrt(cateto1*cateto1 + cateto2 * cateto2);//la formula por la que se rige este caso
system("cls");
printf("La hipotenusa vale: %f\n", hipotenusa);
printf("Pulse una tecla para continuar: ");
getchar();//estas tres lineas son para poder ver el resultado y despues qu limpie la pantalla
scanf_s("%c",&continuar);
system("cls");
break;
case 2:
printf("Introduzca un cateto: ");
scanf_s("%f", &cateto1);
printf("Introduzca hipotenusa: ");
scanf_s("%f", &hipotenusa);
cateto2 = sqrt(hipotenusa * hipotenusa - cateto1*cateto1);//la formula por la que se rige este caso
system("cls");
printf("El cateto vale: %f\n\n\n", cateto2);
printf("Pulse una tecla para continuar: ");
getchar();
scanf_s("%c", &continuar);
system("cls");
break;
default://en caso de que no se elija un numero que tenga asignado uunn caso
printf("Mal\n");
}
break;
case 2:
printf("Elija la ecuacion que quiere resolver:\n");
printf("Para hallar la hipotenusa--> 1\n");
printf("Para hallar un cateto contiguo--> 2\n");
printf("Para hallar un cateto adyacente--> 3\n");
scanf_s("%d", &op3);
system("cls");
switch (op3) {
case 1:
printf("Introduzca cateto: ");
scanf_s("%f", &cateto1);
printf("Introduzca el angulo (en grados) que forma con la hipotenusa: ");
scanf_s("%f", &angulo);
temp = angulo * 2 * pi / 360;
angulo = temp;
hipotenusa = cateto1 / cos(angulo);//la formula por la que se rige este caso
system("cls");
printf("El valor de la hipotenusa es: %f\n\n\n", hipotenusa);
printf("Pulse una tecla para continuar: ");
getchar();
scanf_s("%c", &continuar);
system("cls");
break;
case 2:
printf("Introduzca hipotenusa: ");
scanf_s("%f", &hipotenusa);
printf("Introduzca el angulo (en grados) que forma con el cateto: ");
scanf_s("%f", &angulo);
temp = angulo * 2 * pi / 360; //paso de grados a radianes ya que los operadores trigonometricos...
angulo = temp; //...funcionan solo con un argumento en radianes
cateto2 = cos(angulo)*hipotenusa;//la formula por la que se rige este caso
system("cls");
printf("El valor de el cateto es: %f\n\n\n", cateto2);
printf("Pulse una tecla para continuar: ");
getchar();
scanf_s("%c", &continuar);
system("cls");
break;
case 3:
printf("Introduzca hipotenusa: ");
scanf_s("%f", &hipotenusa);
printf("Introduzca el angulo (en grados) que forma con el cateto: ");
scanf_s("%f", &angulo);
temp = angulo * 2 * pi / 360;
angulo = temp;
cateto2 = sin(angulo)*hipotenusa;//la formula por la que se rige este caso
system("cls");
printf("El valor de el cateto es: %f\n\n\n", cateto2);
printf("Pulse una tecla para continuar: ");
getchar();
scanf_s("%c", &continuar);
system("cls");
break;
default:
printf("Mal\n");
printf("Pulse una tecla para continuar: ");
getchar();
scanf_s("%c", &continuar);
system("cls");
}
break;
default:
printf("Mal\n");
printf("Pulse una tecla para continuar: ");
getchar();
scanf_s("%c", &continuar);
system("cls");
break;
}
} while (i = 1);//bucle infinito
system("pause");
}