elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  EJERCICIO RECURSIVIDAD
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: EJERCICIO RECURSIVIDAD  (Leído 2,326 veces)
Jatorro

Desconectado Desconectado

Mensajes: 1


Ver Perfil
EJERCICIO RECURSIVIDAD
« en: 12 Septiembre 2017, 19:19 pm »

Buenas tardes, soy nuevo en el foro y llevo poco con Java.
Y tengo que resolver un ejercicio en el que me encuentro atascado.
El ejercicio es el siguiente:
Escribe el código java necesario para escribir la lista de los números comprendidos entre dos números enteros positivos leídos desde teclado, pero obligatoriamente haciendo uso de una SOLUCIÓN RECURSIVA. Deberás comprobar que los números que leas como primer número de la lista y como último número de la lista sean ambos positivos, y que el primero sea mayor que el último. Para ello, podrás usar todos los métodos definidos en la clase ES que se adjunta a continuación, con los métodos que creas oportunos.

public class ES {
/** Este método captura todo lo que se introduce por teclado * hasta pulsar enter y lo devuelve como una cadena de
* caracteres (String)
    * @return String
    */
    public static String leeDeTeclado() {
      int tecla;
      String cadena = "";
      boolean fin = false;
      while (!fin) {
         try {
            tecla = System.in.read();
            if (tecla < 0 ||
                (char)tecla == '\n')
               fin = true;
            else
                if (!Character.isISOControl((char)tecla))
                    cadena += (char)tecla;
         } catch(java.io.IOException e) {
               fin = true;
         }
      }
      return cadena;
   }

   /**
* Escribe un mensaje en pantalla, y queda a la espera de
* recoger toda la cadena de caracteres que se introduzca
* desde teclado hasta pulsar enter.
* @param  mensaje mensaje que se escribe
* @return la cadena leida
*/


   public static String leeDeTeclado(String mensaje) {
      System.out.println(mensaje);
      return leeDeTeclado();
   }

   /**
       * Lee un número real (double) desde teclado, tras la
* escritura en pantalla
     * de un mensaje solicitándolo. La introducción del número
* finaliza al pulsar enter
     * @param mensaje Mensaje que se imprime
     * @return el valor numérico leido (como double)
     * @exception NumberFormatException si se
     * introduce un valor incorrecto
     */

   public static double leeNºR(String mensaje) {
        while(true) {
           System.out.println(mensaje);
           try {
              return Double.parseDouble(leeDeTeclado().trim());
           } catch(NumberFormatException e) {
              System.err.println("NO ES UN NÚMERO REAL VÁLIDO: Vuelve a intentarlo.");
           }
        }
   }

   /**
* Muestra un mensaje en pantalla para solicitar un número, * y espera a que se introduzca un valor desde teclado. La
* secuencia de caracteres que se introduzcan hasta pulsar
* enter se intenta convertir en un número entero(int)
* Si no es posible, se mostrará un mensaje de error. Su es
* posible, devuelve el valor numérico correspondiente al
* número tecleado.
       * @param mensaje Mensaje que se muestra en pantalla para
* pedir el número
     * @return el número leido (como int)
     * @exception NumberFormatException si se
     * introduce un valor incorrecto para el número entero
     */

   public static int leeNº(String mensaje) {
     int numero=0;
     boolean incorrecto=true;
      while(incorrecto) {
         System.out.println(mensaje);
         try {
            numero=Integer.parseInt(leeDeTeclado().trim());
            incorrecto=false;
         } catch(NumberFormatException e) {
            incorrecto=true;
            System.err.println("NO ES UN NÚMERO ENTERO VÁLIDO: Vuelve a intentarlo.");
         }
      }
      return numero;
   }

   /**
       * Lee un entero mayor o igual al mínimo indicado como
* parámentro. Si se introducen
       * valores menores, indica mediante un mensaje de error que
    * debe introducirse un valor mayor.
* @param mensaje El mensaje que solicita el número entero.
* @param minimo Es el menor número entero admitido
* @return el entero leido
*/
   
public static int leeNº(String mensaje,int minimo) {
        int entero;
        do {
                entero = leeNº(mensaje);
                if (entero < minimo)
                       System.err.println(
                       " EL MÍNIMO VALOR PERMITIDO ES: " + minimo);
        } while (entero < minimo);
        return entero;
   }

   /**
       * Lee un entero mayor o igual al mínimo y menor o igual que
* el máximo indicados como parámentros. Si se introducen
* valores menores que el mínimo o mayores que el máximo,
* indica mediante un mensaje de error que debe introducirse
* un valor dentro del rango (mayor o menor, según
* corresponda).
       * @param mensaje El mensaje que solicita el número entero.
       * @param minimo Es el menor número entero admitido
       * @param maximo Es el mayor número entero admitido
       * @return el entero leido
       */
   public static int leeNº(String mensaje,int minimo, int maximo) {
        int entero;
        do {
                entero = leeNº(mensaje);
                if (entero < minimo)
                       System.err.println(
                      " EL MÍNIMO VALOR PERMITIDO ES: " + minimo);
                else if (entero > maximo)
                       System.err.println(
                      " EL MÁXIMO VALOR PERMITIDO ES: " + maximo);
        } while (entero < minimo || entero > maximo);

        return entero;
   }
}

Muchas gracias


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ejercicio] Aca tienen un ejercicio para practicar « 1 2 3 »
Programación Visual Basic
Dreamaker 20 16,649 Último mensaje 5 Septiembre 2010, 02:57 am
por TGa.
Ejercicio de Recursividad
Programación C/C++
gringo89 1 4,401 Último mensaje 25 Abril 2012, 01:48 am
por david_BS
Ayuda con ejercicio de recursividad
Programación C/C++
romybe 2 2,287 Último mensaje 24 Septiembre 2014, 08:03 am
por BlackM4ster
Ayuda Ejercicio recursividad "Formas distintas de dar vuelto con monedas"
Java
zockor 1 3,244 Último mensaje 23 Octubre 2016, 23:42 pm
por engel lex
recursividad ejercicio basico
Programación C/C++
Beginner Web 2 1,704 Último mensaje 25 Octubre 2018, 16:26 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines