Está en la página 1de 10

Fundamentos de Programacin II

Ejercicios Tema 1 Pgina 1



Tema 1. Clases y Objetos


1. Cree una clase empleado y pruebe su funcionalidad. Las variables de ejemplar que
debe considerar son nombre, apellido y salario anual. Adems de los mtodos de
consulta y actualizacin de las variables, considere dos mtodos ms. Uno de ellos
devolver el salario mensual. El otro mtodo devolver un extra calculado como un
porcentaje del salario anual ms 1000. El porcentaje es un parmetro que se pasa al
mtodo.

2. Escriba un programa que estime el beneficio obtenido por un producto particular en
un mes. Se conoce el nombre del producto, el coste de la unidad, el precio de venta al
pblico y el nmero medio de unidades del producto vendidas en un mes. Disee y
use las clases apropiadas.

3. Construya un programa que use una clase denominada vehculo, que tenga como
atributos las propiedades ms caractersticas de cada vehculo. El programa crear
una matriz de objetos con vehculos diferentes y deber imprimir las caractersticas
del vehculo ms barato. Los datos de cada vehculo se introducirn por teclado
cuando el programa lo solicite.

4. El siguiente diagrama de clases, incompleto, representa la estructura bsica de un
programa para recopilar los encargos de productos de una compaa.
Encargo
encargoID
fecha
valor
Producto
ID
coste
Cliente
nombre
direccin
pago( )
Cliente
corporativo
cuenta
pago( )
Cliente
particular
tarjetaNmr
pago( )
1
*
*
1


Escriba una versin en Java de la clase Producto. Incluya mtodos que permitan acceder a la
informacin del producto.
Fundamentos de Programacin II



Ejercicios Tema 1 Pgina 2

5. Dada la siguiente relacin de asociacin entre las clases A y B. Indique como se
implementara


a) Un objeto de A hereda de B
b)Un mtodo de B tiene como parmetro un objeto A
c) Un atributo de ejemplar de B es un objeto A
d)Ninguna de las anteriores es cierta

6. Cul es el resultado del siguiente programa?

cl ass Ej er ci ci o {
publ i c st at i c voi d mai n( St r i ng [ ] ar gs) {
Cl ase1 obj 1=new Cl ase1( ) ;
obj 1. i mpr i mi r ( 24. 3, 5) ;
}
}
cl ass Cl ase1 {
pr i vat e doubl e val or =9. 8;
pr i vat e i nt x=7;
publ i c voi d i mpr i mi r ( doubl e val or , i nt x) {
Syst em. out . pr i nt ( val or + +t hi s. x) ;
}
}

7. Qu imprime el siguiente programa?

cl ass Ej er ci ci o {
publ i c st at i c voi d mai n ( St r i ng [ ] ar gs) {
Cl ase1 obj 1= new Cl ase1( 5, 4) ;
Syst em. out . pr i nt ( obj 1. modi f i car ( 4) +" " ) ;
Cl ase1 obj 2= new Cl ase1( 5, 4) ;
Syst em. out . pr i nt ( obj 2. modi f i car ( 5) +" " ) ;
obj 2=obj 1;
Syst em. out . pr i nt l n( obj 2. modi f i car ( 5) +" " ) ;
}/ / f i n mai n
}
cl ass Cl ase1{
i nt p1, p2;
publ i c Cl ase1 ( i nt i , i nt j ) {
p1=i ;
p2=j ;
}
publ i c i nt modi f i car ( i nt i ) {
p1=p1+i ;
p2=p2+i ;
Syst em. out . pr i nt ( p2+" " ) ;
r et ur n p1;
}
}

8. Desarrolle un programa que sirva para evaluar el valor de un polinomio, cuyo grado y
coeficientes se introducen por teclado, en un valor de abscisa determinado.

A B
1 1
Fundamentos de Programacin II



Ejercicios Tema 1 Pgina 3

9. Cul es el error del siguiente programa?

cl ass Cuent a {

pr ot ect ed i nt numer o_cuent a;
pr ot ect ed doubl e sal do;

publ i c Cuent a( i nt cuent a, doubl e i ni ci al ) {
numer o_cuent a=cuent a;
sal do = i ni ci al ;
} / / Fi n const r uct or cuent a

publ i c voi d deposi t ar ( doubl e cant i dad) {
sal do = sal do + cant i dad;
} / / Fi n mt odo deposi t o

publ i c doubl e sal do( ) {
r et ur n sal do;
} / / Fi n mt odo sal do
}/ / f i n cl ase Cuent a

