Title | Ejercicios FP so Ìlo Java primera edicio Ìn 2017 |
---|---|
Course | Fundamentos De Programación / Programming Fundamentals |
Institution | Universidad Politécnica de Cartagena |
Pages | 113 |
File Size | 2.5 MB |
File Type | |
Total Downloads | 521 |
Total Views | 662 |
EJERCICIOSDE PROGRAMACIÓN RESUELTOS ENJavaGrado en Ingeniería en Sistemas de TelecomunicaciónGrado en Ingeniería TelemáticaBárbara Álvarez TorresCopyright: Bárbara Álvarez Torres Edita: Univer...
!! ! ! ! !
EJERCICIOS!! DE!PROGRAMACIÓN!RESUELTOS!EN! Java!! ! ! ! ! Grado&en&Ingeniería&en&Sistemas&de&Telecomunicación& Grado&en&Ingeniería&Telemática& & & & & & & Bárbara!Álvarez!Torres!
! !
! ! ! ! ! ! ! ! ! ! ! !!!!!!!!Copyright:!Bárbara!Álvarez!Torres!! !!!!!!!!Edita:!Universidad!Politécnica!de!Cartagena.!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Servicio!de!Documentación.! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(primera!edición,!2017)! !!!!!!!!!! ! ! ! ! ! !!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Plaza!del!Hospital,!1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!30202,!Cartagena!!!!!!!!!!!!!!! !Tel.!968325908!!!! !!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!CorreoQe:[email protected] !! ISBN:!xxxxx! Depósito!Legal:!xxxxxx! !! Distribuye:!Bárbara!Álvarez!Torres,[email protected]
Índice&
i&
! Tabla!de!contenido! Abstracción de datos: Enunciados .................................................................................... 4! Abstracción de datos: Soluciones .................................................................................... 7! Abstracción de control: Enunciados. ................................................................................ 9! Abstracción de control: Soluciones ............................................................................... 15! Abstracción Funcional: Enunciados ............................................................................... 24! Abstracción Funcional: Soluciones ............................................................................... 30! Arrays unidimensionales: Enunciados............................................................................ 39! Arrays unidimensionales: Soluciones ............................................................................ 44! Arrays Multidimensionales: Enunciados ........................................................................ 55! Arrays Multidimensionales: Soluciones ........................................................................ 62! Programación basada en objetos: Enunciados ................................................................ 74! Programación basada en objetos: Soluciones ................................................................ 87! ! ! ! ! ! ! ! ! !
Ejercicios&de&Programación&resueltos&en&Java&
3&
! ! ! ! ! Los! profesores! de! programación! repiten! con! frecuencia! que! a! programar! se! aprende! programando.! Por! ello,! en! este! manual! se! recogen! ejercicios! organizados! por! temas! que! incluyen! problemas,!exámenes! y!prácticas! de! años! anteriores.! Dichos! ejercicios! le!permitirán! poner!a!prueba!su!conocimiento!y!profundizar!en!aspectos!importantes! no!considerados!en!un! primer!estudio!meramente!teórico.! Aunque,! se! adjuntan! las! soluciones,! no! hace! falta! decir! que! su! utilidad! está! en! intentar! hacerlos! por! parte! de! los! alumnos.! Ello,! les! permitirá! descubrir! sus! propias! dudas! que! podrá! consultar!al!profesor.!Muchas!veces,!los!problemas!con!los!que!más!se!aprende!son!los!que!no! han! llegado!a!resolverse,!pero!han!servido!para!probar!diferentes!alternativas!y!para!razonar! sobre!el! significado!de!los!conceptos.!Dado!que!el!aprendizaje!requiere!volver!a!aplicar!una!y! otra! vez! los! mismos! principios,! estos! ejercicios! ofrecen! el! marco! donde! dicha! reiteración! es! posible.!! ! ! ! Cartagena,!1!de!septiembre!de!2017! ! ! ! ! ! ! ! ! ! ! ! !
Ejercicios&de&Programación&resueltos&en&Java&
4&
Abstracción!de!datos:!Enunciados! & Ejercicio!1!! ! Indique!cuál!es!la!salida!del!siguiente!programa!en!Java:! class%Ejercicio1_L3{% % %%public%static%void%main(String%[]%args)%{% % %%%%int%operando1%=%1,%operando2%=%2,%operando3%=%3,%operando4%=%4;% %%%%int%resultado%=%operando1/operando2%+%operando3/operando4%+%1;% %%%%System.out.println("Resultado="%+%resultado);% % %%}% % }%
Ejercicio!2! ! Suponga! que resultado es! una! variable! lógica! (boolean).! ¿Cuál! es! el! significado! de! las! siguientes!expresiones?! % a) resultado%==%false% b) resultado%=%true%
% Ejercicio!3!! ! Suponiendo! que! las! variables total! y parcial son! de! tipo! int! y! que! inicialmente! contienen! los! valores! 5 y 7,! respectivamente! ¿cuál! es! el! valor! que! adquieren total y parcial después!de!la!ejecución!de!cada!una!de!las!siguientes!sentencias?! a) b) c) d)
total%=%parcial++;% total%=%parcial%+%total++;% total%=%++parcial%+%parcial++;% parcial%=%++total;%
Ejercicio!4! ! Indique!cuál!es!la!salida!del!siguiente!programa!en!Java:! class%Ejercicio4_L3{% % %%public%static%void%main(String[]%args)%%{% % %%%%char%java%=%'o';% %%%%System.out.println("Resultado:"%+%java);% %%%%++java;% % %%%%System.out.println("Resultado:"+%java);% %%%%System.out.println("Resultado:"+%java++%+%java%+%javaQQ);% % % % % %%}% % }% %
Ejercicios&de&Programación&resueltos&en&Java&
5&
Ejercicio!5!! ! Indique!cuál!es!la!salida!del!siguiente!programa!en!Java:! class%Ejercicio5_L3{% % %%public%static%void%main(String[]%args)%%{% % %%%%int%valor=100;% %%%%System.out.println("Solución:"+"%"+%++valor%+"%"+%valor++%+"%"+%valor);% %%% %%}% % }%
! Ejercicio!6!! ! Indique!cuál!es!la!salida!del!siguiente!programa!en!Java:! class%Ejercicio6_L3%{% % %%public%static%void%main(String[]%args)%%{% % %%%int%suma=300;% %%%System.out.println(suma++%%+%"%"%%+%++suma%+%"%"%+%suma%+%"%"%+%sumaQQ);%%%%%% %%%System.out.println("Suma%Final:"+%suma);% %%}% % }% % %
Ejercicio!7! ! Indique!cuál!es!la!salida!del!siguiente!programa!en!Java:! class%Ejercicio7_L3%{% % %%public%static%void%main(String%[]%args)%{% % %%%%%int%op1%=%1,%op2%=%2,%op3%=%3,%op4%=%1;% %%%%%double%res1,%res2%=%(double)3.5;% %%%%%res1%=%op1%+%op2%/op3%+%op4%/%op1;% %%%%%res2%=%res1%Q%res2;% %%%%%res1%=%(int)%res2;% %%%%%++res1;% %%%%%System.out.println("Resultado:"+%res1);% % %%}%% }%%
Ejercicio!8!! ! Indique!cuál!es!la!salida!del!siguiente!programa!en!Java:! class%Ejercicio8_L3{% % %%public%static%void%main(String%[]%args)%{% %
Ejercicios&de&Programación&resueltos&en&Java&
6&
%%%%%%%int%variable%=%1;% % %boolean%a,b,c,d;% % %a%=%(variable>1)%&&%(variable++%%variable++);% % %d%=%!c;% %%%%%%%System.out.println("Los%valores%booleanos%son:"+a+"%"+b+"%"+c+"%"+d);%% %%%%%%%%%%% %%}%% %% }%%
Ejercicio!9!! ! Escriba!un!programa!que!recoja!por!teclado!el! valor!del! radio!de!una!circunferencia,!calcule!su! perímetro!y!su!área!y!los!muestre!por!pantalla.!! ! NOTA:!Para!implementarlo!utilice!la!constante!PI!de!la!clase!Math%(Math.PI).! ! Ejercicio!10! ! Escriba!un!programa!que!calcule!y!muestre!en!pantalla!las!coordenadas!polares!de!un!número! complejo!cuyas!partes!real!e!imaginaria!se!recogen!por!teclado.! !! NOTA:!Para!implementarlo!utilice!las!funciones!sqrt() y!!atan()!de!la!clase!Math.!
! ! ! ! ! ! ! ! ! ! ! !
Ejercicios&de&Programación&resueltos&en&Java&
7&
Abstracción!de!datos:!Soluciones! & Ejercicio!1! Es! un! ejemplo! de! precedencia! de! operadores.! La! salida! del! programa! es! Resultado=1! en! pantalla.! ! Ejercicio!2!% La!expresión!a)!es!una!comparación!y!el!resultado!puede!ser!false!(0)!o!true!(1).!Sin!embargo,! la!expresión!b)!asigna!a!la!variable!el!valor!true!(1).!! Ejercicio!3!! ! a)!total=7!parcial=8! b)!total=13!parcial=7! c)!total=16!parcial=9! d)!total=6!parcial=6! ! Ejercicio!4!! ! Resultado:o! Resultado:p! Resultado:pqq! ! Ejercicio!5!! Solución:!101!!101!!102! ! Ejercicio!6!% ! 300!!302!!302!!302! Suma!Final:!301! Ejercicio!7!% Resultado:!0.0! (int)res2!es!_1!(conversion!explícita)!pero!a!res1!se!le!asigna!_1.0!ya!que!hay!conversión! implícita!a!double.! ! Ejercicio!8!! ! Los!valores!booleanos!son:!false!false!true!false! ! Ejercicio!9!! ! //Utilizando!la!clase!Teclado!del!paquete!utilidades!para!la!recogida!de!datos! import utilidades.Teclado; class Ejercicio9_L3 { public static void main(String [] args) {
Ejercicios&de&Programación&resueltos&en&Java&
d o u b l e radio, perimetro, area; System.out.println("Introduzca el radio:"); radio = Teclado.readDouble(); perimetro = 2*Math.PI*radio; area = Math.PI*radio*radio; System.out.println("El perimetro es:" + perimetro); System.out.println("El área es:" + area); } }
& Ejercicio!10!! ! //Utilizando!la!clase!Teclado!del!paquete!utilidades!para!la!recogida!de!datos! ! i m p o r t utilidades.Teclado; p u b l i c c l a s s Ejercicio10_L3 { p u b l i c s t a t i c v o i d main(String[] args) { System.out.println("Introduzca la parte real:"); d o u b l e real = Teclado.readDouble(); System.out.println("Introduzca la parte imaginaria:"); readDouble(); d o u b l e imaginaria = Teclado. d o u b l e modulo=Math.sqrt (real*real+imaginaria*imaginaria); d o u b l e argumento = Math.atan (imaginaria/real); System.out.println("El módulo es:" + modulo); System.out.println("El argumento es:" + argumento); } }
& & &
! ! ! ! ! ! ! !
8&
Ejercicios&de&Programación&resueltos&en&Java&
9&
Abstracción!de!control:!Enunciados.! ! Ejercicio!1! Dada!la!siguiente!porción!de!código,!! a) ¿Qué!ocurre!si!el!programador!olvida!colocar!las!llaves!en!la!parte!del!if?.! b) ¿Qué!ocurre!si!el!programador!olvide!colocar!las!llaves!en!la!parte!del!else?.!! ! if (valor == 20) { anterior = 20; siguiente = anterior + 5; } else { anterior = 5 + valor; siguiente = anterior - 6; }
! Ejercicio!2!! ! El! siguiente! conjunto! de! instrucciones! en! Java! realiza! más! comparaciones! de! las! necesarias.! Rescríbalas!utilizando!switch!de!forma!que!el!código!sea!más!eficiente:! ! System.out.println("Introduzca prefijo (m,c,d,k):"); readChar (); char prefijo = Teclado. out .print ("mili"); if (prefijo == 'm') System. out .print ("centi"); if (prefijo == 'c') System. out .print ("deci"); if (prefijo == 'd') System. out .print ("kilo"); if (prefijo == 'k') System. System.out.println ("metros");
%
Ejercicio!3!! ! Dada! la! siguiente! sentencia! switch! escriba! una! secuencia! de! código! equivalente! haciendo! uso!de!sentencias!if.! ! switch (letra) { case a: System.out.println(“primera”); break; case b: System.out.println(“segunda”); break; case c: System.out.println(“tercera”); break; default: System.out.println(“otras”); }
! Ejercicio!4!!! ! Dado!el!siguiente!código!escrito!en!Java:%
Ejercicios&de&Programación&resueltos&en&Java&
10&
! ++++++i n t entero = 0; w h i l e (entero++ !El!programa!compilaría!correctamente,!pero!la!semántica! del!mismo!sería!distinta.!
! La!sentencia!siguiente%=%anteriorQ6!se!ejecutaría!siempre!(fuera!del!if...else).!! ! ! Ejercicio!2!!% ! Usando!switch:! ! %%%%%%%System. out.println("Introduzca prefijo (m,c,d,k):"); readChar (); char prefijo = Teclado. switch(prefijo) { case 'm': System.out .print("mili"); break; case 'c': System.out .print("centi"); break; case 'd': System.out .print("deci"); break; case 'k': System.out .print("kilo"); break; } System.out.println("metros");
! //Con!break!no!se!evalúan!el!resto!de!“case”!y!el!código!es!más!eficiente.! ! Ejercicio!3!% ! //Con!sentencias!if! ! System.out.println("Introduzca letra:"); char letra = Teclado.readChar(); if (letra=='a') System. out .println("primera"); else if (letra=='b') System. out .println("segunda"); else if (letra=='c') System. out .println("tercera"); else System.out.println("otras");
% %
Ejercicio!4!% ! En!la!expresión!while(entero++...