Ejercicios Tema 1 FunProII

download Ejercicios Tema 1 FunProII

of 10

Transcript of Ejercicios Tema 1 FunProII

  • 7/22/2019 Ejercicios Tema 1 FunProII

    1/10

    Fundamentos de Programacin II

    Ejercicios Tema 1 Pgina 1

    Tema 1. Clases y Objetos

    1. Cree una clase empleado y pruebe su func ionalidad. Las variables de ejemplar quedebe considerar son nombre, apellido y salario anual. Adems de los mtodos deconsulta y actualizacin de las variables, considere dos mtodos ms. Uno de ellosdevolver el salario mensual. El otro mtodo devolver un extra calculado como unporcentaje del salario anual ms 1000. El porcentaje es un parmetro que se pasa almtodo.

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

    3. Construya un programa que use una clase denominada vehculo, que tenga comoatributos las propiedades ms caractersticas de cada vehculo. El programa crearuna matriz de objetos con vehculos diferentes y deber imprimir las caractersticas

    del vehculo ms barato. Los datos de cada vehculo se introducirn por tecladocuando el programa lo soli cite.

    4. El siguiente diagrama de clases, incompleto, representa la estructura bsica de unprograma para recopilar los encargos de productos de una compaa.

    Encargo

    encargoIDfechavalor

    Producto

    IDcoste

    Cliente

    nombredireccin

    pago( )

    Clientecorporativo

    cuenta

    pago( )

    Clienteparticular

    tarjetaNmr

    pago( )

    1

    *

    *1

    Escriba una versin en Java de la clase Producto. Incluya mtodos que permitan acceder a lainformacin del producto.

  • 7/22/2019 Ejercicios Tema 1 FunProII

    2/10

    Fundamentos de Programacin II

    Ejercicios Tema 1 Pgina 2

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

    a) Un objeto de A hereda de Bb)Un mtodo de B tiene como parmetro un objeto Ac) Un atributo de ejemplar de B es un objeto Ad)Ninguna de las anteriores es cierta

    6. Cul es el resul tado del siguiente programa?

    cl ass Ej er ci ci o {publ i c stati 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 stati 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 ycoeficientes se introducen por teclado, en un valor de abscisa determinado.

    A B1 1

  • 7/22/2019 Ejercicios Tema 1 FunProII

    3/10

    Fundamentos de Programacin II

    Ejercicios Tema 1 Pgina 3

    9. Cul es el error del sigu iente programa?

    cl ass Cuenta {

    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 mtodo deposi t o

    publ i c doubl e sal do( ) {r et ur n sal do;

    } / / Fi n mtodo sal do

    }/ / f i n cl ase Cuent a

    cl ass Banco {

    publ i c stati 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 otal _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 otal _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 tringu los i ssceles. Para ello ,defina las variables de ejemplar mnimas que requiera, proporcione mtodos de consulta, unmtodo constructor e implemente otros mtodos para calcular el permetro y el rea de untringulo. b) Implemente en Java un mtodo que a partir de una matrizde tringulos devuelvael rea del tringulo de mayor superficie

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

  • 7/22/2019 Ejercicios Tema 1 FunProII

    4/10

    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 stati 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 {

    stati c pr i vat e f i nal i nt a=10;stati 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 implementadab) a y b son static por lo que no se pueden declarar en una clasec) Al ser a y b estticas no se pueden usar en los mtodos getA y getB que no son

    estticosd) 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 ;sobremesa = 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;sobremesa = nul l ;

    Qu afirmacin es cierta?

    a) Al final tanto el objeto sobremesa como el objeto porttil apuntan a nullb) Al final slo queda un objeto de tipo Ordenador con precio 1100c) Al final slo queda un objeto de tipo Ordenador con precio 900d) Al final hay dos objetos de tipo Ordenador, uno con precio 900 y otro con precio 1100

  • 7/22/2019 Ejercicios Tema 1 FunProII

    5/10

    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 fragmentode cdigo?:

    a) Juliab) Mara y Jul iac) Elena, Julia y Marad) 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, laadicin y la multipli cacin de pares se definen del modo sigu iente:

    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 laoperacin mul tiplicacin 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 simp licidad cons idere ay bcomo enteros.

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

  • 7/22/2019 Ejercicios Tema 1 FunProII

    6/10

    Fundamentos de Programacin II

    Ejercicios Tema 1 Pgina 6

    18. Qu imprime el siguiente programa?

    cl ass Pr i nci pal {

    publ i c stati 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 tr 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 bro. getAutor( ) ) . t oStr i ng( ) ) ;

    }}

    cl ass Li br o {pr i vate 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 ) {thi s . t i tul o = t i tul 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( ) {return t i tul 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. nombre = nombre;t hi s. apel l i do=apel l i do;

    }

    publ i c St r i ng t oSt r i ng ( ) {r eturn nombre+ " " +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 nmerode ejes del camin y el nmero de toneladas que carga. La clase peaje debe calcular lo quedebe pagar un camin (3 euros por eje y 10 euros por tonelada). Sus variables de ejemplar sonnmero de camiones que han pasado por el peaje y dinero cobrado, que deben ser devueltaspara su posterior consul ta e impresin.

  • 7/22/2019 Ejercicios Tema 1 FunProII

    7/10

    Fundamentos de Programacin II

    Ejercicios Tema 1 Pgina 7

    20. Qu imprime el siguiente programa?

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

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

    voi d cambi argrupo( char nuevogrupo) {grupo = nuevogrupo;

    }

    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 stati c voi d mai n ( St r i ng[ ] ar gs) {

    Al umno a1 = new Al umno( ) ;System. out . pr i nt l n( "Obj et o a1: \ n- - - - - - - - - - - \ n" ) ;a1. i mpr i mi r ( ) ;System. out . pr i nt l n( "\ nLl amada al met odo pr ueba1( a1) . \ n") ;pr ueba1( a1) ;a1. i mpr i mi r ( ) ;System. out . pr i nt l n( " ") ;Al umno a2 = new Al umno( ) ;System. out . pr i nt l n( " \ nObj eto a2: \ n- - - - - - - - - - - \ n" ) ;a2. i mpr i mi r ( ) ;

    System. 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: Fuera ya del met odo pr ueba2. \ n" ) ;a2. i mpr i mi r ( ) ;

    }st at i c voi d prueba1( Al umno b) {

    b. cambi ar gr upo( ' B' ) ;}

    st at i c voi d prueba2( Al umno b) {b = new Al umno( ) ;

    b. cambi ar gr upo( ' B' ) ;System. out . pr i nt l n( "\ nDent r o del met odo pr ueba2. \ n" ) ;b. i mpr i mi r ( ) ;

    }}

  • 7/22/2019 Ejercicios Tema 1 FunProII

    8/10

    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. Cadaproducto se caracteriza por su cdigo alfanumrico y su p recio. 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/losproductos 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 siguientesproductos: (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 porel 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 tripulacinest formada por 4 personas, caracterizada cada una por su puesto y el nmero de das quelibra a la semana. Se pide:

    a) Dibujar el diagrama de clases indicando las relaciones entre las mismas y losmiembros que hay en cada una. Debe incluir mtodos para:

    i. la consulta del nmero de identificacin del avinii. la consulta y actualizacin de los datos de los miembros de la

    tripulacin.b) Implemente en Java dichas clasesc) Implemente un programa principal donde se impriman los datos del avin incluidos los

    datos de los 4 miembros de la tripu lacin. Utilice el siguiente ejemplo:a. ID_avion: 234b. Datos de los miembros de la tripulacin:

    i. piloto, das libres: 4ii. copiloto, das libres: 3iii . sobrecargo, das libres: 2iv. azafato, das libres: 2

    A cont inuacin debe cambiarse el nmero de das libres del p iloto por 3 y vo lver a imprimirlos 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 noaumentar la complejidad del ejercicio

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

    a) Dibujar en UML el diagrama de clases indicando las relaciones entre las mismas y losmiembros que hay en cada una. Debe incluir mtodos para la consulta de todos losatributos de ejemplar, y todos los mtodos que sean necesarios para la resolucin delejercicio.

    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 lacalle Paseo de la Universidad. Como informacin de salida se debe mostrar toda lainformacin relativa al juego: donde se celebra, parejas inscritas (suponer dos), einformacin personal de cada miembro de la pareja. Adems, se debe comprobar si lasdos parejas involucradas son vlidas.

  • 7/22/2019 Ejercicios Tema 1 FunProII

    9/10

    Fundamentos de Programacin II

    Ejercicios Tema 1 Pgina 9

    24. Escriba un programa que use una lista enlazada para gestionar una serie de librosidentificados por su ttulo. El programa debe ser capaz de ir aadiendo libros a la seriemantenida y de poder imprimir los t tulos de toda la serie cuando se le indique. Como ejemplouse 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 stati c voi d mai n( St r i ng [ ] ar gs) {

    Li st a col or es =new Li st a( ) ;col ores . i ncl ui r ( roj o ) ;col ores . i ncl ui r ( azul ) ;col ores. i ncl ui r ( ver de) ;col or es. i mpr i mi r ( ) ;

    }} / / Fi n c l 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 sta( ) {

    pr i mer o=nul l ;}publ i c voi d i mpr i mi r ( ) {

    f or ( Nodo aux=pr i mero; 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 mero=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 sta

    a) rojo azul verde b) null c) rojo azul d) azul verde

  • 7/22/2019 Ejercicios Tema 1 FunProII

    10/10

    Fundamentos de Programacin II

    Ejercicios Tema 1 Pgina 10

    26. Qu imprime el siguiente programa?

    cl ass Premi os {publ i c stati c voi d mai n( St r i ng [ ] ar gs) {

    Engi neer s premi os_Tur i ng =new Engi neers( ) ;

    pr emi os_Tur i ng. i nser t ar ( "Frances 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 c l 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 neers {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. Ritchieb) Frances Allen Edsger Dijkstrac) Frances Allend) null