Etiquetas

miércoles, 30 de enero de 2019

Processing 3

Crea una carpeta en tu Drive llamada EVALUACION3 dentro de la carpeta TIC2.
En esta entrada aprenderemos a crear una matriz de datos. Como sabes, las matrices pueden tener un cierto número de filas y un cierto número de columnas.

1. Empezaremos creando una matriz sencilla con una sola fila y 2 columnas, que por tanto contendrá solo 2 elementos.




Guarda este ejercicio con el nombre de matriz1.

2. Crea ahora una matriz de una fila y 5 columnas para almacenar marcas de coches. Introduce las marcas de 5 coches en el programa y haz que las muestre por la pantalla igual que en el ejemplo anterior. Ponle por nombre COCHES.

3. Otra forma de acceder a los valores de una matriz es utilizando el bucle for(). Modifica el programa anterior para que se muestren los resultados por la pantalla pero usando este bucle. Ponle por nombre COCHESFOR.

4. Modifica el programa MATRIZ1 para que se muestren los resultados por la pantalla pero usando el bucle FOR. Ponle por nombre MATRIZ1FOR.

5. Modifica el programa MATRIZ1 de modo que en lugar introducir los valores en la matriz utilizando las líneas 5 y 6, se haga mediante un bucle for(). Los valores además van a ser números enteros aleatorios que oscilarán entre 0 y 100. Tienes que poner comentarios en cada línea nueva de código que crees, explicando lo que haces.

Precaución 1: Para convertir los números aleatorios (que son números reales, es decir de tipo FLOAT) a un número entero deberás escribir INT(RANDOM(LOW,HIGH), donde LOW y HIGH son el valor mínimo y máximo que puede tener el número aleatorio.

Precaución 2: Debes distinguir entre la creación de los números que se han de guardar en la matriz (solo se hace una vez) y la escritura en la pantalla de esos números (aunque se haga más de una vez no pasa nada porque se escribe siempre lo mismo). Guarda este ejercicio con el nombre de matriz3.

6. Crea un programa nuevo donde declares dos matrices de números enteros (int). Cada una de ellas tendrá una fila y 100 columnas. Cada una de esas variables va a almacenar las coordenadas x e y de unas circunferencias que vas a crear en una ventana de tamaño 800x600. Las coordenadas serán generadas de forma aleatoria en un rango que irá de cero al ancho de la pantalla para la coordenada x y con un rango que irá de cero al alto de la pantalla para la coordenada y. La función que genera números aleatorios es RANDOM(LOW,HIGH) y devuelve un número real. Para convertir el resultado a un número entero deberás escribir INT(RANDOM(LOW,HIGH), donde LOW y HIGH son el valor mínimo y máximo que puede tener el número aleatorio. Representa además esas circunferencias de tamaño 30. Guarda el programa con el nombre de matriz4. Tienes que poner comentarios en cada línea nueva de código que crees, explicando lo que haces.

7. El siguiente programa hará que partiendo del programa anterior (matriz4), las circunferencias asciendan como si fueran burbujas. Date cuenta que ascenderán por tanto la coordenada x no se modificará, tan solo la coordenada y se irá reduciendo para cada una de las circunferencias. Guarda el programa con el nombre de matriz5. Tienes que poner comentarios en cada línea nueva de código que crees, explicando lo que haces.

8. El siguiente programa añadirá al anterior que cuando las "burbujas" desaparezcan por arriba (valor de la coordenada y menor que cero), entonces vuelvan a aparecer por abajo. Guarda el programa con el nombre de matriz6. Tienes que poner comentarios en cada línea nueva de código que crees, explicando lo que haces.

9. Por último vas a poner un color diferente a cada una de las burbujas. Date cuenta de que cada burbuja debe almacenar un valor de la coordenada x, otro de la y y además el color. Guarda el programa con el nombre matriz7. Tienes que poner comentarios en cada línea nueva de código que crees, explicando lo que haces.

10. Actividades adicionales para hacer en casa (tienes que poner comentarios en cada línea nueva de código que crees, explicando lo que haces):

a) partiendo del apartado 6, cuando tienes creadas las burbujas de diferentes tamaños, intenta que se muevan en direcciones diferentes. Para que se mueva un objeto en una dirección tienes que utilizar una variable llamada por ejemplo velocidadx, que modifique la coordenada x de esa variable y a la vez otra variable, por ejemplo velocidady que modifique la coordenada y de esa variable:

coordenadax=coordenadax+velocidadx;
coordenaday=coordenaday+velocidady;

Si lo tienes claro, ten en cuenta que cada burbuja tiene su propia coordenadax y su propia coordenaday, por lo que tendrás que crear otra matriz para almacenar las coordenadas x, y otra matriz para almacenar las coordenadas y.
Ten en cuenta además que las velocidades deberán ser aleatorias para que todas las burbujas no vayan en la misma dirección.

b) ¿desaparecen las burbujas por los bordes? Conviene entonces poner una condición para que si la coordenada x es menor que 0 o si la coordenada x es mayor que al ancho de la pantalla, entonces cambiar el signo de velocidadx, para que cambie de dirección. De forma análoga con la coordenaday.

