Título: Ayudaaa Mi código no ejecuta, estoy aprendiendo :( Publicado por: Boris Morales en 12 Octubre 2020, 23:42 pm #Importamos todas las librerías necesarias from matplotlib.pylab import * import matplotlib.pyplot as plt import numpy as np from math import * from sympy import * from sympy.plotting import * from time import * from scipy import * asctime() clock() #introducimos los datos while True: try: β=float(input("introduzca el ángulo en grados β = ")) except ValueError: print () print("Cantidad Incorrecta") print () continue break while True: try: vi=float(input("introduzca la velocidad inicial en (m/s) vi = ")) except ValueError: print () print("Cantidad Incorrecta") print () continue break print () θ=((β*pi)/180) print ("θ=",θ) g=9.81 # m/s**2 print () a=tan(θ) b=((g)/((2*vi**2)*cos(θ)**2)) print () ymax=(vi**2)*(np.sin(θ)*sin(θ))/(2*g) xmax=(vi**2)*(np.sin(2*θ))/(g) print ("................................................................................") print ("................................................................................") tmax=(vi*sin(θ))/(g) tv=2*(tmax) # Salidas de los datos calculados print (str("La altura máxima alcanzada por el proyectil es: Ymax")+" = "+str(ymax)+" m") print (str("El alcance máximo horizontal del proyectil es: Xmax")+" = "+str(xmax)+" m") print ("................................................................................") print ("................................................................................") print ("La altura máxima (m) alcanzada por el proyectil es: Ymax =",format(ymax,".2f")) print ("El alcance máximo horizontal(m) del proyectil es: Xmax =",format(xmax," .2f")) print ("................................................................................") print ("................................................................................") print ("El tiempo máximo t1max (s) que alcanza el proyectil para el ángulo β es: t1max =",format(tmax,".2f")) print ("El tiempo de vuelo t1v(s) que alcanza el proyectil para el angulo β es: t1v =",format(tv,".2f")) print ("................................................................................") print ("................................................................................") # Definimos la ecuación de la trayectoria def f(x): return(a*x-b*x**2) x=np.linspace(0,xmax,500) #creamos la figura plt.figure("FISICA APLICADA",figsize=(10,8),dpi=80,facecolor="y",edgecolor="c") plt.axes(axisbg="orange") # añadimos el titulo title("LANZAMIENTO DE PROYECTILES", fontsize=15,color="blue",verticalalignment="baseline",horizontalalignment = "center") # añadimos el subtitulo plt.suptitle("CINEMATICA",fontsize=20,color="red") #añadimos las etiquetas de los ejes xlabel("xmax",fontsize=20,color="red") ylabel("ymax",fontsize=20,color="blue") #añadimos texto plt.text(((np.argmax(f(x)))/2),np.max(f(x))+1,"vi=",fontsize=10) plt.text(((np.argmax(f(x)))/2)+11,np.max(f(x))+1,(str(vi)+"m/s"),fontsize=10) #mostrar la fecha y la hora actual formateadas :",asctime() #mostrar el tiempo real de ejecucion de este proceso :",clock() plt.text(2,np.max(f(x))+1,("fecha/hora:"+str(asctime())),fontsize=10,color="green") plt.text(2,np.max(f(x))-1,("tiempo(s):"+str(clock())),fontsize=10,color="blue") # Añadimos la rejilla en la gráfica plt.grid(True) plt.grid(color = '0.5', linestyle = '--', linewidth = 1) # Añadimos los ejes # plt.axis("tight") # dibujamos y ponemos etiquetas a la gráfica plt.text(3,1,β,fontsize=10) plt.plot(x, f(x), "red", linewidth = 2, label = (str(β)+"º")) # añadimos la leyenda plt.legend(loc = 4,fontsize=10) #anotaciones en el gráfico plt.annotate('Altura Máxima', xy = (xmax/2, ymax), xycoords = 'data', xytext = (-70, -50), textcoords = 'offset points', arrowprops = dict(arrowstyle = "->", connectionstyle = "arc, angleA = 0,armA = 30,rad = 50"), # dibujar tabla dentro del gráfico valores = [[format(np.max(xmax),".2f"),format(np.min(ymax),".2f")]] etiquetas_col = ["xmax (m)", "ymax (m)"] plt.table(cellText=valores, colLabels = etiquetas_col, colWidths = [0.15]*len(f(x)),loc='upper right') # guarda la gráfica con 300dpi (puntos por pulgada)en python34-ejemplos curso python #plt.savefig("figura_Lanzamiento Proyectiles_1.pdf", dpi = 300) # mostramos en pantalla la gráfica plt.show() Título: Re: Ayudaaa Mi código no ejecuta, estoy aprendiendo :( Publicado por: .:Xx4NG3LxX:. en 12 Octubre 2020, 23:51 pm Te recomiendo poner todo el código entre las balizas:
Código: [code]TODO TU CÓDIGO AQUÍ Título: Re: Ayudaaa Mi código no ejecuta, estoy aprendiendo :( Publicado por: tincopasan en 13 Octubre 2020, 02:04 am hola:
hay tantas cosas mal que hay que hacer casi todo de nuevo, demasiado código para alguien que está aprendiendo, pero bueno, se puede empezar de a poco y una cosa por vez. No te voy a hacer el código pero si puedo intentar ayudarte paso a paso. 1) Código
hay librerias que no veo que usas, las agregaremos cuando sean necesarias, para empezar ninguna, lo mismo que las últimas dos funciones declaradas ¿de dónde salen? 2) desde el inicio ya está mal Citar #introducimos los datos while True: try: β=float(input("introduzca el ángulo en grados β = ")) -#que ganas de complicar el nom,bre de las variables except ValueError: #desde acá está mal la indentación print () print("Cantidad Incorrecta") print () continue break while True: try: vi=float(input("introduzca la velocidad inicial en (m/s) vi = ")) except ValueError: print () print("Cantidad Incorrecta") print () continue break print () hasta acá la lógica está incorrecta, te muestro como haría uno y vos modificas el otro. Código
modifica el otro while 3) Citar θ=((β*pi)/180) tambíen hay que cambiar el nombre de la variable, no es obligatorio, pero si recomendable y ahora necesitamos obtener "pi"tu codigo: Código
si bien no está mal, estas cargando en memoria datos innecesarios, sería mejor: Código
si al fin y al cabo es lo único que usaremos por ahora. Código
en fin, pocas líneas muchas cosas incorrectas, si las modificas y las posteas vemos de seguir, sino espera que alguien te corrija todo el código. Saludos Título: Re: Ayudaaa Mi código no ejecuta, estoy aprendiendo :( Publicado por: Boris Morales en 13 Octubre 2020, 04:46 am .:Xx4NG3LxX:.
tincopasan Muchas gracias a ambos por sus consejos, y si realmente me estaba basando de algunos videos y foros por eso el exceso de info. Pero me gusta de verdad aprender de los mejores así que si efectivamente lo seguiré intentando ::) Título: Re: Ayudaaa Mi código no ejecuta, estoy aprendiendo :( Publicado por: Boris Morales en 17 Octubre 2020, 20:43 pm Código
Estimado tincopasan, no se si aún siga por aquí tarde un poco pero ya le hice correcciones, lo que no entiendo es por que al sacar el coseno en "vxO" :-\ from math import pi from math import tan from math import cos from math import sin import numpy as np import matplotlib.pyplot as plt while True: try: vi = float(input("Introduzca la velocidad inicial en (m/s) : ")) break except ValueError: print("Cantidad Incorrecta") print("m/s =",vi) while True: try: angulo = float(input("Introduzca el ángulo en grados: ")) break except ValueError: print("\nCantidad Incorrecta\n") print(angulo,"°")#no es necesario, lo uso para que vayamos viendo el resultado while True: try: g = float(input("Introduzca el valor de gravedad en m/s^2: ")) break except ValueError: print("\nCantidad Incorrecta\n") print("\ng =",g) grados = ((angulo*pi)/180) print ("\ngrados =",grados) while True: try: xo = float(input("Posición horizontal inicial [x0]: ")) break except ValueError: print("\nCantidad Incorrecta\n") while True: try: yo = float(input("Posición vertical inicial [y0]: ")) break except ValueError: print("\nCantidad Incorrecta\n") print() a = tan(grados) b = ((g)/((2*vi**2)*cos(grados)**2)) print() ymax=(vi**2)*(np.sin(grados)*sin(grados))/(2*g) xmax=(vi**2)*(np.sin(2*grados))/(g) vho = (cos(angulo)) print("Un cuerpo lanzado con una velocidad inicial de Vo=",vi,"m/s y un ángulo de α=",angulo,"°,") print("iniciará su trayectoria con una velocidad horizontal de vxO: ",vho) print("----------------------------------------------------------------------") print("----------------------------------------------------------------------") tmax=(vi*sin(grados))/(g) tv=2*(tmax) print() print(str("La altura máxima alcanzada por el proyectil es: Ymax")+" = "+str(ymax)+" m") print(str("El alcance máximo horizontal del proyectil es: Xmax")+" = "+str(xmax)+" m") print("----------------------------------------------------------------------") print("----------------------------------------------------------------------") print("La altura máxima (m) alcanzada por el proyectil es: Ymax =",format(ymax,".2f")) print("El alcance máximo horizontal(m) del proyectil es: Xmax =",format(xmax," .2f")) print("----------------------------------------------------------------------") print("----------------------------------------------------------------------") print("El tiempo máximo t1max (s) que alcanza el proyectil para el ángulo β es: t1max =",format(tmax,".2f")) print("El tiempo de vuelo t1v(s) que alcanza el proyectil para el angulo β es: t1v =",format(tv,".2f")) print("----------------------------------------------------------------------") print("----------------------------------------------------------------------") Me podrian orientar que falta por que en el coseno de 60° me da -0.9524129804151563 :( Título: Re: Ayudaaa Mi código no ejecuta, estoy aprendiendo :( Publicado por: Tachikomaia en 17 Octubre 2020, 21:04 pm Yo lo que sé es que en QBASIC, Clipper y Macromedia Flash 5, no se requiere importar cosas. Los 2 1eros no me acuerdo bien, quizá me equivoque. Y MF5 tal vez para los sonidos o algo que no recuerdo.
Yo en tu lugar cambiaría de lenguaje. Título: Re: Ayudaaa Mi código no ejecuta, estoy aprendiendo :( Publicado por: Boris Morales en 17 Octubre 2020, 21:17 pm Tachikomaia
Rayos jaja es que ya me había animado en esto, pero si no hay otra manera si tendré que cambiarlo :(( Título: Re: Ayudaaa Mi código no ejecuta, estoy aprendiendo :( Publicado por: tincopasan en 17 Octubre 2020, 21:20 pm hola:
el problema que tienes es que la función coseno es en base a radianes no a grados por lo tanto podrías agregar: Código
Edito: otra cosa: Código
es más simple: Código
PD: si vas a dejar por cada cosa que no puedas hacer, no intentes programar , sin importar el lenguaje. Título: Re: Ayudaaa Mi código no ejecuta, estoy aprendiendo :( Publicado por: Tachikomaia en 17 Octubre 2020, 22:55 pm Muy profundo, pero no olvidemos Brainfuck y similares y que el OP está haciendo algo que parece mucho más complicado de lo que parece saber hacer. Debería intentar cosas de dificultad menor.
Título: Re: Ayudaaa Mi código no ejecuta, estoy aprendiendo :( Publicado por: Boris Morales en 18 Octubre 2020, 02:18 am Bien muchas gracias en verdad a ambos por sus conocimientos
Y tincopasan, una disculpa, jamás fue mi intención molestar u ofender |