Foros aprenderaprogramar.com
		Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: fst091 en 02 de Octubre 2016, 20:02
		
			
			- 
				Tengo que convertir una matriz de cadenas a la suma de sus letras en codigo ascii, por ejemplo tengo la palabra soleado, la suma de sus caracteres me daria 743, hasta este punto según yo ya lo tengo, pero despues de eso tengo que volver a sumar, pero esta ve serian los dígitos, entonces me quedaría 14, y nuevamente tengo que hacer el proceso y  me quedaría 5, alguien podría ayudarme a solucionar el problema.
 Intente copiar y pegar parte del código una y ta vez, pero se que eso no se ve bien,les dejo mi código, espero alguien pueda ayudarme, de antemano gracias
 
 package Parte_Final;
 
 public class TBD__String {
 
 public static void main(String[] args) {
 
 String[][] BD = new String[14][5];
 int [][] BDSuma =new int[14][5];
 int [][] BDSuma2 =new int[14][5];
 
 BD [0][0] = "soleado"; BD[0][1] = "calor"; BD[0][2] = "alta"; BD[0][3] = "debil"; BD[0][4] ="no";
 BD [1][0] = "soleado"; BD[1][1] = "calor"; BD[1][2] = "alta"; BD[1][3] = "fuerte"; BD[1][4] ="no";
 BD [2][0] = "nublado"; BD[2][1] = "calor"; BD[2][2] = "alta"; BD[2][3] = "debil"; BD[2][4] ="si";
 BD [3][0] = "lluvia"; BD[3][1] = "templado"; BD[3][2] = "alta"; BD[3][3] = "debil"; BD[3][4] ="si";
 BD [4][0] = "lluvia"; BD[4][1] = "frio"; BD[4][2] = "normal"; BD[4][3] = "debil"; BD[4][4] ="si";
 BD [5][0] = "lluvia"; BD[5][1] = "frio"; BD[5][2] = "normal"; BD[5][3] = "fuerte"; BD[5][4] ="no";
 BD [6][0] = "nublado"; BD[6][1] = "frio"; BD[6][2] = "normal"; BD[6][3] = "fuerte"; BD[6][4] ="si";
 BD [7][0] = "soleado"; BD[7][1] = "templado"; BD[7][2] = "alta"; BD[7][3] = "debil"; BD[7][4] ="no";
 BD [8][0] = "soleado"; BD[8][1] = "frio"; BD[8][2] = "normal"; BD[8][3] = "debil"; BD[8][4] ="si";
 BD [9][0] = "lluvia"; BD[9][1] = "templado"; BD[9][2] = "normal"; BD[9][3] = "debil"; BD[9][4] ="si";
 BD [10][0] = "soleado"; BD[10][1] = "templado"; BD[10][2] = "normal"; BD[10][3] = "fuerte"; BD[10][4] ="si";
 BD [11][0] = "nublado"; BD[11][1] = "templado"; BD[11][2] = "alta"; BD[11][3] = "fuerte"; BD[11][4] ="si";
 BD [12][0] = "nublado"; BD[12][1] = "calor"; BD[12][2] = "normal"; BD[12][3] = "debil"; BD[12][4] ="si";
 BD [13][0] = "soleado"; BD[13][1] = "templado"; BD[13][2] = "alta"; BD[13][3] = "fuerte"; BD[13][4] ="no";
 
 int suma, n = 14, m = 5;
 System.out.printf("Matriz 1\n");
 for (int i = 0; i < n; i++) {
 System.out.printf("\n");
 for (int j = 0; j < m; j++) {
 
 System.out.printf("%s\t", BD[i][j]);
 
 }
 }
 
 System.out.printf("\n\n");
 
 System.out.printf("Matriz 2\n");
 
 for (int i = 0; i < n; i++) {
 
 System.out.printf("\n");
 
 for (int j = 0; j < m; j++) {
 
 int x = BD[i][j].length();
 
 suma = 0;
 
 for (int k = 0; k < x; k++) {
 
 char aux1 = BD[i][j].charAt(k);
 
 int aux2 = aux1;
 suma = suma + aux2;
 
 }
 
 BDSuma[i][j] = suma;
 System.out.printf("%d\t", suma);
 
 }
 }
 System.out.printf("\n");
 
 System.out.printf("\nMatriz 3\n");
 
 for (int i = 0; i < n; i++) {
 System.out.printf("\n");
 for (int j = 0; j < m; j++) {
 
 int suma2 = 0;
 
 while (BDSuma[i][j] > 0) {
 
 int x = BDSuma[i][j] % 10;
 
 suma2 = suma2 + x;
 
 BDSuma[i][j] = BDSuma[i][j] / 10;
 //  System.out.printf("%d\t", BDSuma[i][j]);
 }
 BDSuma2[i][j] = suma2;
 System.out.printf("%d\t", suma2);
 }
 }
 
 
 
 System.out.printf("\n");
 
 System.out.printf("\nMatriz 4\n");
 
 for (int i = 0; i < n; i++) {
 System.out.printf("\n");
 for (int j = 0; j < m; j++) {
 
 int suma3 = 0;
 
 while (BDSuma2[i][j] > 0) {
 
 int x = BDSuma2[i][j] % 10;
 
 suma3 = suma3 + x;
 
 BDSuma2[i][j] = BDSuma2[i][j] / 10;
 //  System.out.printf("%d\t", BDSuma[i][j]);
 }
 System.out.printf("%d\t", suma3);
 }
 }
 }
 }
 
 
