Java Ejercicios Estructura Condicional 3

Aquí teneis otra entrega de ejercicios básicos con estructura condicional.

Relación Nº 3: Ejercicios 6 y 7

Ejercicio 6: Programa java que lea un carácter por teclado y compruebe si es un dígito numérico (cifra entre 0 y 9).

Vamos a escribir dos soluciones a este ejercicio. 

La primera consiste en comprobar si el carácter es un dígito mediante el método isDigit de la clase Character. Este método devuelve true si el carácter que se le pasa como parámetro es una cifra entre 0 y 9:
/* 
 * Ejemplo de programa con estructura condicional
 * Programa que lea un carácter por teclado y compruebe si es un número
 */
import java.io.*;

public class condicional1_7 {
    
   public static void main(String[] args) throws IOException {
        char car1;
        System.out.print("Introduzca carácter: ");
        car1 = (char)System.in.read(); //lee un carácter
        if(Character.isDigit(car1)) //utilizamos el método isDigit de la clase Character                
           System.out.println("Es un número");
        else
           System.out.println("No es un número");
  }
}

La otra solución es directa y consiste en comprobar si el carácter que se ha leído por teclado es mayor o igual que el carácter 0 y menor o igual que el carácter 9.
// Versión alternativa comparando con
// los caracteres '0' ... '9'

    if(car1>='0' && car1<='9')
       System.out.println("Es un número");
    else
       System.out.println("No es un número");                                                           

Ejercicio 7: Programa que lea dos números por teclado y muestre el resultado de la división del primer número por el segundo. Se debe comprobar que el divisor no puede ser cero.

/*
 * Ejemplo de programa con estructura condicional
 * Programa que lea dos números por teclado y muestre el resultado de 
 * la división del primero por el segundo.     
 * Se comprueba que el divisor es distinto de cero.
 */
import java.util.*;

public class condicional1_8 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double dividendo, divisor;
        System.out.print("Introduzca el dividendo: ");
        dividendo = sc.nextDouble();
        System.out.print("Introduzca el divisor: ");
        divisor = sc.nextDouble();
        if(divisor==0){
           System.out.println("No se puede dividir por cero");   
        }else{
            System.out.println(dividendo + " / " + divisor + " = " + dividendo/divisor);  
            System.out.printf("%.2f / %.2f = %.2f %n" , dividendo, divisor , dividendo/divisor);        
        }
    }
}


11 comentarios:

  1. La solución alternativa no me funcionó en el ejercicio 6
    todos los caracteres, incluyendo los números, los toma como alfabéticos

    Lo mismo me pasó en los ejercicios anteriores con las soluciones alternativas

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. public static void main(String[] args) {
    // TODO Auto-generated method stub

    String numero = "";
    while (isNumeric(numero)==false){
    numero = JOptionPane.showInputDialog ( "Escriba un valor alfanumerico o numerico" );

    if (isNumeric(numero) == true) {
    System.out.println ("Introdujo el número " + numero); }
    else {
    System.out.println ("Introdujo un caracter del abecedario " + numero); }
    }
    }

    public static boolean isNumeric(String str) {
    return (str.matches("[+-]?\\d*(\\.\\d+)?") && str.equals("")==false);
    }

    ResponderEliminar
  4. Crear un programa que lea por teclado dos números enteros y muestre en orden inverso la secuencia de los mismos. (Ej.: 10 9 8 7 6 5 4 3 2 1)
    ii. Atención: el programa debe determinar si el primer número ingresado es mayor que el segundo número.

    ResponderEliminar
  5. que alguien me ayude con mi tarea por favor:

    1. El usuario ingresa a la interfaz “Ingresar Votante”.
    2. El sistema muestra la interfaz con los siguientes elementos:
     Campo “DNI” y caja de texto
     Campo “Edad” y caja de texto
     Botón “Aceptar”
    3. El usuario ingresa el campo “DNI”, cuyo primer dígito deberá ser 4 y de 8 cifras.
    4. El usuario ingresa el campo “Edad”, cuyo valor deberá ser mayor igual a 18 y menor igual a 65.
    5. El usuario clickea el botón “Aceptar”
    6. El sistema verifica los campos ingresados.
    7. El sistema muestra el mensaje “Votante registrado”

    FLUJO ALTERNATIVO

    7.1
    Si el usuario ingresa el campo “DNI” con un valor menor o mayor a 8 cifras, el sistema mostrará el
    mensaje “DNI invalido” y finalizará el proceso.
    7.2
    Si el usuario ingresa el campo “Edad” con un valor menor a 18 o mayor a 65, el sistema mostrará el
    mensaje “Edad invalido” y finalizará el proceso.

    ResponderEliminar
  6. Buenas noches, alguien me puede ayudar con estos ejercicios:
    1. Dado la temperatura de un paciente, mostrar el mensaje “Temperatura normal” si el
    valor es menor a 38, caso contrario mostrar el mensaje “Tiene fiebre”.
    2. Una empresa ha decidido bonificar a sus trabajadores en base a su estado civil, a los
    viudos o divorciados se les asigna una bonif. del 20%, a los casados una bonif. de
    12%, mientras que a los solteros se les asigna un 8%. Calcular el importe bruto, el
    monto de la bonificación y el importe neto.
    3. Dado el nro. horas semanales que trabaja un empleado. Si el valor en menor o igual
    a 40 se le paga a S/.30 x hora, Caso contrario se le pagará S/.40, Imprimir el importe
    de pago.
    Gracias.

    ResponderEliminar
  7. me pueden ayudar por favor
    El alfabeto inglés contiene 26 caracteres y los teléfonos móviles sólo tienen diez dígitos en el teclado. Varias letras se mapean en cada tecla numérica, como se muestra en la imagen inferior, de forma que se pueda escribir un mensaje con pulsaciones repetitivas. Por ejemplo, para insertar el carácter B, se deberá presionar 22. Para introducir una secuencia de dos caracteres a partir de la misma tecla, el usuario debe hacer una pausa antes de pulsar el botón una segunda vez. Por ejemplo, 2 2 indica AA mientras que 22 indica B (se muestra un "carácter de espacio" para indicar una pausa).
    Debe crear un programa que calcule la secuencia de teclas que hay que pulsar para escribir un cierto mensaje.

    ResponderEliminar
  8. - Ingresado el carácter desarrollar: Si el carácter ingresado es (I), devolver el
    número inverso (5 dígitos). Y si el carácter ingresado es (A), hallar el área de un
    círculo. EN NETBEANS

    ResponderEliminar
  9. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  10. Yo lo hice de esta manera:

    public class Ejercicio6 {

    public static void main(String []arg){

    Scanner x = new Scanner(System.in);

    System.out.println("Introduce un caracter o cifra entre 0 y 9:");

    try{
    int caracter = x.nextInt();

    if(caracter==1 || caracter==2 || caracter==3 || caracter ==4 || caracter ==5 || caracter == 6
    || caracter ==7 || caracter ==8 || caracter==9){

    System.out.println("Es un número");
    }else{

    System.out.println("No es un número");
    }
    }catch(Exception e){

    System.out.println("No es un numero");
    }



    }
    }

    ResponderEliminar
  11. Realice un programa que lea un conjunto de cedula, que se encuentran en un string de 16 caracteres,
    El arreglo contiene 20 cedulas , deben ser ingresadas fijas al inicio del programas.
    Los elementos que componen esta cadena son provincia, clase, tomo , folio. Separados por guiones.
    Muestre cuantos ciudadanos extranjeros existen en el archivo y cuantos han sido nacionalizados.
    Ayuda

    ResponderEliminar