Click here to load reader
View
329
Download
2
Embed Size (px)
Citation preview
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Estructuras de Repetición (Repetición Indexada)
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Para contador = valorInicial hasta valorFinalacción1
accion2
accion3
...fin hacer
La forma de repetición donde conocemos el número de veces a repetir es la “indexada”.
En este caso la repetición se realiza un número determinado de veces, delimitado por los valores inicial y final dados.
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Leer nPara cont = 1 hasta n
Mostrar contfin para
La modificación de la variable de control es automática en incrementos o decrementos específicos.
Generalmente es de 1 en 1 pero pudiera ser de otra frecuencia.La salida para n = 3 sería:
Un ejemplo sería:
Cont= 1Cont = 2Cont = 3
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
El código en VBA sería:
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Sintáxis:
For var = valor 1 To valor2 Step <inc>
Instrucciones
Next var
No hay que tomar decisión, puesto que se conoce de antemano la cantidad de veces que se va a ejecutar el proceso.
var es la variable que controla las veces que se repite el proceso
inc es el valor en el cual se quiere incrementar var
Si valor 1 <= valor 2, var va creciendo de inc en inc hasta
var > valor2Si valor 1 > valor 2, var va
decreciendo de inc en inc hasta var < valor2
var se inicializa en valor1
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Supongamos que se quiere realizar una repetición desde 1 hasta n, y se quiere mostrar el valor del contador en una hoja de Excel “Salida”:
Donde Cont va tomando los valores 1, 2 sucesivamente hasta n en forma automática.
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
En primer lugar cont toma el valor 1
Pantalla : Hoja Excel
Posición de memoria
cont
1
y lo escribe en la celda (1,1)1
Option Explicit
Dim cont As Integer
For cont = 1 to n
worksheets(“Salida”).Cells (cont , 1) = cont
Next cont
. . . . . . . . . .
Realizemos la “corrida en frío” para n = 3:
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
En seguida cont toma el valor 2
y lo escribe en la celda (2,1)
1
2
2
1
Posición de memoria
Pantalla: Hoja Excel
cont
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Finalmente cont toma el valor 3
Y lo escribe en la celda (3,1)terminando el proceso.
1
3
23
21
Posición de memoria
Pantalla : Hoja Excel
cont
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Otro Ejemplo:
¿Cómo codificarías lo mismo utilizando la instrucción While?
Este For se va a repetir 20 veces, es decir, inclusive se repite cuando Contador=20.
Cuando contador>20, termina el for y va a realizar la siguiente instrucción después del NextAl llegar al Next, contador va a
incrementarse de uno en uno (2,3,4,…)
contador se inicializa en 1
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Respuesta: Si lo hiciéramos con While:
Esta forma de hacerlo es más larga y no nos podemos olvidar de inicializar y actualizar la variable para que el while funcione correctamente
Sin embargo, es importante recordar que el For solamente puede sustituir al while cuando la variable para evaluar la condición de parada es un contador
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Un ejemplo donde el contador decrece:contador se inicializa en 20
Al llegar al Next, contador va a decrementar de dos en dos (18,16,14,…)
Cuando contador< 0, termina y va a la siguiente instrucción después del Next
Indica en que valor va a decrementar contador
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
La forma de repetición indexada facilita el realizar cálculos completos después de la repetición, ya que al conocer el numero de filas de la hoja que contienen datos podemos hacer los cálculos mas facilmente.
Además también facilita el Manejo de Datos como Registros de Información, donde los for nos ayudarán a “movernos” en las filas o las columnas donde se encuentren los datos.
[email protected] Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.