You are on page 1of 14

Bucle for

De Wikipedia, la enciclopedia libre


Saltar a navegación, búsqueda

El bucle for o ciclo for es una estructura de control en la que se puede indicar el número
máximo 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.
El uso de esta letra críptica quizás a primera vista es sin embargo una excelente forma de
aportar agilidad de lectura al código por su uso tan extensivo. Como raras veces los bucles
anidados superan las tres dimensiones (por una sencilla cuestión de explosión
exponencial), las letras i, j y k suelen ser las únicas relacionadas con este uso. En C se
define en el primer parámetro de la instrucción junto con la inicialización (opcional).

 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. De todos modos, la práctica de utilizar variables de control
que no se inicializan en el bucle no es recomendada para la legibilidad del código. En C se
define en el primer parámetro del bucle junto con la variable de control.

 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.

 Cuerpo: es lo que se hará en cada iteración, pueden ser una o más instrucciones. En
pseudolenguaje pesa la restricción de no poder alterar el valor de la variable de control;
esto no es requerido en C, pero no se considera una buena práctica.
[editar] Usos

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.

[editar] 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 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. Los condicionales constituyen junto con los bucles los pilares de la
programación estructurada, y su uso es una evolución de una sentencia de lenguaje
ensamblador que ejecutaba la siguiente línea o no en función del valor de una condición.

El bucle PARA se ha convertido en el bucle más ampliamente utilizado en la


programación, ya que con la evolución de los lenguajes la mayoría de las condiciones de fin

MIENTRAS NoFinDeTabla(tabla) HACER


PróximoRegistro(tabla)
HacerAlgo(ElementoActual(tabla))
FIN MIENTRAS

Es lo mismo decir:

PARA i := 0 a CantidadRegistros(tabla) - 1, PASO = 1


PróximoRegistro(tabla)
HacerAlgo(ElementoActual(tabla))
FIN PARA

Otro uso común es utilizar los bucles PARA para recorrer vectores de dos o más
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

[editar] Ejemplo de PARA en pseudolenguaje


PARA VariableControl := ValorInicial A ValorFinal, PASO = Incremento
Cuerpo
FIN PARA
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.

[editar] Ejemplo en C
int main()
{
int vector[10], i;
for(i = 0; i < 10; i++)
{
vector[i] = i;
}
}

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)].

[editar] 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]
}

[editar] 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.
[editar] Necesidad de una nueva estructura de control

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:
aplicar la misma operación sobre todos los elementos de un vector, y no necesitar conocer
la posición 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 = 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 CADA 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.

-BucleBucle Conjunto de instrucciones contenidas en un programa o rutina que se repite un


número determinado de veces....

-Ciclo de relojCiclo de reloj También denominado cielos por segundo o frecuencia, este término
hace referencia a la velocidad del procesador incorporado en la CPU del ordenador, y se mide en
megaherzios...
-FunciónFunción En programación, una rutina de software independiente que realiza una tarea
para el programa en que está escrita o para algún otro programa. La función ejecuta la operación
y...

-RutinaRutina Una rutina es una especie de subprograma que utiliza el programa principal sólo
cuando lo considera necesario para realizar una tarea específica....

-FirmwareFirmware (término que hace referencia a la Programación Firme) es el software


compuesto por un bloque de instrucciones que tienen un fin específico y que se almacena y se
ejecuta...

UNIDAD 2: C++ CONTROL DE PROGRAMA

TEMA 7: CICLO FOR C++

Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte
del programa mas de una vez.

Este ciclo es uno de los mas usados para repetir una secuencia de instrucciones, sobre todo
cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instrucción
simple o compuesta.

Su formato general es:

for (inicialización; condición; incremento)

{ instrucción(es); };

ejemplo:

for(x=1;x⇐10;x=x+1)

{ puts(” MAMA ”); };

En su forma simple la inicialización es una instrucción de asignación que carga la variable


de control de ciclo con un valor inicial.
La condición es una expresión relacional que evalúa la variable de control de ciclo contra
un valor final o de parada que determina cuando debe acabar el ciclo.

El incremento define la manera en que la variable de control de ciclo debe cambiar cada
vez que el computador repite un ciclo.

Se deben separar esos 3 argumentos con punto y coma (;)

EJEMPLO

Codigo prog6.cpp

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

clrscr();

// declaracion variables

int x;

// instruccion for

for(x=1;x<=10;x=x+1)

{ gotoxy(10, x+4); printf("%d MAMA",x); };

getchar();

corrida:
Casos Particulares del ciclo for;

1.- El ciclo comienza en uno y se incrementa de uno en uno este es el caso mas general.

2.- Pero el valor inicial puede se diferente de uno, ejemplo;

for(x=5;x⇐15;x=x+1){ etc.};

