Autor Tema: Hola compañeros, alguien podría ayudarme por favor  (Leído 3024 veces)

fst091

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 8
    • Ver Perfil
Hola compañeros, alguien podría ayudarme por favor
« 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

Código: [Seleccionar]
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)




« Última modificación: 03 de Octubre 2016, 09:48 por pedro,, »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Hola compañeros, alguien podría ayudarme por favor
« Respuesta #1 en: 03 de Octubre 2016, 10:16 »
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

fst091

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 8
    • Ver Perfil
Re:Hola compañeros, alguien podría ayudarme por favor
« Respuesta #2 en: 04 de Octubre 2016, 02:03 »
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

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Hola compañeros, alguien podría ayudarme por favor
« Respuesta #3 en: 04 de Octubre 2016, 10:57 »
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:

Código: [Seleccionar]
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

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Hola compañeros, alguien podría ayudarme por favor
« Respuesta #4 en: 12 de Octubre 2016, 13:51 »
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

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".