ASI LO IMPRIME Matriz 1
 
 soleado   calor   alta   debil   no
 soleado   calor   alta   fuerte   no
 nublado   calor   alta   debil   si
 lluvia   templado   alta   debil   si
 lluvia   frio   normal   debil   si
 lluvia   frio   normal   fuerte   no
 nublado   frio   normal   fuerte   si
 soleado   templado   alta   debil   no
 soleado   frio   normal   debil   si
 lluvia   templado   normal   debil   si
 soleado   templado   normal   fuerte   si
 nublado   templado   alta   fuerte   si
 nublado   calor   normal   debil   si
 soleado   templado   alta   fuerte   no
 
 Matriz 2
 
 743   529   418   512   221
 743   529   418   651   221
 741   529   418   512   220
 653   854   418   512   220
 653   432   649   512   220
 653   432   649   651   221
 741   432   649   651   220
 743   854   418   512   221
 743   432   649   512   220
 653   854   649   512   220
 743   854   649   651   220
 741   854   418   651   220
 741   529   649   512   220
 743   854   418   651   221
 
 Matriz 3
 
 14   16   13   8   5
 14   16   13   12   5
 12   16   13   8   4
 14   17   13   8   4
 14   9   19   8   4
 14   9   19   12   5
 12   9   19   12   4
 14   17   13   8   5
 14   9   19   8   4
 14   17   19   8   4
 14   17   19   12   4
 12   17   13   12   4
 12   16   19   8   4
 14   17   13   12   5
 
 Matriz 4
 
 5   7   4   8   5
 5   7   4   3   5
 3   7   4   8   4
 5   8   4   8   4
 5   9   10   8   4
 5   9   10   3   5
 3   9   10   3   4
 5   8   4   8   5
 5   9   10   8   4
 5   8   10   8   4
 5   8   10   3   4
 3   8   4   3   4
 3   7   10   8   4
 5   8   4   3   5   BUILD SUCCESSFUL (total time: 1 second)
 
 
 
 
 
- 
				Hola fst091.
 
 Lo primero recomendar que leas el siguiente enlace para ver como escribir en el foro adecuadamente y sobretodo introducir tu código de forma correcta, entre las etiquetas
 [code ][ /code] mostradas con el simbolo "#" .
 https://www.aprenderaprogramar.com/foros/index.php?topic=1460.msg7784#msg7784
 
 En cuanto al código  que muestras, veo que hace lo que explicas, podrías explicar cual es el problema que no consigues hacer solucionar??
 
 Saludos. ;D
 
- 
				Gracias por las recomendaciones Pedro, mi problema es que debo optimizar  los pasos de la matriz 3, 4, 5, y eso lo debo de hacer con un ciclo, pero nose como hacerlo, gracias por tu ayuda
			
