Hola a todos, hoy os dejo una serie de ejercicios de Java para practicar todo aquello que hemos explicado en anteriores posts, haciendo hincapié en los bucles anidados de Java.
Todos los ejercicios que proponemos están resueltos en este mismo post, intenta hacerlo por ti mismo y si te quedas atascado puedes mirar la solución. Recuerda, que no tiene por que estar igual tu solución con la del post, el objetivo es que aprendas no que me copies la solución.
El nombre de la aplicación es de tu elección. Crea un proyecto en Java por ejercicio. Colocare en las soluciones algunos comentarios para que sean más fácilmente entendible.
Te recomiendo que uses mensajes de trazas, donde te sean necesarios. Si tienes problemas también puedes usar el depurador.
Aquí tienes todos los posts relacionados con Java:
También incluyo los posts relacionados con eclipse.
Si tienes alguna duda, recuerda que puedes consultarnos escribiendo un comentario en este post o enviándonos un e-mail a administrador@discoduroderoer.es
1) Crea una aplicación que dibuje una escalera de asteriscos. Nosotros le pasamos la altura de la escalera por teclado. Este es un ejemplo si insertaras un 5 de altura:

Spoiler Inside |
SelectShow> |
import javax.swing.JOptionPane;
public class EscaleraApp {
public static void main(String[] args) {
String texto=JOptionPane.showInputDialog("Escribe una altura");
int altura=Integer.parseInt(texto);
dibujaEscalera(altura);
}
public static void dibujaEscalera (int altura){
for (int numeroasteriscos=1;numeroasteriscos<=altura;numeroasteriscos++){
//Este bucle pinta los asteriscos en cada fila
for(int i=0;i<numeroasteriscos;i++){
System.out.print("*");
}
//Saltamos de linea
System.out.println("");
}
}
}
|
2) Crea una aplicación que dibuje una escalera inversa de asteriscos. Nosotros le pasamos la altura de la escalera inversa por teclado. Este es un ejemplo:

Spoiler Inside |
SelectShow> |
import javax.swing.JOptionPane;
public class EscaleraInversaApp {
public static void main(String[] args) {
String texto=JOptionPane.showInputDialog("Escribe una altura");
int altura=Integer.parseInt(texto);
dibujaEscaleraInversa(altura);
}
public static void dibujaEscaleraInversa (int altura){
for (int numeroasteriscos=altura;numeroasteriscos>0;numeroasteriscos--){
//Este bucle pinta los asteriscos en cada fila
for(int i=numeroasteriscos;i>0;i--){
System.out.print("*");
}
//Saltamos de linea
System.out.println("");
}
}
}
|
3) Crea una aplicación que dibuje una escalera de números, siendo cada linea un numero. Nosotros le pasamos la altura por teclado.
Spoiler Inside |
SelectShow> |
import javax.swing.JOptionPane;
public class EscaleraNumerosApp {
public static void main(String[] args) {
String texto=JOptionPane.showInputDialog("Escribe una altura");
int altura=Integer.parseInt(texto);
dibujaEscaleraNumeros(altura);
}
public static void dibujaEscaleraNumeros (int altura){
for (int numero=1;numero<=altura;numero++){
//Este bucle muestra los numeros en cada fila
for(int i=0;i<numero;i++){
System.out.print(numero);
}
//Saltamos de linea
System.out.println("");
}
}
}
|
4) Crea una aplicación que dibuje una escalera de números, siendo cada linea números empezando en uno y acabando en el numero de la linea. Este es un ejemplo, si introducimos un 5 como altura:

Spoiler Inside |
SelectShow> |
import javax.swing.JOptionPane;public class EscaleraNumerosApp {
public static void main(String[] args) {
String texto=JOptionPane.showInputDialog("Escribe una altura");
int altura=Integer.parseInt(texto);
dibujaEscaleraNumeros(altura);
}
public static void dibujaEscaleraNumeros (int altura){
for (int numero=1;numero<=altura;numero++){
//Este bucle muestra los numeros en cada fila
for(int i=1;i<=numero;i++){
System.out.print(i);
}
//Saltamos de linea
System.out.println("");
}
}
}
|
5) Crea una aplicación que dibuje una pirámide de asteriscos. Nosotros le pasamos la altura de la pirámide por teclado. Este es un ejemplo, si introducimos 5 de altura:

Spoiler Inside |
SelectShow> |
import javax.swing.JOptionPane;
public class PiramideApp {
public static void main(String[] args) {
String texto=JOptionPane.showInputDialog("Introduce una altura");
int altura=Integer.parseInt(texto);
piramideNormal(altura);
}
public static void piramideNormal (int altura){
for (int numeroespacios=altura, numeroasteriscos=1; numeroasteriscos<=(altura*2)-1;numeroespacios--, numeroasteriscos+=2){
//Espacios
for (int i=0; i<numeroespacios;i++){
System.out.print(" ");
}
//Asteriscos
for (int j=numeroasteriscos; j!=0;j--){
System.out.print("*");
}
System.out.println("");
}
}
}
|
6) Crea una aplicación que dibuje una pirámide invertida de asteriscos. Nosotros le pasamos la altura de la pirámide por teclado. Este es un ejemplo:

Spoiler Inside |
SelectShow> |
import javax.swing.JOptionPane;
public class PiramideApp {
public static void main(String[] args) {
String texto=JOptionPane.showInputDialog("Introduce una altura");
int altura=Integer.parseInt(texto);
piramideInvertida(altura);
}
public static void piramideInvertida(int altura){
for (int numeroespacios=0, numeroasteriscos=(altura*2)-1; numeroasteriscos>0;numeroespacios++, numeroasteriscos-=2){
for (int i=0; i<numeroespacios;i++){
System.out.print(" ");
}
for (int j=numeroasteriscos; j!=0;j--){
System.out.print("*");
}
System.out.println("");
}
}
}
|
Espero que os sea de ayuda. Si teneis dudas, preguntad. Estamos para ayudarte.
Bucles anidados, hacen falta lecciones y lecciones de informática para entender eso.
TRAFFIC CLUB, Fútbol y Tenis, más que un juego
Hola, muchas gracias por los tutoriales, y sobretodo gracias por los ejercicios ya que cuesta encontrar un sitio donde al final de cada lección pongan los ejercicios correspondientes.
En el ejercicio 3 me parece que la intención era que la escalera quedase de este modo
1
22
333
4444
55555 Pero en el ejemplo pone lo que pide el ejercicio 4.
Gracias
por este aporte tan importante.
Escribir un programa para imprimir los números enteros positivos entre 1 y «n», en orden sucesivo por renglón, según lo siguiente:
A).- En el primer renglón va solamente 1
B).- A partir del segundo renglón se escribe un número más que en el renglón anterior.
Por ejemplo
Cuantos numero se van a imprimir?
18
Respuesta del programa
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18
yo tengo un pregunta, es de ciclos, supone que debe contar del 1 al 100, utilizando un WHILE, y que imprima toda la serie en un mensaje de dialogo (JOptionPane.showmessagedialog). y otro es que usando un do while, pida una contraseña y solo de 3 oportunidades, espero me ayuden, gracias
nely
/*
Contraseña
*/
#include
#include
using namespace std;
int main () {
char contrasena[10];
char contrasena2[10];
int intentos=3,ret;
cout << "Coloque un valor para la contraseña: ";
cin.getline(contrasena,10,'\n');
cout << "Se ha guardado la variable correctamente"<< endl;
do {
cout < 1){
cout << "La contraseñ es incorrecta, pruebe denuevo: " << endl;
cout << "Numero de intentos: " << intentos-1 <= 1);
if (ret==0)
cout << "Te has autenticado" << endl;
else
cout << "Ha sobrepasado el numero de intentos" << endl;
return 0;
}
buenas me podrian ayudar esque necesito 1 asi similar pero que quede mostrando asi
1
12
123
1234
123
12
1
gracias por la ayuda
que tal aqui te dejo el codigo para la duda que tenias.
public class Escalera {
public static void main(String[] args) {
int altura = 4;
for (int i = 1; i <= altura; i++) {
for (int j = 1; j = 1; i–) {
for (int j = 1; j <= i; j++) {
System.out.print(j);
}
System.out.println(" ");
}
}
}
Aquí tienes la solución a tu duda:
int altura=10;
boolean activado=false;
int contadorInverso=0;
for (int i = 0; contadorInversoi && !activado){
i++;
}
else{
i–;
activado=true;
contadorInverso++;
}
for (int j = 0; j < i;j++) {
System.out.print(j);
}
System.out.println("");
}