Autor Tema: Ejercicios resueltos Java Avanzado arrays o arreglos unidimensionales CU00903C  (Leído 2175 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola he terminado el curso de java desde cero de aprenderaprogramar y comienzo con el curso de java avanzado. Aquí dejo el primer ejercicio del curso.

Ejercicio CU00903C Repaso arrays o arreglos unidimensionales en Java. Tipos de inicialización.


Codigo Ejercicio1 Clase ArrayDeNumeros

Código: [Seleccionar]
import java.util.Scanner;
public class ArrayDeNumeros {

       public static void main(String arg[ ]) {
           Scanner entrada=new Scanner(System.in);
            int[ ] numero = new int[4];
            for(int i=0; i<=numero.length-1;i++){
              System.out.print("Introduzca un numero entero: ");
              numero[i]=entrada.nextInt();
            }
            for(int i=0; i<=numero.length-1;i++){
            System.out.println("El array numero["+i+"] contiene el valor: "+numero[i]);
            }
           
     }

  }


Codigo Ejercicio2 Clase ArrayDeAlumnos

Código: [Seleccionar]
import java.util.Scanner;
public class ArrayDeAlumnos {
    public static Scanner entrada=new Scanner(System.in);
    public static String entradaUsuario="";
    public static void main(String arg[ ]) {
        //Entrada numero de alumnos
        int numAlumnos=0;
        Scanner entrada=new Scanner(System.in);
        System.out.print("Entre el numero de alumnos :");
        numAlumnos=Integer.parseInt(validarNumero());
        //Poner el nº de elementos en los arrays
        double[] nota = new double[numAlumnos];
        String[] nombre= new String[numAlumnos];
        String[] calificacion=new String[numAlumnos];
        int i=0;
        //Entrada de datos
        do{
            System.out.print("Entre el nombre del alumno nº: "+(i+1)+" ");
            nombre[i]=entrada.nextLine();
            System.out.print("Entre la nota de "+nombre[i]+" alumno nº "+(i+1)+" ");
            nota[i]=Double.parseDouble(validarNumero());
            if (nota[i]<=4.99){calificacion[i]="Suspenso";}
            if(nota[i]>=5 || nota[i]==6.99){calificacion[i]="Bien";}
            if(nota[i]>=7 || nota[i]==8.99){calificacion[i]="Notable";}
            if(nota[i]>=9){calificacion[i]="Sobresaliente";}
            i++;
        }while (i<numAlumnos);
        for(i=0;i<numAlumnos;i++){
        System.out.print("El Alumno nº "+(i+1)+
                         " de Nombre "+nombre[i]+
                         " ha sacado una nota de "+nota[i]+
                         " y su calificacion es de "+calificacion[i]+"\n");
        }
    }//Fin del main

    //Bucle para validar que solo se escriban numeros por teclado
    public static String validarNumero(){

        boolean ok=false;
        do{

            entradaUsuario= entrada.nextLine();
            //Comprobar que sea un numero entero
            if (isNumeric(entradaUsuario) == true) {
                ok=true;
            }
            else{
                System.out.print("solo se admiten numeros");
                entradaUsuario="";
            }
        } while (!ok);
        return entradaUsuario;
    }

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

}//Fin de la Clase

Gracias.
« Última modificación: 11 de Junio 2020, 17:54 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas, para quien revise este ejercicio comentar lo siguiente:

- Hace uso de expresiones regulares, que no se han explicado en el curso y por tanto no es necesario su uso dentro del programa del curso.

- Los nombres no son del todo adecuados. Por ejemplo el método validarNumero en realidad no es un método para validar un número. Hace más cosas: pide una entrada el usuario, la valida y devuelve un número, por lo tanto no es un nombre que describa adecuadamente lo que hace el método.

- El diseño no es el más adecuado (todo el código en una única clase, uso de atributos estáticos, etc.).

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".