Autor Tema: Repaso arrays o arreglos unidimensionales Java. Tipos de inicialización CU00903C  (Leído 2135 veces)

LuisM

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 131
    • Ver Perfil
Hola a todos !! Paso a dejar el codigo de los dos ejercicios propuestos en la entrega CU00903C del tutorial avanzado de programación Java. Desde ya muchas gracias. Saludos
Luis

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.

Ejemplo: Introducimos los valores 2, 4, 5, 8 y 10 .Lo que se tiene que mostrar por consola  sería:
En el indice 0 esta el valor 2
En el indice 1 esta el valor 4
En el indice 2 esta el valor 5
En el indice 3 esta el valor 8
En el indice 4 esta el valor 10

Clase TestNumeros (main)

Código: [Seleccionar]
public class TestNumeros {
    public static void main (String [ ] args) {
        int i = 0;
        int nro = 0;
        System.out.println("Por favor, ingrese 5 números enteros ");   
        ListaDeNumeros lista = new ListaDeNumeros("Ejercicio 1");
        EntradaDeTeclado entrada=new EntradaDeTeclado();
        do {
            System.out.println ("Por favor introduzca un número en array["+i+"]");
            entrada.pedirEntrada();
            nro=Integer.parseInt(entrada.getEntrada());
            lista.addLista(nro); i++;
        }
        while (i<5);

        for (i=0; i<5; i++)
        {
            System.out.println ("En el índice "+i+" esta el valor "+lista.getNro(i));
        }
    }//Cierre del main
}


Clase ListaDeNumeros

Código: [Seleccionar]
import java.util.*;
public class ListaDeNumeros {
    private String nombreDeLaLista; //Establecemos un atributo nombre de la lista
    private ArrayList<Integer> listaDeNumeros; //Declaramos un ArrayList que contiene objetos Integer
    public ListaDeNumeros (String nombre) {    //Constructor: crea una lista de nombres vacía
        nombreDeLaLista = nombre;
        listaDeNumeros = new ArrayList<Integer>(); //Creamos el objeto de tipo ArrayList
    } //Cierre del constructor

    public void addLista(int nro) {
        listaDeNumeros.add(nro);
    } //Cierre del método

    public int getNro(int posicion) {
    int nro = listaDeNumeros.get(posicion);
    return nro;
    }
} //Cierre de la clase


y la clase para entrar datos por consola común a los dos ejercicios

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
// Definimos una clase EntradaDeTeclado aprenderaprogramar.com
public class EntradaDeTeclado {
    private String entradaTeclado; //Variable de instancia (campo) de la clase
    public EntradaDeTeclado ()  { //Constructor
        entradaTeclado="";
     //   pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
    } //Cierre del constructor
    public void pedirEntrada ()  {  //Método de la clase         
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine ();
        } //Cierre del método pedirEntrada
    public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada
    public String getPrimeraPalabra ()  {
               for (int i=0; i < entradaTeclado.length() - 1; i++) {
            if (entradaTeclado.substring (i, i+1).equals(" ") ) {     //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
                return entradaTeclado.substring(0, i+1);         }
        }
        return entradaTeclado;  //Caso de que no se detecte ningún espacio devolvemos lo que haya
    } //Cierre del método getPrimeraPalabra
    public int getLongitud ()  {  //Método de la clase
        return entradaTeclado.length();
    } //Cierre del método getLongitud
} //Cierre de la clase


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]
// Aquí el test con el método main ejemplo aprenderaprogramar.com
public class TestAlumnos {
    public static void main (String [ ] args) {
        String nombreAlumno = "";
        int i = 0;
        float puntuacion = 0f;
        String strPuntuacion="";
        boolean puntuacionValida=false;
        ListaAlumnos lista = new ListaAlumnos("Ejercicio 2");
        System.out.println("Se ingresaran los datos del examen de 2 alumnos"); 
        do {
            System.out.println("Por favor, ingrese nombre y apellido del alumno");   
            EntradaDeTeclado entrada = new EntradaDeTeclado();
            entrada.pedirEntrada();
            nombreAlumno = entrada.getEntrada();
            do{
                System.out.println("Por favor, ingrese el puntaje obtenido (de 0 a 10)");   
                entrada.pedirEntrada();
                strPuntuacion=entrada.getEntrada();
                if (strPuntuacion.equals("")) {puntuacion=0f;} else {
                    puntuacion = Float.parseFloat(strPuntuacion);
                }
            }
            while(puntuacion<0||puntuacion>10);
            lista.addNombre(nombreAlumno);
            lista.addPuntuacion(puntuacion);
            i++;
        }       
        while (i<2);
        System.out.println("Datos de los examenes cargados"); 
        for (i=0;i<2;i++){
           System.out.println("Alumno: "+lista.getNombre(i)+" tuvo una nota de "+lista.getNota(i)+" equivale a "+lista.getCalificacion(i));
        }

    }
}


