Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: paramonso en 25 de Noviembre 2018, 10:17

Título: Ejercicios resueltos Java Avanzado arrays o arreglos unidimensionales CU00903C
Publicado por: paramonso en 25 de Noviembre 2018, 10:17
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.
Título: Re:Ejercicios resueltos Java Avanzado arrays o arreglos unidimensionales CU00903C
Publicado por: Ogramar en 11 de Junio 2020, 18:01
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