17-01-2013, 23:44
A pesar de que el enunciado de los ejercicios no era el más claro, dejo aquí las soluciones del 2º parcial (hechas por mi). Realizado y comprobado en eclipse. Es posible que tenga algún fallo.
La dificultad del examen era media, pero era un poco largo la verdad.
Aquí os dejo los enunciados del examen: (Proximamente).
Ejercicio 1:
Era el más largo, pero el más fácil (creo yo).
Ejercicio 2:
Aquí es donde no está la claridad del enunciado. Empieza con un "Suponga" (mal vamos ) y dice que implementa la interfaz Persona, por lo tanto debe incluir los mismos métodos. Después (esto aclara un poco la cosa) pone : "Se pide Implemente los siguientes métodos de Profesor", por lo tanto se "supone" que solo se tienen que poner los métodos que pida (no siendo necesario poner los de la interfaz Persona).
Aún así os dejo la clase completa.
Ejercicio 3:
Aquí tenemos la misma historia que con el ejercicio 2. Pero aquí no había que implementar nada (necesario) que no se pidiera.
Espero que os sirva de orientación y os aclare las dudas.
La dificultad del examen era media, pero era un poco largo la verdad.
Aquí os dejo los enunciados del examen: (Proximamente).
Ejercicio 1:
Era el más largo, pero el más fácil (creo yo).
Código PHP:
public class Alumno implements Persona{
private String Nombre;
private int Edad;
private String DNI;
private int Id;
private static int indice = 0;
public static final int maxnotas = 10;
private double[] notas;
public Alumno (String n, int e, String d){
Nombre = new String(n);
Edad = e;
DNI = new String (d);
Id = indice++;
}
public String getNombre() {
return new String (Nombre);
}
public int getEdad() {
return Edad;
}
public String getDNI() {
return new String(DNI);
}
public int getId (){
return Id;
}
public int nroExamenes(){
if (notas==null)
return 0;
return notas.length;
}
public int setNota(double nota){
if (nroExamenes() == 0){
notas = new double[1];
notas[0] = nota;
return nroExamenes();
}
if (nroExamenes()<maxnotas){
double[] notaspuestas = new double[nroExamenes()+1];
for (int i=0; i<notas.length; i++){
notaspuestas[i] = notas[i];
}
notaspuestas[notas.length] = nota;
notas = notaspuestas;
return nroExamenes();
}
return -1;
}
public double notaMedia(){
if (nroExamenes() == 0)
return -1;
int notamedia = 0;
for (int i=0; i<notas.length; i++)
notamedia+=notas[i];
return notamedia/nroExamenes();
}
public static void main(String[] args) {
}
}
Ejercicio 2:
Aquí es donde no está la claridad del enunciado. Empieza con un "Suponga" (mal vamos ) y dice que implementa la interfaz Persona, por lo tanto debe incluir los mismos métodos. Después (esto aclara un poco la cosa) pone : "Se pide Implemente los siguientes métodos de Profesor", por lo tanto se "supone" que solo se tienen que poner los métodos que pida (no siendo necesario poner los de la interfaz Persona).
Aún así os dejo la clase completa.
Código PHP:
public class Profesor implements Persona{
String Nombre;
int Edad;
String DNI;
Alumno[] misAlumnos;
public String getNombre() {
return new String (Nombre);
}
public int getEdad() {
return Edad;
}
public String getDNI() {
return new String(DNI);
}
// A PARTIR DE AQUÍ SERÍA SUFICIENTE, LO ANTERIOR ES NECESARIO PERO NO LO PIDE
public int nroAlumnosUmbral(double notaUmbral){
if (misAlumnos == null)
return 0;
int cont = 0;
for (int i=0; i<misAlumnos.length; i++){
if (misAlumnos[i] != null){
if (misAlumnos[i].notaMedia() >= notaUmbral)
cont++;
}
}
return cont;
}
public Alumno[] alumnosUmbral(double notaUmbral){
if (misAlumnos == null)
return null;
Alumno[] alumnosUmbral = new Alumno[nroAlumnosUmbral(notaUmbral)];
int j = 0;
for (int i=0; i<misAlumnos.length; i++){
if (misAlumnos[i] != null){
if (misAlumnos[i].notaMedia() >= notaUmbral)
alumnosUmbral[j++] = misAlumnos[i];
}
}
return alumnosUmbral;
}
public void printAlumnos(double notaUmbral){
Alumno[] alumnosUmbral = alumnosUmbral(notaUmbral);
if (alumnosUmbral == null)
return;
for (int i=0; i<alumnosUmbral.length; i++){
System.out.println("Nombre: "+alumnosUmbral[i].getNombre()+
". Nota media: "+alumnosUmbral[i].notaMedia());
}
}
public static void main(String[] args) {
}
}
Ejercicio 3:
Aquí tenemos la misma historia que con el ejercicio 2. Pero aquí no había que implementar nada (necesario) que no se pidiera.
Código PHP:
public class GestorPersonal {
public static Persona[] arrayPersonas;
public static boolean esProfesor(int indice){
if (arrayPersonas == null)
return false;
if (arrayPersonas[indice] instanceof Profesor)
return true;
return false;
}
public static void listarPersonal(){
if (arrayPersonas == null)
return;
for (int i=0; i<arrayPersonas.length; i++){
if (arrayPersonas[i] != null){
if (esProfesor(i)){
Profesor profe = (Profesor) arrayPersonas[i];
System.out.println("Nombre: "+profe.getNombre()+
". Edad: "+profe.getEdad()+
". DNI: "+profe.getDNI()+
". Profesor. Nº Alumnos: "+profe.nroAlumnosUmbral(-1));
}
if (arrayPersonas[i] instanceof Alumno){
Alumno alu = (Alumno) arrayPersonas[i];
System.out.println("Nombre: "+alu.getNombre()+
". Edad: "+alu.getEdad()+
". DNI: "+alu.getDNI()+
". Alumno. Código: "+alu.getId());
}
}
}
}
public static void main(String[] args) {
}
}
Espero que os sirva de orientación y os aclare las dudas.