Sie sind auf Seite 1von 7

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 mtodos.
Se origina agregando la palabra extends durante su definicin.
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 mdulo 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");
}
}
Cul es el resultado de las siguientes lneas de cdigo?
public class Test {
public static void main(String str[]) {
Persona p = new Estudiante();
p.hablar();
}
}

RPTA:
Yo soy un estudiante

3. Cul es la salida del siguiente cdigo?


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 lnea 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 cdigo. De existir error sealarlo.


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 instruccin?


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. Cul es la salida de la siguiente lnea de cdigo?


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 botn: Promedio de nota: Primero de las tres mejores prcticas por 0.3 ms examen
parcial por 0.3 mas examen final por 0.4.
2do botn: 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 mxima) alcance dicho promedio. Se debe poner el mensaje adecuado.

RPTA: Se ha realizado un programa que calcula lo solicitado:


Imgenes: 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:

Cdigo 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 mtodos para calcular promedio y nota requerida:


// Declaracion de variables
double p[] = {0,0,0,0}; // Notas de prcticas inicializadas a 0
double ep, ef;
double menorNota, // Menor nota de prcticas
sumaPracticas; // Suma de notas de prcticas
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 mtodo de la segunda clase se deber girar la figura 90 en
sentido horario e imprimirla. En otro mtodo la har girar 90 en sentido antihorario e
imprimirla.

Das könnte Ihnen auch gefallen