Beruflich Dokumente
Kultur Dokumente
CASODEESTUDIO:Aplicacindel
movimientoparablicoAngryBirds
Semana
Saber
Conceptos
bsicosde
programacin.
Variablesy
tiposdedatos.
Sintaxisy
semntica
bsica.
Entornosde
programacin.
Hacer
Analizaelcaso4de
estudiopropuesto.
Realizalaabstraccin
delcaso.
Diseaunaposible
solucin.
Resuelveelcasocon
estructurasdedatos
estticas,procesosy
entregadedatos
resultado.
Ser
Proactivoalanalizarel
caso.
Ordenadoalrealizarla
abstraccindelcaso.
Propositivoaldisear
laposiblesolucin.
Creativoalresolverel
caso.
CE7: Utiliza las estructuras de datos estticas con valores numricos o alfanumricos
comoelementosparalasolucinaproblemas
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Algoritmos
2014
1.ENUNCIADO
DesarrolleunAlgoritmo dondesecalculelavelocidaddelanzamientonecesariaparaque
un Angry Bird lanzado desde el piso con una inclinacin de 45 sobrepase un objetivo
dispuesto a 503 metros dedistancia, tomandoen cuenta que se rigemedianteelclculo
delmovimientoparablico.Tengaencuentalosiguiente:
Elclculodelavelocidadnodebehacersepordespejedeformula.
Usteddebeprobarcondistintosvaloresdevelocidadhasta:
Lograrsobrepasarelobjetivode503metros
LograrelobjetivodespusdeunXnmerodeintentos
ocontinuarprobando distintos valoresde velocidad hasta queyanoquiera
seguirconlaspruebas.
Contextodelcaso
Desde tiempos inmemoriales el ser humanousala ciencia para dominarel entorno, sus
amigoso enemigos, desdela carrera armamentista enla antigedadhastalosjuegosen
nuestros telfonos y tabletas de hoy, el clculo rpido del movimiento parablico es
fundamental.
Movimientoparablico
Es el realizado por un objetocuya trayectoriadescribeunaparbola.Secorresponde
con la trayectoria ideal de un proyectil que se mueve en un medio que no ofrece
resistenciaalavanceyqueestsujetoauncampogravitatoriouniforme.
TomadodeWikipedia
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Algoritmos
2014
Describiendoelsistemafsicomedianteelsiguienteesquema:
R=
v02
g sin2
Se lee as: R es igual a la velocidad inicial del proyectil al cuadrado, dividido por la
gravedad, el resultado se multiplica por el valor del seno de dos veces el ngulo de
lanzamiento.
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Algoritmos
2014
2.ESTRUCTURADEDATOS
En este punto entonces es necesario considerar qu informacin debe ser definida al
iniciarelalgoritmoyculdebeserintroducidaporelusuario.
Enla siguientetablasedefineeluso,elnombredelavariableyelvalorinicialquedebera
tenercadaunadeestasvariables:
Explicacin de la variable
Variable
Valor inicial
distancia_objetivo
distancia_alcanzada
gravedad
9.8
ngulo de lanzamiento
angulo
45
503
0
velocidad_inicial
velocidad_final
3.REQUERIMIENTOSFUNCIONALES
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Algoritmos
2014
4.REQUERIMIENTOSINSTRUCCIONALES
A. ANLISIS
Este tipo de algoritmos bsicamente realizan operaciones matemticas simples, la
ecuacinquesedebetransformarenunalgoritmoydescribeelmovimientoes:
R=
v02
g sin2
B. DISEO
Se puede implementar el algoritmo de diversas maneras, una de ellas prctica y
funcional, es despejar lavelocidad inicial del lanzamientoparacalcular el valor exacto o
mayor necesario para sobrepasar el objetivo, pero este no es nuestro caso. Para este
ejercicio, se vanapedir valoressucesivos develocidad,cadavalordevelocidadvaaser
probado en la frmula, y se va a calcular un valor de distancia, distancia que va a ser
comparada conel valorobjetivo,yconbaseenestosevaaemitirunjuicioqueindicarsi
nosealcanz,osesobrepaselobjetivo.
De estmanera el clculo de la velocidad delanzamientoserealizamediantelasolicitud
al usuario de la velocidad inicial, se realiza la operacin y se compara en cada
oportunidad, para esto el usuario debe escribir una velocidad diferente muchas veces
hastacumplirelobjetivodelejercicio.
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Algoritmos
2014
C. IMPLEMENTACIN
Lasvariablesesloprimeroqueunalgoritmodebedefinir:
distancia_objetivo = 503
distancia_alcanzada = 0
gravedad = 9.8
angulo = 45
velocidad_inicial = 0
velocidad_final = 0
velocidad = 0
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Algoritmos
2014
Lafrmulaconvertidaquedaraas:
distancia_alcanzada = ( ( velocidad* velocidad ) / gravedad ) * math.sin( 2 * math.radians(angulo) ) )
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Algoritmos
2014
Lasegundaforma,sedefineunrangodevelocidades:
distancia_objetivo = 503
distancia_alcanzada = 0
gravedad = 9.8
angulo = 45
velocidad = 0
velocidad_inicial = 0
velocidad_final = 0
continuar = "s"
while(continuar=="s"):
velocidad_inicial = int(raw_input("Por favor indica una velocidad inicial para probar:"))
velocidad_final = int(raw_input("Por favor indica una velocidad final de la prueba:"))
for velocidad_temporal in range(velocidad_inicial,velocidad_final):
distancia_alcanzada = ( ( velocidad_temporal * velocidad_temporal ) / gravedad ) * math.sin( 2 *
math.radians(angulo) )
print "la distancia alcanzada fue de: ",distancia_alcanzada
if distancia_alcanzada >= distancia_objetivo:
print "Se sobrepas el objetivo ", velocidad_temporal
else:
print "NO se sobrepas el objetivo",velocidad_temporal
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Algoritmos
2014
D. PRUEBAS
El programa deber entregar como resultado el valor de la velocidad de lanzamiento
necesariaparagolpearelobjetoaladistanciadeseada.
Si probamos velocidad por velocidad, escribiendo 50, 70 y 80como valores posiblesde
velocidad:
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Algoritmos
2014
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Algoritmos
2014
Desdequevelocidaddetiroinicialsesobrepasaelobjetivoplanteado?
5.ENTREGABLES
a. Cdigo fuente (AngryBirds-T000000.py)
b. El cdigo fuente debe estar documentado.
c. Impresin del pantallazo con los datos de salida.