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
-
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
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
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.
-
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