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: PatAs en 11 de Agosto 2017, 22:12

Título: Java cómo declarar y hacer uso de Arrays unidimensionales simples bucle CU00903C
Publicado por: PatAs en 11 de Agosto 2017, 22:12
Buenas tardes/noche.

Presento solución posible para los ejercicios propuestos en la entrega de referencia
Ejercicio #1:

Código: [Seleccionar]
package CU00903C;


/**
 * Write a description of class CrearArray5Elementos here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (10-Ago-2017) - Ejercicio#1 - Propuesto por aprenderaprogramar.com
 */
public class CrearArray5Elementos {
    public static void main (String arg[]) {
        System.out.println("Comienza el programa");
        int[] numeros = new int[5];
        int i=0;
        while (i<numeros.length) {
            System.out.println("Por favor ingrese un número entero ");
            EntradaPorTeclado entre = new EntradaPorTeclado();
            numeros[i] = Integer.valueOf(entre.getEntrada());
            i++;
        }
       
System.out.println("El array está compuesto por: ");
for (i=0;i<numeros.length;i++) {
System.out.println("El indice " +i+ " contiene el número " +(numeros[i]));
}
    }
   
}


Ejercicio #2:

Código: [Seleccionar]
package CU00903C;


/**
 * Write a description of class NotasDosAlumnos here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (11-Ago-2017) - Ejercicio#2 - Propuesto por aprenderaprogramar.com
 */
public class NotasDosAlumnos {
public static void main (String arg[]) {
System.out.println("Comienza el programa");
String[] alumnos = new String[2];
double[] notas = new double[2];
int i=0;
while (i<2) { //Se condiciona i<2 porque el ejercicio indica arrays de 2 elementos. Lo correcto es condicionar con (nombre_del_array.length)
System.out.println("Por favor ingrese el nombre del alumno ");
EntradaPorTeclado alumno = new EntradaPorTeclado();
alumnos[i] = alumno.getEntrada();
System.out.println("Ahora ingrese la nota correspondiente ");
EntradaPorTeclado nota = new EntradaPorTeclado();
while (Double.valueOf(nota.getEntrada())<0 || Double.valueOf(nota.getEntrada())>10) {
System.out.println("Deberá ingresar una nota válida, comprendida entre 0 y 10");
nota = new EntradaPorTeclado();
}
notas[i] = Double.valueOf(nota.getEntrada());
i++;
}
//Se muestran los resultados
for (int j=0;j<2;j++) {
System.out.println("Alumno: " +alumnos[j]+ ", nota: " +notas[j]+ ", calificacion: " +estableceCalificacion(notas[j]));
}

}
static public String estableceCalificacion(double nota) {
String calificacion = "";
String[] Califica = {"Sobresaliente","Notable","Bien","Suspenso"};
if (nota<5.0) {
calificacion = Califica[3];
} else if (nota>=5.0 && nota<7.0) {
calificacion = Califica[2];
} else if (nota>=7.0 && nota<9.0) {
calificacion = Califica[1];
} else if (nota>=9.0 && nota<=10.0) {
calificacion = Califica[0];
} else {};
return calificacion;
}
}


En ambos se utilizó la clase auxiliar 'EntradaPorTeclado':

Código: [Seleccionar]
package CU00903C;

import java.util.Scanner;
/**
 * Para obtener entradas por teclado
 *
 * @author (Arnaldo Martinez)
 * @version (01_2016)
 */
public class EntradaPorTeclado{
   
    private String entradaTcl; //Campo de la clase
    //Constructor
    public EntradaPorTeclado(){
        entradaTcl= "";
        pedirEntrada(); //Llamado a un mètodo interno
    }
    //Mètodos de la clase
    public void pedirEntrada(){
        Scanner eEsc= new Scanner(System.in);
        entradaTcl= eEsc.nextLine();
    }
   
    public String getEntrada(){
        return entradaTcl;
    }
}
Título: Re:Java - CU00903C: Repaso Arrays unidimensionables
Publicado por: Ogramar en 16 de Septiembre 2017, 19:28
Buenas PatAs, ten en cuenta que la entrega es sobre arrays unidimensionales, he corregido el título porque habías puesto unidimensionables :)

Ejercicio 1 correcto

Ejercicio 2 correcto

La observación //Se condiciona i<2 porque el ejercicio indica arrays de 2 elementos. Lo correcto es condicionar con (nombre_del_array.length) es adecuada, en realidad podrías haber declarado una variable numeroDeAlumnos = 2 y eso usarlo como índice, de ese modo podrías variar el funcionamiento del programa para que funcione con el número de alumnos que definieras en esa línea, sin tener que cambiar otras cosas.

Otra observación: yo hubiera puesto los nombres de los arrays en singular, es decir en lugar de

String[] alumnos = new String[2];
double[] notas = new double[2];

String[] alumno = new String[2];
double[] nota = new double[2];

Así podrías decir nota[1] vale 5.77 en lugar de notas[1] vale 5.77 Esto no tiene importancia pero es en general bueno usar nombres en singular cuando sea posible

Salu2
Título: Re:Java cómo declarar y hacer uso de Arrays unidimensionales simples bucle CU00903C
Publicado por: PatAs en 20 de Septiembre 2017, 23:02
Hola Ogramar.
Gracias por la devolución. Tomo nota de las sugerencias y/o correcciones.
Saludos