Mostrando entradas con la etiqueta switch. Mostrar todas las entradas
Mostrando entradas con la etiqueta switch. Mostrar todas las entradas

jueves, 12 de enero de 2017

Arrays: Averigua el orden de un array

Construye una función que reciba un array de números enteros y devuelva un valor entero con tres posibilidades:
  • 1 si está ordenado en orden creciente
  • -1 si está ordenado en orden decrecente
  • 0 si no tiene orden
Desde la función principal le pasarás un array con 5 números enteros (los pones tú a mano) y desde dicha función se imprimirán los siguiente resultados según corresponda:

El array [aquí se imprime al contenido del array] está ordenado de forma creciente.
El array [aquí se imprime al contenido del array] está ordenado de forma decreciente.
El array [aquí se imprime al contenido del array] no tiene orden.


Ejemplo:
El array [50, 40, 31, 8, 1] está ordenado de forma decreciente
El array [50, 54, 57, 80, 110] está ordenado de forma decreciente
El array [34,14,345,1,23,3] no tiene orden


SOLUCIÓN EN JAVA:
package ordenarrays;

public class OrdenArrays {

    //Esta función averigua el orden del array que se le pasa como parámetro
    //  1 Si está ordenado de forma creciente
    // -1 Si está ordenado de forma decreciente
    //  0 Si no está ordenado
    static int averiguaOrden(int array[]) {
        int paresOrdenadosAscendente = 0, paresOrdenadosDescendente = 0, resultado;

        //Recorro todo el array y cuento los pares que hay ordenados de forma creciente
        //y también cuento los que hay ordenados de forma decreciente
        for (int i = 0; i < array.length - 1; i++) {
            if (array[i] > array[i + 1]) {
                paresOrdenadosAscendente++;
            }
            if (array[i] < array[i + 1]) {
                paresOrdenadosDescendente++;
            }
        }
        if (paresOrdenadosAscendente == array.length - 1) {
            //Si los pares ordenados de forma creciente es igual al total de pares
            //es porque está ordenado de forma creciente todo el array
            resultado = 1;
        } else if (paresOrdenadosDescendente == array.length - 1) {
            //Si los pares ordenados de forma decreciente es igual al total de pares
            //es porque está ordenado de forma decreciente todo el array
            resultado = -1;
        } else {
            //En caso contrario, es porque no hay orden
            resultado = 0;
        }

        return resultado;
    }

    public static void main(String[] args) {
        //Creo un array con valores arbitrarios
        int array[] = {50, 40, 31, 8, 1};
        int orden;

        //Hago una llamada a la función para averiguar el orden del array
        orden = averiguaOrden(array);
        //Dependiendo del valor que devuelva la llamada a la función tendré
        //que imprimir el orden correspondiente
        switch (orden) {
            case 0:
                System.out.print("El array "+Arrays.toString(array)+" no tiene orden");
                break;
            case 1:
                System.out.print("El array "+Arrays.toString(array)+" está ordenado de forma decreciente");
                break;
            case -1:
                System.out.print("El array "+Arrays.toString(array)+" está ordenado de forma decreciente");
                break;
        }
    }
}

sábado, 24 de diciembre de 2016

Funciones: Nombre Día Semana

Escribe una función que utiliza la estructura Switch,dicha función debe devolver el nombre del día de la semana en función del valor de una variable dia que se le pasa como parámetro. (1:Lunes, 2:Martes ...)
Desde la función principal se pedira al usuario que introduzca un número, se invocará a dicha función con ese número (siempre que esté comprendido entre 1 y 7) y después se imprimirá el nombre devuelto por la función.


Ejemplo:
Introduzca un número de día:
> 5

El día de la semana correspondiente a 5 es: Viernes



SOLUCIÓN EN JAVA:
package diaSemana;

import javax.swing.JOptionPane;

public class DiaSemana {

    static String diaSemana(int dia){        
        String nombreDia;
        
        switch (dia){
            case 1: nombreDia="Lunes"; break;
            case 2: nombreDia="Martes"; break;
            case 3: nombreDia="Miércoles"; break;
            case 4: nombreDia="Jueves"; break;
            case 5: nombreDia="Viernes"; break;
            case 6: nombreDia="Sábado"; break;
            case 7: nombreDia="Domingo"; break;
            default: nombreDia="Error";
        }
        return nombreDia;    
    }
    
    public static void main(String[] args) {
        int dia;
        
        try {
            dia=Integer.parseInt(JOptionPane.showInputDialog("Introduzca un número de día:"));
            JOptionPane.showMessageDialog(null, "El día de la semana correspondiente a "+dia+" es: "+diaSemana(dia));
        } catch (NumberFormatException e){
            JOptionPane.showMessageDialog(null, "Formato Incorrecto");
        }        
        System.out.println(diaSemana(1));
    }
}