08 enero, 2019

Estructuras repetitivas del lenguaje Java


Muchas veces al diseñar un programa se requiere repetir un conjunto de instrucciones u procesos para mostrar algún resultado u obtenerlos de algún lugar, ya sea leyendo información de algún archivo, una tabla de base de datos, en fin, cualquier proceso en la que la solución requiera una iteración.

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.


Estos posts te servirán tanto si estás empezando de cero en el mundo de la programación, si eres estudiante de primer año y necesitas reforzar algunos temas, o si eres un curioso que le entró la duda y las ganas de aprender a programar. Sea el motivo que fuese por lo que estás aquí, te invito a seguir esta serie de publicaciones que estaré realizando, en donde aprenderás con los temas que te vaya enseñando lo básico de la programación para que puedas realizar tú mismo tus propios programas.

¡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
¡Qué pases un buen día!

2 comentarios:

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

    ResponderBorrar
  2. Tengo 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