Professional Documents
Culture Documents
1.1) Defincion: la estructura repetitiva for se utiliza cuando conocemos la cantidad de iteraciones(ciclos) que se
realizan en la operacin que estamos realizando
FOR es una estructura de repeticin empleada en la programacin de algoritmos para repetir un cdigo una o ms
veces dependiendo de un contador.
For permite controlar el flujo de ejecucin de sentencias de programacin permitiendo repetir un cdigo.
En general, los lenguajes de programacin que descienden de ALGOL usan el nombre "for", pero aquellos que
descienden de Fortran emplean el nombre "do" para implementar la misma estructura. En tanto, en lenguaje COBOL
se emplea "PERFORM VARYING".
La estructura For posee un contador explcito, esto permite al cuerpo del For (el cdigo que es ejecutado repetidas
veces) saber en qu repeticin est. Generalmente esta estructura se utiliza cuando se sabe de antemano el
nmero de iteraciones necesarias antes de entrar a las repeticiones. Se puede construir un For empleando un While
con un contador y agregando la condicin de "corte" asociada al contador en el While.
El FOR se emple por primera vez en ALGOL 58, traduccin directa del alemn fr usado en Superplan (19491951) de
Heinz Rutishauser, quien tambin estuvo involucrado en definir ALGOL 58 Y ALGOL 60.
Luego la variable contador es incrementada en uno con la expresin contador++ y el ciclo se inicia otra vez. La
variable contador ahora vale 2, por lo tanto se verifica la condicin y se vuelve a ejecutar el cdigo.
Este proceso se ejecuta hasta que la variable contador toma el nmero 11 y la condicin se hace falsa, no ejecutando
el bloque o cuerpo del for.
2) Quebrando la estructura FOR
La mayora de los lenguajes de programacin tienen algn comando o funcin que rompe la repeticin de la
estructura For, independiente de si deba continuar iterando. Usualmente se emplean las funciones de nombres exit
o break.
Los puristas en programacin aseguran que estas funciones de ruptura de una estructura de repeticin no deberan
incluirse en el cuerpo de For o While, porque oscurecen el cdigo de programacin y a veces le quitan sentido a la
mismsima repeticin.
a) '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).
b) 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.
c) 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).
d) 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.
e) 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.
f) 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.
g) 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
j) Ejemplo en C++
#include <iostream> vector[i] = i;
#include <conio.h> cout<< i<<endl;
using namespace std; }
int main() { system ("PAUSE");
int vector[10], i; return 0;
for(i=0; i<10; i++){ }
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)].
Cualquiera de los componentes en el parntesis se puede omitir, pero los separadores punto y coma deben
aparecer siempre. El resultado es un bucle infinito.