Solucionario Examen Final Cb-412 UNI FIEE

SOLUCIONARIO EXAMEN FINAL CB-412 I. TEORIA 1. ¿Qué entiende por clase derivada de otra y como se origina? De dos ejempl

Views 111 Downloads 3 File size 524KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

SOLUCIONARIO EXAMEN FINAL CB-412 I.

TEORIA 1. ¿Qué entiende por clase derivada de otra y como se origina? De dos ejemplos. RPTA: La clase derivada o subclase reusa los atributos y metodos de la super clase, sin la necesidad de implementar nuevamente dentro de la sub clase dichos atributos y métodos. Se origina agregando la palabra extends durante su definición. EJEMPLO: // Superclase public class parOrdenado { double a; double b; public parOrdenado(double a, double b) { this.a = a; this.b = b; } public double modulo() { return Math.sqrt(a*a + b*b); } }; // Clase derivada public class Complejo extends parOrdenado { public Complejo(double a, double b) { super(a, b); } } // Prueba public class Test { public static void main(String str[]) { Complejo z1 = new Complejo(3, 4); System.out.println("El módulo de Z1=3+4j es " + z1.modulo()); } } 2. Dadas las siguientes clases public class Persona { public void hablar() { System.out.println("Yo soy una persona");

} } class Estudiante extends Persona { public void hablar() { System.out.println("Yo soy un estudiante"); } } ¿Cuál es el resultado de las siguientes líneas de código? public class Test { public static void main(String str[]) { Persona p = new Estudiante(); p.hablar(); } } RPTA: Yo soy un estudiante 3. ¿Cuál es la salida del siguiente código? public class Test { public static void main(String str[]) { String val = "abc"; cambiaValor(val); System.out.println(val); } private static void cambiaValor(String a) { a = "xyz"; } } RPTA: abc 4. ¿Qué sentencia se debe adicionar en la línea 4 de modo que el programa se pueda ejecutar y producir la “A.A1”? class A { class A1 { void printValue() { System.out.print("A.A1"); }

} } public class Test { public static void main(String str[]) { A a = new A(); // CODIGO A INSERTAR a1.printValue(); } } RPTA: public class Test { public static void main(String str[]) { A a = new A(); A.A1 a1 = a.new A1(); // CODIGO A INSERTAR a1.printValue(); } } 5. Determine que imprime el siguiente código. De existir error señalarlo. String str1 = "Java"; String str2 = "Java"; boolean result1 = str1 == str2; boolean result2 = str1.equals(str2); System.out.println(result1); System.out.println(result2); RPTA: No hay error, la salida es la siguiente: true true 6. ¿Qué valor imprime o es incorrecta la instrucción? switch(rango) { case > 4.55: pago = pago*0.20; break; case > 4.55: pago = pago*0.15; break; default: pago = pago*0.05; break; } RPTA: Las instrucciones sonINCORRECTAS, el case es una palabra reservada y no se puede usar como variable que se compare con algun valor.

La forma correcta del switch es: switch(rango) { case 1: pago = pago*0.20; break; case 5: pago = pago*0.15; break; default: pago = pago*0.05; break; } 7. ¿Cuál es la salida de la siguiente línea de código? String str = "Programming"; for(int i = 0; i < 9; i+=2) { System.out.println(str.charAt(i)); } RPTA: Pormi

II.

PROBLEMAS 1. Problema 1.- Establecer un Jframe que permita ingresar datos de practicas (4) de un alumno, luego examen parcial y final. Implemente dos botones que hagan lo siguiente: 1er botón: Promedio de nota: Primero de las tres mejores prácticas por 0.3 más examen parcial por 0.3 mas examen final por 0.4. 2do botón: Emitir un mensaje indicando la nota que se debe obtenr en ele examen final para que su promedio de notas sea mayor o igual a 15. En este caso puede que ni con 20 (nota máxima) alcance dicho promedio. Se debe poner el mensaje adecuado. RPTA: Se ha realizado un programa que calcula lo solicitado: Imágenes: Calculo del Promedio:

Calculo de la Nota requerida para tener un promedio total mayor o igual a 15.

Mensaje cuando ya no se logra obtener el promedio mayor o igual a 15, cualquiera que sea la nota del examen final:

Código Fuente: Delos Botones: //Calcular Promedio private void btnCalcPromedioActionPerformed(java.awt.event.ActionEvent evt) { calcularPromedio(); } //Calcular Nota Requerida paratener promedio final mayor o igual a 15 private void btnNotaRequeridaActionPerformed(java.awt.event.ActionEvent evt) { calcularNotaRequerida(); } De los métodos para calcular promedio y nota requerida: // Declaracion de variables double p[] = {0,0,0,0}; // Notas de prácticas inicializadas a 0 double ep, ef; double menorNota, // Menor nota de prácticas sumaPracticas; // Suma de notas de prácticas double promedioPracticas, // Promedio de las 3 mejores practicas promedio; // Promedio final private void calcularPromedio() {

p[0] = Double.parseDouble(txtP1.getText()); p[1] = Double.parseDouble(txtP2.getText());

p[2] = Double.parseDouble(txtP3.getText()); p[3] = Double.parseDouble(txtP4.getText()); ep = Double.parseDouble(txtEP.getText()); ef = Double.parseDouble(txtEF.getText()); // Hallando la menor nota y // el promedio de las 3 mejores practicas menorNota = p[0]; sumaPracticas = 0; for(int i = 0; i < 4; i++) { if(menorNota > p[i]) { menorNota = p[i]; } sumaPracticas = sumaPracticas + p[i]; } promedioPracticas = (sumaPracticas - menorNota) / 3; promedio = promedioPracticas*0.3 + ep*0.3 + ef*0.4; lblPromedio.setText(Double.toString(promedio)); } private void calcularNotaRequerida() { calcularPromedio(); ef = (15 - (promedioPracticas*0.3 + ep*0.3)) / 0.4; if(ef > 20) { lblNotaRequerida.setText("Aunque saque 20 en el examen final,\nUd ya no puede tener un promedio 15 o mayor"); } else { lblNotaRequerida.setText(Double.toString(ef)); } } }

2. Problema 2.- Construya un programa Java aplicando HERENCIA, donde en la primera clase se cargue en una matriz figuras representada por UNOS, y un punto de representado por un DOS y la imprima. En un método de la segunda clase se deberá girar la figura 90° en sentido horario e imprimirla. En otro método la hará girar 90° en sentido antihorario e imprimirla.