Autor
|
Tema: Ayudaaa Mi código no ejecuta, estoy aprendiendo :( (Leído 4,783 veces)
|
Boris Morales
Desconectado
Mensajes: 20
|
#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()
|
|
|
En línea
|
|
|
|
.:Xx4NG3LxX:.
|
Te recomiendo poner todo el código entre las balizas: [code]TODO TU CÓDIGO AQUÍ [/code]
|
|
|
En línea
|
"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
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) #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()
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 #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. while True: try: angulo=float(input("introduzca el ángulo en grados β = ")) #usemos variables significativas break except ValueError: print("\nCantidad Incorrecta\n") print(angulo)#no es necesario, lo uso para que vayamos viendo el resultado
modifica el otro while 3) θ=((β*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: from math import *
si bien no está mal, estas cargando en memoria datos innecesarios, sería mejor: from math import pi
si al fin y al cabo es lo único que usaremos por ahora. grados=((angulo*pi)/180)
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
|
|
« Última modificación: 13 Octubre 2020, 02:11 am por tincopasan »
|
En línea
|
|
|
|
Boris Morales
Desconectado
Mensajes: 20
|
.: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
|
|
|
En línea
|
|
|
|
Boris Morales
Desconectado
Mensajes: 20
|
[color=yellow][/color]
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
|
|
|
En línea
|
|
|
|
Tachikomaia
Conectado
Mensajes: 1.460
Hackentifiko!
|
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.
|
|
|
En línea
|
|
|
|
Boris Morales
Desconectado
Mensajes: 20
|
Tachikomaia Rayos jaja es que ya me había animado en esto, pero si no hay otra manera si tendré que cambiarlo (
|
|
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
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: from math import radians vho = (cos(radians(angulo)))
Edito: otra cosa: from math import pi from math import tan from math import cos from math import sin
es más simple: from math import pi, tan, cos, sin
PD: si vas a dejar por cada cosa que no puedas hacer, no intentes programar , sin importar el lenguaje.
|
|
« Última modificación: 17 Octubre 2020, 22:23 pm por tincopasan »
|
En línea
|
|
|
|
Tachikomaia
Conectado
Mensajes: 1.460
Hackentifiko!
|
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.
|
|
|
En línea
|
|
|
|
Boris Morales
Desconectado
Mensajes: 20
|
Bien muchas gracias en verdad a ambos por sus conocimientos
Y tincopasan, una disculpa, jamás fue mi intención molestar u ofender
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
aprendiendo XSS alguien me ayudaaa Help ...
Nivel Web
|
alexkof158
|
7
|
3,309
|
23 Noviembre 2009, 17:59 pm
por WHK
|
|
|
Estoy Aprendiendo
« 1 2 3 »
Programación C/C++
|
<<<-Basura->>>
|
24
|
11,531
|
19 Marzo 2011, 16:05 pm
por chocola
|
|
|
Estoy aprendiendo a programar web[Ayuda]
Desarrollo Web
|
jorpumon
|
2
|
2,845
|
7 Agosto 2013, 23:12 pm
por moi_realine
|
|
|
Estoy aprendiendo
Bases de Datos
|
Walle214
|
2
|
2,258
|
18 Septiembre 2018, 03:56 am
por Machacador
|
|
|
Estoy aprendiendo en Desarrollo Web
Desarrollo Web
|
Walle214
|
0
|
1,362
|
23 Septiembre 2018, 19:17 pm
por Walle214
|
|