| |||
Ayuda con un problema!!! Como creo un arreglo de objetos dentro de otro arreglo de objetos y como lo imprimo los atributos del segundo arreglo de objetos. Última edición por Slowdeathv; 09/10/2009 a las 12:49 |
| |||
Respuesta: Ayuda con un problema!!! Tienes razon, mi intencion es saber como creo un arreglo de objetos dentro de otro arreglo de objetos, o porl o menos si se puede hacer(que segun yo si) pero a la hora de imprimir no me sale. |
| |||
Respuesta: Ayuda con un problema!!! pues hasta aurita, como no pudimos hacer lo del arreglo de objetos dentro de otro arreglo de objetos cambiamos de estratejia y el problema que tenemos aurita es a la hora de compara las calificaciones de los alumnos, se supone que devemos sacar los promedios y seleccionar cual es el mas altos y dar el nombre y la matricula del mismo, pero no se que pasa no sale y no se que esta mal. pero lo estamos checando aver que sale, pero si nos puedes echar la mano con algunas observaciones te lo agradeceria. Este es el cogigoq ue tenemos: public class control { String nombre, matricula,fecha; int semestre,cre; float mat[][]= new float [5][10]; String materias[]=new String[5]; control() { } control(String n, String m, int s,float mt[][]) { int c,c1; nombre = n; matricula = m; semestre = s; for(c=0; c<5; c++) { for(c1=0; c1<10; c1++) { mat[c][c1]=mt[c][c1]; } } }//fin del constructor no nulo control(String matr[]) { int c2; for(c2=0;c2<5; c2++) { materias[c2]=matr[c2]; } }//fin del segundo constructor no nulo void proceso(control v1[], control v2[]) { int ciclo,ciclo2,op=0,c=0,c1=0; Teclado v = new Teclado(); control aux = new control(); for(ciclo=0; ciclo<v1.length;ciclo++) { System.out.println("Escribe el nombre del alumno "+(ciclo+1)); aux.nombre = v.leeString(); System.out.println("Escribe la matricula del alumno "+aux.nombre); aux.matricula = v.leeString(); System.out.println("Escribe el semestre del alumno "+aux.nombre); aux.semestre = v.leeInt(); System.out.println("Escribe las 5 materias que llevas"); for(ciclo2=0;ciclo2<5;ciclo2++) { System.out.println("Materia "+(ciclo2+1)); aux.materias[ciclo2]= v.leeString(); } for(c=0; c<5; c++) { System.out.println("Escribe las 10 calificaciones de "+aux.materias[c]); for(c1=0; c1<10; c1++) { System.out.println("Unidad "+(c1+1)); aux.mat[c][c1] = v.leeFloat(); } } v1[ciclo]= new control(aux.nombre,aux.matricula,aux.semestre,aux. mat); v2[ciclo]=new control(aux.materias); }//fin del for principal }//Fin del metodo void proceso(control g[]) { float promedio=0,aux=0;temp=0; for(int c=0; c<g.length; c++) { for(int c1=0; c1<5; c1++) { for(float sa:g[c].mat[c1]) promedio+=sa; } promedio=promedio/50; }//fin del for System.out.println("Mas alta"+temp); for(int c=0;c<g.length;c++) { for(int c1=0;c1<5;c1++) { for(float sa:g[c].mat[c1]) promedio+=sa; } promedio=promedio/50; System.out.println("el promedio"+ promedio); if(promedio==aux) { System.out.println("El Alumno con mas alta calificacion es: "+g[c].nombre); System.out.println("Con matricula: "+g[c].matricula); System.out.println("\nCon promedio "+aux); } } }//fin del metodo proceso void imprime(control f[],control g[]) { int x,y; for(x=0; x < g.length; x++ ) { System.out.println("El nombre del alumno "+(x+1)+" es: "+g[x].nombre); System.out.println("La matricula del alumno "+g[x].nombre+" es: "+g[x].matricula); System.out.println("El semestre del alumno "+g[x].nombre+" es: "+g[x].semestre); System.out.println("Las materias son:"); for(y=0; y < 5; y++) { System.out.println(f[x].materias[y]); } for(int z=0; z<5;z++) { for(int w=0; w<10; w++) { System.out.println(g[x].mat[z][w]); } } } }//fin del metodo imprime public static void main (String[] args) { Teclado v = new Teclado(); control obj = new control(); System.out.println("Escribe cuantos alumnos vas a capturar"); final int LONGITUD_ARRELO = v.leeInt(); control alumnos [] = new control[LONGITUD_ARRELO]; control datos[] = new control[LONGITUD_ARRELO]; obj.proceso(alumnos, datos); obj.imprime(datos,alumnos); obj.proceso(alumnos); }//fin del main } |
| ||||
Respuesta: Ayuda con un problema!!! hola, encontre un ejercicio de los que dan al inicio de la carrera tal vez esto te pueda ayudar saludos... Cita: Ejercicio 8.2.1.8 Una compañía manufacturera fabrica 10 artículos diferentes y se trabajan tres turnos. Elaborar un algoritmo que permita leer el nombre de cada artículo y la producción que se hizo en cada uno de los tres turnos del día; utilizar un arreglo de una dimensión para leer los nombres de los artículos y un arreglo de dos dimensiones (10 × 3) para leer la producción de los diez artículos (uno en cada renglón) en los tres turnos una columna para cada turno. La idea es leer el nombre del primer artículo y luego la producción hecha en cada uno de los tres turnos, luego procesar el artículo 2, posteriormente el 3 y así sucesivamente. Imprimir el siguiente reporte: Reporte diario de producccion Articulo Turno 1 Turno 2 Turno 3 Tot. Prod. XXXXXXXXXXXXXXX 999 999 999 999 XXXXXXXXXXXXXXX 999 999 999 999 . . . XXXXXXXXXXXXXXX 999 999 999 999 Total 999 999 999 999 Articulo con mayor produccion: XXXXXXXXXXXXXXXXXXXXXX Produccion del articulo mayor: 999 (Primero hágalo usted...después compare la solución) Algoritmo PRODUCCION TURNOS Clase ProduccionTurnos 1. Método principal a. Declaraciones Variables articulos: Arreglo[10] Cadena prod: Arreglo[10][3] Entero r,c,mayorProd,totTurno,totProd,toTotProd: Entero articuloMay: Cadena b. FOR r=0; r<=9; r++ 1. Solicitar articulos[r] 2. Leer articulos[r] 3. FOR c=0; c<=2; c++ a. Solicitar prod[r][c] b. Leer prod[r][c] 4. ENDFOR c. ENDFOR d. Imprimir encabezado e. toTotProd = 0 mayorProd =0 f. FOR r=0; r<=9; r++ 1. Imprimir articulos[r] 2. totProd =0 3. FOR c=0; c<=2; c++ a. Imprimir prod[r][c] b. totProd = totProd + prod[r][c] 4. ENDFOR 5. Imprimir totProd 6. IF totProd > mayorProd THEN a. mayorProd = totProd b. articuloMay = articulos[r] 7. ENDIF 8. toTotProd = toTotProd + totProd g. ENDFOR h. FOR c=0; c<=2; c++ 1. totTurno = 0 2. FOR r=0; r<=9; r++ a. totTurno = totTurno + prod[r][c] 3. ENDFOR 4. Imprimir totTurno i. ENDFOR j. Imprimir toTotProd, articuloMay, mayorProd k. Fin Método principal Fin Clase ProduccionTurnos Fin Explicación: En el Método principal de la Clase ProduccionTurnos, se tienen las acciones: a. Se declaran las variables b. Inicia ciclo FOR desde r=0 hasta 9 1. Solicita articulos[r] 2. Se lee en articulos[r] 3. Inicia ciclo FOR desde c=0 hasta 2 a. Solicita prod[r][c] b. Se lee en prod[r][c] 4. Fin del FOR c. Fin del FOR d. Imprimir encabezado e. Inicia totProd y mayorProd en 0 f. Inicia ciclo FOR desde r=0 hasta 9 1. Imprime articulos[r] 2. Inicia totProd en 0 3. Inicia ciclo FOR desde c=0 hasta 2 a. Imprim prod[r][c] b. Incrementa totProd con prod[r][c] 4. Fin del FOR 5. Imprime totProd 6. Si totProd>mayorProd entonces a. Coloca totProd en mayorProd b. Coloca articulos[r] en articuloMay 7. Fin del IF 8. Incrementa toTotProd con totProd g. Fin del FOR h. Inicia ciclo FOR desde c=0 hasta 2 1. Inicia totTurno en 0 2. Inicia ciclo FOR desde r=0 hasta 9 a. Incrementa totTurno con prod[r][c] 3. Fin del FOR 4. Imprime totTurno i. Fin del FOR j. Imprime toTotProd, articuloMay, mayorProd k. Fin del Método principal Luego se tiene el fin de la clase y el fin del algoritmo.
__________________ -=:[ Lo importante no es saber todo, sino saber buscar ]:=- |