[::: Angulos de un triangulo, Ayuda en c++ :::]

emigidio

Bovino Milenario
#1
Que tal compañeros bakunos, en esta ocacion he solicitado su ayuda porque la verdad no se que onda con este programa. Lo que pasa es que estoy haciendo un programa en c++ para que me calcule los angulos de un triangulo donde el usuario ingresa la longitud de los lados del mismo, el problema es que me marca errores que hasta ahora no entiendo el codigo fuente es el siguiente:
Código:
#include <stdio.h>
#include <conio.h>
#include <math.h>

double a,b,c,A=0,B=0,C=0;

void main(void)
    {
        printf("                            LOS ANGULOS DE UN TRIANGULO\n");
        printf("                            ---------------------------\n\n");
        printf("Dame el valor de a: ");
        scanf("%d",&a);
        printf("Dame el valor de b: ");
        scanf("%d",&b);
        printf("Dame el valor de c: ");
        scanf("%d",&c);
        //INICIO DEL CALCULO DE LOS ANGULOS.
        //A=acos((pow(b,2)+pow(c,2)-pow(a,2))/(2(b*c)));
        B=acos((pow(a,2)+pow(c,2)-pow(b,2))/(2(a*c)));
        C=acos((pow(a,2)+pow(b,2)-pow(c,2))/(2(a*b)));
        //IMPRESION DE LOS RESULTADOS.
        printf("\n\nEl angulo A es: %d",A);
        printf("\n\nEl angulo B es: %d",B);
        printf("\n\nEl angulo C es: %d",C);
        getch();    
    }
Espero me puedan ayudar. ya que esto es para el martes.
 

Zephyros

Bovino de la familia
#2
Que tal compañeros bakunos, en esta ocacion he solicitado su ayuda porque la verdad no se que onda con este programa. Lo que pasa es que estoy haciendo un programa en c++ para que me calcule los angulos de un triangulo donde el usuario ingresa la longitud de los lados del mismo, el problema es que me marca errores que hasta ahora no entiendo el codigo fuente es el siguiente:
Código:
#include <stdio.h>
#include <conio.h>
#include <math.h>

double a,b,c,A=0,B=0,C=0;

void main(void)
    {
        printf("                            LOS ANGULOS DE UN TRIANGULO\n");
        printf("                            ---------------------------\n\n");
        printf("Dame el valor de a: ");
        scanf("%d",&a);
        printf("Dame el valor de b: ");
        scanf("%d",&b);
        printf("Dame el valor de c: ");
        scanf("%d",&c);
        //INICIO DEL CALCULO DE LOS ANGULOS.
        //A=acos((pow(b,2)+pow(c,2)-pow(a,2))/(2(b*c)));
        B=acos((pow(a,2)+pow(c,2)-pow(b,2))/(2(a*c)));
        C=acos((pow(a,2)+pow(b,2)-pow(c,2))/(2(a*b)));
        //IMPRESION DE LOS RESULTADOS.
        printf("\n\nEl angulo A es: %d",A);
        printf("\n\nEl angulo B es: %d",B);
        printf("\n\nEl angulo C es: %d",C);
        getch();    
    }
Espero me puedan ayudar. ya que esto es para el martes.
Sólo una recomendación, en lugar de utilizar pow(x, y), utiliza el producto, como en x*x, es más rápido.

Y sobre los errores, sería de mucha ayuda que nos mostraras los mensajes.
 

emigidio

Bovino Milenario
#3
Gracias por responder Zephyros, me da tres errores:
error C2064: term does not evaluate to a function taking 302 arguments
y me aparecen en las lineas donde utilizo el acos, es decir, aqui:
A=acos((pow(b,2)+pow(c,2)-pow(a,2))/(2(b*c)));
B=acos((pow(a,2)+pow(c,2)-pow(b,2))/(2(a*c)));
C=acos((pow(a,2)+pow(b,2)-pow(c,2))/(2(a*b)));
 

Zephyros

Bovino de la familia
#4
OK, ya copíe tu código fuente y lo compilé modificando algunas cosillas ya que no puedo utilizar conio.h ni getch(), también cambié algunos operadores.

Y posterior a la compilación, obtuve este resultado:

Código:
 ./a.out
                            LOS ANGULOS DE UN TRIANGULO
                            ---------------------------

Dame el valor de a: 2
Dame el valor de b: 3
Dame el valor de c: 4


El angulo A es: 0

El angulo B es: 1413754136

El angulo C es: 1413754136
Sólo te informo que revises cómo estás utilizando el 2 como entero y cómo lo estás operando con lo que tienes entre paréntesis, los cuales sólo sirven para agrupar elementos.

También revisa tu función acos, la cual está dando resultados erróneos.
 

emigidio

Bovino Milenario
#5
Zephyros Gracias por tu ayuda, he resuelto el problema las modificaciones echas son las siguientes:
Código:
        A=acos((pow(b,2)+pow(c,2)-pow(a,2))/([B]2*(b*c[/B])));
        B=acos((pow(a,2)+pow(c,2)-pow(b,2))/([B]2*(a*c[/B])));
        C=acos((pow(a,2)+pow(b,2)-pow(c,2))/([B]2*(a*b)[/B]));
ahi me faltaba poner un * despues del 2 y de b*c.
Y eso de los resultados errones era porque me lo daba en radianes, y lo unico que hice fue convertirlo a grados dela siguiente forma:
Código:
printf("\n\nEl angulo A es: %f",([B]A*180)/PI[/B]);
        printf("\n\nEl angulo B es: %f",([B]B*180)/PI[/B]);
        printf("\n\nEl angulo C es: %f",([B]C*180)/PI[/B]);
Y con esto todos los problemas quedaron resultos.

Gracias por la ayuda.
 
Arriba