cl ass Banco {

publ i c st at i c voi d mai n( St r i ng [ ] ar gs) {
/ / Se cr ea l a cuent a
Cuent a cuent a_1 = new Cuent a( 123456, 2505. 32) ;
/ / Se consul t a el sal do
doubl e t ot al _cuent a=cuent a_1. sal do;
Syst em. out . pr i nt l n( Tot al act ual en l a cuent a:
+t ot al _cuent a + Eur os) ;
}/ / del mai n
}/ / de l a cl ase Banco


10. a) Disee e implemente en Java una clase para trabajar con tringulos issceles. Para ello,
defina las variables de ejemplar mnimas que requiera, proporcione mtodos de consulta, un
mtodo constructor e implemente otros mtodos para calcular el permetro y el rea de un
tringulo. b) Implemente en Java un mtodo que a partir de una matriz de tringulos devuelva
el rea del tringulo de mayor superficie

11. Un teatro se caracteriza por su nombre y su direccin y en l se realizan 4 funciones al da.
Cada funcin tiene un nombre y un precio. Realice el diseo de clases e indique qu mtodos
tendra cada clase, teniendo en cuenta que se pueda cambiar el nombre del teatro y el nombre
y precio de la funcin. Implemente dichas clases.



Fundamentos de Programacin II



Ejercicios Tema 1 Pgina 4

12. a) Qu imprime el siguiente programa?

cl ass Ej er ci ci o {
publ i c st at i c voi d mai n ( St r i ng [ ] ar gs) {
Cl ase1 obj 1= new Cl ase1( 7) ;
Cl ase1 obj 2= new Cl ase1( 9) ;
obj 2=obj 1;
Syst em. out . pr i nt ( obj 1. val or pr op( ) +" " ) ;
Syst em. out . pr i nt ( obj 2. val or pr op( ) +" " ) ;
}/ / f i n mai n
}

cl ass Cl ase1{
st at i c i nt pr op=0;
publ i c Cl ase1 ( i nt val or ) {
pr op=val or ;
}
publ i c i nt val or pr op( ) {
r et ur n pr op;
}
}

b) Y si prop en Clase1 no la declaramos como static?

13. Cul es el error de la siguiente clase?
cl ass Ej empl o {

st at i c pr i vat e f i nal i nt a=10;
st at i c pr i vat e f i nal i nt b=20;
publ i c i nt get A( ) {r et ur n a; }
publ i c i nt get B( ) {r et ur n b; }

}
a) No se produce ningn error, la clase est bien implementada
b) a y b son static por lo que no se pueden declarar en una clase
c) Al ser a y b estticas no se pueden usar en los mtodos getA y getB que no son
estticos
d) a y b no pueden ser static y final a la vez

14. Dado el siguiente fragmento de cdigo:

Or denador sobr emesa; Or denador por t at i l ;
sobr emesa = new Or denador ( ) ;
sobr emesa. pr eci o( 900) ;
por t at i l = new Or denador ( ) ;
por t at i l . pr eci o( 1100) ;
por t at i l = sobr emesa;
sobr emesa = nul l ;
Qu afirmacin es cierta?
a) Al final tanto el objeto sobremesa como el objeto porttil apuntan a null
b) Al final slo queda un objeto de tipo Ordenador con precio 1100
c) Al final slo queda un objeto de tipo Ordenador con precio 900
d) Al final hay dos objetos de tipo Ordenador, uno con precio 900 y otro con precio 1100
Fundamentos de Programacin II



Ejercicios Tema 1 Pgina 5

15. Dado el siguiente fragmento de cdigo que pertenece a un programa perfectamente
definido:

Al umno a = new Al umno( El ena) ;
Al umno b = a;
Al umno c = new Al umno( Mar a) ;
a = new Al umno( J ul i a) ;
b = c;
c = nul l ;

Qu alumnos son accesibles mediante las referencias del programa al finalizar el fragmento
de cdigo?:

a) Julia
b) Mara y Julia
c) Elena, Julia y Mara
d) Ninguna de las respuestas anteriores es correcta


16. Sean a y b dos nmeros reales*, el par (a, b) se llama nmero complejo si la igualdad, la
adicin y la multiplicacin de pares se definen del modo siguiente:

a) Igualdad: , , a b c d a c b d
b)Suma: , , , a b c d a c b d
c) Producto: , , , a b c d ac bd ad bc

