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: luisdn en 12 de Febrero 2017, 20:18

Título: Repaso arays o arreglos unidimensionales en Java. Ejercicio elseif CU00903C
Publicado por: luisdn en 12 de Febrero 2017, 20:18
Hola a todos. Dejo los códigos del siguiente ejercicio CU00903C del curso avanzado de programación orientada a objetos con Java:

Citar
EJERCICIO 1

Crea un array numérico con 5 elementos. Los números de cada elemento deben ser valores pedidos por teclado al usuario. Muestra por consola el índice y el valor al que corresponde. Debes utiliza bucles tanto para pedir los valores de los elementos del array como para mostrar su contenido por pantalla.
Código: [Seleccionar]
public class PruebaArray{
    private int[] arrayInt = new int[5];

    public PruebaArray(){
        arrayInt = new int[5];
    }

    public void setNumero(int i, int a){arrayInt[i] = a;}
   
    public int getNumero(int i){return arrayInt[i];}
}

   

Código: [Seleccionar]
import java.util.Scanner;

public class Test{
    public static void main(String[] args){
        PruebaArray array = new PruebaArray();
        Scanner sc = new Scanner(System.in);
       
        System.out.println("Introduzca 5 números dentro del array: ");
        for(int i = 0 ; i < 5 ; i++){
            System.out.println("Introduzca un número: ");
            array.setNumero(i, sc.nextInt());
        }
        for(int i = 0; i < 5 ; i++){
            System.out.println("En el índice "+i+" está el número "+array.getNumero(i));
        }
    }
}

Citar
EJERCICIO 2

Crea un programa en el que se pida por consola el nombre de 2 alumnos y la nota de cada uno de ellos como valor numérico. El resultado que debe mostrarse es el nombre de cada alumno, su nota y su calificacion como texto (Sobresaliente, Notable, Bien o Suspenso).

Para ello crea un array numérico y otro de String (ambos unidimensionales). En el array numérico se insertarán las calificaciones facilitadas por el usuario entre 0 y 10 (debemos controlar que inserte una nota valida), pudiendo ser decimal. En el array de Strings se insertarán los nombres de los alumnos.

Crea también un array de String donde insertaremos el resultado de la nota con palabras admitiéndose estos valores: Sobresaliente, Notable, Bien o Suspenso.

El programa debe comprobar la nota de cada alumno teniendo en cuenta esta equivalencia:

Si la nota está entre 0 y 4,99 será un Suspenso.

Si la nota está entre 5 y 6,99 será un Bien.

Si la nota está entre 7 y 8,99 será un Notable.

Si la nota está entre 9 y 10 será un Sobresaliente.

 

Muestra por pantalla, el alumno su nota y su resultado en palabras utilizando bucles. Crea los métodos que creas convenientes.

Código: [Seleccionar]
public class NotasAlumnos{
    private float[] nota;
    private String[] alumno;
   
    public NotasAlumnos(){
        nota = new float[2];
        alumno = new String[2];
    }
   
    public void setNota(int i, float n){nota[i] = n;}
    public void setNombre(int i, String a){alumno[i] = a;}
   
    public float getNota(int i){return nota[i];}
    public String getNombre(int i){return alumno[i];}
}

Código: [Seleccionar]
import java.util.Scanner;

public class Test{
    public static void main(String[] args){
        String[] calificacion = {"Sobresaliente",
                "Notable",
                "Bien",
                "Suspenso"};
        NotasAlumnos lista = new NotasAlumnos();
        Scanner sc = new Scanner(System.in);
        float n = 0.0f;
        int i = 0;

        while(  i < 2 ){
            System.out.println("Introduzca el nombre del alumno "+(i+1)+": ");
            lista.setNombre(i, sc.nextLine());
            System.out.println("Introduzca la nota: ");
            n = sc.nextFloat();
            if(n >= 0 && n <= 10){
                lista.setNota(i, n);
                i++;
            }
            else System.out.println("La nota no es válida.");
            sc.nextLine();
        }

        for(i = 0 ; i < 2 ; i++){
            if(lista.getNota(i) >= 0 && lista.getNota(i) < 5){
                System.out.println("Nombre del alumno: "+lista.getNombre(i)+", nota: "+lista.getNota(i)+" es un "+calificacion[3]);
            }
            if(lista.getNota(i) >= 5 && lista.getNota(i) < 7){
                System.out.println("Nombre del alumno: "+lista.getNombre(i)+", nota: "+lista.getNota(i)+" es un "+calificacion[2]);
            }
            if(lista.getNota(i) >= 7 && lista.getNota(i) < 9){
                System.out.println("Nombre del alumno: "+lista.getNombre(i)+", nota: "+lista.getNota(i)+" es un "+calificacion[1]);
            }
            if(lista.getNota(i) >= 9 && lista.getNota(i) <= 10){
                System.out.println("Nombre del alumno: "+lista.getNombre(i)+", nota: "+lista.getNota(i)+" es un "+calificacion[0]);
            }
        }
    }
}

Muchas gracias.
Título: Re:Repaso arays o arreglos unidimensionales en Java. Ejercicio CU00903C
Publicado por: pedro,, en 14 de Febrero 2017, 09:45
Hola luisdn.

Los ejercicios están bien resueltos. Solo comentarte que en el segundo ejercicio cuando compruebas las notas,
Código: [Seleccionar]
if(lista.getNota(i) >= 0 && lista.getNota(i) < 5){
                System.out.println("Nombre del alumno: "+lista.getNombre(i)+", nota: "+lista.getNota(i)+" es un "+calificacion[3]);
            }
            if(lista.getNota(i) >= 5 && lista.getNota(i) < 7){
                System.out.println("Nombre del alumno: "+lista.getNombre(i)+", nota: "+lista.getNota(i)+" es un "+calificacion[2]);
            }
            if(lista.getNota(i) >= 7 && lista.getNota(i) < 9){
                System.out.println("Nombre del alumno: "+lista.getNombre(i)+", nota: "+lista.getNota(i)+" es un "+calificacion[1]);
            }
            if(lista.getNota(i) >= 9 && lista.getNota(i) <= 10){
                System.out.println("Nombre del alumno: "+lista.getNombre(i)+", nota: "+lista.getNota(i)+" es un "+calificacion[0]);
            }
sería mejor que usases else if, de esta forma una vez que se cumpla una de las condiciones no se seguirán evaluando las demás.

Saludos. ;D