elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  {AYUDA}PROGRAMA EN C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: {AYUDA}PROGRAMA EN C++  (Leído 2,906 veces)
Jason cm

Desconectado Desconectado

Mensajes: 3


Ver Perfil
{AYUDA}PROGRAMA EN C++
« en: 27 Abril 2016, 18:35 pm »

Hola ;D tengo una pequeña complicacion en mi codigo que estoy haciendo es una tarea que me han dejado
Es un problema que nos dejaron de un cañon que dispara un proyectial que tiene como Vo=105, el cañon esta en una torre Yo=15m. el cañon tiene un angulo que se pone como veran es de 20°,40°,60° y 80°.
1.- calcule cuales son las distancias a recorrer   //o=angulo; xf=distancia final
    o=20°                       xf=
    o=40°                       xf=
    o=60°                       xf=
    o=80°                       xf=

2.- calcule la distancia maxima que alcanza
3.- con que angulo puede alcanzar la distancia maxima
 use la formula que es:  //g=gravedad   g=9.8m/s^2

             -g                       
y= --------------------- x^2 +   tan(o)x +Yo     //que vendriese ser como un binomio
     2(Vo^2)*cos(o)^2                                   //de segundo grado

para hallar xf vendriese ser utizando la siguiente formula:

declare que la primera parte sea Ax^2 + Bx + C. //la parte de la ecuaion de 2° es haci como es que nesecito los valores solo uno de ellos
                     -g
Ax^2=-----------------------x^2
           2(Vo^2)*cos(o)^2
Bx= tan(o)x
C= Yo

       - B - sqrt(B^2*4*A*C)
xf=---------------------------------
             2*A
EL CODIGO QUE HICE ES EL SIGUIENTE MI ERROR ESTA EN W ME DA 0 Y NO SE EL PORQUE NO LLEGO VER EL ERROR:

//LES AGRADECERIA QUE ME AYUDARAN PORFAVOR. GRACIAS TENGAN UN BUEN DIA  ;D

Código
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. int  disc(float a, float b, float c)
  5. {
  6. float z;
  7. z=b*b-4*a*c;
  8. return z;
  9. }
  10. int main()
  11. {
  12. int o1=20, o2=40, o3=60, o4=80;
  13. float pi=3.1416, vo=105, g=9.8, yo=15;
  14. float h, co, t, d, e, f;
  15.  
  16. h=(o2*pi)/180;
  17. co=cos(h);
  18. t=tan(h);
  19. d=-g/((vo*vo)*(co*co));
  20. e=t;
  21.   f=yo;
  22.  
  23. cout<<"d es lo que se utilizara para operar en ax ="<<d<<endl;
  24. cout<<"e es lo que se utilizara para operar en bx ="<<e<<endl;
  25. cout<<"f es lo que se utilizara para operar en c ="<<f<<endl;
  26.  
  27. float a=d, b=e, c=f;
  28. float w;
  29. double z1,z2,d2;
  30.  
  31. w=disc(a,b,c);
  32.  
  33. d2=(double)w;
  34.  
  35. z1=(0-b)/(2.0*a);
  36.  
  37. z2=sqrt(0-d2)/(2.0*a);
  38.  
  39. cout<<"la destancia en 40ø ="<<z1+z2<<endl;
  40. cout<<"la destancia en 40ø ="<<z1-z2<<endl;
  41. cout<<"w = "<<w<<endl; //esta es la parte que me di cuenta
  42.       //que me salia 0 y no me deve de salir 0
  43. }

MOD EDIT: Agregada etiqueta GeSHi


« Última modificación: 28 Abril 2016, 23:55 pm por MCKSys Argentina » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: {AYUDA}PROGRAMA EN C++
« Respuesta #1 en: 27 Abril 2016, 21:26 pm »

Mira si las fórmulas son correctas. Obtengo valores extraños y, al menos la fórmula de la ecuación de 2º grado que has dado en el enunciado está mal.


En línea

Jason cm

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: {AYUDA}PROGRAMA EN C++
« Respuesta #2 en: 28 Abril 2016, 23:33 pm »

si te refieres a que solo puse - en donde es +- es por que en el programa que estoy haciendo solo necesito ese resultado no el otro por eso es que trabajo con esa parte nomas
parece que en return z; hacia que me arroje 0 pero ahora me salen uno números que no me deberían de salir
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: {AYUDA}PROGRAMA EN C++
« Respuesta #3 en: 28 Abril 2016, 23:43 pm »

Estoy oxidado en matemáticas.