El nmero complejo (a, b) puede expresarse en la forma a+bi. Tambin se puede definir la
operacin multiplicacin de un nmero complejo por un entero de la siguiente forma:
Multiplicacin por un entero: ( , ) ( , ) a b a b
Con esta definicin cree una clase nmero complejo.

Para ello:
a) Dibuje el diagrama UML de dicha clase indicando todos sus miembros.
b) Implemente el cdigo de la clase en Java.

Nota: Por simplicidad considere a y b como enteros.


17. Construya un programa que muestre por pantalla el resultado de la suma y el producto de
dos nmeros complejos usando la clase complejo implementada en el ejercicio anterior.
Adems, el programa deber comprobar si dos nmeros complejos dados son iguales y
tambin deber multiplicar un nmero complejo por un entero. El programa debe mostrar por
pantalla el nmero complejo (en la forma x+yi) resultante de la suma y el producto de dos
nmeros complejos dados, as como el resultante de la multiplicacin de un nmero complejo
por un entero. Adems, el programa deber imprimir un mensaje indicando si los dos
nmeros complejos son iguales o no.


Fundamentos de Programacin II



Ejercicios Tema 1 Pgina 6

18. Qu imprime el siguiente programa?

cl ass Pr i nci pal {

publ i c st at i c voi d mai n( St r i ng[ ] ar gs) {
Aut or aut or =new Aut or ( " Paul " , " Aust er " ) ;
Li br o l i br o= new Li br o ( " La t r i l og a de Nueva Yor k" , aut or ) ;
Syst em. out . pr i nt l n ( l i br o. get Ti t ul o( ) +" de " +
( l i br o. get Aut or ( ) ) . t oSt r i ng( ) ) ;
}
}

cl ass Li br o {
pr i vat e St r i ng t i t ul o;
pr i vat e Aut or aut or ;

publ i c Li br o( St r i ng t i t ul o, Aut or aut or ) {
t hi s. t i t ul o = t i t ul o;
t hi s. aut or = aut or ;
}

publ i c Aut or get Aut or ( ) {
r et ur n aut or ;
}

publ i c St r i ng get Ti t ul o( ) {
r et ur n t i t ul o;
}
}

cl ass Aut or {

pr i vat e St r i ng nombr e;
pr i vat e St r i ng apel l i do;

publ i c Aut or ( St r i ng nombr e, St r i ng apel l i do) {
t hi s. nombr e = nombr e;
t hi s. apel l i do=apel l i do;
}

publ i c St r i ng t oSt r i ng ( ) {
r et ur n nombr e+ " " +apel l i do;
}
}

19. Entre dos clases existe la siguiente relacin de dependencia:

Peaje Cami n



Escriba el cdigo de ambas clases sabiendo que la clase camin se caracteriza por el nmero
de ejes del camin y el nmero de toneladas que carga. La clase peaje debe calcular lo que
debe pagar un camin (3 euros por eje y 10 euros por tonelada). Sus variables de ejemplar son
nmero de camiones que han pasado por el peaje y dinero cobrado, que deben ser devueltas
para su posterior consulta e impresin.
Fundamentos de Programacin II



Ejercicios Tema 1 Pgina 7

20. Qu imprime el siguiente programa?

cl ass Al umno {
St r i ng nombr e = " Al umno 1" ;
char gr upo =' A' ;

char devol ver gr upo( ) {
r et ur n gr upo;
}

voi d cambi ar gr upo( char nuevogr upo) {
gr upo = nuevogr upo;
}

voi d i mpr i mi r ( ) {
Syst em. out . pr i nt l n( " Nombr e: " + nombr e) ;
Syst em. out . pr i nt l n( " Gr upo: " + devol ver gr upo( ) ) ;
}
}

cl ass Pr i nci pal {
publ i c st at i c voi d mai n ( St r i ng[ ] ar gs) {
Al umno a1 = new Al umno( ) ;
Syst em. out . pr i nt l n( " Obj et o a1: \ n- - - - - - - - - - - \ n" ) ;
a1. i mpr i mi r ( ) ;
Syst em. out . pr i nt l n( " \ nLl amada al met odo pr ueba1( a1) . \ n" ) ;
pr ueba1( a1) ;
a1. i mpr i mi r ( ) ;
Syst em. out . pr i nt l n( " " ) ;
Al umno a2 = new Al umno( ) ;
Syst em. out . pr i nt l n( " \ nObj et o a2: \ n- - - - - - - - - - - \ n" ) ;
a2. i mpr i mi r ( ) ;
Syst em. out . pr i nt l n( " \ nLl amada al met odo pr ueba2( a2) . \ n" ) ;
pr ueba2( a2) ;
Syst em. out . pr i nt l n( " \ nEn mai n: Fuer a ya del met odo pr ueba2. \ n" ) ;
a2. i mpr i mi r ( ) ;
}
st at i c voi d pr ueba1( Al umno b) {
b. cambi ar gr upo( ' B' ) ;
}

st at i c voi d pr ueba2( Al umno b) {
b = new Al umno( ) ;
b. cambi ar gr upo( ' B' ) ;
Syst em. out . pr i nt l n( " \ nDent r o del met odo pr ueba2. \ n" ) ;
b. i mpr i mi r ( ) ;
}
}



