Ejercicios simples en Java

Iniciado por :ohk<any>, 25 Julio 2008, 22:03 PM

0 Miembros y 1 Visitante están viendo este tema.

:ohk<any>

 :¬¬ :¬¬

será que esta muy dificil?
mmm, o es que no hay muchos programadores bajo Java interesados en practicar un poco...  :P

Bueno, lo dejo 2 días mas y luego lo resuelvo.

Un saludo

OHK
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

:ohk<any>

Cita de: ohk en 31 Julio 2008, 02:55 AM

Matriz Caracol de n X n


5 x 5


     1    2    3    4    5

     16  17  18  19   6

     15  24  25  20   7

     14  23  22  21   8

     13  12  11  10   9


4 x 4

     1    2    3    4

     12  13  14   5

     11  16  15   6

     10  9    8     7


Metodo LLenar Matriz Caracol

Código (java) [Seleccionar]

public static void llenarmatrizcaracol(int mat[][],int n,int m)
    {
        int fil,col,aux,cont,k; //Nos creamos variables de tipo entero
        cont=1;                   //Inicializamos un contador
        for(k=0;k<m;k++)
        {
        col=k;
                for(fil=k;fil<=(m-1-k);fil++)
                {
                mat[fil][col]=cont;
                cont++;
                }
        fil=m-1-k;
                for(col=k+1;col<=n-1-k;col++)
                {
                mat[fil][col]=cont;
                cont++;
                }
        col=n-1-k;
                for(fil=m-2-k;fil>=k;fil--)
                {
                mat[fil][col]=cont;
                cont++;
                }
        fil=k;
                for(col=n-2-k;col>=k+1;col--)
                {
                mat[fil][col]=cont;
                cont++;
                }
        }
        return;
    }


Método Mostrar Matriz

Código (java) [Seleccionar]

public static void mostrarmatriz(int mat[][],int n,int m)
    {             
        for(int fil=0;fil<m;fil++)
        {
            System.out.println("");
            for(int col=0;col<n;col++)
            {
            System.out.print("\t"+mat[fil][col]);
            }
        }       
        return;
    }     


Método Main

Código (java) [Seleccionar]

public static void main(String args[])
{
        int mat[][];                              //Creamos una matriz
        int n,m;                                   //Creamos variables
        mat=new int[1000][1000];        //Inicializamos la matriz
        n=5;                                       //Inicializamos las variables
        m=5;
        llenarmatrizfila(mat,n,m);         //Llamamos el metodo para llenar la matriz
        mostrarmatriz(mat,n,m);          //Imprimimos en pantalla la matriz
}


Java
Un saludo

OHK
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

:ohk<any>

Supongo que con esto terminamos este hilo, ya que no veo usuarios con interes en resolver los ejercicios.  :¬¬

Nos vemos

Un saludo

OHK
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

Newbie´s

Jje... llegue tarde... :P

Fijate en el método main(), hay un leve error... no sé si lo has puesto apropósito o no... pero hay un error...

Además... la salida no es la que buscas... haces la inversa a la que haces mención... :P

Código (java) [Seleccionar]
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9


Aún asi, buen code... :D

Pero pienso que en el método main(), se podrían hacer un poco menos de lineas de código...

Código (java) [Seleccionar]

public static void main(String[] args)
{
    int man[][] =new int[1000][1000];
    int n=5, m=5;
    ....
}


Saludos

:ohk<any>

y si, hoy en día se hace de todo para reducir las líneas de código, usar la recursividad ya es muy común para resolver esta tipo de ejercicios.

mirad:

      1  1  1  1  1
      1  2  2  2  2
      1  2  4  4  4
      1  2  4  8  8
      1  2  4  8  16

Se debe resolver de forma recursiva.
Los parámetros de entrada, pueden ser, según su análisis.

int fila, int col, int contador, int mat[][]

Creo que no esta muy difícil, y este tipo de ejercicios ayuda mucho a desarrollar lógica.

Un saludo

OHK
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

Newbie´s

Guaaa... con matrices no soy muy bueno... pero haré lo que pueda... :P...

Otro tipo de ejercicios ???... :P... xD

Saludos cordiales...