Tengo los siguientes resultados:
d(20º) = 1837.556662
d(40º) = 4492.157928
d(60º) = 5087.585718
d(80º) = 2250.260680

¿Tienes los resultados de la ecuación para compararlos?
« Última modificación: 29 Abril 2016, 00:55 am por MAFUS » En línea

Jason cm

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: {AYUDA}PROGRAMA EN C++
« Respuesta #4 en: 28 Abril 2016, 23:56 pm »

no me sale con el símbolo e  en pocas palabras sigo sin resolver el código pero como el resultado que tienes me  debería de salirme como lo has echo me lo puedes hacer ver mi error
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: {AYUDA}PROGRAMA EN C++
« Respuesta #5 en: 29 Abril 2016, 00:54 am »

Replanteé la fórmula en base a la física básica de instituto. Hace tanto que no toco todo esto que no puedo asegurar que esté bien, por eso te pedía los resultados, si los tenías.

Partiendo de la formula de la aceleración: a = (vf - vo) / (tf - to)
y de la fórmula del espacio recorrido por una velocidad constante: e = v * t

donde
a : aceleración en m/s^2
v : velocidad en m/s
t : tiempo en s

Siendo:
vx : velocidad horizontal
vy : velocidad vertical
vo : velocidad inical
A : ángulo de disparo
ym : altura del cañón respeto al suelo
g : aceleración de la gravedad = 9.8m/s^2

vx = vo * cos(A)
vy = vo * sin(A)

1. ALTURA MÁXIMA
g = (vf - vo) / (tf - to) = -vo / tf

La aceleración es negativa puesto que va frenando. Consideramos pues -g
-g = -vo / tf
tf = -vo / -g = vo / g   =>   t1 = vy / g

e = v * t    =>    h = vy * t1      ( h es la altura máxima que adquiere el proyectil respecto al cañón )
h = vy * (vy / g) = vy^2 / g

ht = ym + h    (ht es la altura máxima con respecto al suelo)

2. TIEMPO DE CAÍDA
g = (vf - vo) / (tf - to)
v = e / t

g = (ht / tp) - 0 / 1 - 0 = ht / tp    ( tp es el tiempo desde la máxima altura hasta que toca suelo )
tp = ht / g

3. ESPACIO HORIZONTAL RECORRIDO
t = t1 + tp    ( t es el tiempo de vuelo del proyectil: el tiempo de subida más el tiempo de bajada )
e = vx * t

4. SUSTITUYENDO
e = vx * t
e = vx * (t1 + tp)
e = vx * (vy/g + ht/g) = vx * [(vy + ht) / g] = vx * (vy + ht) / g
e = vx * (vy + ym + h) / g
e = vx * (vy + ym + vy^2 / g) / g

De esta forma el programa resulta en lo siguiente:
Código
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. #define M_PI 3.14159265359
  5. #define DEG2RAD(X) (X)*M_PI/180
  6.  
  7. int main() {
  8.    const double g = 9.8;
  9.    const double Vo = 105;
  10.    const double Ym = 15;
  11.    double Vx;
  12.    double Vy;
  13.    double angulo;
  14.    double angulof;
  15.    double d;
  16.  
  17.    for(angulo = 20; angulo <= 80; angulo += 20) {
  18.        angulof = DEG2RAD(angulo);
  19.        Vx = Vo * cos(angulof);
  20.        Vy = Vo * sin(angulof);
  21.        d = Vx * (Vy + Ym + Vy*Vy/g) / g;
  22.        printf("d(%02.0fº) = %f\n", angulo, d);
  23.    }
  24.    return 0;
  25. }
« Última modificación: 29 Abril 2016, 01:03 am por MAFUS » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON PROGRAMA
Diseño Gráfico
Luisango 1 2,487 Último mensaje 17 Abril 2005, 13:25 pm
por Sub_Cero
ayuda con mi programa
Programación Visual Basic
nitrox 2 2,394 Último mensaje 31 Julio 2005, 00:48 am
por Slasher-K
ayuda programa!!
Programación C/C++
rodrigo_103 4 3,421 Último mensaje 16 Septiembre 2012, 21:58 pm
por rodrigo_103
[Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#?
.NET (C#, VB.NET, ASP)
Zodiak98 1 6,242 Último mensaje 8 Diciembre 2013, 01:51 am
por Eleкtro
[AYUDA] Ayuda con NETCAT o cualquier otro programa similar
Dudas Generales
Noxware 0 2,202 Último mensaje 16 Junio 2014, 18:13 pm
por Noxware
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines