Autor Tema: tabla en java con valores numéricos usando interface iterable y método Iterator  (Leído 3829 veces)

javierXD

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Necesito ayuda para que mi programa salga en este orden como esta imagen, mi problema es que no se como ordenar el contenido de las multiplicaciones como la imagen



Alguna idea??  :-\
Código: [Seleccionar]
import java.util.*;
public class Ejercicio1 {
public static void main(String[] args) {
for(int i=5;i<=25;i+=5){
System.out.print("\t"+i);
}
System.out.print("\n");
for(int j=11;j<=20;j++){
System.out.println(j);
}
for(int i=5;i<=25;i+=5){
for(int j=11;j<=20;j++){
int sueldo=i*j*19;
System.out.print(sueldo);

}
}


}


}
« Última modificación: 23 de Mayo 2016, 17:30 por Alex Rodríguez »

ESOJ

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 143
    • Ver Perfil
Re:ayuda en tabla en java
« Respuesta #1 en: 21 de Mayo 2016, 06:45 »
Hola.
Una posible solución sería usar la interfaz iterable y el método Iterator.Puedes ver más información sobre esto en la entrega CU00915C de Curso Lenguaje de programación Java nivel avanzado I en ésta misma página.

Una forma de llegar al resultado que planteabas sería:

Código: [Seleccionar]
import java.util.Iterator;

public class Programa1 {
    public static void main(String arg[]) {
       
        Numeros p1 = new Numeros(1045,2090,3135,4180,5225);
        Numeros p2 = new Numeros(1140,2280,3420,4560,5700);
        Numeros p3 = new Numeros(1235,2470,3705,4940,6175);
        Numeros p4 = new Numeros(1330,2660,3990,5320,6650);
        Numeros p5 = new Numeros(1425,2850,4275,5700,7125);
        Numeros[] pp = {p1,p2,p3,p4,p5};
        ConjuntoNumeros cp = new ConjuntoNumeros(pp);
        Iterator<Numeros> it1 = cp.iterator();
        System.out.println("          5"+"      10"+"      15"+"      20"+"      25"+"\n");
       
        while (it1.hasNext()){for (int i=11;i<16;i++){
            Numeros tmp = it1.next();
           
            System.out.println(i+"      "+tmp.num1+"    "+tmp.num2+"    "+tmp.num3+"    "+tmp.num4+"    "+tmp.num5);
        }
        }
    }
}
Código: [Seleccionar]
import java.util.Iterator;

public class ConjuntoNumeros implements Iterable<Numeros>{
    public Numeros[] conjuntoNumeros; // Atributo de la clase
    public ConjuntoNumeros (Numeros [] p) { // Constructor de la clase
        conjuntoNumeros = p; 
    }

    public Iterator<Numeros> iterator() {    Iterator it = new MiIteratorNumeros(conjuntoNumeros);
        return it;         }
}
Código: [Seleccionar]
public class Numeros{       
    public int num1,num2,num3,num4,num5;
   
    public Numeros ( int num1,int num2, int num3,int num4,int num5) {
        this.num1 = num1;  this.num2 =num2;
        this.num3 = num3;  this.num4 =num4;
        this.num5 = num5; 
    }
}
Código: [Seleccionar]
import java.util.Iterator;
public class MiIteratorNumeros implements Iterator<Numeros>   {
        public int posicionarray;
        Numeros[] conjuntoNumeros;
        public MiIteratorNumeros(Numeros[] conjuntoNumeros)   {
            this.conjuntoNumeros=conjuntoNumeros;
            posicionarray = 0; }

        public boolean hasNext() {
            boolean result;
            if (posicionarray < conjuntoNumeros.length) { result = true; }
            else { result = false; }
            return result;
        }

        public Numeros next() {
            posicionarray++;
            return conjuntoNumeros[posicionarray-1];
        }

        public void remove(){
            throw new UnsupportedOperationException("No soportado.");
        }
    }

Espero te sea de utilidad.
Un saludo

ESOJ

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 143
    • Ver Perfil
Re:ayuda en tabla en java
« Respuesta #2 en: 21 de Mayo 2016, 07:18 »
Hola otra vez.

Para incluir tu código,modificaríamos la clase Programa1 por:

Código: [Seleccionar]
import java.util.Iterator;

public class Programa1 {
    public static void main(String arg[]) {
        int[] sueldos=new int[26];
        int k=1;
        for(int i=5;i<=25;i+=5){
            for(int j=11;j<=15;j++){
                int sueldo=i*j*19;
                sueldos[k]=sueldo;k++;
            }
        }
        Numeros p1 = new Numeros(sueldos[1],sueldos[6],sueldos[11],sueldos[16],sueldos[21]);
        Numeros p2 = new Numeros(sueldos[2],sueldos[7],sueldos[12],sueldos[17],sueldos[22]);
        Numeros p3 = new Numeros(sueldos[3],sueldos[8],sueldos[13],sueldos[18],sueldos[23]);
        Numeros p4 = new Numeros(sueldos[4],sueldos[9],sueldos[14],sueldos[19],sueldos[24]);
        Numeros p5 = new Numeros(sueldos[5],sueldos[10],sueldos[15],sueldos[20],sueldos[25]);
        Numeros[] pp = {p1,p2,p3,p4,p5};
        ConjuntoNumeros cp = new ConjuntoNumeros(pp);
        Iterator<Numeros> it1 = cp.iterator();
        System.out.println("          5"+"      10"+"      15"+"      20"+"      25"+"\n");

        while (it1.hasNext()){for (int i=11;i<16;i++){
                Numeros tmp = it1.next();

                System.out.println(i+"      "+tmp.num1+"    "+tmp.num2+"    "+tmp.num3+"    "+tmp.num4+"    "+tmp.num5);
            }
        }
    }
}

javierXD

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
la verdad men he leido tu codigo es muy largo,, y se me ocurrio un artificio para conseguir la estetica que tanto buscaba,,
Código: [Seleccionar]
import java.util.*;
public class prueba {
public static void main(String[] args) {
int i=0;
do{
i+=5;
System.out.print("\t"+i);
}
while(i<25);
System.out.println();
for(int x=5;x<=25;x+=5){
for(int y=11;y<=20;y++){
int sueldo=x*y*19;
if(x==5)
System.out.println(sueldo/(x*19)+"\t"+sueldo+"\t"+sueldo*2+"\t"+sueldo*3+"\t"+sueldo*4+"\t"+sueldo*5);

}

}
}
}

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".