miércoles, 6 de junio de 2012

Bucles Anidados


Un bucle anidado es un bucle dentro de otro bucle. Así podemos tener varios
bucles anidados según lo que queramos hacer en nuestro programa.

Ejemplo: el caso de que quisiéramos crear todas las tablas de multiplicar del 1 al 10.

Tendríamos que hacer
1 x 1,1 x 2,1 x 3...1 x 10
2 x 1,2 x 2, 2 x 3...2 x 10
.
.
10 x 1,10 x 2,10 x 3.....10 x 10

El primer factor podría ser una variable que iría cambiando 1 al 10
y el segundo seria otra variable que iría cambiando del 1 al 10.

Con eso sabemos que tenemos las variables: factor1,factor2.
Con estas dos variables tenemos las suficientes para nuestro programa.
Podíamos tener una tercera para el resultado, pero no es realmente necesaria.
Usaremos el tipo de bucle que queramos,conociendo como es.

Definimos las variables:

Tipo entero: factor1,factor2

Para factor1 repetir de 1 hasta 10
        Para factor2 repetir de 1 hasta 10
                 Mostrar factor1 & “ * “ & factor2 & “ = “ & (factor1 * factor2)
        Fin Para
Fin Para

Un ejemplo típico de uso de los bucles anidados es con el uso de un array de varias
dimensiones. Si tuviéramos una pizarra en la que vamos a dibujar un punto, necesitaríamos
saber dos coordenadas. La x y la y. Si tuviéramos almacenados en un array estas coordenadas
tal que así:

coordenadas(x,y)

Para leer todas los datos del array coordenadas lo mas aconsejable es usar dos bucles.
Uno dentro del otro. Anidados

Así iríamos leyendo:

coordenadas(0,0),coordenadas(0,1),coordenadas(0,2)....
coordenadas(1,0),coordenadas(1,1),coordenadas(1,2)...
.
.
coordenadas(x,y)

Hasta llegar al ultimo valor almacenado en el array.

Podemos crear una rejilla. Para el uso de gráficas es fundamental.

Bien. Cuando queremos comentar algo en un programa Gambas usamos el símbolo “ ' “
Así una linea de comentario tendría una aspecto como esto.

' Esto es un ejemplo de comentario

En este código fuente que os pongo ahora. Veréis que en FORM_OPEN()
existen lineas comentadas. Cada linea llama a un procedimiento que ejecuta
un tipo distinto de bucle anidado. Como me interesa ver el resultado de uno
de ellos. Comento el resto y dejo solo uno para que se ejecute.




Aquí tenéis un ejemplo de la creación de una rejilla.
Puedes hacer click en las celdas que la forman.




Ejemplo de rejilla

3 comentarios:

  1. Muy bueno el ejemplo de regilla...se me ocurren muchas cosas que se pueden basar en el (realizar mapas de juegos :) )

    ResponderEliminar
  2. Perdona que no te contestase antes.La rejilla es vital en la mayoría de los juegos.Buscaminas,barcos,mapas.Como tu dices, se pueden hacer muchísimas cosas. :-)

    ResponderEliminar