Você está na página 1de 7

Bucle for

Saltar a: navegacin, bsqueda



Este artculo o seccin necesita referencias que aparezcan en una publicacin
acreditada, como revistas especializadas, monografas, prensa diaria o pginas
de Internet fidedignas.
Puedes aadirlas as o avisar al autor principal del artculo en su pgina de discusin
pegando: {{subst:Aviso referencias|Bucle for}} ~~~~
El bucle for o ciclo for es una estructura de control en la que la pc nos muestra el como
programar si es que nosotros queremos porgramar un robot B-bot , en este se puede
indicar el modo en la que se puede indicar el nmero minimo de iteraciones. Est
disponible en casi todos los lenguajes de programacin imperativos.
ndice
1 Elementos del bucle
2 Usos
3 For en pseudolenguaje
4 Ejemplo de PARA en pseudocdigo
5 Ejemplo en C++
6 Ejemplo anterior escrito en Lexico
7 Bucle Por Cada (For Each)
o 7.1 Necesidad de una nueva estructura de control
8 Vase tambin
9 Referencias
Elementos del bucle



'Variable de control': prcticamente 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. El uso de esta letra crptica quizs a primera vista es sin
embargo una excelente forma de aportar agilidad de lectura al cdigo por su uso
tan extensivo. Como raras veces los bucles anidados superan las tres
dimensiones (por una sencilla cuestin de explosin exponencial), las letras i, j y
k suelen ser las nicas relacionadas con este uso. En C se define en el primer
parmetro de la instruccin junto con la inicializacin (opcional).
Inicializacin de la variable de control: en pseudolenguaje se pide explicitarlo
(es la seccin := ValorInicial), sin embargo, otros lenguajes ms permisivos
como C no lo requieren de forma obligatoria. De todos modos, la prctica de
utilizar variables de control que no se inicializan en el bucle no es recomendada
para la legibilidad del cdigo. En C se define en el primer parmetro del bucle
junto con la variable de control.
Condicin de control: en pseudolenguaje se ve representado por el valor final
que puede tomar la variable de control (la seccin A ValorFinal). En C es el
segundo parmetro y puede ser cualquier condicin (ni siquiera es obligacin
que est la variable de control, aunque una vez ms, esto no se considera una
buena prctica).
Incremento: en pseudolenguaje se toma por defecto el valor 1, aunque puede
explicitarse por medio de la sentencia PASO = ValorPaso cualquier nmero
entero (lase bien entero, o sea que tcnicamente podemos decrementar). En C
es el ltimo parmetro.
Cuerpo: es lo que se har en cada iteracin, pueden ser una o ms instrucciones.
En pseudolenguaje pesa la restriccin de no poder alterar el valor de la variable
de control; esto no es requerido en C, pero no se considera una buena prctica.
Usos
Su uso principal se orienta a los vectores, pudiendo modificar, agregar, eliminar o
consultar datos que se encuentren segn el ndice. Por esto ltimo, una condicin
mnima del vector es que debe ser ordenado, por que si se intenta leer un dato
inexistente, esto genera un error de programacin.
For en pseudolenguaje
La principal diferencia de un bucle PARA con respecto a los bucles MIENTRAS Y
REPETIR, es que puede determinarse al comienzo del bucle cuntas veces se iterar el
mismo, lo cual muchas veces puede redundar en una optimizacin del cdigo por parte
de los compiladores. Los condicionales constituyen junto con los bucles los pilares de la
programacin estructurada, y su uso es una evolucin de una sentencia de lenguaje
ensamblador que ejecutaba la siguiente lnea o no en funcin del valor de una
condicin.
El bucle PARA se ha convertido en el bucle ms ampliamente utilizado en la
programacin, ya que con la evolucin de los lenguajes la mayora de las condiciones
de fin
MIENTRAS NoFinDeTabla(tabla) HACER
PrximoRegistro(tabla)
HacerAlgo(ElementoActual(tabl
FIN MIENTRAS
Es lo mismo decir:
PARA i := 0 a CantidadRegistros(tabla) - 1, PASO = 1
PrximoRegistro(tabla)
HacerAlgo(ElementoActual(tabla))
FIN PARA
Otro uso comn es utilizar los bucles PARA para recorrer vectores de dos o ms
dimensiones, en cuyo caso se anidan estas iteraciones.
PSEUDOLENGUAJE
Vector a[3][4][2]. // Estamos indicando un vector de 3 dimensiones y
24 elementos en total.
PARA i:= 0 A 2 HACER
PARA j:= 0 A 3 HACER
PARA k:= 0 A 1 HACER
HacerAlgo(a[i][j][k])
FIN PARA
FIN PARA
FIN PARA
Ejemplo de PARA en pseudocdigo
PARA VariableControl := ValorInicial A ValorFinal, PASO = Incremento
Cuerpo
FIN PARA
donde VariableControl, ValorInicial, ValorFinal y Paso son enteros. La(s)
instruccin(es) del cuerpo se ejecutar(n) (ValorFinal - ValorInicial + 1) veces, o sea
que va desde ValorInicial a ValorFinal inclusive.
Ejemplo en C++
1. include<stdio.h>
2. include<conio.h>
int main() {
int vector[10], i;
for(i = 0; i < 10; i++)
{
vector[i] = i;
printf("%d ",i);
}
getch ();
return 0;
}

En la definicin del for, tenemos que la variable de control i se inicializa en un valor 0,
luego se entrega la condicin de control que debe ser falsa durante su ejecucin, para
completar el ciclo; y por ltimo, tenemos el incrementador en una unidad.
Si por ejemplo en la condicin 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 definicin) va desde [0..(n-1)].
Ejemplo anterior escrito en Lexico
tarea
{
los objetos vector[10], i son cantidades
variando i desde 0 hasta 9 haga
copie i en vector[i]
}
Bucle Por Cada (For Each)
Este bucle es una evolucin del concepto del bucle Para en algunos lenguajes. Se utiliza
para recorrer estructuras repetitivas de datos de forma ms simple y gil. El bucle For
Each puede describirse genricamente (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 ms tpico es con
vectores o -en programacin orientada a objetos- clases del tipo Coleccin.
Cuerpo: es lo que se har en cada iteracin, pueden ser una o ms instrucciones.
Si bien no se impone una obligacin al respecto, lo ms comn es que en este
Cuerpo exista alguna operacin sobre el elemento iterado.
Necesidad de una nueva estructura de control
Esta estructura surge como una innovacin en los lenguajes para permitir un cdigo ms
gil y legible en una situacin que es una de las principales causas del uso del bucle
PARA: aplicar la misma operacin sobre todos los elementos de un vector, y no
necesitar conocer la posicin del elemento en el vector. Esta estructura con el bucle
PARA se resuelve de la siguiente manera:
Con el bucle POR CADA esto se reduce a:
POR CADA x DE tipo EN Vector HACER
x = AlgunaOperacin(x)
FIN PARA
Las ventajas de utilizar la estructura POR CADA son las siguientes:
1. No es necesario llamar a una funcin que obtenga el tamao del vector
2. No es necesario utilizar la incmoda notacin de subndices para referirnos al
valor en cuestin, 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 compilacin 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 gua su iteracin por una variable que se incrementa
hasta cierto punto de corte; en cambio en el segundo lo que gua la iteracin 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 requerira inicializar y controlar manualmente las variables de control, con lo
cual se perdera nuevamente legibilidad en el cdigo. Por tanto, cuando en un lenguaje
se nos da la posibilidad de utilizar ambas estructuras, la eleccin del POR CADA debe
hacerse en aquellos casos para los que fue pensado: aplicar la misma operacin 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 eleccin de estructura de control.
Vase tambin
Bucle (programacin)
Saltar a: navegacin, bsqueda

Este artculo o seccin necesita referencias que aparezcan en una publicacin
acreditada, como revistas especializadas, monografas, prensa diaria o pginas
de Internet fidedignas.
Puedes aadirlas as o avisar al autor principal del artculo en su pgina de discusin
pegando: {{subst:Aviso referencias|Bucle (programacin)}} ~~~~

Este artculo o seccin sobre informtica necesita ser wikificado con un
formato acorde a las convenciones de estilo.
Por favor, edtalo para que las cumpla. Mientras tanto, no elimines este aviso puesto el 17 de
enero de 2013.
Tambin puedes ayudar wikificando otros artculos.
Un bucle o ciclo, en programacin, es una sentencia que se realiza repetidas veces a un
trozo aislado de cdigo, hasta que la condicin asignada a dicho bucle deje de
cumplirse.
Generalmente,un bucle es utilizado para hacer una accin repetida sin tener que escribir
varias veces el mismo cdigo, lo que ahorra tiempo, deja el cdigo ms claro y facilita
su modificacin en el futuro.
El bucle y los condicionales representan la base de la programacin estructurada. Es una
evolucin del cdigo ensamblador, donde la nica posibilidad de iterar un cdigo era
establecer una sentencia jump (que en los lenguajes de programacin fue sustituida por
el "ir a" o GOTO).
Los tres bucles ms utilizados en programacin son el bucle while, el bucle for y el
bucle repetir.
Ejemplo en cdigo C de sentencias repetidas
int var=0;


//cdigo que puede ser sustituido por un bucle
var = var + 2; //var igual a 2 (puede ser sustituido por var+=2)
var = var + 2; //var igual a 4
var = var + 2; //var igual a 6
var = var + 2; //var igual a 8
var = var + 2; //var igual a 10
// fin de cdigo que puede ser sustituido por un bucle

printf("el resultado es %i", var );
Ejemplo con un bucle:
int var=0;

//Cdigo para el bucle
int i;

// este es el Bucle for
for(i=0;i<10;i+=2)
{
var += 2;
}


printf("el resultado es %i", var);
Algunos lenguajes de programacin tienen sentencias que permiten "escapar" de los
bucles sin llegar a la condicin de fin, como el romper o el devolver.
Ejemplo escapando de un bucle en Visual Basic 1:
Dim h&, var&
var = 0

'Codigo del Bucle
do
var = var + 2

if var = 10 then 'Codigo para salir del bucle
goto escape
end if
loop

escape:
print "El resultado es " & var
Ejemplo escapando de un bucle en Visual Basic 2:
Dim h&, var&
var = 0

'Codigo del Bucle
do
var = var + 2

if var = 10 then 'Codigo para salir del bucle
exit do
end if
loop

print "El resultado es " & var
Ejemplo escapando de un bucle en Delphi:
var
iConta: Byte;

for iConta := 1 to 15 do
if iConta = 10 then //Se sale al llegar el contador a 10

Você também pode gostar