Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: javierXD en 20 de Mayo 2016, 09:41

Título: tabla en java con valores numéricos usando interface iterable y método Iterator
Publicado por: javierXD en 20 de Mayo 2016, 09:41
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

(http://i.imgur.com/nRRznoS.jpg)

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);

}
}


}


}
Título: Re:ayuda en tabla en java
Publicado por: ESOJ 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
Título: Re:ayuda en tabla en java
Publicado por: ESOJ 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);
            }
        }
    }
}
Título: Re:tabla en java con valores numéricos usando interface iterable y método Iterator
Publicado por: javierXD en 27 de Mayo 2016, 07:28
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);

}

}
}
}