domingo, 11 de noviembre de 2012

Arreglos Programación II

Autor: Benjamín Navarrete O.
Competencia: Aplica las Ciencias de la Ingeniería
Palabras Clave: Ejercicio, Java, Arrays, Capicúa.


Descripción de la Actividad


  Bienvenidos ! hoy les mostraré una actividad que tuve que realizar en clases, que trata principalmente sobre el uso de arreglos (arrays). Para que tengan un breve resumen, un "arreglo" o "array" en el ámbito de la informática es  un grupo o una colección finita, homogénea y ordenada de elementos. Vale decir, es una "variable" en la que se pueden almacenar varios elementos, ya sean numeros(int), cadenas(String), o carácteres(chars).
       La actividad que les vamos a mostrar consiste en un ejercicio que dice así:

   -9- Analice y resuelva el problema de saber si un arreglo de números enteros tiene al menos 1 numero capicúa.

El programa además de hacer eso...debe pedirle al usuario el tamaño que tendrá el arreglo.

Un numero capicúa es aquel que se lee igual tanto al derecho o al revés.
ejemplo : 12321, 222333444333222, 123454321.


algunos ejemplos serían como:

  Entrada: (arreglo 3 espacios)  12321 111  451  -->[P] --> "existen numeros capicúa dentro del arreglo"

Entrada: (arreglo 5 espacios)  111 222 333 444 555  -->[P] --> " NO existen numeros capicúa dentro del arreglo"



Solución

El diagrama de flujo de este problema sería así:
Diagrama de Flujo

y el Código en java resultante  en base al diagrama de flujo sería este:



import java.util.Scanner;


import java.util.Scanner;


public class Capicua {


    public static void main(String[] args) {



        int numero;

        int falta, numeroInvertido, resto;

        Scanner leer = new Scanner(System.in);

        System.out.println("ingrese largo del arreglo");

        numero = leer.nextInt();

        int[] a = new int[numero];

        for (int i = 0; i < numero; i++) {

            System.out.println("ingrese numero del arreglo " + i);

            a[i] = leer.nextInt();

            System.out.println("arreglo " + i + "= " + a[i]);

        }

        for (int j = 0; j < numero; j++) {


            if (a[j] >= 0) {


                falta = a[j];

                numeroInvertido = 0;

                resto = 0;



                while (falta != 0) {

                    resto = falta % 10;

                    numeroInvertido = numeroInvertido * 10 + resto;

                    falta = falta / 10;

                }



                if (numeroInvertido == a[j]) {

                    System.out.println("El espacio "+j+" del arreglo es capicua");

                } else {

                    System.out.println("El espacio "+j+" del arreglo no es capicua");

                }

            } else {

                System.out.println("el espacio "+j+" del arreglo es menor a 0");

            }

        }

    }

}

Si se pudieron dar cuenta, hice más que decir que existía al menos un numero capicúa en el arreglo, mas bien en la salida puse si cada numero era un arreglo o no lo era, lo cual es aún más específico.

Reflexión

   Como segunda actividad puesta en mi repositorio de programación, debo decir que estos tipos de ejercicios sirven mucho para poder ejercitar la capacidad de razonar en cuanto a crear programas que satisfagan alguna necesidad. Cabe mencionar que el arreglo mostrado en este problema es "unidimensional", que por otra parte  existen arreglos bidimensionales y multidimensionales como lo son las matrices, etc. si tienen alguna duda sobre el problema, no duden en consultarme mediante este blog :).

No hay comentarios:

Publicar un comentario