Foro no oficial de la UPCT
Soluciones Examen 2º Parcial (Todos los grupos) - Versión para impresión

+- Foro no oficial de la UPCT (https://foroupct.es)
+-- Foro: 1º GIT (https://foroupct.es/Forum-1%C2%BA-GIT)
+--- Foro: Fundamentos de Programación (https://foroupct.es/Forum-Fundamentos-de-Programaci%C3%B3n)
+--- Tema: Soluciones Examen 2º Parcial (Todos los grupos) (/Thread-Soluciones-Examen-2%C2%BA-Parcial-Todos-los-grupos)



Soluciones Examen 2º Parcial (Todos los grupos) - Jesús Hernández Galián - 17-01-2013

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).
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 nint eString 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=0i<notas.lengthi++){
                
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=0i<notas.lengthi++)
            
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 Huh) 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=0i<misAlumnos.lengthi++){
            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=0i<misAlumnos.lengthi++){
            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=0i<alumnosUmbral.lengthi++){
            
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=0i<arrayPersonas.lengthi++){
            if (
arrayPersonas[i] != null){
                if (
esProfesor(i)){
                    
Profesor profe = (ProfesorarrayPersonas[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 = (AlumnoarrayPersonas[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.


RE: Soluciones Examen 2º Parcial (Todos los grupos) - alfonso - 18-01-2013

La verdad es que entre que el enunciado no estaba muy claro y que eran largos, a más de uno no le dio tiempo a terminarlos. Indeciso


Gracias por el aporte


RE: Soluciones Examen 2º Parcial (Todos los grupos) - José Antonio Martín Martínez - 26-01-2013

Sigues en tu línea Jesús. Vaya máquina.


RE: Soluciones Examen 2º Parcial (Todos los grupos) - Javi Vera - 11-02-2013

Muchas gracias tío! Mañana es el gran día... :S


RE: Soluciones Examen 2º Parcial (Todos los grupos) - Paco Sánchez - 11-02-2013

(11-02-2013, 21:27)Javi Vera escribió:

[Para ver los enlaces debes registrate]

Muchas gracias tío! Mañana es el gran día... :S
Además de verdad... Mucha suerte a todos! Sonrisa