jueves, 8 de diciembre de 2011

Arreglos unidimensionales o bidimensionales

Autor: Cristian Lara
Competencia:Trabajo en equipo. (nivel 1)
Palabras Claves: Java

Descripción de la actividad

Analizar y construir una solución que permita transformar una matriz numérica de NxM en dos vectores. Uno que contenga los números pares y otros los impares. Considere cero (0) como número par.

Solución

Entrada: Dos números enteros mayores que 0, uno para el n° de filas y otro numero para el n° de columnas

Salida: Los pares e impares que estén en la matriz dada por el usuario.

Ejemplos:
Ejemplo 1


             Entrada:
 Ingrese el número de filas: 2
 Ingrese el número de columnas: 3

             Salida
 par= 96
 par= 36
 impar: 61
 impar: 13
 impar: 91
 impar: 79

Ejemplo 2
            Entrada
 ingrese el numero de filas 5
 ingrese el numero de columnas 5


Salida
 par= 72 par= 26 par= 24 par= 4
 par= 40 par= 38 par= 12 par= 14
 par= 26 par= 62 par= 30 par= 32
 impar: 77 impar: 1   impar: 59 impar: 21
 impar: 51 impar: 75 impar: 79 impar: 25
 impar: 19 impar: 85 impar: 21 impar: 7
 impar: 1


Diagrama de Flujo.




















































































Código


          import java.util.Scanner;
     public class Main {
        public static void main(String[]Args){
          int filas; //variable donde guardamos la cantidad de filas
          int columnas;//variable donde guardamos la cantidad de filas
          int f=0; //variable para bajar de fila
          int cont=0;//contamos los numeros pares del arreglo bidimensional
          int contImpar=0;
          //contamos los numeros impares del arreglo bidimensional
          int pos=0; int pos2=0;
          Scanner leer= new Scanner(System.in);
          //mensaje al usuario para que ingrese los datos el usuario
          System.out.println("ingrese el numero de filas");
          filas= leer.nextInt();
          System.out.println("ingrese el numero de columnas");
          columnas= leer.nextInt();
          //cremaos el arreglo y le damos el tamaño ingresado por el ususario
          int[][] arreglo =new int[filas][columnas];
          //guardar los numeros en un arreglo bidimensional
          while(f < filas){ //hasta que se llene la "tabla"
          //ciclo for para guardar los numeros random
          for(int i=0;i<arreglo[f].length; i++){
          arreglo[f][i]=(int)(Math.random()*100);
           //contamos los numeros pares e impares.
             if(arreglo[f][i]%2==0||arreglo[f][i]==0){
             cont++;
        }
                  else

         {
        contImpar++;
        }
        }//ciclo
        f++;//bajamos de fila }//ciclo
        int Par[]; Par= new int[cont];
        int Impar[]; Impar= new int[contImpar];
        //guardamos los numeros pares en un arreglo f=0;
        while(f < filas){ for(int p=0;p<arreglo[f].length; p++){
        if(arreglo[f][p]%2==0||arreglo[f][p]==0){
        Par[pos]=arreglo[f][p]; pos++; }
        else{ Impar[pos2]=arreglo[f][p]; pos2++; } } //ciclo for f++; }
        //mostramos por pantalla
        for(int p=0; p<cont; p++)
        {
            System.out.println("par= "+Par[p]);}
        for(int p=0; p<contImpar; p++){
            System.out.println("impar: "+Impar[p]);
        }}}}}

   Reflexión.

En esta actividad en particular con el uso de arreglos y ciclos nos ayudo a disminuir lineas de código, y así no tener que declarar tantas variables, si no que ahora las guardamos en un solo arreglo dándole la dimensión.



No hay comentarios:

Publicar un comentario