- 
				Se me ocurre que en vez de mostrar las matrices que usas por pantalla, primeramente podrías introducirlas en un string como cadena de texto, además de usar el mismo bucle para crearlas y finalmente mostrarlas todas de una vez.
 
 Te dejo un ejemplo:
 
 public class PRUEBAS {
 
 public static void main(String[] args) {
 String[][] BD = new String[14][5];
 int [][] BDSuma =new int[14][5];
 int [][] BDSuma2 =new int[14][5];
 String [] matriz = new String[4];
 
 BD [0][0] = "soleado"; BD[0][1] = "calor"; BD[0][2] = "alta"; BD[0][3] = "debil"; BD[0][4] ="no";
 BD [1][0] = "soleado"; BD[1][1] = "calor"; BD[1][2] = "alta"; BD[1][3] = "fuerte"; BD[1][4] ="no";
 BD [2][0] = "nublado"; BD[2][1] = "calor"; BD[2][2] = "alta"; BD[2][3] = "debil"; BD[2][4] ="si";
 BD [3][0] = "lluvia"; BD[3][1] = "templado"; BD[3][2] = "alta"; BD[3][3] = "debil"; BD[3][4] ="si";
 BD [4][0] = "lluvia"; BD[4][1] = "frio"; BD[4][2] = "normal"; BD[4][3] = "debil"; BD[4][4] ="si";
 BD [5][0] = "lluvia"; BD[5][1] = "frio"; BD[5][2] = "normal"; BD[5][3] = "fuerte"; BD[5][4] ="no";
 BD [6][0] = "nublado"; BD[6][1] = "frio"; BD[6][2] = "normal"; BD[6][3] = "fuerte"; BD[6][4] ="si";
 BD [7][0] = "soleado"; BD[7][1] = "templado"; BD[7][2] = "alta"; BD[7][3] = "debil"; BD[7][4] ="no";
 BD [8][0] = "soleado"; BD[8][1] = "frio"; BD[8][2] = "normal"; BD[8][3] = "debil"; BD[8][4] ="si";
 BD [9][0] = "lluvia"; BD[9][1] = "templado"; BD[9][2] = "normal"; BD[9][3] = "debil"; BD[9][4] ="si";
 BD [10][0] = "soleado"; BD[10][1] = "templado"; BD[10][2] = "normal"; BD[10][3] = "fuerte"; BD[10][4] ="si";
 BD [11][0] = "nublado"; BD[11][1] = "templado"; BD[11][2] = "alta"; BD[11][3] = "fuerte"; BD[11][4] ="si";
 BD [12][0] = "nublado"; BD[12][1] = "calor"; BD[12][2] = "normal"; BD[12][3] = "debil"; BD[12][4] ="si";
 BD [13][0] = "soleado"; BD[13][1] = "templado"; BD[13][2] = "alta"; BD[13][3] = "fuerte"; BD[13][4] ="no";
 
 int suma, n = 14, m = 5;
 
 for(int i = 0; i<4; i++) {
 matriz[i] = "";
 }
 for (int i = 0; i < n; i++) {
 for (int j = 0; j < m; j++) {
 matriz[0] += "\t" + BD[i][j];
 int x = BD[i][j].length();
 suma = 0;
 for (int k = 0; k < x; k++) {
 char aux1 = BD[i][j].charAt(k);
 suma = suma + aux1;
 }
 BDSuma[i][j] = suma;
 matriz[1] += "\t" + suma;
 suma = 0;
 
 while (BDSuma[i][j] > 0) {
 x = BDSuma[i][j] % 10;
 suma = suma + x;
 BDSuma[i][j] = BDSuma[i][j] / 10;
 }
 BDSuma2[i][j] = suma;
 matriz[2] += "\t" + suma;
 suma = 0;
 
 while (BDSuma2[i][j] > 0) {
 x = BDSuma2[i][j] % 10;
 suma = suma + x;
 BDSuma2[i][j] = BDSuma2[i][j] / 10;
 }
 matriz[3] += "\t" + suma;
 }
 for(int k = 0; k < 4; k++){
 matriz[k] += "\n";
 }
 }
 for(int i = 0; i < 4; i++){
 System.out.printf("Matriz " + (i+1) + "\n" + matriz[i]);
 }
 }
 }
 Espero haberte entendido bien y que te valga de ayuda.
 
 Saludos.  ;D
- 
				Hola fst091, es importante que el título de los temas sea descriptivo. No escribas títulos como "Hola compañeros, alguien podría ayudarme" ó "Ayuda urgente". Describe siempre el objetivo por ejemplo "Ejercicio con arreglos en Java recorrer matrices multidimensionales"
 
 Mira el link con las normas que ha comentado Pedro, si no las sigues podrás ser bloqueado por un administrador.
 
 Saludos