Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Meta en 13 Febrero 2011, 08:14 am



Título: Resolver este problema
Publicado por: Meta en 13 Febrero 2011, 08:14 am
Buenas:

Partiendo de este código que lo más probable no esté bien diseñado. Estoy haciendo pruebas solo con for y while. Nada de If else o otra instrucción.

Como resultado quiero que de de esta manera.
Código
  1. E3E3E3E3E3
  2. E3E3E3E3E3
  3. E3E3E3E3E3
  4. E3E3E3E3E3
  5. E3E3E3E3E3
  6. E3E3E3E3E3

por ahora me sale solo de esta otra y se queda ahí.
Código
  1. E3E3E3E3E3
  2.  
  3.  
  4.  
  5.  
  6.  

Código
  1. String igual = "";
  2.        String menos = "-";
  3.        int vueltas = 0;
  4.  
  5.        for (int v = 0; v < 6; v++){
  6.        while (vueltas < 5){
  7.        for (int i= 0; i < 1; i++){
  8.            System.out.print(igual);
  9.                for (int j= 0; j < 1; j++){
  10.                    System.out.print(menos);
  11.            }
  12.        }
  13.            vueltas++; // Incremente a uno en la variable.
  14.        }
  15.        System.out.println(); // Salto de línea.
  16.       }

Saludo.


Título: Re: Resolver este problema
Publicado por: jbndg en 13 Febrero 2011, 12:00 pm
Hola, no se si esto te va a servir, pero asi es como lo haría yo:
Código:
String a="E3";

int pinta=0;
while(pinta<6)
{
for(int j=0; j<5; j++)
{
System.out.print(a);

}
pinta++;
System.out.println();

}


Te digo que yo estoy inclinándome en esto pero bueno si te puede servir... perfecto. (Tampoco sé si esto exactamente lo que buscas jaja )

Saludos.


Título: Re: Resolver este problema
Publicado por: Meta en 13 Febrero 2011, 16:17 pm
Guiándome en tu código saqué algo similar, pero da problemas.

Código
  1. String igual = "=";
  2.            String menos = "-";
  3.  
  4.  
  5.            for (int v = 0; v < 6; v++)
  6.            {
  7.                int vueltas = 0;
  8.  
  9.                while (vueltas < 5)
  10.                {
  11.                    System.out.print("%d%d"), igual, menos);
  12.                    vueltas++;
  13.                }
  14.  
  15.                    System.out.println(); // Salto de línea.
  16.            }


Título: Re: Resolver este problema
Publicado por: JungleBoogie en 13 Febrero 2011, 16:31 pm
Código
  1. System.out.print("%d%d"), igual, menos);
  2.  

Esto no es C.

Código:
 System.out.print(igual + menos); 


Título: Re: Resolver este problema
Publicado por: Meta en 13 Febrero 2011, 18:39 pm
Me sigue dando error, seala en print, aunque pongas println sigue igual.


Título: Re: Resolver este problema
Publicado por: JungleBoogie en 13 Febrero 2011, 18:52 pm
Pues ese mismo codigo que has puesto, cambiando el print que tenias por el que he puesto, me funciona bien:

Main.java
Código:
public class Main {
    public static void main(String[] args) {
        String igual = "=";
        String menos = "-";

        for (int v = 0; v < 6; v++)
        {
            int vueltas = 0;
            while (vueltas < 5)
            {
                System.out.print(igual+ menos);
                vueltas++;
            }
            System.out.println(); // Salto de línea.
        }
    }
}

Output:
Código:
run:
=-=-=-=-=-
=-=-=-=-=-
=-=-=-=-=-
=-=-=-=-=-
=-=-=-=-=-
=-=-=-=-=-
BUILD SUCCESSFUL (total time: 0 seconds)


Título: Re: Resolver este problema
Publicado por: Meta en 13 Febrero 2011, 19:09 pm
Algo no me va.

(http://www.subeimagenes.com/img/java-16869.png)

Saludo.


Título: Re: Resolver este problema
Publicado por: JungleBoogie en 13 Febrero 2011, 20:24 pm
A ver, que esto no es C. Incluso en C estaria mal porke %d es para imprimir enteros, no Strings.

En Java:
MAL: System.out.print("%d%d",igual,menos);
BIEN: System.out.print(igual + menos);


Título: Re: Resolver este problema
Publicado por: Meta en 13 Febrero 2011, 22:55 pm
Perdón, me equivoqué de imagen, es este el de abajo. Tal como dices, tampoco funcina.

(http://www.subeimagenes.com/img/java-16884.png)

Saludo.


Título: Re: Resolver este problema
Publicado por: JungleBoogie en 13 Febrero 2011, 22:57 pm
:facepalm:

No es un coma (,) sino un plus (+)


Título: Re: Resolver este problema
Publicado por: Meta en 13 Febrero 2011, 23:33 pm
Por fin,. Que despistado soy. Muchísimas gracias. El Java me cuesta al aprenderlo a palo seco.

Por cierto, haciendo esta prueba:
Código:
          o
          oo
          ooo
          oooo
          ooooo
          oooooo
          ooooooo
          oooooooo
          ooooooooo
          oooooooooo

Código
  1. String letra= "o ";
  2.  
  3.            for (int i = 0; i < 10; i++){
  4.                System.out.print(letra);
  5.                letra +=  "o ";
  6.            }

No me sale. Se que es un ejemplo tonto, pero quiero saberlo y entenderlo. Supuestamente cuanta hasta menor de 10, incremente una o por cada salto de línea y no me sale.


Título: Re: Resolver este problema
Publicado por: leogtz en 14 Febrero 2011, 00:21 am
Código
  1. for(int i = 0; i <= 10; i++)
  2. {
  3. for(int j = 0; j < i; j++)
  4. System.out.print("o");
  5. System.out.println();
  6.  
  7. }


Título: Re: Resolver este problema
Publicado por: Meta en 14 Febrero 2011, 00:34 am
Gracias, se me adelantaron.
Lo hice así:
Código
  1. String letra= "o ";
  2.  
  3.            for (int i = 10; i > 0; i--){
  4.                System.out.println(letra);
  5.                letra +=  "o ";
  6.            }

Queriendo hacer el triángulo al revés, pensé que hay que cambiar el signo + al - y descubrí que no es así.

Código
  1. String la_x = "xxxxxxxxxx ";
  2.  
  3.            for (int i = 0; i < 10; i++){
  4.                System.out.println(la_x);
  5.  
  6.                la_x = la_x.Substring(1, la_x.Length - 1);
  7.  
  8.            }


Título: Re: Resolver este problema
Publicado por: leogtz en 14 Febrero 2011, 00:47 am
Código
  1. String la_x = "xxxxxxxxxx ";
  2.  
  3.            for (int i = 0; i < 10; i++){
  4.                System.out.println(la_x);
  5.  
  6.                la_x = la_x.substring(1, la_x.length()
  7.              );
  8.  
  9.            }

Código
  1. for(int i = 10; i >= 0; i--)
  2.        {
  3.            for(int j = 0; j < i; j++)
  4.                System.out.print('*');
  5.            System.out.println();
  6.        }