Fundamentos de Programacin II



Ejercicios Tema 1 Pgina 8

21. En una tienda cada factura se representa por su nmero y una serie de productos. Cada
producto se caracteriza por su cdigo alfanumrico y su precio. Se pide:
a) Dibujar el diagrama de clases indicando las relaciones entre las mismas y los miembros
que hay en cada una. Debe incluir mtodos para la consulta del nmero de factura y el/los
productos de la factura y mtodos para actualizacin de los datos del/los productos.
b) Implemente en Java dichas clases
c) Implemente un programa principal donde se imprima una factura con los siguientes
productos: (cdigo: C1, precio: 24 euros), (cdigo: H23, precio: 234 euros) y (cdigo: M30,
precio: 109 euros). A continuacin debe cambiarse el segundo producto de la factura por
el siguiente (cdigo: K123, precio:247 euros) y volver a imprimir la factura

22. Un avin se caracteriza por un nmero de identificacin y su tripulacin. La tripulacin
est formada por 4 personas, caracterizada cada una por su puesto y el nmero de das que
libra a la semana. Se pide:

a) Dibujar el diagrama de clases indicando las relaciones entre las mismas y los
miembros que hay en cada una. Debe incluir mtodos para:
i. la consulta del nmero de identificacin del avin
ii. la consulta y actualizacin de los datos de los miembros de la
tripulacin.
b) Implemente en Java dichas clases
c) Implemente un programa principal donde se impriman los datos del avin incluidos los
datos de los 4 miembros de la tripulacin. Utilice el siguiente ejemplo:
a. ID_avion: 234
b. Datos de los miembros de la tripulacin:
i. piloto, das libres: 4
ii. copiloto, das libres: 3
iii. sobrecargo, das libres: 2
iv. azafato, das libres: 2

A continuacin debe cambiarse el nmero de das libres del piloto por 3 y volver a imprimir
los datos actualizados de la tripulacin. No realizar lecturas por teclado, inicializar los datos
dentro del mtodo main. Nota: Se han considerado el mnimo nmero de atributos para no
aumentar la complejidad del ejercicio

23. Se pretende informatizar la informacin de un campeonato juvenil de tenis. La informacin
que nos interesa sobre el campeonato es: parejas que van a competir (pueden competir un
nmero elevado de parejas), ciudad donde se celebrar la competicin y calle. Cada pareja
debe estar formada por 2 personas. Sobre cada pareja debemos controlar el identificador de la
pareja, a qu ciudad representan y adems se debe comprobar con un mtodo si la pareja es
vlida o no. Una pareja se considera vlida si la edad de cada persona est comprendida entre
18 y 25 aos, ambos inclusive. Las personas quedan caracterizadas por su nombre y edad y
debe ser posible consultar ambos atributos. Por tanto, habr una clase persona con dichos
atributos y mtodos de consulta. Se pide:

a) Dibujar en UML el diagrama de clases indicando las relaciones entre las mismas y los
miembros que hay en cada una. Debe incluir mtodos para la consulta de todos los
atributos de ejemplar, y todos los mtodos que sean necesarios para la resolucin del
ejercicio.
b) Implementar en Java dichas clases.
c) Implementar un programa principal donde se introduzca la informacin de dos parejas
que van a competir, sabiendo que el campeonato se celebrar en Ciudad Real en la
calle Paseo de la Universidad. Como informacin de salida se debe mostrar toda la
informacin relativa al juego: donde se celebra, parejas inscritas (suponer dos), e
informacin personal de cada miembro de la pareja. Adems, se debe comprobar si las
dos parejas involucradas son vlidas.

Fundamentos de Programacin II



Ejercicios Tema 1 Pgina 9

