bucle for visual basic
TRANSCRIPT
E.S.T
JOSÉ DE ESCANDÓN
MATERIA
TECNOLOGÍA
TITULAR DE LA
MATERIA
ING.JOSÉ ALEJA NDRO
SALINAS ORTA
TEMA
CICLO FOR
REALIZADO POR
MADELEINE SARAI
CAMACHO MORENO
FABIÁN E. CASTAÑEDA
CALDERÓN
Estructura de control en la que la
PC nos muestra el como programar
si es que nosotros queremos
programar un robot b-bot , en este
se puede indicar el modo en la que
se puede indicar el número mínimo
de iteraciones.
Está disponible en casi todos los lenguajes de programación
imperativos.
Elementos del bucle
• Variable de control': prácticamente un mandato impuesto por el uso
habitual es utilizar la letra i Iterador
como variable de control, o bien sus
sucesoras en caso de bucles
anidados.
• Inicialización de la variable de control: en pseudolenguaje se pide
explicitarlo (es la sección :=
ValorInicial), sin embargo, otros
lenguajes más permisivos como C no
lo requieren de forma obligatoria.
• Condición de control: en pseudolenguaje se ve representado por el valor final que puede tomar
la variable de control (la sección A ValorFinal).
En C es el segundo parámetro y puede ser
cualquier condición (ni siquiera es obligación
que esté la variable de control, aunque una vez más, esto no se considera una buena práctica).
Incremento: en pseudolenguaje se
toma por defecto el valor 1, aunque
puede explicitarse por medio de la
sentencia PASO = ValorPaso
cualquier número entero (léase
bien entero, o sea que
técnicamente podemos
decrementar). En C es el último
parámetro.
Su uso principal se orienta a los vectores, pudiendo modificar, agregar,
eliminar o consultar datos que se encuentren según el índice. Por esto
último, una condición mínima del vector es que debe ser ordenado, por
que si se intenta leer un dato inexistente, esto genera un error de
programación.
La principal diferencia de un bucle PARA con respecto a los bucles
MIENTRAS Y REPETIR, es que puede
determinarse al comienzo del bucle
cuántas veces se iterará el mismo, lo
cual muchas veces puede redundar en una optimización del código por parte
de los compiladores.
PARA i=0 a CantidadRegistros(tabla) - 1, PASO = 1
PróximoRegistro(tabla)
HacerAlgo(ElementoActual(tabla))
FIN PARA
Ejemplo de PARA en pseudocódigo
Donde variablecontrol, valorinicial, valorfinal y paso son enteros. La(s)
instrucción(es) del cuerpo se
ejecutará(n) (valorfinal - valorinicial +
1) veces, o sea que va desde
valorinicial a valorfinal inclusive.
Ejemplo en C++
#include
<iostream>
#include <conio.h>
using namespace
std;
int vector[10], i;
for(i=0; i<10; i++)
{
vector[i] = i;
cout<< i<<endl;
}
getch();
return 0;
}
En la definición del for, tenemos que la variable de control i se inicializa en un
valor 0, luego se entrega la condición
de control que debe ser falsa durante
su ejecución, para completar el ciclo; y
por último, tenemos el incrementador en una unidad.
Si por ejemplo en la condición colocamos i < 11, entonces el ciclo for
se ejecutará desde [0...10], lo cual, al
intentar acceder al elemento
vector[10], esto generará error, ya que
el vector (por definición) va desde [0..(n-1)].
Cualquiera de los componentes en el
paréntesis se puede
omitir, pero los
separadores punto y
coma deben aparecer siempre. El resultado es
un bucle infinito.
Bucle Por Cada (For Each)
Este bucle es una evolución del concepto del bucle para en algunos
lenguajes. Se utiliza para recorrer
estructuras repetitivas de datos de
forma más simple y ágil. El bucle for
each puede describirse genéricamente (en pseudolenguaje) de la siguiente
manera
POR CADA elemento DE tipo EN conjunto HACER Cuerpo FIN FOR EACH
• Elemento: es el nombre de la variable u objeto que toma el
elemento iterado en el cuerpo del
bucle.
• Tipo de Dato: es el tipo de variable o
la clase a la que pertenece el objeto que se quiere iterar.
• Conjunto: es la estructura de datos
que se quiere iterar. El uso más
típico es con vectores o -en
programación orientada a objetos- clases del tipo Colección.
• Cuerpo: es lo que se hará en cada
iteración, pueden ser una o más
instrucciones. Si bien no se impone
una obligación al respecto, lo más común es que en este Cuerpo exista
alguna operación sobre el elemento
iterado.
Esta estructura surge como una innovación en
los lenguajes para
permitir un código más
ágil y legible en una
situación que es una de las principales causas del
uso del bucle PARA:
Con el bucle POR CADA esto se reduce a:
POR CADA x DE tipo EN Vector HACER
x =
AlgunaOperación(x)
FIN PARA
Las ventajas de utilizar la estructura POR CADA son las siguientes:
1. No es necesario llamar a una función que obtenga el tamaño del
vector
2. No es necesario utilizar la incómoda
notación de sub-índices para
referirnos al valor en cuestión, sobre todo teniendo en cuenta que
si utilizamos esta estructura es
porque no necesitamos el valor del
índice.
3. Nos permite hacer un chequeo en tiempo de compilación sobre el tipo
de dato que representa el elemento.
El bucle POR cadao no es un sustituto del PARA, es una mejora para el muy
frecuente caso anteriormente
mencionado. La diferencia esencial
entre el bucle PARA y el POR CADA es
que en el primero guía su iteración por una variable que se incrementa hasta
cierto punto de corte; en cambio en el
segundo lo que guía la iteración es el
recorrido de todos los elementos de un
vector.
Ciertamente podemos transformar cualquier POR CADA en un PARA, pero transformar un bucle PARA en un bucle POR CADA requeriría
inicializar y controlar manualmente las variables de control, con lo
cual se perdería nuevamente legibilidad en el código. Por tanto,
cuando en un lenguaje se nos da la posibilidad de utilizar ambas
estructuras
La elección del POR CADA debe hacerse en aquellos casos para los que
fue pensado: aplicar la misma
operación a todos los elementos de un
vector sin importar el orden en que se
hagan; si bien no es necesario que la variable elemento sea utilizada en el
cuerpo del bucle, su ausencia denota
con seguridad una mala elección de
estructura de control.