Lista de datos de los exámenes

Código: [Seleccionar]
//Ejemplo de uso ArrayList aprenderaprogramar.com
import java.util.*; //Los import deben ir siempre al principio antes de declarar la clase
//Esta clase representa una lista de nombres manejada con la clase ArrayList de Java
public class ListaAlumnos {
    private String nombreDeLaLista; //Establecemos un atributo nombre de la lista
    private ArrayList<String> listaNombres; //Declaramos un ArrayList que contiene los nombres de los alumnos
    private ArrayList<Float> listaNotas; //Declaramos un ArrayList que contiene las puntuaciones de los alumnos
    private ArrayList<String> listaCalificaciones; //Declaramos un ArrayList que contiene las puntuaciones de los alumnos
    private String calificacion;
    public ListaAlumnos (String nombre) {    //Constructor: crea una lista de nombres vacía
        nombreDeLaLista = nombre;
        listaNombres = new ArrayList<String>(); //Creamos el objeto de tipo ArrayList
        listaNotas = new ArrayList<Float>(); //Creamos el objeto de tipo ArrayList
        listaCalificaciones = new ArrayList<String>(); //Creamos el objeto de tipo ArrayList
    } //Cierre del constructor

    public void addNombre(String nombreAlumno) {
        listaNombres.add(nombreAlumno);
    } //Cierre del método
    public void addPuntuacion(float puntuacion) {
        setCalificacion(puntuacion);
        listaNotas.add(puntuacion);
        listaCalificaciones.add(calificacion);
    } //Cierre del método
   
    public void setCalificacion(float puntuacion){
        if (puntuacion>=0&&puntuacion<5) {calificacion="Suspenso";} else
           if (puntuacion>=5&&puntuacion<7) {calificacion="Bien";} else
              if (puntuacion>=7&&puntuacion<9) {calificacion="Notable";} else
                    if (puntuacion>=9&&puntuacion<=10) {calificacion="Sobresaliente";}
    }
   
    public String getNombre(int posicion){
        return listaNombres.get(posicion);
    }
    public float getNota(int posicion){
        return listaNotas.get(posicion);
    }
    public String getCalificacion(int posicion){
        return listaCalificaciones.get(posicion);
    }

} //Cierre de la clase
« Última modificación: 28 de Enero 2018, 14:48 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas LuisM. Los ejercicios no están bien resueltos. En la entrega CU00903C se trabaja con arrays o arreglos de datos primitivos por ejemplo int[ ] edad = new int[4];

En cambio tú has usado ArrayList que se trata de una clase para contener objetos. En Java hay que recordar que no es lo mismo un int que un Integer por ejemplo, aunque sean tipos relativamente equivalentes.

Por tanto aunque los programas funcionen, no se corresponde con el contenido visto en la entrega CU00903C

Los tipos de datos y tipos de arrays en Java están explicados en el curso básico de Java: https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

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