- Obtener enlace
- Correo electrónico
- Otras aplicaciones
Entrada destacada
- Obtener enlace
- Correo electrónico
- Otras aplicaciones
Descripción
Veamos como hacer un programa en C para obtener el área de un Triángulo en el caso de saber la longitud de sus 3 lados, o de no saber la longitud de su altura.
Para poder obtener el área de un triángulo cuyo caso sea el que se menciono, se puede usar la fórmula de Herón.
Fórmula de Herón.
La fórmula de herón se usa para hallar el área de un triángulo del cual se conocen sus todos sus lados, el área se calcula a partir del semiperímetro (s) del triángulo de la longitud de sus lados (a, b y c).
Siendo a, b y c los lados y s el semiperímetro
Las fórmulas anteriores en terminos de programación pueden ser escritas de la siguiente manera:
1 2 3 | Area = sqrt(s * (s - a) * (s - b) * (s - c)) s = (a + b + c) / 2 |
Haciendo un buen uso de los operadores aritméticos y tomando en cuenta la prioridad en que se ejecutan las operaciones el programa puede quedar tan sencillo como se muestra a continuación.
- Para poder usar la función sqrt (raíz cuadrada), es necesario incluir la librería math.h.
- También hacemos uso de printf y scanf para solicitar datos al usuario.
- Sabiendo que el resultado de una división o raíz cuadrada, no siempre da un número entero utilizaremos float para definir todas las variables.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <stdio.h> #include <math.h> int main(){ float a, b, c; //lados del triangulo printf("Programa que calcula el area de un triangulo.\n\n"); printf("Ingresa la longitud del lado 1: "); scanf("%f", &a); printf("Ingresa la longitud del lado 2: "); scanf("%f", &b); printf("Ingresa la longitud del lado 3: "); scanf("%f", &c); float s = (a + b + c) / 2;//formula de semiperimetro float Area = sqrt(s * (s - a) * (s - b) * (s - c));//formula de heron printf("El area del triangulo es: %.3f", Area); getch(); return 0; } |
Optimizando el programa.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <stdio.h> #include <math.h> /** * Función que calcula el valor del semiperimetro (s) * Parametros (Lados del triángulo) tipo float */ float CalculaSemiperimetro(float Lado1, float Lado2, float Lado3){ if(Lado1 != 0 & Lado2 != 0 & Lado3 != 0){ float S = (float)(Lado1 + Lado2 + Lado3) / 2; return S; } } /** * Función que calcula el área de un triángulo con la formula de herón * Parametros (Lados del triángulo) tipo float */ float CalculaArea(float Lado1, float Lado2, float Lado3){ if(Lado1 != 0 & Lado2 != 0 & Lado3 != 0){ float S = CalculaSemiperimetro(Lado1, Lado2, Lado3); float Area = 0; //Comprobamos que los lados si corresponden a un tiángulo if( S > Lado1 & S > Lado2 & S > Lado3){ Area = sqrt(S*(S-Lado1)*(S-Lado2)*(S-Lado3)); } return Area; } } int main(){ printf("Programa que calcula el Area de un triangulo utilizando la formula de Heron.\n\n"); int i = 0; float Lados[3]; for(i = 0; i < 3; i++){ printf("Ingresa la longitud del lado %i : ",i + 1); scanf("%f", &Lados[i]); } float Area = CalculaArea(Lados[0], Lados[1], Lados[2]); if(Area == 0){ printf("Los datos ingresados no corresponden a los lados de un triangulo."); }else{ printf("El Area del Triangulo cuyos lados fueron ingresados es: %.3f", Area); } getch(); return 0; } |
- Obtener enlace
- Correo electrónico
- Otras aplicaciones
Comentarios
como seria el diagram de flujo del primer programa?
ResponderEliminarSe debe comprobar que los lados sean >0 , porque no existe longitudes negativas
Eliminarporque esto if(Lado1 != 0 & Lado2 != 0 & Lado3 != 0){
ResponderEliminarEs para comprobar que el valor de los lados no sea igual a cero, de lo contrario no sería una figura geométrica correcta, en este caso un triángulo correcto.
Eliminarexacto !!
ResponderEliminarexacto!!!!
ResponderEliminarhay que mejorarlo pero bueno
ResponderEliminar