FOR (PARA)
Cualquier problema que requiera una estructura repetitiva se puede resolver empleando la estructura while. Pero hay otra estructura repetitiva cuyo planteo es más sencillo en ciertas situaciones.
En general, la estructura for se usa en aquellas situaciones en las cuales CONOCEMOS la cantidad de veces que queremos que se ejecute el bloque de instrucciones. Ejemplo: cargar 10 números, ingresar 5 notas de alumnos, etc. Conocemos de antemano la cantidad de veces que queremos que el bloque se repita. Veremos, sin embargo, que en el lenguaje Java la estructura for puede usarse en cualquier situación repetitiva, porque en última instancia no es otra cosa que una estructura while generalizada.
En su forma más típica y básica,
esta estructura requiere una variable entera que cumple la función de un
CONTADOR de vueltas. En la sección indicada como "inicialización
contador", se suele colocar el nombre de la variable que hará de contador,
asignándole a dicha variable un valor inicial. En la sección de
"condición" se coloca la condición que deberá ser verdadera para que
el ciclo continúe (en caso de un falso, el ciclo se detendrá). Y finalmente, en
la sección de "incremento contador" se coloca una instrucción que
permite modificar el valor de la variable que hace de contador (para permitir
que alguna vez la condición sea falsa)
Cuando el ciclo comienza, antes
de dar la primera vuelta, la variable del for toma el valor indicado en la
sección de de "inicialización contador". Inmediatamente se verifica,
en forma automática, si la condición es verdadera. En caso de serlo se ejecuta
el bloque de operaciones del ciclo, y al finalizar el mismo se ejecuta la
instrucción que se haya colocado en la tercer sección.
Seguidamente, se vuelve a
controlar el valor de la condición, y así prosigue hasta que dicha condición
entregue un falso.
Si conocemos la cantidad de veces
que se repite el bloque es muy sencillo emplear un for, por ejemplo si queremo
que se repita 50 veces el bloque de instrucciones puede hacerse así:
La variable del for puede tener
cualquier nombre. En este ejemplo se la ha definido con el nombre f.
Analicemos el ejemplo:
- La variable f toma inicialmente el valor 1.
- Se controla automáticamente el
valor de la condición: como f vale 1 y esto es menor
que 50, la condición da
verdadero.
- Como la condición fue
verdadera, se ejecutan la/s operación/es.
- Al finalizar de ejecutarlas, se
retorna a la instrucción f++, por lo que la
variable f se incrementa en uno.
- Se vuelve a controlar
(automáticamente) si f es menor o igual a 50.
Como ahora su valor es 2, se
ejecuta nuevamente el bloque de instrucciones e
incrementa nuevamente la variable
del for al terminar el mismo.
- El proceso se repetirá hasta
que la variable f sea incrementada al valor 51.
En este momento la condición será
falsa, y el ciclo se detendrá.
La variable f PUEDE ser
modificada dentro del bloque de operaciones del for, aunque esto podría causar
problemas de lógica si el programador es inexperto.
La variable f puede ser
inicializada en cualquier valor y finalizar en cualquier valor. Además, no es
obligatorio que la instrucción de modificación sea un incremento del tipo
contador (f++).
Cualquier instrucción que
modifique el valor de la variable es válida. Si por ejemplo se escribe f=f+2 en
lugar de f++, el valor de f será incrementado de a 2 en cada vuelta, y no de a
1. En este caso, esto significará que el ciclo no efectuará las 50 vueltas sino
sólo 25.
PROBLEMA
RELIZE UN PROGRAMA QUE IMPRIMA EN PANTALLA LOS NUMEROS DEL 1 AL 100.
EN PROGRAMA
INCIO
INT N;
FOR(N=1;1<=100;N=N++);
{
IMPRIMA "NUMERO";
}
FIN
DIAGRAMA DE FLUJO (DFD)
Podemos observar y comparar con
el problema realizado con el while. Con la estructura while el CONTADOR x sirve
para contar las vueltas. Con el for el CONTADOR f cumple dicha función.
Inicialmente f vale 1 y como no
es superior a 100 se ejecuta el bloque, imprimimos el contenido de f, al
finalizar el bloque repetitivo se incrementa la variable f en 1, como 2 no es
superior a 100 se repite el bloque de instrucciones.
Cuando la variable del for llega
a 101 sale de la estructura repetitiva y continúa la ejecución del algoritmo
que se indica después del círculo.
La variable f (o como sea que se
decida llamarla) debe estar definida como una variable más.
BUCLE WHILE
Hasta ahora hemos empleado estructuras SECUENCIALES y
CONDICIONALES. Existe otro tipo de estructuras tan importantes como las
anteriores que son las estructuras REPETITIVAS.
Una estructura repetitiva permite ejecutar una instrucción o
un conjunto de instrucciones varias veces.
Una ejecución repetitiva de sentencias se caracteriza por:
- La o las sentencias que se repiten.
- El test o prueba de condición antes de cada repetición,
que motivará que se repitan o no las sentencias.
No debemos confundir la representación gráfica de la
estructura repetitiva while (Mientras) con la estructura condicional if (Si)
Funcionamiento: En primer lugar se verifica la condición, si
la misma resulta verdadera se ejecutan las operaciones que indicamos por la
rama del Verdadero.
A la rama del verdadero la graficamos en la parte inferior
de la condición. Una línea al final del bloque de repetición la conecta con la
parte superior de la estructura repetitiva.
En caso que la condición sea Falsa continúa por la rama del
Falso y sale de la estructura repetitiva para continuar con la ejecución del
algoritmo.
El bloque se repite MIENTRAS la condición sea Verdadera.
Importante: Si la condición siempre retorna verdadero
estamos en presencia de un ciclo repetitivo infinito. Dicha situación es un
error de programación, nunca finalizará el programa.
PROBLEMA
REALIZE UN PROGRAMA QUE IMPRIMA EN PANTALLA LOS NUMEROS DEL 1 AL 100.
EN PROGRAMACION
INICIO
INT X;
X=1;
WHILE (A<=100);
{
IMPRIMA "DIGITE UN #";
LEA X;
X=X+1
}
FIN
DIAGRAMA DE FLUJO (DFD)