24. Escriba un programa que use una lista enlazada para gestionar una serie de libros
identificados por su ttulo. El programa debe ser capaz de ir aadiendo libros a la serie
mantenida y de poder imprimir los ttulos de toda la serie cuando se le indique. Como ejemplo
use los siguientes libros: Niebla , La Metamorfosis y El callejn de los milagros

25. Qu imprime el siguiente programa?

cl ass Col or es {
publ i c st at i c voi d mai n( St r i ng [ ] ar gs) {
Li st a col or es =new Li st a( ) ;
col or es. i ncl ui r ( r oj o) ;
col or es. i ncl ui r ( azul ) ;
col or es. i ncl ui r ( ver de) ;
col or es. i mpr i mi r ( ) ;
}
} / / Fi n cl ase pr i nci pal

cl ass Nodo {
pr i vat e St r i ng col or ;
pr i vat e Nodo si gui ent e;
publ i c Nodo( St r i ng col or ) {
t hi s. col or =col or ;
}
publ i c voi d poner ( Nodo si gui ent e_nodo) {
si gui ent e=si gui ent e_nodo;
}
publ i c Nodo coger ( ) {
r et ur n si gui ent e;
}
publ i c St r i ng col or ( ) {
r et ur n col or ;
}
} / / Fi n cl ase Nodo

cl ass Li st a {
pr i vat e Nodo pr i mer o;
publ i c Li st a( ) {
pr i mer o=nul l ;
}
publ i c voi d i mpr i mi r ( ) {
f or ( Nodo aux=pr i mer o; aux. coger ( ) ! = nul l ; aux = aux. coger ( ) ) {
Syst em. out . pr i nt ( aux. col or ( ) + ) ;
}
}
publ i c voi d i ncl ui r ( St r i ng cadena) {
Nodo el ement o = new Nodo( cadena) ;
i f ( pr i mer o==nul l ) {
pr i mer o=el ement o;
}
el se {
Nodo aux;
f or ( aux=pr i mer o; aux. coger ( ) ! = nul l ; aux=aux. coger ( ) ) ;
aux. poner ( el ement o) ;
}
}
} / / Fi n cl ase Li st a

a) rojo azul verde b) null c) rojo azul d) azul verde
Fundamentos de Programacin II



Ejercicios Tema 1 Pgina 10


26. Qu imprime el siguiente programa?

cl ass Pr emi os {
publ i c st at i c voi d mai n( St r i ng [ ] ar gs) {
Engi neer s pr emi os_Tur i ng =new Engi neer s( ) ;
pr emi os_Tur i ng. i nser t ar ( " Fr ances Al l en" ) ;
pr emi os_Tur i ng. i nser t ar ( " Edsger Di j kst r a" ) ;
pr emi os_Tur i ng. i nser t ar ( " Denni s M. Ri t chi e" ) ;
pr emi os_Tur i ng. pr i nt ( ) ;
}
} / / Fi n cl ase pr i nci pal

cl ass Nodo {
pr i vat e St r i ng engi neer ;
pr i vat e Nodo si gui ent e;
publ i c Nodo( St r i ng eng) {
engi neer =eng;
}
publ i c voi d poner ( Nodo si gui ent e_nodo) {
si gui ent e=si gui ent e_nodo;
}
publ i c Nodo r ecuper ar ( ) {
r et ur n si gui ent e;
}
publ i c St r i ng get _engi neer ( ) {
r et ur n engi neer ;
}
} / / Fi n cl ase Nodo

cl ass Engi neer s {
pr i vat e Nodo i ni ci al ;
publ i c Engi neer s( ) {
i ni ci al =nul l ;
}
publ i c voi d pr i nt ( ) {
f or ( Nodo a=i ni ci al ; a! = nul l ; a = a. r ecuper ar ( ) ) {
Syst em. out . pr i nt ( a. get _engi neer ( ) + " " ) ;
}
}
publ i c voi d i nser t ar ( St r i ng cadena) {
Nodo uni dad = new Nodo( cadena) ;
i f ( i ni ci al ==nul l ) {
i ni ci al =uni dad;
}
el se {
Nodo b;
f or ( b=i ni ci al ; b. r ecuper ar ( ) ! = nul l ; b=b. r ecuper ar ( ) ) ;
b. poner ( uni dad) ;
}
}
} / / Fi n cl ase Engi neer s

a) Frances Allen Edsger Dijkstra Dennis M. Ritchie
b) Frances Allen Edsger Dijkstra
c) Frances Allen
d) null

También podría gustarte