3.- Incluso el valor inicial puede ser negativo, ejemplo;

for (x = -3 ;x⇐ 8; x=x+1) { etc.};

4.- Los incrementos también pueden ser diferentes al de uno en uno, ej.;

for (x=1; x⇐ 20; x=x+3){ etc. };

5.- Incluso pueden ser decrementos, solo que en este caso, recordar;

5.1.-el valor inicial de la variable debe ser mayor que el valor final.

5.2.-cambiar el sentido de la condición.

ejemplo;

for (x= 50 ; x >= 10; x= x-4 ) { etcétera };

6.- Solo para los casos de incrementos y decrementos de una en una


UNIDAD substituir en el for:

el x = x + 1 por x++

el x = x - 1 por x–

TAREAS PROGRAMAS EN C++

1.- CONSTRUIR UN PROGRAMA QUE DESPLIEGUE LOS NÚMEROS DEL 20 AL


30.

2.- DESPLEGAR LOS ENTEROS ENTRE 50 Y 30 ACOMPAÑADOS DE SU


POTENCIA CUADRADA Y RAÍZ CUBICA RESPECTIVA (revisar el tema de
operadores aritmeticos).

3.- DESPLEGAR LOS MÚLTIPLOS DE 5, ENTRE 10 Y 50, ACOMPAÑADOS DE SU


FACTORIAL Y LOGARITMO RESPECTIVO (revisar el tema de operadores aritmeticos
tambien).

4.- DESPLEGAR LA TABLA DE MULTIPLICAR QUE EL USUARIO INDIQUE.

5.- EVALUAR LA FUNCION Y=5X^2 + 3X + 8 CUANDO X–> -3…10 (RANGO DE -3


HASTA 10)

Ciclos cortos
 
Día del ciclo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Color         //           X                           
 
Según el método Billings (o de la Ovulación), llamamos "ciclos cortos" a
aquellos en los cuales no hay C.I.B. (cuadro infértil de base), sino que tras la
menstruación comienza la evolución típica de la secreción.
 
En los ciclos cortos, es posible que la maduración folicular completa se
realice aún antes de que termine la menstruación; por lo tanto, la ovulación se ha
producido en los días de sangrado. Una relación en estos días puede tener como
consecuencia un embarazo.
 
Muchas mujeres, uno o dos días previos a la regla presentan una secreción de
moco que puede ser incluso elástico y transparente. Si es algo habitual en ella y sus
ciclos son de un promedio de 28-30 días y regulares, no significa nada más que el
inicio de la apertura del cuello para dejar pasar la menstruación.
 
Sin embargo, en las mujeres de ciclos cortos puede ser que esa secreción
elástica y transparente esté indicándoles que el siguiente ciclo va a ser aún más
corto, y que la ovulación puede tener lugar dentro de la menstruación.
 
Esto es importante ya que si sospechamos ovulación dentro de la regla,
aunque después de la misma aparezca sequedad y/o moco constante, habrá que
esperar hasta el 4º días tras el sangrado para reanudar las relaciones sexuales en días
alternos hasta la siguiente regla o pico.
 
 

◘ Ciclos largos
 
Día ciclo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

Color         //                               X                           
 
        Se llaman ciclos largos aquellos en los que el C.I.B. se alarga en un número
considerable de días, llegando la mujer a tener ciclos de 40 a 60 días de duración.
Suelen ser irregulares, por lo que la atención deberá ponerse en la fase preovulatoria,
con relaciones en días alternos, hasta que aparecen los síntomas de la secreción y/o
sensación.
 
 

◘ Ciclos anovulatorios
 
Día ciclo 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Color       //                                                  
 
Son aquellos en los que no se produce ovulación. Según el Método Billings,
podemos considerar que un ciclo es anovulatorio cuando no se ha producido pico:
por ese motivo se debe hablar de ciclo "posiblemente anovulatorio".
 
Las reglas son las de la fase preovulatoria, y tras el sangrado guardar
abstinencia 3 días y reanudar relaciones el 4º día por la noche.
 
 

◘ Ciclos de stress
 
La ansiedad, enfermedad, viajes, emociones, problemas conyugales o
adelgazamiento rápido, así como el miedo al embarazo, etc., pueden atrasar la
ovulación (retrasando la maduración del folículo) o bloquearla del todo en aquel
ciclo en que se produzca el stress, e incluso en los siguientes.
 
Stress permanente: Cuando existe una situación prolongada de tensión.
 
Stress transitorio: Se produce en un momento determinado del ciclo menstrual pero
desaparece rápidamente.
 
 Dependiendo del momento del ciclo en el cual se produzca el stress
transitorio, pueden darse situaciones distintas:

