Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado 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?? :-\
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);
}
}
}
}
-
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:
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);
}
}
}
}
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; }
}
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;
}
}
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
-
Hola otra vez.
Para incluir tu código,modificaríamos la clase Programa1 por:
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);
}
}
}
}
-
la verdad men he leido tu codigo es muy largo,, y se me ocurrio un artificio para conseguir la estetica que tanto buscaba,,
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);
}
}
}
}