SoloCodigo
Programación General => C/C++ => Visual C++ => Mensaje iniciado por: Alehtokita en Martes 13 de Marzo de 2012, 18:12
-
Alguíen me podría ayudar con un programa en c++ que calcule al área de un triangulo conociendo los tres lados con funciones!
:ayuda:
-
Teoria: http://es.wikipedia.org/wiki/%C3%81rea#.C3.81rea_de_un_tri.C3.A1ngulo
Si se conoce la longitud de sus lados, se puede aplicar la fórmula de Herón.
A = \sqrt{s(s-a)(s-b)(s-c)}
donde a, b, c son los valores de las longitudes de sus lados, s = ½ (a + b + c) es el semiperimetro del triángulo.
Hace bastante que no programo en C++ así que revisa la sintaxis, pero será algo similar a esto:
function double Area(double a, double b, double c){
double s = 0.5*(a+b+c);
dobule area = sqrt(s(s-a)(s-b)(s-c));
return area;
}
-
Gracias por el dato! me sirvió mucho pero necesito que cumpla estas tres condiciones:
a+b>c
b+c>a
a+c>b
me imagino que es con un if pero no sé como sería la forma de ubicarlo teniendo en cuenta las funciones. Este es el programa que tengo hasta ahora:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void imprimir_resultados (int, int, int, float);
double calcular_area (int, int, int);
int main()
{
int a;
int b;
int c;
float Area;
printf("Ingrese primer lado: \n\n");
scanf("%d", &a);
printf("Ingrese el segundo lado: \n\n");
scanf("%d", &b);
printf("Ingrese el tercer lado: \n\n");
scanf("%d", &c);
Area=calcular_area(a,b,c);
imprimir_resultados(a,b,c,Area);
return EXIT_SUCCESS;
}
double calcular_area(int a, int b, int c)
{
int s= ((a+b+c)/2);
float Area=sqrt(s*((s-a)*(s-b)*(s-c)));
return Area;
}
void imprimir_resultados(int a, int b, int c, float Area)
{
printf("\n");
printf("El area es %f \n",Area);
return EXIT_SUCCESS;
}
-
Gracias por el dato! me sirvió mucho pero necesito que cumpla estas tres condiciones:
a+b>c
b+c>a
a+c>b
me imagino que es con un if pero no sé como sería la forma de ubicarlo teniendo en cuenta las funciones. Este es el programa que tengo hasta ahora:
Puedes declarar una variable booleana y ejecutar un bucle do/while.
bool ok = false;
do{
printf("Ingrese primer lado: \n\n");
scanf("%d", &a);
printf("Ingrese el segundo lado: \n\n");
scanf("%d", &b);
printf("Ingrese el tercer lado: \n\n");
scanf("%d", &c);
if( ((a+b)>c) && ((b+c)>a) && ((a+c)>b) ){
ok = true;
}else{
printf("Valores no válidos, Vuelva a introducirlos con las condiciones adecuadas);
}
}while(ok != true);
[/quote]