intro processing v1.5 - 07 - raúl lacabanne

Upload: raul-lacabanne

Post on 08-Jan-2016

215 views

Category:

Documents


0 download

DESCRIPTION

Intro Processing v1.5 - 07 - Raúl Lacabanne

TRANSCRIPT

  • 29

    Punto 7 Control: iteraciones

    Estructura iterativa: forUna estructura iterativa es una estructura que contiene acciones que se repiten siempre y cuando una condicin resulte verdadera.Tomemos el siguiente caso: nos disponemos a dibujar 13 lneas verticales equidistantes entre s, a una distancia de 10 pxeles. Todas ellas tendrn el mismo tamao. Supongamos que utilizaremos el siguiente cdigo:

    size(200,200);line(20,20,20,180);line(30,20,30,180);line(40,20,40,180);line(50,20,50,180);line(60,20,60,180);line(70,20,70,180);line(80,20,80,180);line(90,20,90,180);line(100,20,100,180);line(110,20,110,180);line(120,20,120,180);line(130,20,130,180);line(140,20,140,180);

    Podemos notar varias cosas a partir del cdigo anterior:1) la posicin del eje y en las coordenadas de origen y destino en cada instruccin tienen el

    mismo valor: 20 y 180.2) la posicin del eje x en las coordenadas de origen y destino en cada instruccin se

    incrementan a una paso de 10 unidades positivas. Ambas comienzan en el valor 20 y llegan hasta 140.

    Por lo tanto, se puede expresar esta construccin de una manera ms simple? La respuesta es s! Utilizando una estructura for! Veamos el ejemplo optimizado a continuacin:

    size(200,200);for(inti=20;i

  • 30

    4) Se ejecutan las instrucciones dentro del bloque marcado entre llaves. Note que se utiliza la variable de control como variable dinmica que devuelve los valores correspondientes al eje x en coordenadas de origen y destino.

    5) A continuacin se ejecuta la instruccin de actualizacin (i+=10), encargada de renovar el valor de la variable de control. A continuacin se salta al paso 2.

    6) Se sale de la estructura de iteracin y contina la ejecucin del programa.

    De esta forma se procede con cada estructura for que nos encontremos:

    Estructura iterativa anidadaLa estructura for produce repeticiones en una dimensin. Si anidamos esta estructura dentro de otra, combinando su efecto, crearemos iteraciones en dos dimensiones:

    for(inty=10;y

  • 31

    A continuacin veremos una larga serie de ejemplos que recomendamos ejecutar y jugar con las modificaciones de los valores de la variable de control y las formas de evaluacin y actualizacin de dicha variable:

    for(inti=10;i

  • 32

    /*Cambiodesaturacinybrillo,mientraselmatizsemantieneconstante*/colorMode(HSB);for(inti=0;i

  • 33

    IntroduccinaProcessingv1.5+ Docente:RalLacabanne

  • 34

    IntroduccinaProcessingv1.5+ Docente:RalLacabanne

  • 35

    Estructura iterativa: whileLa otra estructura iterativa que contamos en Processing es while, que a diferencia de for, se utiliza de forma conjunta con una variable de control externa al bloque. Por lo tanto, la estructura whileejecuta una serie de instrucciones de manera continua mientras que la expresin condicional sea verdadera. La expresin debe ser actualizada durante la iteracin, de lo contrario nunca saldremos del bucle while.

    while(expresin){instrucciones(algunadeellasserladeactualizacin)}

    Esta estructura puede resultar peligrosa para los programadores novatos ya que el cdigo dentro del bucle while no se detendr hasta que la expresin dentro del mismo resulte falsa. Bloquear cualquier otro cdigo a ser utilizado (los eventos de ratn no sern actualizados, etc.). Por lo tanto debemos ser cautelosos ya que podemos llegar a inmovilizar el cdigo (y hasta a veces el entorno Processing mismo) si se usa de manera incorrecta.

    A continuacin un ejemplo simple:

    inti=0;

    while(i