Ciclos

Publicado por Administrador en Textos

Una instrucción de repetición (también llamada ciclo), permite al programador especificar que un programa debe repetir una acción mientras cierta condición sea verdadera, un ejemplo en seudocódigo seria el siguiente:

Mientras existan más articulos en mi lista de compras
Comprar el siguiente articulo y quitarlo de mi lista




En este código podemos apreciar la estructura de un ciclo while donde el ciclo se ejcutara mientras x sea menor a 100. Lo que hace este codigo es multiplicar la variable x por 3 mientras x sea menor a 100.
Estas serian las operaciones que se ejecutarian:

1.- 3 * 3 2.- 9 * 3 3.- 27 * 3 etc...



Este ciclo se ejecutara mientras la variable x sea menor a 100, dentro del ciclo se actualiza la variable pidiendo otro valor mediante el cuadro de mensaje, con esto tenemos que el ciclo seguira indefinidamente mientras el valor que se introduzca sea menor a 100, si por ejemplo introdujeras un 101, el ciclo terminaria, y despues se imprimira el numero de veces que se repitio el ciclo. Posteriormente en otra clase se mostrara como crear un menu mediante un ciclo similar y con el cuadro de mensaje usado.



Este ciclo while, esta haciendo uso de lo que se le llama un contador, un contador es cualquier variable que nos da la grecuencia de ejecuciones de algun ciclo u operaciones de cualquier tipo. Aqui vemos que el ciclo comienza en 1 y se ejecutara mientras el contador sea menor o igual a 10, dentro del ciclo vemos que se esta haciendo la impresion del valor que tiene la variable contador, inmediatamente despues vemos que se esta haciendo el aumento del contador, se esta haciendo un aumento mediante ++contador; que seria lo mismo que poner contador=contador+1; Cuando los signos ++ se encuantran antes de la variable, significa que primero se hace el aumento, cuando los lleva despues "contador++" es cuando primeros se usa la variable y despues se hace el aumento, por ejemplo si se hace el siguiente codigo:

int x=5,y=7,a;
a=x + y++;
System.out.print(a);

la impresion nos daria como resultado un 12 ya que primero hace la operacion de las variables y despues el aumento de y, por lo tanto, despues de hacer la suma, y valdra 8, en cambio, si se hace el siguiente codigo:

int x=5,y=7,a;
a=x + ++y;
System.out.print(a);

en este caso la impresion seria 13 ya que primero hace el aumento de y y despues hace la suma.

Ciclo for

Es el turno de mi ciclo favorito y el que uso con mas frecuencia, el ciclo for.



En etse codigo podemos ver como es la sentencia de un ciclo for. Dentro del paretesis se encuentran tres partes esenciales de este ciclo, la primer parte, donde vemos la declaracion de una variable, esto se llama inicializar variable (este ciclo hace los mismo que el ciclo while anterior), despues vemos la condicion, que nos dice cuando se seguira reptitiendo el ciclo, en la tercer parte se coloca lo que se llama el aumento o decremeto de la variable, segun sea el caso. Despues del ciclo vemos que se hace la impresion de la variable contador, este ciclo se repetira 10 veces y la variable contador ira en aumento. Notese que se aplica contador++ ya que queremos que se haga el aumento despues de usar la variable, por ejemplo, la primera vez que se ejecuta el ciclo queremos que conserve el valor de 1, y despues hace el aumento para que la siguiente ejecucion del ciclo valga 2, y asi consecutivamente.



Aqui vemos el caso contrario donde se presenta un decremento de la variable, notese como cambia lo condición y analizela.



Este es una aplicacion del ciclo for, la suma de los primeros 10 numeros. Notese que se usa el codigo suma+=i; esto es similar a usar suma=suma+i;

Ahora veremos como aplicar el ciclo a diferentes problemas como seria "Mostrar los numeros primos del 1 al 100". Número primo



Podemos ver que se encuentra un ciclo dentro de otro, esto es un anidamiento y cuando se aplica no se deben usar las mismas variables porque se alterarian los ciclos y pueden tener comportamientos inesperados.
el primer ciclo es para recorrer los números del 1 al 100, el segundo es un ciclo para contas el numero de veces que cada numero representado por i es divisible entre todos los numeros menores que el, notese que solo se checan los residuos de las divisiones hasta la mitad del numero a revisar, ya que es logico que no nos dara una division entera de los numeros mayores a su mitad, por ejemplo:
10/6 10/7 10/8 10/9 y obviamente un numero entre sis mismo nos da 1, por eso solo se checan hasta la mitad, y si solo se encontro un numero divisible entre el numero deseado, entonces es un primo, ya que solo nos dio division entera con el 1. Notese que antes de que se inicia el segundo ciclo, la variable cont se inicializa de nuevo, para contar de nuevo las divisiones enteras del siguiente numero.



Este codigo es para encontras los numeros pares del 1 al 100.



Este codigo es para encontras los numeros impares del 1 al 100. La impresión dice "par", pero es un errorcito, solo basta entender el codigo pra darse cuenta.




La tabla del 5.

Es importante que se entienda el anidamiento de ciclos, con este codigo pueden ver como se realiza un programa para crear las tablas de multiplicar.



Las tablas del 1 al 10.



El ciclo do while, tiene una estructura muy peculiar, que permite la primera vez se ejecute lo que esta dentro sin importar la condición, hasta la segunda vez, el ciclo hace la condicionante, pero la primera vez no.

Notas: Recuerda que cuando, despues de un if,for,while,etc. va solo una linea de codigo, no es necesario poner llaves, pero sí van mas lineas de codigo, éstas son necesarias. No se ponen punto y coma despues de los ciclos ni del if,else.

Para descargar el codigo solucion hay que ser un usuario registrado. Registrar o Ingresar

comentarios



Para dejar un comentario hay que ser un usuario registrado. Registrar o Ingresar