Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Profesor Adolfo Di Mare
CI-0202
II Semestre 2009
[<=] [home] [<>] [\/] [=>]
CI-0202 Principios de Informática

Tarea #7 [solución]

Caída matricial de una piedra

      En el primer curso de física le enseñaron la fórmula para calcular la trayectoria de un proyectil que sale hacia arriba a velocidad "V" con un ángulo "θ", gravedad "g" y altura "h". Usando esa fórmula, calcule la trayectoria del proyectil y póngala dentro de una matriz rectangular.

    0   1   2   3   4   5   6   7   8   9   0   1   2   3   14
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0 |   |   |   |   |   | X | X |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1 |   |   |   | X | X |   |   | X |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
2 |   |   | X |   |   |   |   |   | X |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
3 |   | X |   |   |   |   |   |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
4 | X |   |   |   |   |   |   |   |   | X |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
5 |   |   |   |   |   |   |   |   |   |   | X |   |   |   |
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
6 |   |   |   |   |   |   |   |   |   |   |   | X |   |   |
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
7 |   |   |   |   |   |   |   |   |   |   |   |   | X |   |
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
8 |   |   |   |   |   |   |   |   |   |   |   |   | X |   |
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
9 |   |   |   |   |   |   |   |   |   |   |   |   |   | X |
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+

      Luego de generar en memoria su matriz, procede a grabarla en la salida estándar. Suponga que el proyectil comienza en la mitad de la columna izquierda; luego su rutina prodrá usarse en la construcción de un juego que busque lograr que la piedra caiga en la esquina inferior derecha, que corresponde a la última casilla de la matriz, en la última fila y columna. Recuerde que si el valor de "N" es muy pequeño, la trayectoria del proyectil se verá quebrada y extraña, pero con un valor más grande de "N" se obtendrá una figura mucho más realista.

      Para que la trayectoria del proyectil se vea interesante en una pantalla de televión, las dimensiones de la matriz tienen que respetar la proporción 4:3 de la televión NTSC, que usualmente tiene (W*H)==(640*480) pixeles.

      Además de su programa, recuerde que debe entregar también la documentación.

Consulta:
Profe: ¿Tenemos que programar un método que modele como una matriz la forma que tomaría el proyectil para después implementar también un juego cuya en el que halla que llegar la piedra a un punto, para poder verlo en un televisor NTSC? ¿Cómo es qué es?
Respuesta:
Deben implementar un método llenaPiedra() que reciba una matriz que tenga la proporción 4:3. Además, su método debe recibir el ángulo y la velocidad de la piedra, con lo que deben calcular la trayectoria del proyectil. Si llenan inicialmente toda la matriz de espacios en blanco ' ', luego pueden marcar dentro de la matriz la trayectoria del proyectil poniendo una letra 'X' en la casilla apropiada, como se muestra en la figura.
      Antes de implementar llenaPiedra() deben definir su especificación. Por eso, necesitan determinar cuáles parámetros deben incluir, y también deben escribir qué hace la esta rutina. Idealmente, debieran también definir los datos de prueba para probar su módulo con el botón [Test] de DrJava, pero este requerimiento lo dejaremos para una tarea posterior.
      No hace falta que implementen el juego. Tampoco es necesario que suban el resultado de correr su programa a Youtube, aunque si lo desean nada puede impedirles que lo hagan.
Consulta:
Profe: Si solo tenemos la velocidad, el ángulo, la altura inicial y la gravedad, ¿debemos calcular el tamaño que debe tener la matriz para lograr que toda la trayectoria quede dentro de la matriz? Para eso necesitamos encontrar el punto en el que el proyectil cae y cuál es la altura máxima que alcanza.
Respuesta:
No. El tamaño de la matriz está dado de antemano. Si alguno de los datos es demasiado grande o pequeño, en la matriz se puede mostrar solo una parte de la trayectoria del proyectil. Basta a graficar todo lo que sí queda dentro de la matriz.

[mailto:] Entrega de Tareas

Tiempo de entrega: 7 Días
Modalidad: En parejas

Soluciones

[mailto:] Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2009
Derechos de autor reservados © 2009
[home] <> [/\]