Inicio > Pascal > azaelrajadel > el triangulo..

el triangulo..

Experto:
Usuario:
Fecha: 08/09/2008
Valoración: (5,00 sobre 5) Categoría: Pascal
08/09/2008
patovica, usuario preguntando en Pascal
Usuario
Este es así...
Leer datos de lados de un triangulo A, B, C; haciendo consistencia de datos (Debe ser a<(B+C) si A es el lado mayor)
Informar segúun sea A*A con respecto a
B*B+C*C, si el triangulo es rectangulo, obstusangulo o acutangulo.
¿por Pitagoras era que se cumplia que para todo triangulo rectangulo el cuadrado de la hipotenuza era igual al cuadrado de los catetos?El tema es que no se que pasa para los demas casos...¿vos lo sabés? AH, recuerda que no puedo usar registros ni archivos ni esas cosas raras que todavía no me han enseñado, solo vectores, matrices, procedimientos y funciones.
08/09/2008
patovica, experto respondiendo en Pascal
Experto
si a,b,c:real son tus lados entonces, por el teorema de desigualdad triangular, es posible construir un triángulo si la suma de dos lados siempre es mayor que el tercero, lo que se resume a demostrar que el lado mayor es menor que la suma de los dos restantes.Pudieras determinar el mayor lado con la función:
function Mayor(a,b,c:real):real;
begin
if a>b then
if a>c then
mayor:=a
else
mayor:=c
else if b>c then
mayor:= b
else
mayor:= c
end;
//aquí puedes utilizar result en vez del nombre de la función todo depende de la versión
Como resultado tienes el lado mayor y ahora validas
function Validar(a,b,c:real):boolean;
begin
result:= 2*Mayor(a,b,c)< a+b+c
//no entiendes?? supón que el mayor lado es a entonces
2*a<a+b+c => a<b+c
que es o que sabes de la fórmula, lo hice así para no preocuparme por quién es el mayor.
end;
Ahora el paso de la clasificación también es sencillo. Si a*a= b*b+c*c es rectángulo, si es mayor obtusángulo y si no acutángulo.
procedure clasificación(a,b,c:real)
begin
if 2*Mayor(a,b,c)*Mayor(a,b,c)= a*a+b*b+c*c then
writeln('rectángulo');
if 2*Mayor(a,b,c)*Mayor(a,b,c)> a*a+b*b+c*c then
writeln('obtusángulo');
if 2*Mayor(a,b,c)*Mayor(a,b,c)< a*a+b*b+c*c then
writeln('acutángulo');
//lo de la fórmula te lo expliqué arriba
end;
Espero que estés satisfecho(a).
Nos vemos
08/09/2008
patovica, usuario preguntando en Pascal
Usuario
Gracias
Más opciones
Enlaces patrocinados