Así, utilizando estructuras de repetición simple y anidada y los demás conceptos aprendidos en este curso básico de algoritmos, diseñaremos programas en Java que permitan resolver problemas que involucren instrucciones repetitivas.
En el tema anterior, vimos como diseñar programas que resuelvan problemas de conteo y acumulación, el cual nos servirá de base para aplicar los conceptos que veremos en este tema de estructuras repetitivas.
¡Comencemos!
¿Qué es una estructura repetitiva?
Las estructuras de repetición o también conocidas como bucles o iterativas, son aquellas estructuras en las que se puede repetir innumerables veces una o más instrucciones. Dicho de otro modo, nos va a permitir repetir una línea de código muchas veces. De esta manera, a las instrucciones a repetir se le conoce com+o el cuerpo del bucle y el hecho de repetir dichas instrucciones se le denomina iteración.
A continuación, conoceremos las estructuras while, do while y for del lenguaje Java.
La estructura while
La estructura while (mientras) permite repetir una acción, la cual puede ser una acción simple (una sola acción) o una acción compuesta (bloque de acciones encerradas entre llaves) siempre y cuando sea verdadera una determinada condición. En la siguiente imagen se puede ver el diagrama de flujo de la estructura. Recuerda que primero verifica la condición y después ejecuta la acción.
Diagrama de flujo de la estructura de repetición while |
Código y pseudocódigo de la estructura de repetición while |
La estructura do while
La estructura do while (hacer… mientras) permite repetir una acción, la cual puede ser una acción simple (es decir una sola acción) o una acción compuesta (bloque de acciones encerradas entre llaves), para lo cual primero ejecuta la acción y después verifica la condición. En la siguiente imagen se puede ver el diagrama de flujo de la estructura. Recuerda que primero se ejecuta la acción y después se verifica la condición por lo que siempre se ejecutará por lo menos una vez.
Diagrama de flujo de la estructura de repetición while |
Código y pseudocódigo de la estructura de repetición do while |
La estructura for
La estructura de repetición for contempla todos los elementos de la repetición controlada por contador (repetición en la que se conoce el número de veces que se repetirá el cuerpo del bucle) al incluir un contador como parte de la propia estructura.
Diagrama de flujo de la estructura de repetición for |
Código y pseudocódigo de la estructura de repetición for |
El contador del for puede ser declarado dentro del mismo for, en cuyo caso se considera como variable local al for, no siendo accesible fuera de él. De esta manera, en un mismo método dos o más for, no anidados, pueden declarar contadores con el mismo nombre. Cada contador existe dentro del for en el que fue declarado.
Número aleatorios enteros
Para generar un número aleatorio entero en el intervalo de min a max se usa la siguiente expresión:
n =(int)((max-min+1)*Math.random() + min);
A continuación, aplicaremos los conceptos vistos mediante un par de ejemplos y al finalizar les dejare un link para que puedan descargar un pack de ejercicios resueltos y puedan practicar en sus casas.
Problemas
Problema 1
Diseñe un programa que imprima la siguiente serie usando while, do while y for
1, 2, 3, ..., n
Programa
Usando while
Usando do while
Usando for
Problema 2
Diseñe un programa que imprima una tabla de valores de x e y, para valores de x en el intervalo de 0 a 5 cada 0.25, siendo:
Programa
Usando while
Usando do while
Usando for
Problema 3
Diseñe un programa que imprima la siguiente serie y halle su suma:
1/2 + 3/5 + 5/8 + 7/11 + ... (100 términos)
Programa
Usando while
Usando do while
Usando for
Problema 4
Diseñe un programa que genere 6000 números aleatorios en el intervalo de 1000 a 9999 y determine cuántos números están en cada uno de los siguientes intervalos: 1000 a 1999, 2000 a 2999, 3000 a 3999, ..., 8000 a 8999, 9000 a 9999.
Programa
Usando for
Problema 5
Diseñe un programa que genere 6000 números aleatorios en el intervalo de 1000 a 9999 y determine cuántos números están en cada uno de los siguientes intervalos: 1000 a 1999, 2000 a 2999, 3000 a 3999, ..., 8000 a 8999, 9000 a 9999.
Programa
Código fuente
Problema 6
Diseñe un programa que genere números aleatorios en el intervalo de -1000 a 1000 hasta obtener un número par menor que 500 pero mayor que -500. ¿Cuántos números fueron necesarios generar y cuáles fueron el mayor y el menor número generados?
Programa
Código fuente
Problema 7
Un método para obtener el cociente y el resto de dos números enteros es por restas sucesivas. El método consiste en restar sucesivamente el divisor del dividendo hasta obtener un resultado menor que el divisor, que será el resto de la división; el número de restas efectuadas será el cociente. Diseñe un algoritmo que determine el cociente y el resto de dos números enteros.
Programa
Código fuente
Problema 8
Diseñe un programa que lea un número entero positivo n mayor que 10 e imprima todos los puntos del plano cartesiano que cumplan con la condición: x + y < n.
Programa
Código fuente
Problema 9
Imprime un rectángulo de altura n y ancho 2n relleno de asteriscos. Así, para n igual a 5, el programa deberá imprimir un rectángulo de 10 asteriscos de ancho por 5 asteriscos de alto como el que se muestra a continuación:
**********
**********
**********
**********
**********
Programa
Código fuente
Problema 10
Diseñe un programa que muestre por pantalla todos los números de 4 cifras que cumplen con la condición de que la suma de las cifras pares es igual a la suma de las cifras impares. Muestre también la cantidad de números encontrados.
Programa
Código fuente
Problema 11
Diseñe un algoritmo que determine la cantidad de divisores pares de un número natural.
Programa
Código fuente
Problema 12
Diseñe un algoritmo que genere 200 números aleatorios en el intervalo de 100 a 999 y determine la cantidad de números capicúas generados. Un número es capicúa si lee igual de derecha a izquierda que de derecha a izquierda. Así, por ejemplo, 343 es capícua; pero, 367 no lo es.
Programa
Código fuente
Problema 13
for que imprime la siguiente tabla:
10 30
11 29
12 28
13 27
14 26
15 25
16 24
17 23
18 22
19 21
20 20
Código Fuente
Descargar ejercicios resueltos
Descargar archivo
Puedes completar lo aprendido asistiendo el material en video.
Clic aquí
¡Acabas de ver el tema número 24 del curso de Introducción a la Algoritmia y a la programación en Java! ¡Fácil verdad!
Ir al índice
Esto me ayudo mucho para mi tarea, pero algunas imágenes no se ven, como las de diagrama de flujo y pseudocodigos, aun así muchas gracias :D
ResponderBorrarTengo una duda con el problema 10, al momento de ejecutar me sale que la cantidad de numeros es 0 y los numeros de 4 cifras de forma aleatoria tampoco aparece
ResponderBorrar