Es muy importante analizar este diagrama
La primera operación inicializa la variable x en 1,
seguidamente comienza la estructura repetitiva while y disponemos la siguiente
condición ( x <= 100), se lee MIENTRAS la variable x sea menor o igual a
100.
Al ejecutarse la condición retorna VERDADERO porque el
contenido de x (1) es menor o igual a 100. Al ser la condición verdadera se
ejecuta el bloque de instrucciones que contiene la estructura while. El bloque
de instrucciones contiene una salida y una operación.
Se imprime el contenido de x, y seguidamente se incrementa
la variable x en uno.
La operación x=x + 1 se lee como "en la variable x se
guarda el contenido de x más 1". Es decir, si x contiene 1 luego de
ejecutarse esta operación se almacenará en x un 2.
Al finalizar el bloque de instrucciones que contiene la
estructura repetitiva se verifica nuevamente la condición de la estructura
repetitiva y se repite el proceso explicado anteriormente.
Mientras la condición retorne verdadero se ejecuta el bloque
de instrucciones; al retornar falso la verificación de la condición se sale de
la estructura repetitiva y continua el algoritmo, en este caso finaliza el
programa.
Lo más difícil es la definición de la condición de la
estructura while y qué bloque de instrucciones se van a repetir. Observar que
si, por ejemplo, disponemos la condición x >=100 ( si x es mayor o igual a
100) no provoca ningún error sintáctico pero estamos en presencia de un error
lógico porque al evaluarse por primera vez la condición retorna falso y no se
ejecuta el bloque de instrucciones que queríamos repetir 100 veces.
No existe una RECETA para definir una condición de una
estructura repetitiva, sino que se logra con una práctica continua solucionando
problemas.
Una vez planteado el diagrama debemos verificar si el mismo
es una solución válida al problema (en este caso se debe imprimir los números
del 1 al 100 en pantalla), para ello podemos hacer un seguimiento del flujo del
diagrama y los valores que toman las variables a lo largo de la ejecución:
x
1
2
3
4
.
.
100
101 Cuando x vale 101 la condición de la
estructura repetitiva retorna falso,
en este
caso finaliza el diagrama.
Importante: Podemos observar que el bloque repetitivo puede
no ejecutarse ninguna vez si la condición retorna falso la primera vez.
La variable x debe estar inicializada con algún valor antes
que se ejecute la operación x=x + 1 en caso de no estar inicializada aparece un
error de compilación.
CONDICONAL DO WHILE (HACER MIENTRAS)
La estructura do while es otra
estructura repetitiva, la cual ejecuta al menos una vez su bloque repetitivo, a
diferencia del while o del for que podían no ejecutar el bloque.
Esta estructura repetitiva se
utiliza cuando conocemos de antemano que por lo menos una vez se ejecutará el
bloque repetitivo.
La condición de la estructura
está abajo del bloque a repetir, a diferencia del while o del for que está en
la parte superior
El bloque de operaciones se repite MIENTRAS que la condición
sea Verdadera.
Si la condición retorna Falso el ciclo se detiene. En Java,
todos los ciclos repiten por verdadero y cortan por falso.
Es importante analizar y ver que las operaciones se ejecutan
como mínimo una vez.
PROBLEMA
Escribir un programa que solicite
la carga de un número entre 0 y 999, y nos muestre un mensaje de cuántos
dígitos tiene el mismo. Finalizar el programa cuando se cargue el valor 0.
INICIO
INT VALOR;
DO
{
IMPRIMA "DIGITE UN NUMERO"
IF(VALOR>=100 && <=999)
{
IMPRIMA "TIENE 3 DIGITOS"
}
ELSE
{
IF(VALOR>=10)
{
IMPRIMA "TIENE 2 DIGITOS"
}
ELSE
{
IMPRIMA "TIENE 1 DIGITOS"
}
WHILE(VALOR=!0)
}
FIN
DIAGRAMA DE FLUJO (DFD)

No hay que confundir los rombos
de las estructuras condicionales con los de las estructuras repetitivas do
while.
En este problema por lo menos se
carga un valor. Si se carga un valor mayor o igual a 100 se trata de un número
de tres cifras, si es mayor o igual a 10 se trata de un valor de dos dígitos,
en caso contrario se trata de un valor de un dígito. Este bloque se repite
hasta que se ingresa en la variable valor el número 0 con lo que la condición
de la estructura do while retorna falso y sale del bloque repetitivo
finalizando el programa.






No hay comentarios:
Publicar un comentario