Java - Almacenar valores en una matriz mas grande

 
Vista:
sin imagen de perfil
Val: 10
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Almacenar valores en una matriz mas grande

Publicado por Juan (5 intervenciones) el 10/04/2018 06:18:19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Scanner;
public class Principal {
 
	public static void main(String[] args) {
		Scanner teclado = new Scanner (System.in);
		int F1, C1;
		System.out.println("1");
		F1 = teclado.nextInt();
		System.out.println("2");
		C1 = teclado.nextInt();
		Calculo proceso = new Calculo();
		proceso.llenado(F1, C1);
		proceso.imprimir();
	}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import java.util.Scanner;
public class Calculo {
	Scanner teclado = new Scanner (System.in);
	int Matriz1[][], Matriz2[][];
	int i, j;
	int F2, C2;
	public void llenado(int F1, int C1) {
		Matriz1 = new int[F1][C1];
		for(i = 0; i < Matriz1.length; i ++) {
			for(j = 0; j < Matriz1[i].length; j ++) {
				System.out.println("Digite");
				Matriz1[i][j] = teclado.nextInt();
			}
		}
		F2 = F1 + 2;
		C2 = C2 + 2;
		Matriz2 =  new int[F2][C2];
		/*for(i = 0; i < Matriz2.length; i ++) {
			for(j = 0; j < Matriz2[i].length; j ++) {
				if(i == 1 && j == 1) {
					Matriz2[i][j] = Matriz1[0][0];
				}else {
					if(i == 1 && j == 2) {
						Matriz2[i][j] = Matriz1[0][1];
					}else {
						if(i == 2 && j == 1) {
							Matriz2[i][j] = Matriz1[1][0];
						}else {
							if(i == 2 && j == 2) {
								Matriz2[i][j] = Matriz1[1][1];
							}
						}
					}
				}
			}
		}*/
		for(i = 1; i <= F1; i ++) {
			for(int b = 0; b < C1; b ++) {
				for(j = 1; j <= C1; j ++) {
					for(int a = 0; a < C1; a ++) {
						Matriz2[i][j] = Matriz1[a][b];
					}
				}
			}
		}
	}
	public void imprimir() {
		for(i = 0; i < Matriz2.length; i ++) {
			for(j = 0; j < Matriz2[i].length; j ++) {
				/*if(i != 0 && j != 0 || i != Matriz2.length && j != Matriz2[i].length ) {
					
				}*/
				System.out.printf("%d \t", Matriz2[i][j]);
			}
			System.out.println("");
		}
	}
}
Sin-titulo

Muy buenas, necesito que una matriz mas grande me contenga en el centro los valores de una matriz mas pequeña.
El codigo esta modificado.
Tome de referencia asignando valores de una matriz 2x2 y pasarla a una 4x4
los valores de esa matriz 2x2 me queden centrados en la matriz 4x4.
Pero necesito que se puede hacer con cualquier tamaño de matriz.
Muchas gracias por su atencion.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kingk
Val: 247
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Almacenar valores en una matriz mas grande

Publicado por kingk (108 intervenciones) el 11/04/2018 20:39:27
Hola, si la idea es que los numeros de la primera matriz queden centreados en la segunda, ¿Con qué numeros rodearas la matriz centreada?

Por ejemplo si deseas que sea rodeado de ceros, seri asi:

1
2
3
4
5
6
7
8
9
10
11
for(i=0;i < Matriz2.length;i++){
	for(j=0;j< Matriz2[i].length;j++){
		if(i==0 || i==Matriz2.length-1){
			Matriz2[i][j]=0;
		}else if(j==0 || j==Matriz2[i].length-1){
			Matriz2[i][j]=0;
		}else{
			Matriz2[i][j]=Matriz1[i-1][j-1];
		}
	}
}
Espero te haya sido de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 10
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Almacenar valores en una matriz mas grande

Publicado por Juan (5 intervenciones) el 11/04/2018 23:33:35
Muchas gracias, fuiste de mucha ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Almacenar valores en una matriz mas grande

Publicado por Juan (5 intervenciones) el 12/04/2018 03:46:03
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.Scanner;
public class Principal {
	static Scanner teclado = new Scanner (System.in);
	public static void main(String[] args) {
		int F1, C1;
		System.out.println("Digite el numero de filas (1)");
		F1 = teclado.nextInt();
		System.out.println("Digite el numero de columnas (1)");
		C1 = teclado.nextInt();
		Calculo proceso = new Calculo();
		proceso.llenado_matriz(F1, C1);
		proceso.imprimir();
	}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
import java.util.Scanner;
public class Calculo {
	int Im;
	int i, j, Aux, Acum2 = 0;
	int a = 0, b = 0, c = 0;
	int F2, C2;
	int Matriz1[][], Matriz2[][], VectorFila[], VectorColumnas[];
	int Principal = 0, Inversa = 0, Filas = 0, Columnas = 0;
	static Scanner teclado = new Scanner (System.in);
	public void llenado_matriz(int F1, int C1) {
		if(F1 == C1) {
			Im = 1;
			Matriz1 = new int[F1][C1];
			VectorFila = new int [F1];
			VectorColumnas = new int [F1];
			F2 = F1 + 2;
			C2 = C1 + 2;
			Matriz2 = new int[F2][C2];
			for(i = 0; i < Matriz1.length; i ++) {
				for(j = 0; j < Matriz1[i].length; j ++){
					System.out.println("Digite dato");
					Matriz1[i][j] = teclado.nextInt();
				}
			}
			//Almacena valor Diagonal principal
			for(i = 0; i < F1; i ++) {
				for(j = 0; j < C1; j ++) {
					if(i == j) {
						Principal = Principal + Matriz1[i][j];
					}
				}
			}
			//Almacena valor Diagonal Inversa
			for(i = F1 - 1; i >= 0; i --) {
				for(j = 0; j < F1; j ++) {
					if(F1 - 1 - i == j) {
						Inversa = Inversa + Matriz1[i][j];
					}
				}
			}
			//Almacena valor de Filas
			for(i = 0; i < Matriz1.length; i ++) {
				Filas = 0;
				for(j = 0; j < Matriz1[i].length; j ++) {
					Filas += Matriz1[i][j];
				}
				VectorFila[i] = Filas;
			}
			//Almacena columnas
			for(i = 0; i < Matriz1.length; i ++) {
				Columnas = 0;
				for(j = 0; j < Matriz1.length; j ++) {
					Columnas += Matriz1[j][i];
				}
				VectorColumnas[i] = Columnas;
			}
			for(i = 0; i < Matriz2.length; i ++) {
				for(j = 0; j < Matriz2[i].length; j ++) {
					if(i == 0 && j == 0) {
						Matriz2[i][j] = Principal;
					}else {
						if(i == F2 - 1 && j == C2 - 1) {
							Matriz2[i][j] = Principal;
						}else {
							if(i == 0 && j == C2 - 1) {
								Matriz2[i][j] = Inversa;
							}else {
								if(i == F2 - 1 && j == 0) {
									Matriz2[i][j] = Inversa;
								}else {
 
								}
							}
						}
					}
				}
			}
			a = 0;
			b = 1;
			int d = 1;
			for(i = 0; i < Matriz2.length; i++) {
				for(j = 0; j < Matriz2[i].length; j ++) {
					if(i == 0 || i == Matriz2.length - 1) {
 
					}else if(j == 0 || j == Matriz2[i].length - 1) {
						if(a < VectorFila.length) {
							if(i == b || i == Matriz2.length - 1) {
								Matriz2[i][j] = VectorFila[a];
							}else {
								b ++;
								if(i == b || i == Matriz2.length - 2) {
									a ++;
									Matriz2[i][j] = VectorFila[a];
								}
							}
						}
					}else {
						Matriz2[i][j] = Matriz1[i - 1][j - 1];
					}
				}
			}
			//Posicionar columnas
			c = 0;
			for(i = 0; i < Matriz2.length; i ++) {
				for(j = 0; j < Matriz2[i].length; j ++) {
					if(c < VectorColumnas.length) {
						if(i == 0 && j == d && j != Matriz2[i].length - 1 || i == Matriz2.length - 1 && j == d) {
							Matriz2[i][j] = VectorColumnas[c];
						}
					}
				}
			}
		}else {
			Im = 2;
		}
	}
	public void imprimir() {
		if(Im == 1) {
			for(i = 0; i < Matriz2.length; i ++) {
				for(j = 0; j < Matriz2[i].length; j ++) {
					System.out.printf("%d \t", Matriz2[i][j]);
				}
				System.out.println("");
			}
		}else {
			System.out.println("Lo sentimos algo ha sucedido");
		}
	}
}

Muy buenas, que pena volver a molestar.
El profesor ahora me esta pidiendo que ponga la suma de las diagonales, filas y columnas.
Mi problema es que he intentado posicionar las columnas y aún no he podido, agradecería nuevamente que me ayudaras.
Ya el codigo esta modificado, ejecútalo y te darás cuenta que medio he hecho algo.
Muchisimas gracias de ante mano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar