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