Stress durante la menstruación: Stress en el C.I.B.:

 No sucede nada.  No sucede nada.


 Corte de la regla.  Prolongación del C.I.B. seco o de
 Parada en la producción de la secreción continua.
secreción
Stress en los
en la fase ciclos cortos. fértil:
probablemente  Parches de secreción.

 No sucede nada.
 Prolongación de la fase.
 La secreción se detiene, vuelve el C.I.B. y cuando la tensión desaparece, se reanuda
la evolución de la secreción.
 Intermitencia de la secreción (aparece y desaparece sin que se reconozca el pico).
 La secreción
Stress se detiene
en el período para no volver a aparecer, considerando la menstruación
postovulatorio:
como pérdida intermenstrual porque no se ha detectado pico.
   No sucede nada.
 Aparición brusca de una falsa regla.
            Las reglas a seguir son: continuar con las reglas de la fase preovulatoria,
hasta que se detecte el pico. Si no se detecta pico o el sangrado apareciera, con un
intervalo menor de 10 días, considerar el ciclo como anovulatorio, y abstenerse 3
días tras la regla si aparece el C.I.B.
 

UNIDAD 2: INSTRUCCIONES DE CONTROL DE PROGRAMA

TEMA 12: CICLO FOR

Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte
del programa mas de una vez.

Este ciclo es uno de los mas usados para repetir una secuencia de instrucciones sobre todo
cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instrucción
simple o compuesta.

Su formato general es:

for (inicialización; condición; incremento)

{ instrucción(es); };
En su forma simple la inicialización es una instrucción de asignación que carga una
variable de control de ciclo con un valor inicial.

La condición es una expresión relacional que evalúa la variable de control de ciclo contra
un valor final o de parada que determina cuando debe acabar el ciclo.

El incremento define la manera en que la variable de control de ciclo debe cambiar cada
vez que el computador repite un ciclo.

Se deben separar esos 3 argumentos con punto y coma (;)


EJEMPLO

Codigo

private void button1_Click(object sender, System.EventArgs e)

int reng;

LISTA.Items.Clear();

for(reng=1; reng<=10; reng++)

LISTA.Items.Add(reng.ToString() + " mama");

nota:

Se esta usando un objeto listbox para procesar el conjunto de datos recordar que listbox,
comboboxlist, etc son objetos similares y por tanto se pueden usar para estos problemas.

Se esta usando la propiedad add de la coleccion items del componente o control


listbox(lista).

Observar que para encadenar strings en csharp se usa el signo +

Como dentro del listbox entran y salen puros datos strings la variable numerica reng de tipo
entero se esta conviertiendo a string dentro del listbox.

Y el metodo items.clear() es porque cuando el usuario usa el click mas de una vez el control
listbox los agrega abajo por eso en cuanto se activa el onclick lo primero que se realiza es
limpiar el listbox.

corrida:
Casos Particulares del ciclo for:

1.- El ciclo comienza en uno y se incrementa de uno en uno este es el caso mas general.

2.- Pero el valor inicial puede se diferente de uno, ejemplo;

for(x=5;x⇐15;x=x+1){ etc.};

3.- Incluso el valor inicial puede ser negativo, ejemplo;

for (x = -3 ;x⇐ 8; x=x+1) { etc.};

4.- Los incrementos también pueden ser diferentes al de uno en uno, ej.;

for (x=1; x⇐ 20; x=x+3){ etc. };

5.- Incluso pueden ser decrementos, solo que en este caso, recordar;

5.1.-el valor inicial de la variable debe ser mayor que el valor final.

5.2.-cambiar el sentido de la condición.

ejemplo;

for (x= 50 ; x >= 10; x= x-4 ) { etcétera };


6.- Solo para los casos de incrementos y decrementos de una en una

UNIDAD substituir en el for;

el x = x + 1 por x++

el x = x - 1 por x–

TAREAS SUGERIDOS:

1.- CONSTRUIR UN PROGRAMA QUE DESPLIEGUE LOS NÚMEROS DEL 20 AL


30.

2.- DESPLEGAR LOS ENTEROS ENTRE 50 Y 30 ACOMPAÑADOS DE SU


POTENCIA CUADRADA Y RAÍZ CUBICA RESPECTIVA(rvisar tema de operadores
aritmeticos).

3.- DESPLEGAR LOS MÚLTIPLOS DE 5, ENTRE 10 Y 50, ACOMPAÑADOS DE SU


FACTORIAL Y LOGARITMO RESPECTIVO(la misma nota de arriba).

4.- DESPLEGAR LA TABLA DE MULTIPLICAR QUE EL USUARIO INDIQUE

5.- EVALUAR LA FUNCION Y=5X^2 + 3X + 8 CUANDO X→ -3…10 (RANGO DE -3


HASTA 10)

You might also like