Para ver cómo poner la condición "o" en processing (ALT GR+1), puedes consultar esta dirección:

https://processing.org/reference/logicalOR.html

c) Por último consigue que cada burbuja tenga un color diferente.


sábado, 5 de enero de 2019

Processing 2

Seguimos avanzando con Processing haciendo estas prácticas:
Los ejercicios que corregiré son los que aparecen en los enlaces como TAREAS y los ejercicios que aparecen en esta página.

  1. Formas en Processing: realiza esta práctica: http://www.programacionyrobotica.com/propiedades-de-la-forma-en-processing/
  2. Aprenderemos ahora las variables que podemos usar en Processing: http://www.programacionyrobotica.com/variables-en-processing/
  3. Escribiremos texto en Processing: http://www.programacionyrobotica.com/mostrando-informacion-en-processing/ SOLO LAS FUNCIONES print y println.
  4. Iteraciones: bucle for: http://www.programacionyrobotica.com/iteraciones-bucle-for-en-processing/ Tenéis un vídeo sobre estos bucles en este enlace: https://www.youtube.com/watch?time_continue=2&v=kApd8u4l0tU&feature=emb_logo
  5. Ejercicio P2.1: utilizando el bucle for en void setup(){}, crea una fila de círculos de 20 píxeles de radio en una pantalla de tamaño 800x600 empezando en la coordenada (0,400).
  6. Números aleatorios: http://www.programacionyrobotica.com/generacion-de-numeros-aleatorios-en-processing/
  7. Estructuras condicionales: http://www.programacionyrobotica.com/estructuras-condicionales-en-processing/ (SOLO CONDICIÓN IF; NO ESTUDIAR LA CONDICIÓN SWITCH)
  8. Ejercicio P2.2: En una pantalla de 800x600 y de fondo verde, tiene que aparecer un círculo de color rojo, borde negro y radio 20 en las coordenadas 20,400. El círculo se tiene que mover hacia la derecha, avanzando de 10 en 10 posiciones. (pista: la coordenada x deberá avanzar 10 unidades cada vez que se ejecute la función draw(); es mejor que no uses un bucle for, en su lugar ten en cuenta que la función draw se ejecuta continuamente por lo que puedes aumentar el valor de la coordenada x después de dibujar el círculo). Después tendrás que lograr que cuando el círculo llegue al límite de la pantalla (x=width-20), entonces el círculo no avance, sino que retroceda, también de 10 en 10. Por último tendrás que lograr que cuando el círculo haya retrocedido tanto que se acerque a x=10, entonces, en lugar de retroceder, avance también de 10 en 10.
  9. Interacción con el teclado: http://www.programacionyrobotica.com/interaccion-con-el-teclado-en-processing/
  10. Ejercicio P2.3: haz que cuando se apriete una tecla, entonces aparezca un círculo de tamaño 20 en una coordenada aleatoria de x, siendo y=0. El círculo entonces empezará a bajar hasta llegar a y=height y entonces desaparecerá.
  11. Variable tiempo y retardo: http://www.programacionyrobotica.com/control-del-tiempo-con-processing/ (NO ESTUDIAR)
  12. Giros y traslaciones: http://www.programacionyrobotica.com/giros-en-processing/ (NO ESTUDIAR)
Por si no podéis ver los vídeos finales, os los incluyo aquí:


Gracias otra vez, Jonathan por avisar del problema al visionar los vídeos.