Sie sind auf Seite 1von 213

F.M.

Prez Montes
Ejercicios de Programacin en Java
Condicionales, Bucles, Tablas y Funciones
Afianza tus conocimientos de programacin mediante la resolucin de ejercicios
Esta obra est publicada bajo una licencia:
Creative Commons Reconocimiento-No Comercial-Sin Obra Derivada 3.0 Espaa,
que le permite copiar, distribuir y comunicar pblicamente la obra, siempre y cuando reconozca el
crdito del autor, lo haga sin fines comerciales y no altere, transforme o genere una obra derivada a partir de sta.
ispone del te!to legal completo en la siguiente direcci"n: http:##creativecommons.org#licenses#by$nc$nd#%.&#es#
'(&)), *rancisco +anuel ,rez +ontes. -lgunos derechos reservados.
Edita Asoc. Por la Innovacin Ed!cativa Ed!innova.
Esta obra se encuentra disponile en: http:##....eduinnova.es#monografias(&))#ene(&))#java.pdf
Depsito le"al# SE $%$$-%0$$.
IS&N# '()-)*-+$*-(,',-(.
A mi hija Claudia,
la solucin a todos los problemas.
A-RADECI.IEN/OS
A todos los que han hecho posible este libro.
En especial a mi amigo y compaero: Alfonso Jimnez,
por sus innumerables correcciones y por la clase Entrada.
0NDICE
,r"logo ............................................... ,gina )
/ntroducci"n .......................................... ,gina 0
1olet2n ) 34ariables y condicionales5 ................. ,gina 6
1olet2n ( 37ondicionales y bucles5 .................... ,gina %8
1olet2n % 31ucles anidados5 ........................... ,gina 6(
1olet2n 0 39ablas5 .................................... ,gina 6:
1olet2n 8 39ablas n$dimensionales5 .................... ,gina :6
1olet2n 6 3*unciones5 ................................. ,gina ))8
-pndice / 31oletines completos5 ...................... ,gina ):(
-pndice // 37lase Entrada5 ........................... ,gina (&6
/
PR12O-O
El libro Ejercicios de Programacin en Java: Condicionales, Bucles, Tablas y Funciones
nace como fruto de a;os de docencia en materias relacionadas: -lgor2tmica, ,rogramaci"n,
<enguaje 7 y =ava, entre otros.

7on el paso del tiempo he constatado que aprender un lenguaje de programaci"n es
relativamente sencillo y sobre este tema e!isten muchos y muy buenos te!tos. ,ero aprender a
programar es algo totalmente distinto, que necesita de un mayor esfuerzo y abordar el
problema desde otra perspectiva. >iempre utilizo la metfora del pianista para e!plicar el
tndem programar#lenguaje de programaci"n: saber tocar las notas de un piano es relativamente
fcil, tan solo debemos anotar en cada una de las teclas a qu nota musical corresponde. Esto
ser2a similar a conocer un lenguaje de programaci"n. Es muy sencillo utilizar un if o
entender la mecnica de un while.
4olviendo al piano: una vez que dominamos la relaci"n tecla#nota, un pianista debe
aprender muchas otras cosas para que aquello que est tocando suene bien? esto ser2a saber
tocar el piano. ,ara saber programar, no basta saber c"mo funciona una instrucci"n sino saber
Ejercicios de Programacin en Java 1
utilizarla conjuntamente con otras, en el orden y la forma adecuadas para que la aplicaci"n
que estamos creando suene bien.
Esta obra no es un libro para aprender java ni sus numerosas bibliotecas, es un libro
que por medio de ejercicios resueltos, desde cero, y con la prctica facilita la asimilaci"n
de las tcnicas de programaci"n. ,ara aprender a programar la mejor forma es desvincular la
l"gica de la aplicaci"n 3c"mo hacerlo5 del lenguaje utilizado para implementarlo. icho en
otras palabras: lo mejor es utilizar seudoc"digo 3un lenguaje te"rico de alto nivel5 donde no
tengamos que preocuparnos por las particularidades del lenguaje de programaci"n, ni por la
rigidez de su sinta!is. El inconveniente de utilizar seudoc"digo es que el lector no tiene
nada tangible, nada con lo que se pueda comprobar el buen funcionamiento de la aplicaci"n?
por este motivo se ha decidido utilizar =ava. Esta elecci"n se justifica frente a otras
alternativas, como el lenguaje 7, que tambin es muy didctico, simplemente por el hecho de
que con =ava podemos abstraernos un poco ms, al ser un lenguaje de ms alto nivel. 9ambin
hay que decir que en la medida de lo posible no profundizaremos en las bibliotecas del
lenguaje? en otras ocasiones esto ser totalmente imposible de llevar a la prctica y hemos
de trabajar con los detalles.
,ara finalizar, desear2a comentar que el libro se estructura como un conjunto de
boletines de ejercicios que se resuelven de la forma ms didctica posible. @n programador
Ejercicios de Programacin en Java 2
e!perto seguramente encontrar soluciones mucho ms elegantes y eficientes. -qu2 nuestro
principal objetivo es que el lector entienda qu est haciendo y por qu lo hace.
<a dificultad de los boletines crece gradualmente y en cada bolet2n se trata un tema
distinto. @na vez resueltos los ejercicios de un bolet2n podremos disponer de ellos para
utilizarlos en posteriores boletines.

<a resoluci"n de los ejercicios no es nica, y en ocasiones merece la pena ver otro
enfoque distinto. Es por esto por lo que en algunos casos se han incluido varias soluciones.
>i el lector se enfrenta a la tarea de aprender a programar, este libro, junto con las
clases que pueda recibir en una facultad, escuela tcnica o ciclo formativo de grado
superior, sern una ayuda eficaz para llevar a cabo su objetivo. Esta tarea debe tomarse sin
prisas, entendiendo los detalles sutiles y dedicando mucho tiempo a la prctica.
>evilla, octubre de (&)&
*rancisco +. ,rez +ontes
Ejercicios de Programacin en Java 3
IN/ROD3CCI1N
Este libro est compuesto como una colecci"n de boletines de ejercicios 3se encuentran
disponibles en el -pndice I5. En cada bolet2n se resuelven ejercicios con una temtica comn, de la
siguiente forma:
1olet2n )...... 4ariables y condicionales
1olet2n (...... 7ondicionales y bucles
1olet2n %...... 1ucles anidados
1olet2n 0...... 9ablas
1olet2n 8...... 9ablas n$dimensionales
1olet2n 6...... *unciones
<os ejercicios no tienen soluci"n nica, aqu2 se plantea la ms didctica y fcil de entender,
dejando de lado la eficiencia. 7uando e!isten distintas soluciones, utilizando distintos enfoques, se
incluye ms de una soluci"n por ejercicio.
<a resoluci"n de los ejercicios de programaci"n, son el complemento ideal para las clases de
programaci"n impartidas en una facultas, escuela tcnica o ciclo formativo de grado superior.
Ejercicios de Programacin en Java
Atro aspecto importante es la entrada por teclado, algo primordial para poder introducir datos y
probar nuestros programas. En un principio el alumno no debe tener los conocimientos necesarios para
escribir el c"digo que le proporcione dicha entrada. -lgo similar ocurre en las asignaturas de
programaci"n, lo que plantea el problema de empezar a e!plicar c"digo y funciones que se escapan al
programador novel.
,or todo esto, se ha dise;ado la clase Entrada, que permite realizar de forma transparente la
entrada por teclado. -prender a utilizarla es sencillo y proporciona una herramienta c"moda y fiable
para dejar de preocuparnos por la entrada de datos. <a clase Entrada se encuentra en el -pndice II.
<as funciones que proporciona la clase Entrada son:

En!rada"en!ero#$ <ee un nmero entero por teclado y lo devuelve
Entrada.real35 <ee un nmero real por teclado y lo devuelve
Entrada.cadena35 <ee una cadena de caracteres y la devuelve
Entrada.caracter35 <ee un solo carcter por teclado y lo devuelve

Ejercicios de Programacin en Java %
&olet4n $
Variables y condicionales
). ,edir los coeficientes de una ecuaci"n se (B grado, y muestre sus soluciones reales. >i no e!isten,
debe indicarlo.
&ac'age bol(1ej(1)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
double a,b,c) // coe0icien!es a1223b13c4(
double 11,12,d) // soluciones y de!erminan!e
,ys!em"ou!"&rin!ln#56n!rodu7ca &rimer coe0icien!e #a$:5$)
a4En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#56n!rodu7ca segundo coe0icien!e: #b$:5$)
b4En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#56n!rodu7ca !ercer coe0icien!e: #c$:5$)
c4En!rada"en!ero#$)
// calculamos el de!erminan!e
d4##b8b$98a8c$)
i0#d:($
,ys!em"ou!"&rin!ln#5;o e1is!en soluciones reales5$)
else+
// <ueda con0irmar <ue a sea dis!in!o de ("
Ejercicios de Programacin en Java =
// si a4( nos encon!ramos una divisin &or cero"

114#9b3*a!>"s<r!#d$$/#28a$)
124#9b9*a!>"s<r!#d$$/#28a$)
,ys!em"ou!"&rin!ln#5,olucin: 5 3 11$)
,ys!em"ou!"&rin!ln#5,olucin: 5 3 12$)
?
?
?
(. ,edir el radio de un c2rculo y calcular su rea. -C,/DrE(.
&ac'age bol(1ej(2)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
double a,r) // @rea y radio
,ys!em"ou!"&rin!#56n!roduce el radio de un circulo: 5$)
r4En!rada"real#$)
a4*a!>"P68#r8r$) // &ara elevar al cuadrado o!ra o&cin es: *a!>"&oA #r, 2$

,ys!em"ou!"&rin!ln#5El @rea de una circun0erencia de radio 5 3 r3 5 es: 5 3 a$)

?
?
%. ,edir el radio de una circunferencia y calcular su longitud.
&ac'age bol(1ej(3)
&ublic class *ain +
Ejercicios de Programacin en Java B
&ublic s!a!ic void main#,!ring-. args$ +
double l,r) // longi!ud y radio
,ys!em"ou!"&rin!#56n!roduce el radio de una circun0erencia: 5$)
r4En!rada"real#$)
l428*a!>"P68r)

,ys!em"ou!"&rin!ln#5Ca longi!ud de una circun0erencia de radio 5 3 r3 5 es: 5 3 l$)
?
?
0. ,edir dos nmeros y decir si son iguales o no.
&ac'age bol(1ej()
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! n1,n2)
,ys!em"ou!"&rin!#56n!roduce un nDmero: 5$)
n14En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!roduce o!ro nDmero: 5$)
n24En!rada"en!ero#$)
i0#n144n2$
,ys!em"ou!"&rin!ln#5,on iguales5$)
else
,ys!em"ou!"&rin!ln#5;o son iguales5$)
?
?
Ejercicios de Programacin en Java E
8. ,edir un nmero e indicar si es positivo o negativo.
&ac'age bol(1ej(%)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
,ys!em"ou!"&rin!#56n!roduce un nDmero: 5$)
num4En!rada"en!ero#$)

i0# num : ($
,ys!em"ou!"&rin!ln#5;ega!ivo5$)
else
// su&onemos <ue el ( es &osi!ivo"
,ys!em"ou!"&rin!ln#5Posi!ivo5$)
?
?
6. ,edir dos nmeros y decir si uno es mltiplo del otro.
&ac'age bol(1ej(=)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! n1,n2)
,ys!em"ou!"&rin!#56n!roduce un nDmero: 5$)
n14En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!roduce o!ro nDmero: 5$)
n24En!rada"en!ero#$)
Ejercicios de Programacin en Java F
i0#n1Gn244($
,ys!em"ou!"&rin!ln#5,on mDl!i&los5$)
else
,ys!em"ou!"&rin!ln#5;o son mDl!i&los5$)
?
?
F. ,edir dos nmeros y decir cual es el mayor.
&ac'age bol(1ej(B)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! n1,n2)
,ys!em"ou!"&rin!#56n!roduce un nDmero: 5$)
n14En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!roduce o!ro nDmero: 5$)
n24En!rada"en!ero#$)

// si ambos nDmeros son iguales dirHa <ue n2 es mayor <ue n1
i0#n1In2$
,ys!em"ou!"&rin!ln#n1 3 5 es mayor <ue 5 3 n2$)
else
,ys!em"ou!"&rin!ln#n2 3 5 es mayor <ue 5 3 n1$)
?
?
Ejercicios de Programacin en Java 1(
G. ,edir dos nmeros y decir cual es el mayor o si son iguales.
&ac'age bol(1ej(E)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! n1,n2)
,ys!em"ou!"&rin!#56n!roduce un nDmero: 5$)
n14En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!roduce o!ro nDmero: 5$)
n24En!rada"en!ero#$)

i0#n144n2$
,ys!em"ou!"&rin!ln#5,on iguales5$)
else
+
i0#n1In2$
,ys!em"ou!"&rin!ln#n1 3 5 es mayor <ue 5 3 n2$)
else
,ys!em"ou!"&rin!ln#n2 3 5 es mayor <ue 5 3 n1$)
?
?
?
:. ,edir dos nmeros y mostrarlos ordenados de mayor a menor.
&ac'age bol(1ej(F)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! n1,n2)
Ejercicios de Programacin en Java 11
,ys!em"ou!"&rin!#56n!roduce un nDmero: 5$)
n14En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!roduce o!ro nDmero: 5$)
n24En!rada"en!ero#$)

i0#n1In2$
,ys!em"ou!"&rin!ln#n1 3 5 y 5 3 n2$)
else
,ys!em"ou!"&rin!ln#n2 3 5 y 5 3 n1$)
?
?
)&. ,edir tres nmeros y mostrarlos ordenados de mayor a menor.
&ac'age bol(1ej1()
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! a,b,c)
,ys!em"ou!"&rin!#56n!rodu7ca &rimer nDmero: 5$)
a4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca segundo nDmero: 5$)
b4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca !ercer nDmero: 5$)
c4En!rada"en!ero#$)
i0#aIb JJ bIc$
,ys!em"ou!"&rin!ln# a35, 53b35, 53c$)
else+
i0#aIc JJ cIb$
,ys!em"ou!"&rin!ln#a35, 53c35, 53b$)
Ejercicios de Programacin en Java 12
else+
i0#bIa JJ aIc$
,ys!em"ou!"&rin!ln#b35, 53a35, 53c$)
else+
i0#bIc JJ cIa$
,ys!em"ou!"&rin!ln#b35, 53c35, 53a$)
else+
i0#cIa JJ aIb$
,ys!em"ou!"&rin!ln#c35, 53a35, 53b$)
else+
i0#cIb JJ bIa$
,ys!em"ou!"&rin!ln#c35, 53b35, 53a$)
?
?
?
?
?
?
?
)). ,edir un nmero entre & y :.::: y decir cuantas cifras tiene.
&ac'age bol(1ej11)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero en!re ( y FF"FFF: 5$)
num4En!rada"en!ero#$)
i0#num:1($
,ys!em"ou!"&rin!ln#5!iene 1 ci0ra5$)
Ejercicios de Programacin en Java 13
else+
i0#num:1(($
,ys!em"ou!"&rin!ln#5!iene 2 ci0ras5$)
else+
i0#num:1((($
,ys!em"ou!"&rin!ln#5!iene 3 ci0ras5$)
else+
i0#num:1(((($
,ys!em"ou!"&rin!ln#5!iene ci0ras5$)
else+
i0#num:1((((($
,ys!em"ou!"&rin!ln#5!iene % ci0ras5$)
?
?
?
?
?
?
)(. ,edir un nmero entre & y :.::: y mostrarlo con las cifras al revs.
&ac'age bol(1ej12)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
in! dm, um, c, d, u)
// F F " F F F a cada guarismo lo llamaremos:
//dm um c d u: dm #decenas de millar$, um:#unidades de millar$
// c: #cen!enas$, d: #decenas$, u: #unidades$
Ejercicios de Programacin en Java 1
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero en!re ( y FF"FFF: 5$)
num4En!rada"en!ero#$)
// unidad
u 4 num G 1()
num 4 num / 1()
// decenas
d 4 num G 1()
num 4 num / 1()
// cen!enas
c 4 num G 1()
num 4 num / 1()
// unidades de millar
um 4 num G 1()
num 4 num / 1()
// decenas de millar
dm 4 num)
// lo im&rimimos al revKs:
,ys!em"ou!"&rin!ln #u 3 5 5 3 d 3 5 5 3 c 3 5 5 3 um 3 5 5 3 dm$)
// o!ra 0orma de >acerlo es
num 4 1((((8u 3 1(((8d 3 1((8c 3 1(8um 3 dm)
,ys!em"ou!"&rin!ln #num$)
?
?
)%. ,edir un nmero entre & y :.:::, decir si es capica.
&ac'age bol(1ej13)
Ejercicios de Programacin en Java 1%
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
in! dm, um, c, d, u)
// F F " F F F a cada guarismo lo llamaremos:
//dm um c d u: dm #decenas de millar$, um:#unidades de millar$
// c: #cen!enas$, d: #decenas$, u: #unidades$
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero en!re ( y FF"FFF: 5$)
num4En!rada"en!ero#$)
// unidad
u 4 num G 1()
num 4 num / 1()
// decenas
d 4 num G 1()
num 4 num / 1()
// cen!enas
c 4 num G 1()
num 4 num / 1()
// unidades de millar
um 4 num G 1()
num 4 num / 1()
// decenas de millar
dm 4 num)
// el nDmero ser@ ca&icDa si las ci0ras son iguales dos a dos &or los e1!remos
// las cen!enas no las !enemos en cuen!a
Ejercicios de Programacin en Java 1=
i0 #dm 44 u JJ um 44 d$
,ys!em"ou!"&rin!ln #5el nDmero es ca&icDa5$)
else
,ys!em"ou!"&rin!ln #5el nDmero ;L es ca&icDa5$)
// >ay <ue !ener en cuen!a <ue en es!e ejercicio el nDmero 121 es similar al ((121 y
// resul!a <ue 121 es ca&icDa, &ero nues!ro cdigo lo iden!i0ica como ;L ca&icDa" Ma
// <ue !rabajamos con el ((121" ;o !endremos en cuen!a es!e &e<ueNo error"
?
?
pacHage bol&)ej)%?
public class +ain I
public static void main3>tringJK args5 I
int num?
int dm, um, c, d, u?
boolean capicua C false? ## suponemos que el nmero no es capica?
## : : . : : : a cada guarismo lo llamaremos:
##dm um c d u: dm 3decenas de millar5, um:3unidades de millar5
## c: 3centenas5, d: 3decenas5, u: 3unidades5
## En esta versi"n haremos que el nmero )() " el %% sea visto como capica.
## <a idea es no tener en cuenta los ceros por la derecha.
>ystem.out.print3L/ntroduzca un nmero entre & y ::.:::: L5?
numCEntrada.entero35?
## unidad
u C num M )&?
num C num # )&?
Ejercicios de Programacin en Java 1B
## decenas
d C num M )&?
num C num # )&?
## centenas
c C num M )&?
num C num # )&?
## unidades de millar
um C num M )&?
num C num # )&?
## decenas de millar
dm C num?
##si el nmero tiene 8 cifras 3dm, um, c, d, u5
if 3dm CC u NN um CC d5
capicua C true?
##si el nmero tiene 0 cifras 3&, um, c, d, u5
if 3dm CC & NN um CC u NN c CC d5
capicua C true?

##si el nmero tiene % cifras 3&, &, c, d, u5
if 3dm CC & NN umCC& NN c CC u5
capicua C true?

##si el nmero tiene ( cifras 3&, &, &, d, u5
if 3dm CC & NN um CC & NN c CC & NN d CC u5
capicua C true?

## se entiende que un nmero de una cifra no es capica
if 3capicua5
>ystem.out.println 3Lel nmero es capicaL5?
Ejercicios de Programacin en Java 1E
else
>ystem.out.println 3Lel nmero OA es capicaL5?

P
P
)0. ,edir una nota de & a )& y mostrarla de la forma: /nsuficiente, >uficiente, 1ien...
&ac'age bol(1ej1)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! no!a)
,ys!em"ou!"&rin!#56n!rodu7ca una no!a: 5$)
no!a4En!rada"en!ero#$)
// !an!o los i0Os como los elseOs encierran a una sola ins!ruccin
// y no es necesario u!ili7ar llaves + ?

i0#no!aI4( JJ no!a:%$
,ys!em"ou!"&rin!ln#56;,PF6C6E;TE5$)
else
i0#no!a44%$
,ys!em"ou!"&rin!ln#5,PF6C6E;TE5$)
else
i0#no!a44=$
,ys!em"ou!"&rin!ln#5B6E;5$)
else
i0#no!a44B QQ no!a44E$
,ys!em"ou!"&rin!ln#5;LTRBCE5$)
else
Ejercicios de Programacin en Java 1F
i0#no!a44F QQ no!a441( $
,ys!em"ou!"&rin!ln#5,LBSE,RC6E;TE5$)
?
?
&ac'age bol(1ej1b)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! no!a)
,ys!em"ou!"&rin!#56n!rodu7ca una no!a: 5$)
no!a4En!rada"en!ero#$)
sAi!c>#no!a$+
case (:
case 1:
case 2:
case 3:
case :
,ys!em"ou!"&rin!ln#56;,PF6C6E;TE5$)
brea')
case %:
,ys!em"ou!"&rin!ln#5,PF6C6E;TE5$)
brea')
case =:
,ys!em"ou!"&rin!ln#5B6E;5$)
brea')
case B:
case E:
,ys!em"ou!"&rin!ln#5;LTRBCE5$)
brea')
case F:
Ejercicios de Programacin en Java 2(
case 1(:
,ys!em"ou!"&rin!ln#5,LBSE,RC6E;TE5$)
brea')
de0aul!:
,ys!em"ou!"&rin!ln#5ESSLS5$)
brea')
?
?
?
)8. ,edir el d2a, mes y a;o de una fecha e indicar si la fecha es correcta. >uponiendo todos los meses de
%& d2as.
&ac'age bol(1ej1%)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! dia,mes,aNo)
// &ara <ue una 0ec>a sea correc!a se !iene <ue cum&lir
// dHa en el rango 1""3(
// mes en el rango 1""12
// aNo cual<uiera dis!in!o del (
,ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$)
dia4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca mes: 5$)
mes4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca aNo: 5$)
aNo4En!rada"en!ero#$)

i0 #dia I4 1 JJ dia :43($
i0 #mes I4 1 JJ mes :4 12$
Ejercicios de Programacin en Java 21
i0 #aNo T4 ($
,ys!em"ou!"&rin!ln #5Fec>a correc!a5$)
else
,ys!em"ou!"&rin!ln #5RNo incorrec!o5$)
else
,ys!em"ou!"&rin!ln#5*es incorrec!o5$)
else
,ys!em"ou!"&rin!ln#5UHa incorrec!o5$)

?
?
)6. ,edir el d2a, mes y a;o de una fecha e indicar si la fecha es correcta. 7on meses de (G, %& y %) d2as.
>in a;os bisiestos.
&ac'age bol(1ej1=)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! dia,mes,aNo)
,ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$)
dia4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca mes: 5$)
mes4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca aNo: 5$)
aNo4En!rada"en!ero#$)

// el Dnico aNo <ue no e1is!e es el (
i0#aNo44($
,ys!em"ou!"&rin!ln#5Fec>a incorrec!a5$)
else+
i0#mes442 JJ #diaI41 JJ dia:42E$$
Ejercicios de Programacin en Java 22
,ys!em"ou!"&rin!ln#dia 3 5/5 3 mes 3 5/5 3 aNo35: Fec>a correc!a5$)
else+
i0##mes44 QQ mes44= QQ mes44F QQ mes4411$ JJ
#diaI41 JJ dia:43($$
,ys!em"ou!"&rin!ln#dia 3 5/5 3 mes 3 5/5 3 aNo35: Fec>a correc!a5$)
else+
i0# #mes441 QQ mes443 QQ mes44% QQ mes44B QQ mes44E QQ mes441( QQ mes4412$ JJ
#diaI41 JJ dia:431$$
,ys!em"ou!"&rin!ln#dia 3 5/5 3 mes 3 5/5 3 aNo35: Fec>a correc!a5$)
else
,ys!em"ou!"&rin!ln#5Fec>a incorrec!a5$)
?
?
?
?
?
&ac'age bol(1ej1=)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! dia,mes,aNo)
in! diasVdelVmes)
boolean 0ec>aVcorrec!a4!rue)
,ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$)
dia4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca mes: 5$)
mes4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca aNo: 5$)
aNo4En!rada"en!ero#$)
Ejercicios de Programacin en Java 23
diasVdelVmes 4 () // si se u!ili7a un mes 0uera del rango 1""12
// su&ondremos <ue los dHas del mes son ("
i0#aNo44($ // el Dnico aNo <ue no e1is!e es el (
0ec>aVcorrec!a 4 0alse)
i0 #dia:1 QQ dia I31$ // un dHa 0uera del rango 1""31 no !iene sen!ido
0ec>aVcorrec!a 4 0alse)
i0 #mes:1 QQ mes I12$ // un mes 0uera del rango 1""12 no !iene sen!ido
0ec>aVcorrec!a 4 0alse)
i0#mes442 $
diasVdelVmes 4 2E)
i0#mes44 QQ mes44= QQ mes44F QQ mes4411$
diasVdelVmes 4 3()
i0#mes441 QQ mes443 QQ mes44% QQ mes44B QQ mes44E QQ mes441( QQ mes4412$
diasVdelVmes 4 31)
i0 #dia I diasVdelVmes$
0ec>aVcorrec!a 4 0alse)
i0 #0ec>aVcorrec!a$
,ys!em"ou!"&rin!ln#dia 3 5/5 3 mes 3 5/5 3 aNo35: Fec>a correc!a5$)
else
,ys!em"ou!"&rin!ln#5Fec>a incorrec!a5$)
?
?
)F. ,edir el d2a, mes y a;o de una fecha correcta y mostrar la fecha del d2a siguiente. suponer que todos
los meses tienen %& d2as.
&ac'age bol(1ej1B)
&ublic class *ain +
Ejercicios de Programacin en Java 2
&ublic s!a!ic void main#,!ring-. args$ +
in! dia,mes,aNo)
,ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$)
dia4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca mes: 5$)
mes4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca aNo: 5$)
aNo4En!rada"en!ero#$)
// su&onemos <ue la 0ec>a in!roducida es correc!a

// incremen!amos el dHa
dia 33)
// si el dHa su&era 3(, lo reiniciamos a 1 e incremen!amos el mes
i0 #dia I4 3($
+
dia 4 1)
mes 33)
// si el mes su&era 12, lo reiniciamos a 1 e incremen!amos el aNo
i0 #mes I4 12$
+
mes 4 1)
aNo 33)
?
?
// >abrHa <ue !ener en cuen!a <ue el aNo &asa del 91 al 31
// en es!e cdigo &asarHamos del aNo 91 al ( #<ue nunca e1is!i$
// &ara corregirlo:
i0 #aNo 44 ($
aNo 4 1)
Ejercicios de Programacin en Java 2%
,ys!em"ou!"&rin!ln #dia 3 5/53 mes 3 5/5 3 aNo$)
?
?
)G. Qdem que el ej. )F, suponiendo que cada mes tiene un nmero distinto de d2as 3suponer que febrero tiene
siempre (G d2as5.
&ac'age bol(1ej1E)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! dia,mes,aNo)
in! diasVdelVmes4() // guardaremos el nDmero de dHas <ue !iene el mes
,ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$)
dia4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca mes: 5$)
mes4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca aNo: 5$)
aNo4En!rada"en!ero#$)
// su&onemos <ue la 0ec>a in!roducida es correc!a
i0#mes442 $
diasVdelVmes 4 2E)
i0#mes44 QQ mes44= QQ mes44F QQ mes4411$
diasVdelVmes 4 3()
i0#mes441 QQ mes443 QQ mes44% QQ mes44B QQ mes44E QQ mes441( QQ mes4412$
diasVdelVmes 4 31)
// incremen!amos el dHa
dia 33)
Ejercicios de Programacin en Java 2=
// si el dHa su&era el nDmero de dHas del mes,
// lo reiniciamos a 1 e incremen!amos el mes

i0 #dia I4 diasVdelVmes$
+
dia 4 1)
mes 33)
// si el mes su&era 12, lo reiniciamos a 1 e incremen!amos el aNo
i0 #mes I4 12$
+
mes 4 1)
aNo 33)
?
?
// >abrHa <ue !ener en cuen!a <ue el aNo &asa del 91 al 31
// en es!e cdigo &asarHamos del aNo 91 al ( #<ue nunca e1is!i$
// &ara corregirlo:
i0 #aNo 44 ($
aNo 4 1)

,ys!em"ou!"&rin!ln #dia 3 5/53 mes 3 5/5 3 aNo$)
?
?
):. ,edir dos fechas y mostrar el nmero de d2as que hay de diferencia. >uponiendo todos los meses de %&
d2as.
&ac'age bol(1ej1F)
&ublic class *ain +
Ejercicios de Programacin en Java 2B
&ublic s!a!ic void main#,!ring-. args$ +
in! dia1,mes1,aNo1)
in! dia2,mes2,aNo2)
in! !o!alVdias)
,ys!em"ou!"&rin!ln #5Fec>a 1:5$)
,ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$)
dia14En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca mes: 5$)
mes14En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca aNo: 5$)
aNo14En!rada"en!ero#$)
,ys!em"ou!"&rin!ln #5Fec>a 2:5$)
,ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$)
dia24En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca mes: 5$)
mes24En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca aNo: 5$)
aNo24En!rada"en!ero#$)
// su&onemos <ue las 0ec>a in!roducidas son correc!as
// conver!imos las dos 0ec>as a dHas y calculamos la di0erencia
!o!alVdias 4 dia29dia1 3 3(8#mes29mes1$33=%8#aNo29aNo1$)
,ys!em"ou!"&rin!ln #5UHas de di0erencia: 5 3 !o!alVdias$)
?
?
(&. ,edir una hora de la forma hora, minutos y segundos, y mostrar la hora en el segundo siguiente.
&ac'age bol(1ej2()
Ejercicios de Programacin en Java 2E
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! >,m,s) // >ora, minu!os y segundos
,ys!em"ou!"&rin!#56n!rodu7ca >ora: 5$)
>4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca minu!os: 5$)
m4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca segundos: 5$)
s4En!rada"en!ero#$)
// su&onemos <ue la >ora in!roducida es correc!a

// incremen!amos los segundos
s 33)
// si los segundos su&eran %F, los reiniciamos a ( e incremen!amos los minu!os
i0 #s I4 =($
+
s 4 ()
m 33)
// si los minu!os su&eran %F, los reiniciamos a ( e incremen!amos la >ora
i0 #m I4 =($
+
m 4 ()
> 33)
// si la >ora su&era 23, la reiniciamos a (
i0 #>I42$
>4()
?
?
,ys!em"ou!"&rin!ln #5Fec>a: 53 > 3 5:53 m 3 5:5 3 s$)
?
?
Ejercicios de Programacin en Java 2F
(). ,edir una nota numrica entera entre & y )&, y mostrar dicha nota de la forma: cero, uno, dos, tres...
&ac'age bol(1ej21)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
,ys!em"ou!"&rin!#56n!rodu7ca una no!a numKrica en!re ( y 1(: 5$)
num4En!rada"en!ero#$)
sAi!c>#num$+
case (:
,ys!em"ou!"&rin!ln#5CESL5$)
brea')
case 1:
,ys!em"ou!"&rin!ln#5P;L5$)
brea')
case 2:
,ys!em"ou!"&rin!ln#5UL,5$)
brea')
case 3:
,ys!em"ou!"&rin!ln#5TSE,5$)
brea')
case :
,ys!em"ou!"&rin!ln#5CPRTSL5$)
brea')
case %:
,ys!em"ou!"&rin!ln#5C6;CL5$)
brea')
Ejercicios de Programacin en Java 3(
case =:
,ys!em"ou!"&rin!ln#5,E6,5$)
brea')
case B:
,ys!em"ou!"&rin!ln#5,6ETE5$)
brea')
case E:
,ys!em"ou!"&rin!ln#5LCWL5$)
brea')
case F:
,ys!em"ou!"&rin!ln#5;PEXE5$)
brea')
case 1(:
,ys!em"ou!"&rin!ln#5U6EY5$)
brea')
?
?
?
((. ,edir un nmero de & a :: y mostrarlo escrito. ,or ejemplo, para 86 mostrar: cincuenta y seis.
&ac'age bol(1ej22)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
in! unidades, decenas)
// es!a versin muesr!a 11 como die7 y uno"
// es una 0orma de >acerlo bas!an!e burda"
Ejercicios de Programacin en Java 31
// se &uede &oner algunos condicionales &ara los nDmeros es&eciales: 11,12,"""
// y o!ro condicional &ara mos!rar 5y5
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero #( a FF$: 5$)
num4En!rada"en!ero#$)

unidades 4 num G 1()
decenas 4 num / 1()
sAi!c>#decenas$+
case (:
,ys!em"ou!"&rin!#55$)
brea')
case 1:
,ys!em"ou!"&rin!#5die75$)
brea')
case 2:
,ys!em"ou!"&rin!#5vein!e5$)
brea')
case 3:
,ys!em"ou!"&rin!#5!rein!a5$)
brea')
case :
,ys!em"ou!"&rin!#5cuaren!a5$)
brea')
case %:
,ys!em"ou!"&rin!#5cincuen!a5$)
brea')
case =:
,ys!em"ou!"&rin!#5sesen!a5$)
Ejercicios de Programacin en Java 32
brea')
case B:
,ys!em"ou!"&rin!#5se!en!a5$)
brea')
case E:
,ys!em"ou!"&rin!#5oc>en!a5$)
brea')
case F:
,ys!em"ou!"&rin!#5noven!a5$)
brea')
?

,ys!em"ou!"&rin! #5 y 5$)
sAi!c>#unidades$+
case (:
,ys!em"ou!"&rin!ln#55$)
brea')
case 1:
,ys!em"ou!"&rin!ln#5uno5$)
brea')
case 2:
,ys!em"ou!"&rin!ln#5dos5$)
brea')
case 3:
,ys!em"ou!"&rin!ln#5!res5$)
brea')
case :
,ys!em"ou!"&rin!ln#5cua!ro5$)
Ejercicios de Programacin en Java 33
brea')
case %:
,ys!em"ou!"&rin!ln#5cinco5$)
brea')
case =:
,ys!em"ou!"&rin!ln#5seis5$)
brea')
case B:
,ys!em"ou!"&rin!ln#5sie!e5$)
brea')
case E:
,ys!em"ou!"&rin!ln#5oc>o5$)
brea')
case F:
,ys!em"ou!"&rin!ln#5nueva5$)
brea')
?
?
?
Ejercicios de Programacin en Java 3
&olet4n %
Condicionales y bucles
). <eer un nmero y mostrar su cuadrado, repetir el proceso hasta que se introduzca un nmero
negativo.
&ac'age bol(2ej(1)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num,cuadrado)
// num guardar@ el nDmero <ue leamos
// y cuadrado guardar@ el cuadrado de num
,ys!em"ou!"&rin!#56n!rodu7ca nDmero: 5$)
num4En!rada"en!ero#$)
A>ile#numI4($+ // re&e!imos el &roceso mien!ras el nDmero leHdo no sea nega!ivo
cuadrado4num8num)
,ys!em"ou!"&rin!ln#num3 5Z es igual a 53 cuadrado$)
,ys!em"ou!"&rin!#56n!rodu7ca o!ro nDmero: 5$)
num4En!rada"en!ero#$) // volvemos a leer num
?
?
?
Ejercicios de Programacin en Java 3%
(. <eer un nmero e indicar si es positivo o negativo. El proceso se repetir hasta que se introduzca
un &.
&ac'age bol(2ej(2)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$)
num4En!rada"en!ero#$)
A>ile#numT4($ // mien!ras num sea dis!in!o de (
+
i0#numI($
// mayor <ue cero: &osi!ivo
,ys!em"ou!"&rin!ln#5Posi!ivo5$)
else
// si no es &osi!ivo: es nega!ivo
,ys!em"ou!"&rin!ln#5;ega!ivo5$)
// re&e!imos el &roceso y volvemos a leer num
,ys!em"ou!"&rin!#56n!rodu7ca o!ro nDmero: 5$)
num4En!rada"en!ero#$)
?
// al salir del mien!ras !enemos la cer!e7a <ue num es (
?
?
%. <eer nmeros hasta que se introduzca un &. ,ara cada uno indicar si es par o impar.
&ac'age bol(2ej(3)
Ejercicios de Programacin en Java 3=
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$)
num4En!rada"en!ero#$)
A>ile#numT4($ // mien!ras num sea dis!in!o de (
+
i0#numG2 44 ($
// si el res!o de dividir en!re dos es cero: es!o indica <ue es &ar
,ys!em"ou!"&rin!ln#5Par5$)
else
// en caso con!rario: im&ar
,ys!em"ou!"&rin!ln#56m&ar5$)
// re&e!imos el &roceso y volvemos a leer num
,ys!em"ou!"&rin!#56n!rodu7ca o!ro nDmero: 5$)
num4En!rada"en!ero#$)
?
// al salir del mien!ras !enemos la cer!e7a <ue num es (
?
?
0. ,edir nmeros hasta que se teclee uno negativo, y mostrar cuntos nmeros se han introducido.
&ac'age bol(2ej()
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num, con!ador)
Ejercicios de Programacin en Java 3B
// num guardar@ los nDmeros in!roducidos
// y con!ador se incremen!ar@ &ara llevar la cuen!a de los nDmeros in!roducidos

,ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$)
num4En!rada"en!ero#$)
con!ador4() // al comien7o el nDmero de nDmeros in!roducidos es (

A>ile#numI($ // mien!ras num sea &osi!iva
+
con!ador 4con!ador31) // con!ador !oma el valor <ue !uviera en es!e momen!o m@s uno
// en de0ini!iva: con!ador se incremen!a en uno
,ys!em"ou!"&rin!#56n!rodu7ca o!ro nDmero: 5$)
num4En!rada"en!ero#$)
?
,ys!em"ou!"&rin!ln#5,e >an in!roducido: 5 3con!ador 3 5 nDmeros5$)
// sin !ener en cuen!a el Dl!imo nDmero nega!ivo"
?
?
8. Realizar un juego para adivinar un nmero. ,ara ello pedir un nmero O, y luego ir pidiendo
nmeros indicando SmayorT o SmenorT segn sea mayor o menor con respecto a O. El proceso termina
cuando el usuario acierta.
&ac'age bol(2ej(%)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! n, num)
Ejercicios de Programacin en Java 3E
// n es el nDmero <ue >ay <ue acer!ar
// num guarda los nDmeros in!roducidos
,ys!em"ou!"&rin!#56n!roduce ;: 5$)
n 4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!roduce nDmero: 5$)
num4En!rada"en!ero#$)

A>ile#numT4n$ // mien!ras no coincidan ambos nDmeros
+
i0#numIn$
,ys!em"ou!"&rin!ln#5menor5$)
else
,ys!em"ou!"&rin!ln#5mayor5$)
,ys!em"ou!"&rin!#56n!roduce nDmero: 5$)
num4En!rada"en!ero#$)
?
// al salir del mien!ras !enemos la cer!e7a <ue num es igual a n

,ys!em"ou!"&rin!ln#5acer!as!e"""5$)
?
?
&ac'age bol(2ej(%)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! n, num)
// n es el nDmero <ue >ay <ue acer!ar
// num guarda los nDmeros in!roducidos
Ejercicios de Programacin en Java 3F
n4#in!$#*a!>"random#$81(($31)
// en lugar de &edir n""" &odemos >acer <ue se n !ome un valor
// alea!orio en!re 1 y 1(("
// RsH el juego es algo m@s en!re!enido"

,ys!em"ou!"&rin!#56n!roduce nDmero: 5$)
num4En!rada"en!ero#$)

A>ile#numT4n$ // mien!ras no coincidan ambos nDmeros
+
i0#numIn$
,ys!em"ou!"&rin!ln#5menor5$)
else
,ys!em"ou!"&rin!ln#5mayor5$)
,ys!em"ou!"&rin!#56n!roduce nDmero: 5$)
num4En!rada"en!ero#$)
?
// al salir del mien!ras !enemos la cer!e7a <ue num es igual a n

,ys!em"ou!"&rin!ln#5acer!as!e"""5$)
?
?
6. ,edir nmeros hasta que se teclee un &, mostrar la suma de todos los nmeros introducidos.
&ac'age bol(2ej(=)
&ublic class *ain +

&ublic s!a!ic void main#,!ring-. args$ +
Ejercicios de Programacin en Java (
in! num,suma)
suma4()
do
+
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$)
num4En!rada"en!ero#$)
suma4suma3num)
?
A>ile#numT4($)

,ys!em"ou!"&rin!ln#5Ca suma de !odos los nDmeros es: 53suma$)

?
?
F. ,edir nmeros hasta que se introduzca uno negativo, y calcular la media.
&ac'age bol(2ej(B)
&ublic class *ain +

&ublic s!a!ic void main#,!ring-. args$ +
in! num, suma, elemen!os)
0loa! media) // la media &uede !ener decimales
// num: guardar@ los nDmeros in!roducidos &or el usuario
// suma: almacenar@ la suma de !odos los nDmeros in!roducidos
// elemen!os: ser@ un con!ador <ue indicar@ el nDmeros de nDmeros Eo elemen!os$ in!roducidos
Ejercicios de Programacin en Java 1
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$)
num4En!rada"en!ero#$)

suma4 ()
elemen!os4 ()

A>ile#numI4($ // nos in!eresan los &osi!ivos y el cero
+
suma34num)
elemen!os33)
,ys!em"ou!"&rin!#56n!rodu7ca o!ro nDmero: 5$)
num4En!rada"en!ero#$)
?
i0 #elemen!os 44 ($ // darHa un error de divisin &or cero
,ys!em"ou!"&rin!ln#56m&osible >acer la media5$)
else
+
media4 #0loa!$suma/elemen!os)
,ys!em"ou!"&rin!ln#5Ca media es de: 5 3 media$)
?
?
?
G. ,edir un nmero O, y mostrar todos los nmeros del ) al O.
&ac'age bol(2ej(E)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
Ejercicios de Programacin en Java 2
in! i,num)
,ys!em"ou!"&rin!#56n!roduce un nDmero: 5$)
num4En!rada"en!ero#$)
i41)
// i es el con!ador <ue !omar@ los valores de 1 a n
A>ile#i:4num$+
,ys!em"ou!"&rin!ln#i$)
i33)
?
?
?
:. Escribir todos los nmeros del )&& al & de F en F.
&ac'age bol(2ej(F)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
// iniciali7amos la i a 1((
// mien!ras la i sea mayor o igual a (
// y en cada vuel!a del 0or la i se decremen!a en B
0or #in! i41(()iI4()i94B$
,ys!em"ou!"&rin!ln#i$)
// el 0or al llevar una sola ins!ruccin en su cuer&o de ejecucin
// no &recisa de llaves + ?
?
?
Ejercicios de Programacin en Java 3
)&.,edir )8 nmeros y escribir la suma total.
&ac'age bol(2ej1()
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num,sumaV!o!al)
sumaV!o!al4()

0or #in! i41)i:41%)i33$
+
,ys!em"ou!"&rin!#56n!rodu7ca nDmero: 5$)
num4En!rada"en!ero#$)
sumaV!o!al4sumaV!o!al3num)
?
,ys!em"ou!"&rin!ln#5Ca suma !o!al es de: 53sumaV!o!al$)
?
?
)).ise;ar un programa que muestre el producto de los )& primeros nmeros impares.
&ac'age bol(2ej11)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
long &roduc!o41) // &roduc!o guardar@ la mul!i&licacin de los 1( &rimeros nDmeros im&ares"
// es muy im&or!an!e acordarse de iniciali7arlo a 1" Ma <ue si lo >acemos a (,
Ejercicios de Programacin en Java
el &roduc!o siem&re valdr@ ("
// &ara calcular los 1( &rimeros nDmeros im&ares u!ili7amos un 0or <ue:
//
// comience en 1
// y en cada vuel!a se incremen!e en 2, asH ob!enemos
// 1, 3, %, B, F, 11, 13, 1%, 1B, 1F"
0or #in! i41) i:2() i342$ +
&roduc!o4&roduc!o8i)
?
,ys!em"ou!"&rin!ln#5Ca mul!i&licacin de los 1( &rimeros im&ares: 5 3 &roduc!o$)

?
?
)(.,edir un nmero y calcular su factorial.
&ac'age bol(2ej12)
&ublic class *ain +

&ublic s!a!ic void main#,!ring-. args$ +
// long 0ac!orial) con long se &uede calcular >as!a el 0ac!orial de 2%
double 0ac!orial)
in! num)
,ys!em"ou!"&rin!#56n!roduce un nDmero: 5$)
num4En!rada"en!ero#$)

Ejercicios de Programacin en Java %
0ac!orial41) // es im&or!an!e iniciali7arlo a 1, ya <ue mul!i&licar@9

// &or ejem&lo: el 0ac!orial de 1( es:
// 1(8F8E8B8=8%8838281

0or #in! i4num)iI()i99$
+
0ac!orial40ac!orial8i)

?
,ys!em"ou!"&rin!ln#5El 0ac!orial de 5 3 num 3 5 es: 5 3 0ac!orial$)
?
?
)%.,edir )& nmeros. +ostrar la media de los nmeros positivos, la media de los nmeros negativos y
la cantidad de ceros.
&ac'age bol(2ej13)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
in! con!Vceros) // el con!ador de ceros
in! con!V&os) // con!ador de &osi!ivos
in! con!Vneg) // con!ador de nega!ivos
in! sumaV&os,sumaVneg) // suma de los nDmeros &osi!ivos y nega!ivos

0loa! mediaV&os,mediaVneg) // las medias E&osi!ivas y nega!ivaF &ueden !ener decimales
Ejercicios de Programacin en Java =
con!Vceros4()
con!V&os4()
con!Vneg4()
sumaV&os4()
sumaVneg4()

0or #in! i41)i:41()i33$
+
,ys!em"ou!"&rin!#56n!roduce nDmero: 5$)
num4En!rada"en!ero#$)
i0#num44($
con!Vceros33)
else
+
i0#numI($
+
con!V&os33)
sumaV&os34num)
?
else
+
con!Vneg33)
sumaVneg34num)
?
?
?
// !ra!amos los ceros
,ys!em"ou!"&rin!ln#5El nDmero de ceros in!roducidos es de: 53con!Vceros$)
//Tra!amos los &osi!ivos
i0 #con!V&os 44($
,ys!em"ou!"&rin!ln#5;o se &uede >acer la media de los &osi!ivos5$)
Ejercicios de Programacin en Java B
else
+
mediaV&os4 #0loa!$sumaV&os/con!V&os)
,ys!em"ou!"&rin!ln#5*edia de los &osi!ivos: 53 mediaV&os$)
?

// !ra!amos los nega!ivos
i0 #con!V&os 44($
,ys!em"ou!"&rin!ln#5;o se &uede >acer la media de los nega!ivos5$)
else
+
mediaVneg4 #0loa!$sumaVneg/con!Vneg)
,ys!em"ou!"&rin!ln#5*edia de los nega!ivos: 53 mediaVneg$)
?
?
?
)0.,edir )& sueldos. +ostrar su suma y cuantos hay mayores de )&&&U.
&ac'age bol(2ej1)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! sueldo,suma,mayorV1((()
suma4()
mayorV1(((4()
0or #in! i41)i:1()i33$
+
,ys!em"ou!"&rin!#5Escribe un sueldo: 5$)
sueldo 4En!rada"en!ero#$)
i0#sueldoI1((($
mayorV1(((33)
Ejercicios de Programacin en Java E
suma4suma3sueldo)
?
,ys!em"ou!"&rin!ln#5*ayores de 1((( >ay: 53mayorV1((($)
,ys!em"ou!"&rin!ln#5la suma es de: 53suma$)
?
?
)8.adas las edades y alturas de 8 alumnos, mostrar la edad y la estatura media, la cantidad de
alumnos mayores de )G a;os, y la cantidad de alumnos que miden ms de ).F8.
&ac'age bol(2ej1%)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! edad,mediaVedad,sumaVedad,mayorVedad,mayorV1B%) //mayorVedad: mayores de 1E aNos
double al!ura,mediaVal!ura,sumaVal!)
mayorVedad4()
mediaVal!ura4()
mayorV1B%4()
sumaVedad4()
sumaVal!4()
0or #in! i41)i:%)i33$+
,ys!em"ou!"&rin!ln#5Rlumno 5 3i$)
,ys!em"ou!"&rin!#56n!rodu7ca edad: 5$)
edad4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca al!ura: 5$)
al!ura4En!rada"real#$)
i0#edadI1E$
mayorVedad33)
Ejercicios de Programacin en Java F
i0#al!uraI1"B%$
mayorV1B%33)
sumaVedad4sumaVedad3edad)
sumaVal!4sumaVal!3al!ura)
?
mediaVedad4sumaVedad/%)
mediaVal!ura4sumaVal!/%)
,ys!em"ou!"&rin!ln#5[n[nCa edad media es de: 5 3mediaVedad$)
,ys!em"ou!"&rin!ln#5Ca al!ura media es de: 5 3mediaVal!ura$)
,ys!em"ou!"&rin!ln#5*ayor de 1E aNos: 5 3mayorVedad$)
,ys!em"ou!"&rin!ln#5*ayor de 1"B%: 5 3mayorV1B%$)
?
?
)6.,ide un nmero 3que debe estar entre & y )&5 y mostrar la tabla de multiplicar de dicho nmero.
&ac'age bol(2ej1=)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
do
+
,ys!em"ou!"&rin!#56n!roduce nDmero #de ( a 1($: 5$)
num4En!rada"en!ero#$)
?
Ejercicios de Programacin en Java %(
A>ile # T #(:4num JJ num:41($$)
,ys!em"ou!"&rin!ln#5[n[nTabla del 5 3 num$)

0or #in! i41)i:41()i33$
+
,ys!em"ou!"&rin!ln#num 3 5 1 5 3 i 3 5 4 5 3 num8i$)

?
?
?
)F.@na empresa que se dedica a la venta de desinfectantes necesita un programa para gestionar las
facturas. En cada factura figura: el c"digo del art2culo, la cantidad vendida en litros y el
precio por litro.
>e pide de 8 facturas introducidas: *acturaci"n total, cantidad en litros vendidos del art2culo )
y cuantas facturas se emitieron de ms de 6&& U.
&ac'age bol(2ej1B)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! codigo) // el cdigo del ar!Hculo en cada 0ac!ura
in! li!ros) // la can!idad de li!ros en cada 0ac!ura
0loa! &recio) // el &recio &or li!ro en cada 0ac!ura
0loa! im&or!eV0ac!ura) // guardar@ el im&or!e de la 0ac!ura con la <ue es!emos !rabajando
0loa! 0ac!uracionV!o!al) // el im&or!e de !odas las 0ac!uras
in! li!rosVcod1) // el !o!al de li!ros vendidos del &roduc!o 1 en !odas las 0ac!uras

Ejercicios de Programacin en Java %1
in! masV=(() // con!ador <ue sirve &ara llevar la cuen!a de cuan!as 0ac!uras >ay de
m@s de =(( \
0ac!uracionV!o!al 4 ()
li!rosVcod1 4 ()
masV=(( 4 ()
0or #in! i41)i:4%)i33$
+
,ys!em"ou!"&rin!ln#5Fac!ura n] 5 3 i$)
,ys!em"ou!"&rin!#5cdigo de &roduc!o: 5$)
codigo4En!rada"en!ero#$)
,ys!em"ou!"&rin!#5can!idad #li!ros$: 5$)
li!ros4En!rada"en!ero#$)
,ys!em"ou!"&rin!#5&recio #li!ro$: 5$)
&recio4 #0loa!$En!rada"real#$)
im&or!eV0ac!ura 4 li!ros8&recio)
0ac!uracionV!o!al 34 im&or!eV0ac!ura)
i0 #codigo 44 1$
li!rosVcod1 34 li!ros)
i0#im&or!eV0ac!ura I4 =(($
masV=(( 33)
?
,ys!em"ou!"&rin!ln#5[n[n[nSesumen de ven!as[n5$)
// 0ac!uracin !o!al
,ys!em"ou!"&rin!ln#5Ca 0ac!uracin !o!al es de: 5 30ac!uracionV!o!al 3 5\5$)
Ejercicios de Programacin en Java %2
// li!ros del ar!iculo 1
,ys!em"ou!"&rin!ln#5Xen!as del &roduc!o 1: 5 3 li!rosVcod1 3 5 li!ros5$)


// 0ac!ura de mas de =(( euros
,ys!em"ou!"&rin!ln#5Fac!ura su&erior a =((\: 5 3 masV=(($)
?
?
)G./gual que el anterior pero suponiendo que no se introduce el precio por litro. >olo e!isten tres
productos con precios:
)$ &,6 U#litro, ($ % U#litro y %$ ),(8 U#litro.
&ac'age bol(2ej1E)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! codigo) // el cdigo del ar!Hculo en cada 0ac!ura
in! li!ros) // la can!idad de li!ros en cada 0ac!ura
0loa! &recio) // a>ora el &recio no se &ide &or !eclado
0loa! im&or!eV0ac!ura) // guardar@ el im&or!e de la 0ac!ura con la <ue es!emos !rabajando
0loa! 0ac!uracionV!o!al) // el im&or!e de !odas las 0ac!uras
in! li!rosVcod1) // el !o!al de li!ros vendidos del &roduc!o 1 en !odas las 0ac!uras

in! masV=(() // con!ador <ue sirve &ara llevar la cuen!a de cuan!as 0ac!uras >ay de
m@s de =(( \
0ac!uracionV!o!al 4 ()
Ejercicios de Programacin en Java %3
li!rosVcod1 4 ()
masV=(( 4 ()
0or #in! i41)i:4%)i33$
+
,ys!em"ou!"&rin!ln#5Fac!ura n] 5 3 i$)
,ys!em"ou!"&rin!#5cdigo de &roduc!o: 5$)
codigo4En!rada"en!ero#$)
,ys!em"ou!"&rin!#5can!idad #li!ros$: 5$)
li!ros4En!rada"en!ero#$)
sAi!c> #codigo$
+
case 1:
&recio 4 ("=0)
brea')
case 2:
&recio 4 30)
brea')
case 3:
&recio 4 1"2%0)
brea')
de0aul!:
&recio 4 () // es!e caso no debe darse
?

im&or!eV0ac!ura 4 li!ros8&recio)
0ac!uracionV!o!al 34 im&or!eV0ac!ura)
i0 #codigo 44 1$
Ejercicios de Programacin en Java %
li!rosVcod1 34 li!ros)
i0#im&or!eV0ac!ura I4 =(($
masV=(( 33)
?
,ys!em"ou!"&rin!ln #5[n[n[nSesumen de ven!as[n5$)
// 0ac!uracin !o!al
,ys!em"ou!"&rin!ln#5Ca 0ac!uracin !o!al es de: 5 30ac!uracionV!o!al 3 5\5$)
// li!ros del ar!iculo 1
,ys!em"ou!"&rin!ln#5Xen!as del &roduc!o 1: 5 3 li!rosVcod1 3 5 li!ros5$)


// 0ac!ura de mas de =(( euros
,ys!em"ou!"&rin!ln#5Fac!ura su&erior a =((\: 5 3 masV=(($)
?
?
):.adas 6 notas, escribir la cantidad de alumnos aprobados, condicionados 3C05 y suspensos.
&ac'age bol(2ej1F)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! no!a,a&robados,sus&ensos,condicionados)
a&robados4()
sus&ensos4()
Ejercicios de Programacin en Java %%
condicionados4()

0or #in! i41)i:4=)i33$
+
,ys!em"ou!"&rin!#56n!rodu7ca no!a en!re ( y 1(: 5$)
no!a4En!rada"en!ero#$)
i0#no!a 44 $
condicionados33)
else
i0#no!a I4 %$
a&robados33)
else
i0#no!a : $ // es!e i0 sobra, ya <ue es el Dnico caso &osible
sus&ensos33)


?
,ys!em"ou!"&rin!ln#5R&robados: 5 3a&robados$)
,ys!em"ou!"&rin!ln#5,us&ensos: 5 3sus&ensos$)
,ys!em"ou!"&rin!ln#5Condicionados: 53condicionados$)
?
?
(&.,edir un nmero O, introducir O sueldos, y mostrar el sueldo m!imo.
&ac'age bol(2ej2()
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
Ejercicios de Programacin en Java %=
in! sueldo, sueldoVma1)
in! n)
sueldoVma1 4 () // como los sueldos son &osi!ivos, iniciali7amos el sueldo
// m@1imo a cero"
,ys!em"ou!"&rin!#5;Dmero de sueldos: 5$)
n 4 En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#5999999995$)
0or #in! i41)i:4n)i33$
+
,ys!em"ou!"&rin!#56n!roduce sueldo: 5$)
sueldo4En!rada"en!ero#$)
i0 #sueldo I sueldoVma1$
sueldoVma1 4 sueldo)
// si leemos un sueldo mayor <ue el m@1imo, es!e sueldo ser@ el nuevo m@1imo"
?
,ys!em"ou!"&rin!ln#5[nEl sueldo m@1imo es: 5 3sueldoVma1$)
?
?
&ac'age bol(2ej2()
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! sueldo, sueldoVma14()
in! n)
Ejercicios de Programacin en Java %B
boolean &rimerVsueldoVasignado)
// es!a bandera indica si >emos asignado el &rimer sueldo como sueldo m@1imo
// con es!o &odremos !ener sueldos nega!ivos
&rimerVsueldoVasignado 4 0alse)

,ys!em"ou!"&rin!#5;Dmero de sueldos: 5$)
n 4 En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#5999999995$)
0or #in! i41)i:4n)i33$
+
,ys!em"ou!"&rin!#56n!roduce sueldo: 5$)
sueldo4En!rada"en!ero#$)
i0 #&rimerVsueldoVasignado 44 0alse$
+
// asignamos como m@1imo el &rimer sueldo leHdo
sueldoVma1 4 sueldo)
&rimerVsueldoVasignado 4 !rue)
?
i0 #sueldo I sueldoVma1$
sueldoVma1 4 sueldo)
// si leemos un sueldo mayor <ue el m@1imo, es!e sueldo ser@ el nuevo m@1imo"
?
,ys!em"ou!"&rin!ln#5[nEl sueldo m@1imo es: 5 3sueldoVma1$)
?
?
Ejercicios de Programacin en Java %E
().,edir )& nmeros, y mostrar al final si se ha introducido alguno negativo.
&ac'age bol(2ej21)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
boolean >ayVnega!ivo)
// la variable >ayVnega!ivo segDn los dos &osibles valores indica:
// 0alse: no se >a in!roducido ningDn nDmero nega!ivo
// !rue: al menos >ay un nDmero nega!ivo
>ayVnega!ivo 40alse)
// su&onemos <ue no >abr@ ningDn nega!ivo
0or #in! i41)i:41()i33$
+
,ys!em"ou!"&rin!#56n!roduce nDmero: 5$)
num4En!rada"en!ero#$)
i0#num:($
>ayVnega!ivo 4!rue)
// si num es menor <ue cero, cambiamos el valor de >ayVnega!ivo a !rue
?
i0#>ayVnega!ivo 44 !rue$
,ys!em"ou!"&rin!ln#5,e >a in!roducido algDn nDmero nega!ivo5$)
else
,ys!em"ou!"&rin!ln#5;o >ay ningDn nDmero nega!ivo5$)
?
?
Ejercicios de Programacin en Java %F
((.,edir 8 calificaciones de alumnos y decir al final si hay algn suspenso.
&ac'age bol(2ej22)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! no!as)
boolean sus&ensos)
sus&ensos40alse) // su&onemos <ue en &rinci&io no >ay ningDn sus&enso
0or #in! i4()i:%)i33$
+
,ys!em"ou!"&rin!#56n!rodu7ca no!a #de ( a 1($: 5$)
no!as4En!rada"en!ero#$)
i0#no!as:%$
sus&ensos4!rue)
?
i0#sus&ensos$
,ys!em"ou!"&rin!ln#5Way alumnos sus&ensos5$)
else
,ys!em"ou!"&rin!ln#5;o >ay sus&ensos5$)
?
?
(%.,edir 8 nmeros e indicar si alguno es mltiplo de %.
&ac'age bol(2ej23)
&ublic class *ain +
Ejercicios de Programacin en Java =(
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
boolean mul!i&loV3)
mul!i&loV340alse)
0or #in! i4()i:%)i33$+
,ys!em"ou!"&rin!#56n!rodu7ca nDmero: 5$)
num4En!rada"en!ero#$)
i0#num G3 44 ($
mul!i&loV34!rue) // si se ejecu!a es!a ins!ruccin signi0ica <ue al menos >ay un mDl!i&lo
de 3"
?
i0#mul!i&loV3 44 0alse$
,ys!em"ou!"&rin!ln#5no e1is!en mDl!i&los de 35$)
else
,ys!em"ou!"&rin!ln#5Way mDl!i&los de 35$)
?
?
Ejercicios de Programacin en Java =1
&olet4n 3
Bucles anidados
). Realiza detenidamente una traza al siguiente programa y muestra cual seria la salida por pantalla:
,RAVR-+- ejW)
4-R/-1<E>
suma, i, j: EO9ERA
7A+/EOXA
,-R- i Y$ ) Z->9- 0
,-R- j Y$ % Z->9- & /O7 $)
suma Y$ iD)&[j
escribir 3suma5
*/O ,-R-
*/O ,-R-
*/O
Ejercicios de Programacin en Java =2
&ac'age bol(3ej(1)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! suma)
0or #in! i4()i:)i33$+
0or #in! j43)jI()j99$+
suma4i81(3j)
,ys!em"ou!"&rin!ln#suma$)
?
?
?
?
(. Realiza una traza del siguiente algoritmo y muestra la salida generada por pantalla.
,RAVR-+- ejW)
4-R/-1<E>
i, j: EO9ERA
7A+/EOXA
,-R- i Y$ ) Z->9- %
j Y$ i[)
+/EO9R-> j Y 0
escribir 3j$i5
j Y$ j[)
*/O +/EO9R->
*/O ,-R-
*/O
Ejercicios de Programacin en Java =3
&ac'age bol(3ej(2)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! j)
0or #in! i4()i:3)i33$+
j4i31)
A>ile#j:$+
,ys!em"ou!"&rin!ln#j9i$)
j33)
?
?
?
?
%. ise;a una aplicaci"n que muestre las tablas de multiplicar del ) al )&.
&ac'age bol(3ej(3)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !abla,i)
0or #!abla41) !abla:41() !abla33$
+
,ys!em"ou!"&rin!ln #5[n[nTabla del 5 3!abla$)
,ys!em"ou!"&rin!ln #59999999999999995$)
0or #i41)i:41()i33$
Ejercicios de Programacin en Java =
+
,ys!em"ou!"&rin!ln #!abla 3 5 1 5 3 i 3 5 4 5 3 !abla8i$)
?
?
?
?
0. ibuja un cuadrado de n elementos de lado utilizando D.
&ac'age bol(3ej()
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! n) // !amaNo del lado
in! 0ila, col)
,ys!em"ou!"&rin! #5Cado del cuadrado: 5$)
n 4 En!rada"en!ero#$)
0or #0ila41) 0ila:4n) 0ila33$
+
0or #col41) col:4n) col33$
,ys!em"ou!"&rin! #58 5$)
,ys!em"ou!"&rin!ln #55$)
?
?
?
Ejercicios de Programacin en Java =%
8. Oecesitamos mostrar un contador con 8 d2gitos 3\$\$\$\$\5, que muestre los nmeros del &$&$&$&$&
al :$:$:$:$:, con la particularidad que cada vez que aparezca un % lo sustituya por una E.
&ac'age bol(3ej(%)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
0or #in! i4()i:4F)i33$+
0or #in! j4()j:4F)j33$+
0or #in! '4()':4F)'33$+
0or #in! l4()l:4F)l33$+
0or #in! m4()m:4F)m33$+

i0#i443$
,ys!em"ou!"&rin!#5E5$)
else
,ys!em"ou!"&rin!#i$)
i0#j443$
,ys!em"ou!"&rin!#5E5$)
else
,ys!em"ou!"&rin!#j$)
i0#'443$
,ys!em"ou!"&rin!#5E5$)
else
,ys!em"ou!"&rin!#'$)
i0#l443$
,ys!em"ou!"&rin!#5E5$)
else
,ys!em"ou!"&rin!#l$)
i0#m443$
Ejercicios de Programacin en Java ==
,ys!em"ou!"&rin!#5E5$)
else
,ys!em"ou!"&rin!#m$)
,ys!em"ou!"&rin!ln#5 5$)
?
?
?
?
?
?
?
6. Realizar un programa que nos pida un nmero n, y nos diga cuantos nmeros hay entre ) y n que son
primos.
&ac'age bol(3ej(=)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! j,num,con!V&ri)
boolean &rimo)
con!V&ri4()
,ys!em"ou!"&rin!#56n!roduce numero: 5$)
num4En!rada"en!ero#$)
// vamos &rocesando !odos los nDmeros en!re 1""num
0or#in! i41)i:4num)i33$+
Ejercicios de Programacin en Java =B
// &ara cada nDmero i, calcularemos si es &rimo
// veremos si el nDmero i es divisible en el rango 2""i91
// El bucle A>ile se &uede >acer con menos vuel!a""" consul!ar algori!mos &ara &rimos
&rimo4!rue)
j42)
A>ile #j:4i91 JJ &rimo44!rue$
+
i0 #iGj44($
&rimo40alse)
j33)
?
i0 #&rimo44!rue$+
con!V&ri33) // si es &rimo incremen!amos el con!ador de &rimos
,ys!em"ou!"&rin!ln#i3#5 es &rimo5$$)
?
?
,ys!em"ou!"&rin!ln#5En el rango 1""5 3 num 3 5, >ay 53 con!V&ri 3 5 nDmeros &rimos5$)
?
?
Ejercicios de Programacin en Java =E
&olet4n *
Tablas
). <eer 8 nmeros y mostrarlos en el mismo orden introducido.
&ac'age bol(ej(1)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.)

! 4 neA in!-%.)
0or #in! i4()i:%)i33$
+
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$)
!-i.4En!rada"en!ero#$)
?
,ys!em"ou!"&rin!ln#5Cos nDmeros son:5$)
0or #in! i4()i:%)i33$
,ys!em"ou!"&rin!ln#!-i.$)
?
?
Ejercicios de Programacin en Java =F
(. <eer 8 nmeros y mostrarlos en orden inverso al introducido.
&ac'age bol(ej(2)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.4neA in!-%.)

0or #in! i4()i:%)i33$
+
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$)
!-i.4En!rada"en!ero#$)
?

,ys!em"ou!"&rin!ln#5Cos nDmeros #en orden inverso$:5$)
0or #in! i4)iI4()i99$
,ys!em"ou!"&rin!ln#!-i.$)
?
?
%. <eer 8 nmeros por teclado y a continuaci"n realizar la media de los nmeros positivos, la media
de los negativos y contar el nmero de ceros.
&ac'age bol(ej(3)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.4neA in! -%.)
in! sumaV&os,con!V&os,sumaVneg,con!Vneg,con!Vcero)
Ejercicios de Programacin en Java B(
sumaV&os4()
con!V&os4()
sumaVneg4()
con!Vneg4()
con!Vcero4()
// u!ili7amos un bucle &ara leer los da!os y o!ro &ara &rocesarlos
// se &odrHan >acer ambas o&eraciones, leer y &rocesar, en un solo bucle
0or #in! i4()i:%)i33$+
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$)
!-i.4En!rada"en!ero#$)
?
0or #in! i4()i:%)i33$+
i0#!-i.44($
con!Vcero33)
else+
i0#!-i.I($+
sumaV&os4sumaV&os3!-i.)
con!V&os33)
?
else+
sumaVneg4sumaVneg3!-i.)
con!Vneg33)
?
?
?
i0#con!V&os44($
,ys!em"ou!"&rin!ln#5;o se &uede reali7ar la media de nDmeros &osi!ivos5$)
else
,ys!em"ou!"&rin!ln#5Ca media de los &osi!ivos: 53#0loa!$sumaV&os/con!V&os$)

i0#con!Vneg44($
,ys!em"ou!"&rin!ln#5;o se &uede reali7ar la media de nDmeros nega!ivos5$)
else
Ejercicios de Programacin en Java B1
,ys!em"ou!"&rin!ln#5Ca media de los nega!ivos: 5 3 #0loa!$sumaVneg/con!Vneg$)

,ys!em"ou!"&rin!ln#5Ca can!idad de cero es de: 5 3 con!Vcero$)
?
?
0. <eer )& nmeros enteros. ebemos mostrarlos en el siguiente orden: el primero, el ltimo, el segundo, el
penltimo, el tercero, etc.
&ac'age bol(ej()
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! i, !-.)
! 4 neA in!-1(.)
0or #i4()i:1()i33$+
,ys!em"ou!"&rin!#56n!rodu7ca numero: 5$)
!-i.4En!rada"en!ero#$)
?
,ys!em"ou!"&rin!ln#5El resul!ado es:5$)
0or #i4()i:4)i33$+
,ys!em"ou!"&rin!ln #!-i.$) // mos!ramos el i9Ksimo nDmero &or el &rinci&io
,ys!em"ou!"&rin!ln#!-F9i.$) // y el i9Ksimo &or el 0inal
?
Ejercicios de Programacin en Java B2
// como en cada vuel!a de 0or se mues!ran dos nDmeros
// &ara mos!rarlos !odos, solo necesi!aremos la mi!ad de vuel!as"

?
?
8. <eer por teclado dos tablas de )& nmeros enteros y mezclarlas en una tercera de la forma: el )B de -, el )B
de 1, el (B de -, el (B de 1, etc.
&ac'age bol(ej(%)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! a-., b-., c-.)
in! i,j)
a4neA in!-1(.)
b4neA in!-1(.)
// la !abla c !endr@ <ue !ener el doble de !amaNo <ue a y b"
c 4 neA in! -2(.)
// leemos la !abla a
,ys!em"ou!"&rin!ln#5Ceyendo la !abla a5$)
0or #i4()i:1()i33$+
,ys!em"ou!"&rin!#5nDmero: 5$)
a-i.4En!rada"en!ero#$)
?
// leemos la !abla b
Ejercicios de Programacin en Java B3
,ys!em"ou!"&rin!ln#5Ceyendo la !abla b5$)
0or #i4()i:1()i33$+
,ys!em"ou!"&rin!#5nDmero: 5$)
b-i.4En!rada"en!ero#$)
?
// asignaremos los elemen!os de la !abla c
// &ara las !ablas a y b u!ili7aremos como Hndice i
// y &ara la !abla c u!ili7aremos como Hndice j"
j4()
0or #i4()i:1()i33$+
c-j.4a-i.)
j33)
c-j.4b-i.)
j33)
?
,ys!em"ou!"&rin!ln#5Ca !abla c <ueda: 5$)
0or #j4()j:2()j33$ // seguimos u!ili7ando j, &ara la !abla c" Run<ue se &odrHa u!ili7ar i"
,ys!em"ou!"&rin!#c-j.35 5$)

,ys!em"ou!"&rin!ln#55$)
?
?
6. <eer los datos correspondiente a dos tablas de )( elementos numricos, y mezclarlos en una tercera de la
forma: % de la tabla -, % de la 1, otros % de -, otros % de la 1, etc.
&ac'age bol(ej(=)
Ejercicios de Programacin en Java B
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! a-., b-., c-.)
in! i,j)
a4neA in!-12.)
b4neA in!-12.)
// la !abla c !endr@ <ue !ener el doble de !amaNo <ue a y b"
c 4 neA in! -2.)
// leemos la !abla a
,ys!em"ou!"&rin!ln#5Ceyendo la !abla a5$)
0or #i4()i:12)i33$+
,ys!em"ou!"&rin!#5nDmero: 5$)
a-i.4En!rada"en!ero#$)
?
// leemos la !abla b
,ys!em"ou!"&rin!ln#5Ceyendo la !abla b5$)
0or #i4()i:12)i33$+
,ys!em"ou!"&rin!#5nDmero: 5$)
b-i.4En!rada"en!ero#$)
?
// asignaremos los elemen!os de la !abla c
// &ara las !ablas a y b u!ili7aremos como Hndice i
// y &ara la !abla c u!ili7aremos como Hndice j"
j4()
i4()
Ejercicios de Programacin en Java B%
A>ile #i:12$
+
// co&iamos 3 de a
0or #in! '4()':3) '33$
+
c-j.4a-i3'.)
j33)
?
// co&iamos 3 de b
0or #in! '4()':3)'33$
+
c-j.4b-i3'.)
j33)
?
// como >emos co&iado 3 de a y b, incremen!amos la i en 3"
i343)
// la j se incremen!a cada ve7 <ue se aNade un elemen!o a la !abla c"
?
,ys!em"ou!"&rin!ln#5Ca !abla c <ueda: 5$)
0or #j4()j:2)j33$ // seguimos u!ili7ando j, &ara la !abla c" Run<ue se &odrHa u!ili7ar i"
,ys!em"ou!"&rin!#c-j.35 5$)

,ys!em"ou!"&rin!ln#55$)
?
?
Ejercicios de Programacin en Java B=
F. <eer por teclado una serie de )& nmeros enteros. <a aplicaci"n debe indicarnos si los nmeros estn
ordenados de forma creciente, decreciente, o si estn desordenados.
&ac'age bol(ej(B)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! numeros-.)
in! i)
boolean crecien!e, decrecien!e)
// crecien!e indicar@ si los nDmeros es!@n ordenados de 0orma crecien!e
// decrecien!e indicar@ si la serie es!@ ordenada de 0orma decrecien!e
// los &osible valores &ara crecien!e y decrecien!e son:
/8 crecien!e decrecien!e
8 0alse 0alse 9I cuando !odos los nDmeros sean idKn!icos
8 0alse !rue 9I orden decrecien!e
8 !rue 0alse 9I orden crecien!e
8 !rue !rue 9I desordenado
8
8 si, &ara algDn i, se cum&le !-i.I!-i31.: la serie !-i., !-i31. es decrecien!e
8
8 o el caso con!rario"
8
8/
numeros 4 neA in! -1(.)
crecien!e 4 0alse)
decrecien!e 4 0alse)
Ejercicios de Programacin en Java BB
// leemos los nDmeros
,ys!em"ou!"&rin!ln#5Ceyendo nDmeros:5$)
0or #i4()i:1()i33$+
,ys!em"ou!"&rin!#5nDmero: 5$)
numeros-i.4En!rada"en!ero#$)
?

// com&robaremos el orden
0or #i4()i:F)i33$ // usamos i e i31, &or lo <ue la i solo &odr@ llegar >as!a E # :F$
+
i0 #numeros-i. I numeros-i31.$ // en es!e momen!o es decrecien!e
decrecien!e 4 !rue)
i0 #numeros-i. : numeros-i31.$ // en es!e momen!o es crecien!e
crecien!e 4 !rue)
?
// de&endiendo de los valores de crecien!e y decrecien!e daremos un !i&o de ordenacin
i0 #crecien!e 44!rue JJ decrecien!e 440alse$ //!oda las &arejas es!@n en orden crecien!e
,ys!em"ou!"&rin!ln#5,erie crecien!e"5$)
i0 #crecien!e 440alse JJ decrecien!e 44!rue$ // !odas la &arejas es!@n en orden decrecien!e
,ys!em"ou!"&rin!ln#5,erie decrecien!e"5$)
i0 #crecien!e 44!rue JJ decrecien!e 44!rue$ // si >a !enido momen!os crecien!e y decrecien!es
,ys!em"ou!"&rin!ln#5,erie desordenada"5$)
i0 #crecien!e 440alse JJ decrecien!e 440alse$ // no >ay &arejas crecien!es ni decrecien!es
,ys!em"ou!"&rin!ln#5Todos los nDmeros iguales"5$) // lo <ue signi0ica <ue !odos son iguales
?
?
Ejercicios de Programacin en Java BE
G. ise;ar una aplicaci"n que declare una tabla de )& elementos enteros. <eer mediante el teclado G nmeros.
espus se debe pedir un nmero y una posici"n, insertarlo en la posici"n indicada, desplazando los que estn
detrs.
&ac'age bol(ej(E)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.4neA in!-1(.)
in! elemen!o, &osicion)
// leemos E nDmeros
,ys!em"ou!"&rin!ln#5Ceyendo da!os"""5$)
0or #in! i4()i:E)i33$+
,ys!em"ou!"&rin!#56n!rodu7ca nDmero: 5$)
!-i.4En!rada"en!ero#$)
?
// &edimos el nuevo elemen!o y la &osicin
,ys!em"ou!"&rin!#5;uevo elemen!o: 5$)
elemen!o 4 En!rada"en!ero#$)
,ys!em"ou!"&rin!#5Posicin donde inser!ar #de ( a E$: 5$)
&osicion 4 En!rada"en!ero#$)
// su&ondremos <ue la &osicin es!ar@ en!re ( y E"
// un valor dis!in!o &odrHa dar un error en !iem&o de ejecucin
// una &osible mejora, &ro&ues!a &ara el lec!or, es com&robar es!o"

// a>ora des&la7aremos los elemen!os de la !abla
// desde &osicin >as!a el Dl!imo #en es!e caso B$
Ejercicios de Programacin en Java BF
0or #in! i4B)iI4&osicion)i99$
!-i31.4!-i.)
//inser!amos el nuevo elemen!o
!-&osicion. 4elemen!o)
,ys!em"ou!"&rin!ln#5Ca !abla <ueda:5$)
0or #in! i4()i:F)i33$
,ys!em"ou!"&rin!ln#!-i.$)
?
?
:. 7rear un programa que lea por teclado una tabla de )& nmeros enteros y la desplace una posici"n hacia
abajo: el primero pasa a ser el segundo, el segundo pasa a ser el tercero y as2 sucesivamente. El ltimo pasa a
ser el primero.
&ac'age bol(ej(F)
&ublic class *ain +

&ublic s!a!ic void main#,!ring-. args$ +
in! !-.4neA in!-1(.)
in! ul!imo)
// leemos la !abla
0or #in! i4()i:1()i33$+
,ys!em"ou!"&rin!#56n!rodu7ca nDmero: 5$)
!-i.4En!rada"en!ero#$)
?
// guardamos el Dl!imo elemen!o de la !abla
ul!imo 4 !-F.)
Ejercicios de Programacin en Java E(
// des&la7amos >acia abajo #de ( >acia la Dl!ima &osicin$
// al des&la7ar &erdemos el Dl!imo valor, &or eso lo >emos guardado an!es"
0or #in! i4E)iI4()i99$
!-i31.4!-i.)
// el Dl!imo valor &asa a ser el &rimero
!-(. 4ul!imo)

,ys!em"ou!"&rin!ln#5Ca !abla <ueda:5$)
0or #in! i4()i:1()i33$
,ys!em"ou!"&rin!ln#!-i.$)
?
?
)&. Qdem, desplazar O posiciones 3O es introducido por el usuario5.
&ac'age bol(ej1()
&ublic class *ain +

&ublic s!a!ic void main#,!ring-. args$ +
in! !-.4neA in!-1(.)
in! ul!imo)
in! n)
// leemos la !abla
0or #in! i4()i:1()i33$+
,ys!em"ou!"&rin!#56n!rodu7ca nDmero: 5$)
!-i.4En!rada"en!ero#$)
?
// &regun!amos cuan!as &osiciones se desea des&la7ar
,ys!em"ou!"&rin!#5Posiciones a des&la7ar:5 $)
Ejercicios de Programacin en Java E1
n 4 En!rada"en!ero#$)
// del ejercicio an!erior !enemos una versin <ue des&la7a una sola
// &osicin" ,i re&e!imos es!e &roceso n veces, conseguiremos
// des&la7ar n veces"
// es!e algori!mo es muy 0@cil de im&lemen!ar, &ero es muy cos!oso en !iem&o"
0or #in! vuel!as41)vuel!as :4n) vuel!as33$
+
// guardamos el Dl!imo elemen!o de la !abla
ul!imo 4 !-F.)
// des&la7amos >acia abajo #de ( >acia la Dl!ima &osicin$
// al des&la7ar &erdemos el Dl!imo valor, &or eso lo !enemos guardado"
0or #in! i4E)iI4()i99$
!-i31.4!-i.)
// el Dl!imo valor &asa a ser el &rimero
!-(. 4ul!imo)
?
,ys!em"ou!"&rin!ln#5Ca !abla <ueda:5$)
0or #in! i4()i:1()i33$
,ys!em"ou!"&rin!ln#!-i.$)
?
?
// un algori!mo m@s e0icien!e
&ac'age bol(ej1()
&ublic class *ain +

Ejercicios de Programacin en Java E2
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.4neA in!-1(.)
in! n)
// leemos la !abla
0or #in! i4()i:1()i33$+
,ys!em"ou!"&rin!#56n!rodu7ca nDmero: 5$)
!-i.4En!rada"en!ero#$)
?
// &regun!amos cuan!as &osiciones desea des&la7ar
,ys!em"ou!"&rin!#5Posiciones a des&la7ar:5 $)
n 4 En!rada"en!ero#$)
// en el caso de des&la7ar una &osicin: necesi!amos guardar solo un elemen!o #el Dl!imo <ue
// &asa a ser el &rimero$
// en el caso de des&la7ar dos &osiciones: necesi!amos guardar dos elemen!os #&enDl!imo y
// Dl!imo, <ue &asar@n a ser &rimero y segundo$
// como a &riori no sabemos cuan!os elemen!os vamos a des&la7ar, ni cuan!os elemen!os !enemos
// <ue guardar" Pna buena solucin es >acer una co&ia de la !abla com&le!a
in! co&ia-. 4 !"clone#$)
// des&la7amos >acia abajo n &osiciones
0or #in! i4()i:1()i33$
!-i. 4co&ia-#i3n$G1(.)
// la !abla 0unciona como si 0uese circular &or eso u!ili7amos el mdulo
,ys!em"ou!"&rin!ln#5[n[nCa !abla <ueda:5$)
0or #in! i4()i:1()i33$
,ys!em"ou!"&rin!ln#!-i.$)
?
?
Ejercicios de Programacin en Java E3
)). <eer 8 elementos numricos que se introducirn ordenados de forma creciente. ]stos los guardaremos en una
tabla de tama;o )&. <eer un nmero O, e insertarlo en el lugar adecuado para que la tabla contine ordenada.
&ac'age bol(ej11)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.4neA in!-1(.)
in! num,si!ioVnum,j)
0or #in! i4()i:%)i33$
+
,ys!em"ou!"&rin!#56n!rodu7ca nDmero #ordenado crecien!emen!e$: 5$)
!-i.4En!rada"en!ero#$)
?
,ys!em"ou!"&rin!ln#$)
,ys!em"ou!"&rin!#5;Dmero a inser!ar en!re los an!eriores: 5$)
num4En!rada"en!ero#$)
si!ioVnum4()
j4()
// buscaremos el si!io donde deberHa ir num
A>ile#!-j.:num JJ j:4$+
si!ioVnum 33)
j33)
?
// des&la7aremos los elemen!os desde el si!ioVnum >as!a el 0inal
// asH >aremos un >ueco &ara num
Ejercicios de Programacin en Java E
0or #in! i4) iI4si!ioVnum) i99$
!-i31.4!-i.)
// &or Dl!imo &onemos num en su si!io &ara <ue !odo siga ordenado
!-si!ioVnum.4num)
,ys!em"ou!"&rin!ln#5Ca nueva serie ordenada <ueda: 5$)
0or #in! i4()i:%31)i33$
,ys!em"ou!"&rin!ln#!-i.$)

?
?
)(. <eer por teclado una tabla de )& elementos numricos enteros y una posici"n 3entre & y :5. Eliminar el
elemento situado en la posici"n dada sin dejar huecos.
&ac'age bol(ej12)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.4neA in!-1(.)
in! &osicion)
// leemos los 1( nDmeros
0or #in! i4()i:1()i33$
+
,ys!em"ou!"&rin!#5Elemen!o #53i35$: 5$)
!-i.4En!rada"en!ero#$)
?
Ejercicios de Programacin en Java E%
,ys!em"ou!"&rin!ln#$)
// leemos la &osicin <ue nos in!eresa
// su&onemos <ue la &osicin es!@ en el rango (""F
,ys!em"ou!"&rin!#5Posicin a eliminar: 5$)
&osicion4En!rada"en!ero#$)
// des&la7amos desde &osicin >as!a el 0inal !odos los elemen!os un lugar >acia la i7<uierda
// con lo <ue el elemen!o <ue es!@ en &osicin se &ierde #se borra$
0or #in! i4&osicion)i:F)i33$ // la i llega >as!a la &enDl!ima &osicin,
!-i. 4 !-i31.) // ya <ue den!ro usamos #i31$ <ue es la Dl!ima &osicin
// asH evi!amos salirnos de la !abla
,ys!em"ou!"&rin!ln#5Ca !abla <ueda: 5$)
0or #in! i4()i:F)i33$ // >ay <ue !ener cuidado <ue a>ora >ay un
,ys!em"ou!"&rin!ln#!-i.$) // elemen!o D!il menos en la !abla
?
?
)%. <eer )& enteros. Vuardar en otra tabla los elementos pares de la primera, y a continuaci"n los elementos
impares.
Realizar dos versiones: una trabajando con los valores y otra trabajando con los 2ndices.
&ac'age bol(ej13)
&ublic class *ain +
/88
8 En es!a versin u!ili7aremos &ara ver los elemen!os &ares o im&ares
8 los valores de la !abla, es decir !-(., !-1.,"""
Ejercicios de Programacin en Java E=
8/
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.)
in! con!V&ar, &ar-.) // con!ador de nDmeros &ares y !abla &ara guardarlos
in! con!Vim&ar,im&ar-.) // Hdem &ara los im&ares
! 4 neA in!-1(.)
// Ceemos los valores de la !abla
0or #in! i4()i:1()i33$+
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$)
!-i.4En!rada"en!ero#$)
?
// con!amos la can!idad de elemen!os &ares e im&ares
// !ambiKn se &odHa con!ar solo lo &ares y calcular los im&ares41( 9&ares
con!V&ar4()
con!Vim&ar4()
0or #in! i4()i:1()i33$
i0#!-i.G244($
con!V&ar33)
else
con!Vim&ar33)
// creamos las !ablas &ar e im&ar del !amaNo adecuado
&ar4neA in!-con!V&ar.)
im&ar4neA in!-con!Vim&ar.)
// volvemos a &rocesar &ara co&iar cada elemen!o en la !abla adecuada
con!V&ar4()
con!Vim&ar4()
0or #in! i4()i:1()i33$
Ejercicios de Programacin en Java EB
i0#!-i.G244($
+
&ar-con!V&ar.4!-i.)
con!V&ar33)
?
else
+
im&ar-con!Vim&ar.4!-i.)
con!Vim&ar33)
?

,ys!em"ou!"&rin!ln#5[n[nTabla &ar:5$)
0or #in! i4()i:con!V&ar)i33$
,ys!em"ou!"&rin!ln#&ar-i.$)

,ys!em"ou!"&rin!ln#5Tabla im&ar:5$)
0or #in! i4()i:con!Vim&ar)i33$
,ys!em"ou!"&rin!ln#im&ar-i.$)
?
?
&ac'age bol(ej13)
&ublic class *ain +
/8
8 En es!a versin nos 0ijaremos en los Hndices &ares e im&ares
8 en &ar se incluir@ !-2.,!-."""
8 en im&ar !-1., !-2.,"""
8/
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.)
in! &ar-.)
Ejercicios de Programacin en Java EE
in! im&ar-.)
! 4 neA in!-1(.)
// Ceemos los valores de la !abla
0or #in! i4()i:1()i33$+
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$)
!-i.4En!rada"en!ero#$)
?
// creamos las !ablas &ar e im&ar del !amaNo adecuado #%$
&ar4neA in!-%.)
im&ar4neA in!-%.)
// co&iamos cada elemen!o en la !abla adecuada

0or #in! i4()i:1()i342$
&ar-i/2. 4 !-i.)
0or #in! i41)i:1()i342$ // la divisin en!era redondeada >acia el en!ero m@s &r1imo &or
im&ar-i/2. 4 !-i.) // debajo: 1/2 4(, 3/2 41, e!c"
,ys!em"ou!"&rin!ln#5[n[nTabla &ar:5$)
0or #in! i4()i:%)i33$
,ys!em"ou!"&rin!ln#&ar-i.$)

,ys!em"ou!"&rin!ln#5Tabla im&ar:5$)
0or #in! i4()i:%)i33$
,ys!em"ou!"&rin!ln#im&ar-i.$)
?
?
Ejercicios de Programacin en Java EF
)0. <eer dos series de )& enteros, que estarn ordenados crecientemente. 7opiar 3fusionar5 las dos tablas en
una tercera, de forma que sigan ordenados.
&ac'age bol(ej1)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! a-., b-., c-.)
in! i,j,')


a 4neA in!-1(.)
b 4neA in!-1(.)
// leemos a
,ys!em"ou!"&rin!ln#5Ua!os &ara a:5$)
0or #i4()i:1()i33$+
,ys!em"ou!"&rin!#56n!rodu7ca numero #orden crecien!e$: 5$)
a-i.4En!rada"en!ero#$)
?
// leemos b
,ys!em"ou!"&rin!ln#5[nUa!os &ara b:5$)
0or #i4()i:1()i33$+
,ys!em"ou!"&rin!#56n!rodu7ca numero #orden crecien!e$: 5$)
b-i.4En!rada"en!ero#$)
?
,ys!em"ou!"&rin!ln#$)
// creamos c
Ejercicios de Programacin en Java F(
c 4 neA in! -2(.)
// comen7amos a 0usionar a y b en c
i4() // u!ili7aremos i como Hndice de a)
j4() // u!ili7aremos j como Hndice de b)
'4() // u!ili7aremos ' como Hndice de c
A>ile#i:1( JJ j:1($
+
i0 #a-i. : b-j.$ // nos in!eresa el elemen!o de a
+
c-'. 4 a-i.)
i33) // incremen!amos i &ara !omar el siguien!e elemen!o de a
?
else
+
c-'. 4 b-j.)
j33) // incremen!amos j &ara !omar el siguien!e elemen!o de b
?
'33) // como >emos co&iado a c-'., incremen!amos ', &ara
// en la siguien!e vuel!a, u!ili7ar el siguien!e >ueco de la !abla
?
// cuando salimos de A>ile es &or <ue alguna de las !ablas #a o b$ >a llegado al 0inal
i0#i441($ // >emos co&iado !oda la !abla a en c, <ueda &or co&iar un res!o de b
A>ile #j:1($
+
c-'. 4 b-j.)
j33)
'33)
?
else // >ay <ue co&iar el res!o de a en c
A>ile #i:1($
Ejercicios de Programacin en Java F1
+
c-'. 4 a-i.)
i33)
'33)
?
,ys!em"ou!"&rin!ln#5*os!ramos la !abla c:5$)
0or #'4()':2()'33$
,ys!em"ou!"&rin!#c-'. 3 5 5$)
,ys!em"ou!"&rin!ln#55$)
?
?
)8. <eer )& enteros ordenados crecientemente. <eer O y buscarlo en la tabla. >e debe mostrar la posici"n en que
se encuentra. >i no est, indicarlo con un mensaje.
&ac'age bol(ej1%)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.4neA in!-1(.)
in! num,j)
0or #in! i4()i:1()i33$+
,ys!em"ou!"&rin!#56n!rodu7ca numero #orden crecien!e$: 5$)
!-i.4En!rada"en!ero#$)
?
,ys!em"ou!"&rin!ln#$)
Ejercicios de Programacin en Java F2
,ys!em"ou!"&rin!ln#56n!rodu7ca numero a buscar: 5$)
num4En!rada"en!ero#$)
j4()
A>ile#j:1( JJ !-j.:num$+
j33)
?
// cuando me salgo del mien!ras &uede ser &or dos mo!ivos:
// 9 <ue j llegue a 1(
// 9 <ue encuen!re el donde irHa num en la !abla
i0#j441($ // >emos llegado al 0inal y no >emos encon!rado nada"
,ys!em"ou!"&rin!ln#5;o encon!rado5$)
else+
// si !-j. : num, >emos sobre&asado el lugar donde deberHa es!ar num, sin encon!rarlo
i0#!-j.44num$ // num es!@ en la &osicin i" En!onces si es!@ a>H
,ys!em"ou!"&rin!ln#5Encon!rado en la &osicin 5 3 j$)
else
,ys!em"ou!"&rin!ln#5;o encon!rado5$)
?
?
?
)6. ^ueremos desarrollar una aplicaci"n que nos ayude a gestionar las notas de un centro educativo. 7ada grupo
3o clase5 est compuesto por 8 alumnos. >e pide leer las notas del primer, segundo y tercer trimestre de un
grupo. ebemos mostrar al final: la nota media del grupo en cada trimestre, y la media del alumno que se
encuentra en la posici"n O 3O se lee por teclado5.
&ac'age bol(ej1=)
&ublic class *ain +
Ejercicios de Programacin en Java F3
&ublic s!a!ic void main#,!ring-. args$ +
in! &rimer-., segundo-., !ercer-.) // no!as del &rimer, segundo y !ercer !rimes!re
in! num,i)
in! sumaV&rimer, sumaVsegundo, sumaV!ercer)
double mediaValumno)
// creamos las !ablas necesarias
&rimer 4 neA in! -%.)
segundo 4 neA in! -%.)
!ercer 4 neA in! -%.)
// el &rograma cons!a de dos &ar!es: en!rada de da!os y &rocesado" ,e &odrHan &rocesar las
// no!as mien!ras se leen" Pre0erimos u!ili7ar dos blo<ues &or !ener un cdigo m@s legible"
// leemos las no!as del &rimer !rimes!re
,ys!em"ou!"&rin!ln#5;o!as de &rimer !rimes!re:5$)
0or #i4()i:%)i33$+
,ys!em"ou!"&rin!#5Rlumnos #53i35$: 5$)
&rimer-i.4En!rada"en!ero#$)
?
// leemos las no!as del segundo !rimes!re
,ys!em"ou!"&rin!ln#5;o!as del segundo !rimes!re:5$)
0or #i4()i:%)i33$+
,ys!em"ou!"&rin!#5Rlumno #53i35$: 5$)
segundo-i.4En!rada"en!ero#$)
?
// leemos las no!as del !ercer !rimes!re
,ys!em"ou!"&rin!ln#5;o!as del !ercer !rimes!re:5$)
0or #i4()i:%)i33$+
,ys!em"ou!"&rin!#5Rlumnos #53i35$: 5$)
!ercer-i.4En!rada"en!ero#$)
Ejercicios de Programacin en Java F
?
// calculamos las medias
sumaV&rimer 4 () // &onemos a ( los acumuladores
sumaVsegundo 4 ()
sumaV!ercer 4 ()
0or #i 4() i : %) i33$
+
sumaV&rimer 34 &rimer-i.)
sumaVsegundo 34 segundo-i.)
sumaV!ercer 34 !ercer-i.)
?
// mos!ramos da!os
,ys!em"ou!"&rin!ln#5*edia &rimer !rimes!re: 53 sumaV&rimer/%"($)
,ys!em"ou!"&rin!ln#5*edia segundo !rimes!re: 53 sumaVsegundo/%"($)
,ys!em"ou!"&rin!ln#5*edia !ercer !rimes!re: 53 sumaV!ercer/%"($)
,ys!em"ou!"&rin!ln#$)
// leemos la &osicin del alumnos <ue nos in!eresa
// una &osible mejora es com&robar <ue el Hndice se encuen!re
// en!re ( y
,ys!em"ou!"&rin! #56n!rodu7ca &osicin del alumno #de ( a F$: 5$)
num4En!rada"en!ero#$)
// la media del alumno es la suma de sus no!as en!re 3
mediaValumno 4 #double$ #&rimer-num.3segundo-num.3!ercer-num.$/3)

,ys!em"ou!"&rin!ln#5Ca media del alumno es: 5 3 mediaValumno$)
?
?
Ejercicios de Programacin en Java F%
&olet4n ,
Tablas n-dimensionales
). 7rear una tabla bidimensional de tama;o 8!8 y rellenarla de la siguiente forma: la posici"n 9Jn,mK
debe contener n[m. espus se debe mostrar su contenido.
&ac'age bol(%ej(1)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.-.) // de0inimos ! como una !abla bidimensional
! 4 neA in! -%.-%.) // creamos la !abla de %1%
0or #in! i4()i:%)i33$ // u!ili7amos i &ara la &rimera dimensin
+
0or #in! j4()j:%)j33$ // u!ili7amos j &ara la segunda dimensin
+
!-i.-j.4i3j)
?
?
,ys!em"ou!"&rin!ln#5TRBCR: 5$)
Ejercicios de Programacin en Java F=
0or #in! i4)iI4()i99$
+
,ys!em"ou!"&rin!ln#$)
0or #in! j4()j:%)j33$
+
,ys!em"ou!"&rin!#!-i.-j.35 5$)
?
?
?
?
(. 7rear y cargar una tabla de tama;o 0!0 y decir si es simtrica o no, es decir si se obtiene la
misma tabla al cambiar las filas por columnas.
&ac'age bol(%ej(2)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.-.)
boolean sime!rica)
in! i,j)
! 4 neA in!-.-.)
0or #i4()i:)i33$
+
0or #j4()j:)j33$
+
,ys!em"ou!"&rin!#56n!rodu7ca elemen!o -53i35.-53j35.: 5$)
!-i.-j.4En!rada"en!ero#$)
?
Ejercicios de Programacin en Java FB
?
sime!rica4!rue) // su&onemos <ue la ma!ri7 es simK!rica, y en caso de
// encon!rar un caso donde !-i.-j. sea dis!in!a de !-j.-i. &ondremos
// simK!rica a 0also"
//una solucin es mirar !odos los elemen!os de la ma!ri7, &ero se >acen com&robaciones
// dobles, un ejem&lo: com&robamos !-1.-2. con !-2.-1.""" &ero m@s !arde com&robaremos
// !-2.-1. con !-1.-2.
// la solucin ser@ mirar solo la 7ona in0erior o su&erior a la diagonal &rinci&al"
// En el momen!o <ue !engamos la cons!ancia de <ue no es simK!rica, &araremos
// !odas las com&robaciones
i4()
A>ile#i: JJ sime!rica44!rue$+
j4()
A>ile#j:i JJ sime!rica44!rue$+
i0#!-i.-j.T4!-j.-i.$
sime!rica40alse)
j33)
?
i33)
?
// si en algDn momen!o se da: !-i.-j.T4!-j.-i. es <ue la ma!ri7 no es simK!rica"
// si al llegar a<uH y la variable simK!rica vale !rue, indica <ue no >emos encon!rado
// ningDn valor <ue indi<ue <ue la ma!ri7 no es simK!rica"

i0#sime!rica$
,ys!em"ou!"&rin!ln#5,6*ETS6CR5$)
else
,ys!em"ou!"&rin!ln#5;L E, ,6*ETS6CR5$)
?
?
Ejercicios de Programacin en Java FE
%. 7rear y cargar dos matrices de tama;o %!%, sumarlas y mostrar su suma.
&ac'age bol(%ej(3)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! a-.-., b-.-., suma-.-.)
in! i,j)
a 4 neA in!-3.-3.)
b 4 neA in!-3.-3.)
// Ceemos los da!os
,ys!em"ou!"&rin!ln #5*a!ri7 R:5$)
0or #i4()i:3)i33$
+
0or #j4()j:3)j33$
+
,ys!em"ou!"&rin!#5R-53i35.-53j35.: 5$)
a-i.-j.4En!rada"en!ero#$)
?
?
,ys!em"ou!"&rin!ln #5*a!ri7 B:5$)
0or #i4()i:3)i33$
+
0or #j4()j:3)j33$
+
,ys!em"ou!"&rin!#5B-53i35.-53j35.: 5$)
b-i.-j.4En!rada"en!ero#$)
?
?
Ejercicios de Programacin en Java FF
// >acemos la suma
suma 4 neA in!-3.-3.)
0or #i4()i:3)i33$
+
0or #j4()j:3)j33$
+
suma-i.-j. 4 a-i.-j. 3 b-i.-j.)
?
?
// mos!ramos los resul!ado
,ys!em"ou!"&rin!ln #5*a!ri7 ,uma:5$)
0or #i4()i:3)i33$
+
0or #j4()j:3)j33$
+
,ys!em"ou!"&rin! #suma-i.-j. 3 5 5$)
?
,ys!em"ou!"&rin!ln #$)
?
?
?
0. 7rear y cargar una tabla de tama;o %!%, trasponerla y mostrarla.
&ac'age bol(%ej()
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.-.4neA in!-3.-3.)
Ejercicios de Programacin en Java 1((
in! au1)
0or #in! i4()i:3)i33$+
0or #in! j4()j:3)j33$+
,ys!em"ou!"&rin!#56n!rodu7ca elemen!o-53i35.-53j35.: 5$)
!-i.-j.4En!rada"en!ero#$)
?
?
// mos!ramos la ma!ri7 original
,ys!em"ou!"&rin! #5*a!ri7 original:5$)
0or #in! i4()i:3)i33$+
,ys!em"ou!"&rin!ln#$)
0or #in! j4()j:3)j33$+
,ys!em"ou!"&rin!#!-i.-j.35 5$)
?
?
// !ras&onemos la ma!ri7
// no &odemos !rans&oner !odos los elemen!os" Pn ejem&lo el elemen!o !-1.-2.
// se convier!e en el -2.-1.""" &ero cuando !rans&ongamos el elemen!o -2.-1. se convier!e
// en el -1.-2." Rl in!ercambiar dos veces los elemen!o, la ma!ri7 se <uedarHa e1ac!amen!e igual"
// solo !ras&ondremos los elemen!os &or debajo de la diagonal &rinci&al"
0or #in! i41)i:3)i33$+
0or #in! j4()j:i)j33$+
au14!-i.-j.)
!-i.-j.4!-j.-i.)
!-j.-i.4au1)
?
?
Ejercicios de Programacin en Java 1(1
// mos!ramos la ma!ri7 !rans&ues!a
,ys!em"ou!"&rin!ln#$)
,ys!em"ou!"&rin!ln#59999999999999999999995$)
,ys!em"ou!"&rin!ln #5*a!ri7 !rans&ues!a5$)
0or #in! i42)iI4()i99$+
,ys!em"ou!"&rin!ln#$)
0or #in! j4()j:3)j33$+
,ys!em"ou!"&rin!#!-i.-j.35 5$)
?
?
?
?
8. 7rear una tabla de tama;o F!F y rellenarla de forma que los elementos de la diagonal principal sean
) y el resto &.
&ac'age bol(%ej(%)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.-.4neA in!-B.-B.)
in! i,j)
0or #i4()i:B)i33$
0or #j4()j:B)j33$
i0 #i44j$
!-i.-j. 4 1)
else
!-i.-j. 4 () // en java, al crear una !abla de en!eros, !odos los elemen!os se
Ejercicios de Programacin en Java 1(2
// iniciali7an a (" Por lo <ue es!a ins!ruccin no es necesaria" ,e aNaV
// de &ara <ue el cdigo sea m@s com&rensible"
// mos!ramos la ma!ri7
// la 0orma de ver la ma!ri7 no es la !H&ica <ue es!amos acos!umbrados en
// ma!em@!ica""" &ero desde el &un!o de vis!a del algori!mo no es relevan!e"
,ys!em"ou!"&rin!ln #5*a!ri7:5$)
0or #i4()i:B)i33$
+
0or #j4()j:B)j33$
,ys!em"ou!"&rin!#!-i.-j.35 5$)
,ys!em"ou!"&rin!ln #$)
?
?
?
6. 7rear y cargar una tabla de tama;o )&!)&, mostrar la suma de cada fila y de cada columna.
&ac'age bol(%ej(=)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.-.4neA in!-.-.)
in! sumaV0ila,sumaVcol)
in! i,j)
0inal in! !amaNo4)
! 4 neA in!-!amaNo.-!amaNo.)
0or #i4()i:!amaNo)i33$+
0or #j4()j:!amaNo)j33$+
,ys!em"ou!"&rin!#5Elemen!o -53i35.-53j35.: 5$)
Ejercicios de Programacin en Java 1(3
!-i.-j.4En!rada"en!ero#$)
?
?
// sumamos columna a columna
,ys!em"ou!"&rin!ln#$)
0or #i4()i:!amaNo)i33$+
sumaVcol4()
0or #j4()j:!amaNo)j33$+
sumaVcol4sumaVcol3!-i.-j.)
?
,ys!em"ou!"&rin!ln#5Columna535 53i35:535 53sumaVcol$)
?
// sumamos 0ila a 0ila
0or #j4()j:!amaNo)j33$+
sumaV0ila4()
0or #i4()i:!amaNo)i33$+
sumaV0ila4sumaV0ila3!-i.-j.)
?
,ys!em"ou!"&rin!ln#5Fila535 53j35:535 53sumaV0ila$)
?
?
?
F. utilizando dos tablas de tama;o 8!: y :!8, cargar la primera y trasponerla en la segunda.
&ac'age bol(%ej(B)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! a-.-., b-.-.)

Ejercicios de Programacin en Java 1(
in! i,j)

a 4 neA in!-%.-F.)
b 4 neA in! -F.-%.)
0or #i4()i:%)i33$+
0or #j4()j:F)j33$+
,ys!em"ou!"&rin!#5Elemen!o -53i35.-53j35.: 5$)
a-i.-j.4En!rada"en!ero#$)
// si <ueremos a>orrarnos in!roducir %1F #%$ nDmeros, &odemos comen!ar las
// dos lineas an!eriores y u!ili7ar #&or ejem&lo$:
// a-i.-j. 4 1(8i3j)
?
?
// !ras&onemos
0or #i4()i:%)i33$+
0or #j4()j:F)j33$+
b-j.-i. 4 a-i.-j.)
?
?
// mos!ramos la ma!ri7 !ras&ues!a
,ys!em"ou!"&rin!ln#5*a!ri7 !ras&ues!a5$)
0or #i4()i:F)i33$+
0or #j4()j:%)j33$
,ys!em"ou!"&rin! #b-i.-j. 3 5 5$)
,ys!em"ou!"&rin!ln #$)
?
?
?
Ejercicios de Programacin en Java 1(%
G. 7rear una matriz SmarcoT de tama;o G!6: todos sus elementos deben ser & salvo los de los bordes que
deben ser ). +ostrarla.
&ac'age bol(%ej(E)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! i,j)
in! !-.-.)

! 4 neA in!-E.-=.) // se iniciali7a !oda la !abla a ("
// rellenamos la ma!ri7 marco
0or #i4()i:E)i33$
0or #j4()j:=)j33$ +
i0#i44( QQ i44B$ // si nos encon!ramos en la &rimera o Dl!ima columna
!-i.-j.41)
i0#j44( QQ j44%$ // si nos encon!ramos en la &rimera o Dl!ima 0ila
!-i.-j.41)
?

,ys!em"ou!"&rin!#5*a!ri7 marco: 5$)
0or #i4()i:E)i33$+
,ys!em"ou!"&rin!ln#$)
0or #j4()j:=)j33$+
,ys!em"ou!"&rin! #!-i.-j.35 5$)
?
?
,ys!em"ou!"&rin!ln #$)
?
?
:. Zacer lo mismo que el ejercicio anterior, pero con una matriz :!:!:. 7reamos un cubo con las caras
puestas a ) y el interior a &.
Ejercicios de Programacin en Java 1(=
&ac'age bol(%ej(F)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! !-.-.-.)
in! i,j,')
! 4 neA in!-F.-F.-F.)
0or #i4()i:F)i33$+
0or #j4()j:F)j33$+
0or #'4()':F)'33$+
i0#i44( QQ i44E QQ j44( QQ j44E QQ '44( QQ '44E$
// si es!amos en la &rimera o Dl!ima columna, 0ila o ca&a de la ma!ri7
!-i.-j.-'.41)
?
?
?
// *os!ramos la ma!ri7 ca&a a ca&a
,ys!em"ou!"&rin!ln#5*a!ri7: 5$)
0or #i4()i:F)i33$
+
,ys!em"ou!"&rin!ln#5Ca&a: 5 3i$)
0or #j4()j:F)j33$
+
0or #'4()':F)'33$
+
,ys!em"ou!"&rin!#!-i.-j.-'. 3 5 5$)
?
,ys!em"ou!"&rin!ln #$)
?
,ys!em"ou!"&rin!ln #5 99999999999999 5$)
?
Ejercicios de Programacin en Java 1(B
?
?
)&.<os siguientes programas piden una serie de datos y tras procesarlos ofrecen unos resultados por
pantalla. +ostrar el resultado:
,RAVR-+- Ej)&a
4-R/-1<E>
i, m, a: EO9ERA>
t: 9-1<- J8K EO9ERA>
7A+/EOXA
,-R- i& Z->9- 0
leer 3tJiK5
*/O ,-R-
m &
,-R- i & Z->9- 0
>/ tJiK _ m
m tJiK
*/O >/
*/O ,-R-
a tJ0$mK
tJ0$mK tJmK
tJmK a
,-R- i & Z->9- 0
escribir 3tJiK5
*/O ,-R-
*/O ,RAVR-+-
atos de entrada: $0, &, ), % y
(.
,RAVR-+- Ej)&b
4-R/-1<E>
n, i: EO9ERA>
a, b: 9-1<- J)&&K EO9ERA>
7A+/EOXA
n )&
,-R- i& Z->9- n$)
leer 3aJiK5
*/O ,-R-
,-R- i & Z->9- n#(
bJiK aJn$)$iK
bJn$)$iK aJiK
*/O ,-R-
,-R- i & Z->9- n$)
>/ i mod ( C &
escribir 3aJiK5
>/OA
escribir 3bJiK5
*/O >/
*/O ,-R-
*/O ,RAVR-+-
atos de entrada:
6, (, G, :, (, 8, G, (, 6 y ).
Ejercicios de Programacin en Java 1(E
&ac'age bol(%ej1()
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! i, m, a)
// la idea de es!e ejercicio es >acer una !ra7a de 0orma manual, y !ras
// Ks!a, escribir el cdigo e<uivalen!e &ara com&robar el resul!ado"
// Uebemos des!acar <ue es!e algori!mo no !iene sen!ido ni >ace nada en concre!o
// incluso con o!ros da!os de en!rada el algori!mo &uede dar un error, al
// u!ili7ar da!os como Hndices de !ablas sin las &er!inen!es
// com&robaciones"
in! ! 4 neA in! -%.)
0or #i4() i:4) i33$
!-i. 4 En!rada"en!ero#$)
// &odemos sus!i!uir la lec!ura de da!os &or la siguien!e lHnea:
//in! !-. 4 +9, (, 1, 3, 2?)
m 4 ()
0or #i4() i:4) i33$
i0 #!-i. I m $
m 4 !-i.)
a 4 !-9m.)
!-9m. 4 !-m.)
!-m. 4 a)
0or #i4() i:4) i33$
,ys!em"ou!"&rin!ln #!-i.$)
?
?
Ejercicios de Programacin en Java 1(F
&ac'age bol(%ej1()
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
in! n, i)
/8 la idea de es!e ejercicio es >acer una !ra7a de 0orma manual, y !ras Ks!a, escribir el cdigo
e<uivalen!e &ara com&robar el resul!ado" Uebemos des!acar <ue es!e algori!mo no !iene sen!ido
ni >ace nada en concre!o incluso con o!ros da!os de en!rada el algori!mo &uede dar un error,
al u!ili7ar da!os como Hndices de !ablas sin las &er!inen!es com&robaciones"
8/
in! a-. 4 neA in! -1(.)
in! b-. 4 neA in! -1(.)
0or #i4() i:4n) i33$
a-i. 4 En!rada"en!ero#$)
// &odemos sus!i!uir la declaracin de a y la lec!ura de da!os &or la siguien!e lHnea:
// in! a-. 4 +=, 2, E, F, 2, %, E, 2, =, 1?)
n 4 1()
0or #i4() i:4n/2) i33$ +
b-i. 4 a-n919i.)
b-n919i. 4 a-i.)
?

0or #i4() i:n) i33$
i0 #i G 2 44 ($
,ys!em"ou!"&rin!ln #a-i.$)
else
,ys!em"ou!"&rin!ln #b-i.$)
?
?
Ejercicios de Programacin en Java 11(
))$>e pretende realizar un programa para gestionar la lista de participaciones en una competici"n de
salto de longitud. El nmero de plazas disponible es de )&. >us datos se irn introduciendo en el
mismo orden que vayan inscribindose los atletas. ise;ar el programa que muestre las siguientes
opciones:
)$ /nscribir un participante.
($ +ostrar listado de datos.
%$ +ostrar listado por marcas.
0$ *inalizar el programa.
>i se selecciona ), se introducirn los datos de uno de los participantes: Oombre, mejor marca del
(&&(, mejor marca del (&&) y mejor marca del (&&&.
>i se elige la opci"n (, se debe mostrar un listado por nmero de dorsal.
<a opci"n % mostrar un listado ordenado por la marca del (&&(, de mayor a menor.
9ras procesar cada opci"n, se debe mostrar de nuevo el men inicial, hasta que se seleccione la
opci"n 0, que terminar el programa.
&ac'age bol(%ej11)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$ +
0inal in! TR*41(,U4(,*(41,*142,*243)
// TR*: ;Dmero m@1imo de &ar!ici&an!es
// U: nDmero de dorsal
// *(, *1, *2: *arca del 2(((, 2((1, y 2((2

in! o&c,numc,dorsal,i,au1)
boolean dVre&,in!er)
in! &ar!-.-.4neA in!-TR*.-.)
numc4()
o&c4()
Ejercicios de Programacin en Java 111

do+
,ys!em"ou!"&rin!ln#$)
,ys!em"ou!"&rin!ln#5999999999999999999999999999999995$)
,ys!em"ou!"&rin!ln#51" 6nscribir &ar!ici&an!es5$)
,ys!em"ou!"&rin!ln#52" *os!rar lis!ado &or da!os5$)
,ys!em"ou!"&rin!ln#53" *os!rar lis!ado &or marcas5$)
,ys!em"ou!"&rin!ln#5" ,alir5$)
,ys!em"ou!"&rin!ln#5999999999999999999999999999999995$)
,ys!em"ou!"&rin!#5Por 0avor, in!rodu7ca una o&cin: 5$)
o&c4En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#$)
sAi!c>#o&c$+
case 1:
i0#numc442($
,ys!em"ou!"&rin!ln#5Cis!ado com&le!o5$)
else+
do+
,ys!em"ou!"&rin!#56n!rodu7ca dorsal: 5$)
dorsal4En!rada"en!ero#$)
dVre&40alse)
i4()
A>ile#i:numc JJ dVre&440alse$+
i0#&ar!-i.-U.44dorsal$+
,ys!em"ou!"&rin!#5Uorsal regis!rado"5$)
,ys!em"ou!"&rin!ln#5Por 0avor in!en!e de nuevo5$)
dVre&4!rue)
?
i33)
?
?A>ile#dVre&44!rue$)
i0#dVre&440alse$+
&ar!-numc.-U.4dorsal)
,ys!em"ou!"&rin!#56n!rodu7ca marca del 2(((: 5$)
&ar!-numc.-*(.4En!rada"en!ero#$)
Ejercicios de Programacin en Java 112
,ys!em"ou!"&rin!#56n!rodu7ca marca del 2((1: 5$)
&ar!-numc.-*1.4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca marca del 2((2: 5$)
&ar!-numc.-*2.4En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#$)
numc33)
?
?
brea')
case 2: // mK!odo de ordenacin &or burbuja, con!rolado &or in!ercambio
in!er4!rue)
A>ile#in!er44!rue$+
in!er40alse)
0or #in! j4()j:4numc9191)j33$+
i0#&ar!-j.-U.I&ar!-j31.-U.$+
0or #in! '4()':)'33$+
au14&ar!-j.-'.)
&ar!-j.-'.4&ar!-j31.-'.)
&ar!-j31.-'.4au1)
?
in!er4!rue)
?
?
?
,ys!em"ou!"&rin!ln#5C6,TRUL UE URTL,,,E^P; ULS,RC:5$)
,ys!em"ou!"&rin!ln #5dorsal 9 marcas5$)
0or #in! j4()j:numc)j33$+
,ys!em"ou!"&rin!ln#$)
0or #in! '4()':)'33$+
,ys!em"ou!"&rin!#&ar!-j.-'.35 5$)
?
?
brea')
case 3:
Ejercicios de Programacin en Java 113
in!er4!rue)
A>ile#in!er44!rue$+
in!er40alse)
0or #in! j4()j:4numc9191)j33$+
i0#&ar!-j.-*2.I&ar!-j31.-*2.$+
0or #in! '4()':)'33$+
au14&ar!-j.-'.)
&ar!-j.-'.4&ar!-j31.-'.)
&ar!-j31.-'.4au1)
?
in!er4!rue)
?
?
?
,ys!em"ou!"&rin!ln#5C6,TRUL PLS *RSCR, :5$)
,ys!em"ou!"&rin!ln #5dorsal 9 marcas5$)
0or #in! j4()j:numc)j33$+
,ys!em"ou!"&rin!ln#$)
0or #in! '4()':)'33$+
,ys!em"ou!"&rin!#&ar!-j.-'.35 5$)
?
?
brea')
?
?
A>ile#o&cT4$)
?
?
Ejercicios de Programacin en Java 11
&olet4n +
Funciones
). Realizar una funci"n, a la que se le pase como parmetro un nmero O, y muestre por pantalla O
veces, el mensaje: S.d!lo e5ec!t6ndoseT
&ac'age bol(=ej(1)
&ublic class *ain +

&ublic s!a!ic void main#,!ring-. args$ +
in! num)
,ys!em"ou!"&rin!#56n!rodu7ca un numero: 5$)
num4En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#59999999999999999999999999995$)
mos!rar#num$)
,ys!em"ou!"&rin!ln#59999999999999999999999999995$)
?
s!a!ic void mos!rar#in! num$+
0or #in! i4()i:num)i33$+
,ys!em"ou!"&rin!ln#5*dulo ejecu!@ndose5$)
?
?
?
Ejercicios de Programacin en Java 11%
(. ise;ar una funci"n que tenga como parmetros dos nmeros, y que calcule el m!imo.
&ac'age bol(=ej(2)
&ublic class *ain +

s!a!ic in! ma1imo#in! a, in! b$+ // su&onemos <ue los !res nDmeros ser@n dis!in!os
in! ma1)

i0#aIb$
ma14a)
else
ma14b)
re!urn#ma1$)
?

&ublic s!a!ic void main#,!ring-. args$ +
in! ma1)
in! a,b)
,ys!em"ou!"&rin!#56n!rodu7ca un numero: 5$)
a4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca o!ro numero: 5$)
b4En!rada"en!ero#$)

ma1 4ma1imo #a, b$)
,ys!em"ou!"&rin!ln#5El nDmero mayor es: 5 3ma1$)
?
?
Ejercicios de Programacin en Java 11=
%. Qdem una versi"n que calcule el m!imo de % nmeros.
&ac'age bol(=ej(3)
&ublic class *ain +

s!a!ic in! ma1imo#in! a, in! b, in! c$+
in! ma1)

i0#aIb JJ aIc$ // si a es mayor <ue b y c, en!onces a es el m@1imo
ma14a)
else
i0#bIa JJ bIc$ // si b es el mayor de !odos, en!onces b es el m@1imo
ma14b)
else
// si el m@1imo no es a ni b, ser@ c
ma14c)

re!urn#ma1$)
?

&ublic s!a!ic void main#,!ring-. args$ +
in! ma1)
in! a, b, c)
,ys!em"ou!"&rin!#56n!rodu7ca un numero: 5$)
a4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca o!ro numero: 5$)
b4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca el Dl!imo: 5$)
c4En!rada"en!ero#$)
Ejercicios de Programacin en Java 11B
,ys!em"ou!"&rin!ln#55$)
ma1 4ma1imo #a, b, c$)
,ys!em"ou!"&rin!ln#5El nDmero mayor es: 5 3ma1$)
?
?
0. Qdem una versi"n que calcule el m!imo de una tabla de n elementos.
&ac'age bol(=ej()
&ublic class *ain +
/88
8 Es!o 0unciona solo &ara !ablas con un !amaNo mHnimo de 1
8
8/
s!a!ic in! ma1imo#in! !-.$+
in! ma1)
ma1 4 !-(.)

0or #in! i 4 () i : !"leng!>) i33$
i0 #!-i.Ima1$ // si !-i. es mayor <ue ma1, en!onces !-i. es el nuevo m@1imo
ma14!-i.)

re!urn#ma1$)
?

&ublic s!a!ic void main#,!ring-. args$ +
in! ma1)
in! !-.)
Ejercicios de Programacin en Java 11E
!4neA in! -=.)
0or #in! i 4 () i : !"leng!>) i33$ // llenamos la !abla con valores alea!orios en!re 1 y 1((
!-i.4#in!$#*a!>"random#$81((31$)

,ys!em"ou!"&rin!ln#5Cos valores son:5$)
0or #in! i 4 () i : !"leng!>) i33$
,ys!em"ou!"&rin!#!-i. 35 5$))
ma1 4 ma1imo #!$)
,ys!em"ou!"&rin!ln#5[nEl nDmero mayor es: 5 3ma1$)
?
?
8. *unci"n a la que se le pasan dos enteros y muestra todos los nmeros comprendidos entre ellos,
inclusive.
&ac'age bo(l=ej(%)
&ublic class *ain +
s!a!ic void mos!rar#in! a,in! b$+
in! mayor, menor)
// desconocemos el orden en el <ue vienen a y b"
// Co <ue >aremos es &oner los valores correc!os en mayor, menor"

i0#aIb$+ // a es el mayor" ,e &odrHa u!ili7ar la 0uncin ma1imo#$ im&lemen!ada an!eriormen!e"
mayor4a)
menor4b)
?
else+ // en es!e caso b ser@ el mayor
Ejercicios de Programacin en Java 11F
mayor4b)
menor4a)
?
0or #in! i4menor)i:4mayor)i33$
,ys!em"ou!"&rin!#i35 5$)
,ys!em"ou!"&rin!ln#$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! a,b)
,ys!em"ou!"&rin!#56n!rodu7ca &rimer numero: 5$)
a4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca segundo numero: 5$)
b4En!rada"en!ero#$)

mos!rar#a,b$)

?
?
6. *unci"n que muestra en pantalla el doble del valor que se le pasa como parmetro.
&ac'age bol(=ej(=)
&ublic class *ain +

s!a!ic void doble#in! num$
+
Ejercicios de Programacin en Java 12(
in! doble)
doble428num) // calculamos el doble de num
,ys!em"ou!"&rin!ln#5El doble es: 5 3doble$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
,ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$)
num4En!rada"en!ero#$)
doble#num$)
?
?
F. Realizar una funci"n que calcule 3muestre en pantalla5 el rea o el volumen de un cilindro, segn
se especifique. ,ara distinguir un caso de otro se le pasar el carcter `a` 3para rea5 o `v`
3para el volumen5. -dems hemos de pasarle a la funci"n el radio y la altura.
&ac'age bol(=ej(B)
&ublic class *ain +
s!a!ic void areaVoVvolumenVcilindro#double radio, double al!ura, c>ar o&cion$+

double volumen,area)
sAi!c> #o&cion$
+
case OvO:
volumen 4*a!>"P68radio8radio8al!ura) // radio8radio es el radio al cuadrado
,ys!em"ou!"&rin!ln#5El volumen es de: 5 3volumen$)
Ejercicios de Programacin en Java 121
brea')
case OaO:
area 4 28*a!>"P68radio8al!ura 3 28*a!>"P68radio8radio)
,ys!em"ou!"&rin!ln#5El @rea es de: 53area$)
brea')
de0aul!:
,ys!em"ou!"&rin!ln#56ndicador del c@lculo errneo5$)
?
?
&ublic s!a!ic void main#,!ring-. args$ +
double radio,al!)
c>ar !i&oVcalculo)
,ys!em"ou!"&rin!#56n!rodu7ca radio: 5$)
radio4En!rada"real#$)
,ys!em"ou!"&rin!#56n!rodu7ca al!ura: 5$)
al!4En!rada"real#$)
,ys!em"ou!"&rin!#5_ue desea calcular #a/v$: 5$)
!i&oVcalculo 4En!rada"carac!er#$)
,ys!em"ou!"&rin!ln#55$)

areaVoVvolumenVcilindro#radio,al!,!i&oVcalculo$)
?
?
G. Qdem que devuelva una tabla con el rea y el volumen.
&ac'age bol(=ej(E)
&ublic class *ain +
Ejercicios de Programacin en Java 122
s!a!ic double-. areaVyVvolumenVcilindro#double radio, double al!ura$
+
double volumen,area)
double calculo-.)

calculo 4 neA double -2.) // -(. &ara el volumen y -1. &ara el @rea
calculo-(. 4*a!>"P68radio8radio8al!ura) // radio8radio es el radio al cuadrado

calculo-1. 428*a!>"P68radio8al!ura 3 28*a!>"P68radio8radio)
re!urn #calculo$)
?
&ublic s!a!ic void main#,!ring-. args$ +
double radio,al!)
double resul!ado-.) //es!a !abla no necesi!a neA, ya <ue a&un!a a
// la !abla creada den!ro de la 0uncin
,ys!em"ou!"&rin!#56n!rodu7ca radio: 5$)
radio4En!rada"real#$)
,ys!em"ou!"&rin!#56n!rodu7ca al!ura: 5$)
al!4En!rada"real#$)

resul!ado 4areaVyVvolumenVcilindro#radio,al!$) // resul!ado >ace re0erencia a la !abla devuel!a
// &or la 0uncin"
,ys!em"ou!"&rin!ln#5El volumen es de: 5 3resul!ado-(.$)
,ys!em"ou!"&rin!ln#5El @rea es de: 5 3resul!ado-1.$)
?
?
Ejercicios de Programacin en Java 123
:. +"dulo al que se le pasa un nmero entero y devuelve el nmero de divisores primos que tiene.
&ac'age bol(=ej(F)
&ublic class *ain +
// la 0uncin esV&rimo indica si el nDmero &asado es o no &rimo
// recordamos <ue un nDmero &rimo es solo divisible &or el mismo y 1
s!a!ic boolean esV&rimo#in! num$
+
boolean &rimo)
in! i)
&rimo4!rue) // su&onemos <ue el nDmero es &rimo
// es!e algori!mo se &uede mejorar sabiendo <ue si un nDmero no es
// divisible en!re 2 y su raH7 cuadrada, en!onces ya no ser@ divisible
// &or ningDn o!ro nDmeros 9I ser@ &rimo
//
// con es!a mejora &odemos a>orrar muc>as vuel!as del A>ile &ara
// nDmeros grandes
i42)
A>ile#i:num JJ &rimo44!rue$ // en realidad bas!arHa &robar >as!a la raH7 cuadrada de num
+
i0# num Gi 44 ($ // si es divisible
&rimo40alse) // si >emos en!rado a<uH signi0ica <ue el nDmero no es &rimo
i33)
?
re!urn#&rimo$)
?
Ejercicios de Programacin en Java 12
// es!a 0uncin devuelve el nDmero de divisores &rimos del nDmero &asado como &ar@me!ro"
//
// un ejem&lo:
// los divisores de 2 son: 2 y 3
// aun<ue y = !ambiKn dividen a 2, no se consideran divisores &rimos, al no ser &rimos
// &or lo <ue 2 !iene !res divisores &rimos: el 1, el 2 y el 3"
s!a!ic in! numVdivisores #in! num$+
in! con!)
con!41) // siem&re >abr@ un divisor seguro, el 1"
0or #in! i42)i:4num)i33$
i0#esV&rimo #i$ JJ num Gi 44 ($ // si i es &rimo y divide a num
con!33) // incremen!amos el nDmero de divisores &rimos

re!urn#con!$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! num,div)
,ys!em"ou!"&rin!#56n!roduce numero: 5$)
num4En!rada"en!ero#$)
div4numVdivisores#num$)
,ys!em"ou!"&rin!ln#5Tiene 5 3div3 5 divisores5$)
?
?
Ejercicios de Programacin en Java 12%
)&.Qdem dise;ar una funci"n que devuelve una tabla con los divisores.
&ac'age bol(=ej1()
&ublic class *ain +
// la 0uncin esV&rimo indica si el nDmero &asado es o no &rimo
// recordamos <ue un nDmero &rimo es solo divisible &or el mismo y 1
s!a!ic boolean esV&rimo#in! num$
+
boolean &rimo)
in! i)
&rimo4!rue) // su&onemos <ue el nDmero es &rimo
// es!e algori!mo se &uede mejorar sabiendo <ue si un nDmero no es
// divisible en!re 2 y su raH7 cuadrada, en!onces ya no ser@ divisible
// &or ningDn o!ro nDmeros 9I ser@ &rimo
//
// con es!a mejora &odemos a>orrar muc>as vuel!as del A>ile &ara
// nDmeros grandes
i42)
A>ile#i:num JJ &rimo44!rue$
+
i0# num Gi 44 ($ // si es divisible
&rimo40alse) // si >emos en!rado a<uH signi0ica <ue el nDmero no es &rimo
i33)
?
re!urn#&rimo$)
?
Ejercicios de Programacin en Java 12=
// es!a 0uncin me devuelve el nDmero de divisores del nDmero
// los divisores a !ener en cuen!a solo son a<uellos <ue son &rimos
//
// un ejem&lo:
// los divisores de 2 son: 2 y 3
// aun<ue y = !ambiKn dividen a 2, no se consideran divisores, al no ser &rimos
// &or lo <ue 2 !iene !res divisores #el 1, el 2 y el 3$
s!a!ic in! numVdivisores#in! num$+
in! con!)
con!41) // siem&re >abr@ un divisor seguro, el 1"
0or #in! i42)i:4num)i33$
i0#esV&rimo #i$ JJ num Gi 44 ($ // si i es &rimo y divide a num
con!33) // incremen!amos el nDmero de divisores

re!urn#con!$)
?
s!a!ic in! -. divisores#in! num$+
in! con!4()
in! div-.) // !abla donde guardaremos los divisores)
in! numVdiv) // nDmero de divisores &rimos <ue !iene num"
numVdiv 4 numVdivisores #num$)
div 4neA in!-numVdiv.)
0or #in! i41)i:4num)i33$
i0#esV&rimo #i$ JJ num Gi 44 ($ // si i es &rimo y divide a num
Ejercicios de Programacin en Java 12B
+
div-con!. 4i) // incremen!amos el nDmero de divisores
con!33)
?
re!urn#div$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! num, divisores-.)
,ys!em"ou!"&rin!#56n!roduce numero: 5$)
num4En!rada"en!ero#$)
divisores 4divisores#num$)
,ys!em"ou!"&rin!ln#5Cos divisores de 5 3 num 3 5 son:5$)
0or #in! i 4 () i : divisores"leng!>) i33$
,ys!em"ou!"&rin!#divisores-i. 3 5 5$)
,ys!em"ou!"&rin!ln#55$)

?
?
)).Escribir una funci"n que calcule el m!imo comn divisor de dos nmeros.
&ac'age bol(=ej11)
&ublic class *ain +
// el m@1imo comDn divisor de dos nDmeros es el nDmero m@s grande <ue
// es ca&a7 de dividir a ambos nDmeros
// Para calcularlo &odrHamos u!ili7ar algDn algori!mo e1is!en!e o >acerlo
// un &oco &or la 5cuen!a de la vieja5"
Ejercicios de Programacin en Java 12E
// Ca idea es dividir &or !odos los nDmeros desde 1 >as!a mHnimo#a, b$
// y <uedarnos con el mayor"
s!a!ic in! ma1VcomunVdivisor #in! a, in! b$
+
in! mcd41)
in! min)
min 4 minimo #a,b$)
mcd41) // e1is!e un mcd seguro, el 1, <ue divide a y b"
0or #in! i42)i:4min)i33$
i0# aGi44( JJ bGi44($ // si i divide a 5a5 y 5b5
mcd4i) // i ser@ el nuevo mcd"
re!urn#mcd$)
?
s!a!ic in! minimo#in! a, in! b$+
in! min)
i0#aIb$
min4b)
else
min4a)
re!urn#min$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! a, b, mcd)
Ejercicios de Programacin en Java 12F
,ys!em"ou!"&rin!#56n!roduce numero: 5$)
a4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!roduce o!ro: 5$)
b4En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#55$)
mcd 4 ma1VcomunVdivisor #a, b$)
,ys!em"ou!"&rin!ln#5El mcd de 53a35 y 53b35 es: 53mcd$)
?
?
)(.Qdem con tres nmeros.
&ac'age bol(=ej12)
&ublic class *ain +
// el m@1imo comDn divisor de !res nDmeros es el nDmero m@s grande <ue
// es ca&a7 de dividir a !odos nDmeros
// Para calcularlo &odrHamos u!ili7ar algDn algori!mo e1is!en!e o >acerlo
// un &oco &or la 5cuen!a de la vieja5"
// Ca idea es dividir &or !odos los nDmeros desde 1 >as!a mHnimo#a, b, c$
// y <uedarnos con el mayor"
s!a!ic in! ma1VcomunVdivisor #in! a, in! b, in! c$
+
in! mcd41)
in! min)
// &ara no im&lemen!ar la 0uncin mHnimo &ara !res nDmeros
Ejercicios de Programacin en Java 13(
// u!ili7aremos la 0uncin con solo dos &ar@me!ros)
min 4 minimo #a,minimo#b,c$$)
mcd41) // e1is!e un mcd seguro, el 1, <ue divide a y b"
0or #in! i42)i:4min)i33$
i0# aGi44( JJ bGi44( JJ cGi44($ // si i divide a OaO, a ObO y a OcO
mcd4i) // i ser@ el nuevo mcd"
re!urn#mcd$)
?
s!a!ic in! minimo#in! a, in! b$+
in! min)
i0#aIb$
min4b)
else
min4a)
re!urn#min$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! a, b,c , mcd)
,ys!em"ou!"&rin!#56n!roduce a: 5$)
a4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!roduce b: 5$)
b4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!roduce c: 5$)
Ejercicios de Programacin en Java 131
c4En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#55$)
mcd 4 ma1VcomunVdivisor #a, b, c$)
,ys!em"ou!"&rin!ln#5El mcd de #53a35, 53b35, 53c35$ es: 53mcd$)

?
?
)%.Qdem con una tabla.
&ac'age bol(=ej13)
&ublic class *ain +
/8 el m@1imo comDn divisor es el nDmero m@s grande <ue
es ca&a7 de dividir a !odos los nDmeros
Para calcularlo &odrHamos u!ili7ar algDn algori!mo e1is!en!e o >acerlo
un &oco &or la 5cuen!a de la vieja5"
Ca idea es dividir &or !odos los nDmeros desde 1 >as!a mHnimo#a, b, c$
y <uedarnos con el mayor"
8/
s!a!ic in! ma1VcomunVdivisor #in! !-.$
+
in! mcd41)
in! min)
boolean divideVaV!odos) // una bandera &ara saber si un nDmero divide
// a !odos los elemen!os de la !abla

Ejercicios de Programacin en Java 132
// es!o 0unciona &ara !abla con al menos un valor
min 4 !-(.)
// u!ili7aremos la 0uncin con solo dos &ar@me!ros)
0or #in! i 4 () i : !"leng!>) i33$
min 4 minimo #min,!-i.$)
// al !erminar el 0or, min debe !ener el valor mHnimo de !oda la !abla"
mcd41) // e1is!e un mcd seguro, el 1"
0or #in! i42)i:4min)i33$
+
divideVaV!odos 4!rue)
0or #in! '4()':!"leng!>)'33$
i0# !-'.GiT4($ // si i divide a !-i.
divideVaV!odos40alse) // en!onces la i no divide a !odos los elemen!os de !"
i0 #divideVaV!odos 44 !rue$ // i es ca&a7 de dividir a !odos los elemen!os de !
mcd 4i) // en!onces i es el nuevo mcd
?
re!urn#mcd$)
?
s!a!ic in! minimo#in! a, in! b$+
in! min)
i0#aIb$
min4b)
else
min4a)
re!urn#min$)
Ejercicios de Programacin en Java 133
?
&ublic s!a!ic void main#,!ring-. args$ +
in! !-., mcd)
! 4 neA in! -.)
0or #in! i 4 () i : !"leng!>) i33$
!-i. 4 #in!$#*a!>"random#$81(((31$) // llenamos ! con nDmeros alea!orios en!re 1 y 1(((
,ys!em"ou!"&rin!ln#5Cos nDmeros son: 5$)
0or #in! i 4 () i : !"leng!>) i33$
,ys!em"ou!"&rin!#!-i. 35 5$)
,ys!em"ou!"&rin!ln#55$)
mcd 4 ma1VcomunVdivisor #!$)
,ys!em"ou!"&rin!ln#5El mcd es: 5 3mcd$)

?
?
)0.Escribir una funci"n que calcule el m2nimo comn mltiplo de dos nmeros.
&ac'age bol(=ej1)
&ublic class *ain +
Ejercicios de Programacin en Java 13
/8 el mHnimo comDn mDl!i&lo de a y b, es el nDmero m@s &e<ueNo <ue
es divisible &or a y b"
Para calcularlo &odrHamos u!ili7ar algDn algori!mo e1is!en!e o >acerlo
un &oco &or la 5cuen!a de la vieja5"
Ca idea es elegir el mayor de a y b, y mul!i&licarlo &or i, >as!a <ue
el nDmero resul!an!e sea divisible &or el menor de a y b 8/
s!a!ic in! minVcomunVmul!i&lo #in! a, in! b$
+
in! mcm)
in! ma1)
in! i)

ma1 4 ma1imo #a, b$)
mcm 4ma1) // en &rinci&io el mcm es el mayor de los dos nDmeros
i41)
A>ile #mcmGaT4( QQ mcmGbT4($ // si el mcm no es divisible &or a y b
+
i33)
mcm4ma18i) // el nuevo mcm sera el mayor &or i

?

re!urn#mcm$)
?
s!a!ic in! ma1imo #in! a, in! b$+
in! ma1)
i0#aIb$
ma14a)
Ejercicios de Programacin en Java 13%
else
ma14b)
re!urn#ma1$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! a, b, mcm)
,ys!em"ou!"&rin! #56n!roduce a: 5$)
a4En!rada"en!ero#$)
,ys!em"ou!"&rin! #56n!roduce b: 5$)
b4En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#55$)
mcm 4 minVcomunVmul!i&lo #a,b$)

,ys!em"ou!"&rin!ln#5El mcm es: 5 3mcm$)

?
?
&ac'age bol(=ej1)
&ublic class *ain +
// a&rovec>ando <ue !enemos >ec>a la 0uncin ma1VcomunVdivisor, calcularemos
Ejercicios de Programacin en Java 13=
// el mHnimo comDn mDl!i&lo de dos nDmeros como la mul!i&licacin de ambos
// divido &or el mcd
s!a!ic in! minVcomunVmul!i&lo #in! a, in! b$
+
in! mcm)
mcm 4 a8b / ma1VcomunVdivisor #a,b$)
re!urn #mcm$)
?
s!a!ic in! ma1VcomunVdivisor #in! a, in! b$
+
in! mcd41)
in! min)
min 4 minimo #a,b$)
mcd41) // e1is!e un mcd seguro, el 1, <ue divide a y b"
0or #in! i42)i:4min)i33$
i0# aGi44( JJ bGi44($ // si i divide a 5a5 y 5b5
mcd4i) // i ser@ el nuevo mcd"
re!urn#mcd$)
?
s!a!ic in! minimo#in! a, in! b$+
in! min)
i0#aIb$
min4b)
else
Ejercicios de Programacin en Java 13B
min4a)
re!urn#min$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! a, b, mcm)
,ys!em"ou!"&rin!#56n!roduce a: 5$)
a4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!roduce b: 5$)
b4En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#55$)
mcm 4 minVcomunVmul!i&lo #a, b$)
,ys!em"ou!"&rin!ln#5El mcm de 53a35 y 53b35 es: 53mcm$)

?
?
)8.Qdem con tres nmeros.
&ac'age bol(=ej1%)
&ublic class *ain +
// el mHnimo comDn mDl!i&lo de a, b y c, es el nDmero m@s &e<ueNo <ue
// es divisible &or a, b y c"
Ejercicios de Programacin en Java 13E
// Para calcularlo &odrHamos u!ili7ar algDn algori!mo e1is!en!e o >acerlo
// un &oco &or la 5cuen!a de la vieja5"
// Ca idea es elegir el mayor de ellos, y mul!i&licarlo &or i #1""$, >as!a <ue
// el nDmero resul!an!e sea divisible &or !odos
s!a!ic in! minVcomunVmul!i&lo #in! a, in! b, in! c$
+
in! mcm41)
in! ma1)
in! i)

ma1 4 ma1imo #a, ma1imo#b,c$$)
mcm 4ma1) // en &rinci&io el mcm es el mayor de los dos nDmeros
i41)
A>ile #mcmGaT4( QQ mcmGbT4( QQ mcmGcT4($ // mien!ras el mcm no sea divisible &or !odos
+
i33)
mcm4ma18i) // el nuevo mcm sera el mayor &or i

?

re!urn#mcm$)
?
s!a!ic in! ma1imo #in! a, in! b$+
in! ma1)
i0#aIb$
ma14a)
else
ma14b)
Ejercicios de Programacin en Java 13F
re!urn#ma1$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! a, b, c, mcm)
,ys!em"ou!"&rin! #56n!roduce a: 5$)
a4En!rada"en!ero#$)
,ys!em"ou!"&rin! #56n!roduce b: 5$)
b4En!rada"en!ero#$)
,ys!em"ou!"&rin! #56n!roduce c: 5$)
c4En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#55$)
mcm 4 minVcomunVmul!i&lo #a, b, c$)
,ys!em"ou!"&rin!ln#5El mcm es: 5 3mcm$)

?
?
&ac'age bol(=ej1%)
&ublic class *ain +
// el mHnimo comDn mDl!i&lo de a y b, es el nDmero m@s &e<ueNo <ue
Ejercicios de Programacin en Java 1(
// es divisible &or a y b"
// Para calcularlo &odrHamos u!ili7ar algDn algori!mo e1is!en!e o >acerlo
// un &oco &or la 5cuen!a de la vieja5"
// Ca idea es elegir el mayor de a y b, y mul!i&licarlo &or i, >as!a <ue
// el nDmero resul!an!e sea divisible &or el menor#a,b$
s!a!ic in! minVcomunVmul!i&lo #in! a, in! b$
+
in! mcm41)
in! ma1)
in! i)

ma1 4 ma1imo #a, b$)
mcm 4ma1) // en &rinci&io el mcm es el mayor de los dos nDmeros
i41)
A>ile #mcmGaT4( QQ mcmGbT4($ // si el mcm no es divisible &or a y b
+
i33)
mcm4ma18i) // el nuevo mcm sera el mayor &or i

?

re!urn#mcm$)
?
s!a!ic in! ma1imo #in! a, in! b$+
in! ma1)
i0#aIb$
ma14a)
else
Ejercicios de Programacin en Java 11
ma14b)
re!urn#ma1$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! a, b, c, mcm)
,ys!em"ou!"&rin! #56n!roduce a: 5$)
a4En!rada"en!ero#$)
,ys!em"ou!"&rin! #56n!roduce b: 5$)
b4En!rada"en!ero#$)
,ys!em"ou!"&rin! #56n!roduce c: 5$)
c4En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#55$)
// reu!ili7amos la 0uncin mcm &ensada &ara dos nDmeros y a&rovec>amos
// la &ro&iedad conmu!a!iva del mcm"
mcm 4 minVcomunVmul!i&lo #a, b$)
mcm 4 minVcomunVmul!i&lo #mcm, c$)

,ys!em"ou!"&rin!ln#5El mcm es: 5 3mcm$)

?
?
Ejercicios de Programacin en Java 12
)6.Qdem con una tabla.
&ac'age bol(=ej1=)
&ublic class *ain +
// el mHnimo comDn mDl!i&lo de a y b, es el nDmero m@s &e<ueNo <ue
// es divisible &or ambos"
// Para calcularlo &odrHamos u!ili7ar algDn algori!mo e1is!en!e o >acerlo
// un &oco &or la 5cuen!a de la vieja5"
// Ca idea es elegir el mayor de ellos, y mul!i&licarlo &or i #1""$, >as!a <ue
// el nDmero resul!an!e sea divisible &or ambos
s!a!ic in! minVcomunVmul!i&lo #in! a, in! b$
+
in! mcm41)
in! ma1)
in! i)

ma1 4 ma1imo #a, b$)
mcm 4ma1) // en &rinci&io el mcm es el mayor de los dos nDmeros
i41)
A>ile #mcmGaT4( QQ mcmGbT4($ // mien!ras el mcm no sea divisible &or !odos
+
i33)
mcm4ma18i) // el nuevo mcm sera el mayor &or i

?

re!urn#mcm$)
Ejercicios de Programacin en Java 13
?
s!a!ic in! ma1imo #in! a, in! b$+
in! ma1)
i0#aIb$
ma14a)
else
ma14b)
re!urn#ma1$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! !-., mcm)
! 4 neA in!-.)
0or #in! i 4 () i : !"leng!>) i33$
!-i.4#in!$#*a!>"random#$81((31$)
,ys!em"ou!"&rin!ln#5Cos da!os son:5$)
0or #in! i 4 () i : !"leng!>) i33$
,ys!em"ou!"&rin!#!-i.35 5$))
,ys!em"ou!"&rin!ln#55$)
mcm 4 !-(.)
0or #in! i 4 () i : !"leng!>) i33$
mcm 4 minVcomunVmul!i&lo #!-i.,mcm$)
Ejercicios de Programacin en Java 1
,ys!em"ou!"&rin!ln#5El mcm es: 5 3mcm$)

?
?
)F.Escriba una funci"n que decida si dos nmeros enteros positivos son amigos. os nmeros son
amigos, si la suma de sus divisores 3distintos de ellos mismos5 son iguales.
&ac'age bol(=ej1B)
&ublic class *ain +
// la 0uncin esV&rimo indica si el nDmero &asado es o no &rimo
// recordamos <ue un nDmero &rimo es solo divisible &or el mismo y 1
s!a!ic boolean esV&rimo#in! num$
+
boolean &rimo)
in! i)
&rimo4!rue) // su&onemos <ue el nDmero es &rimo
// es!e algori!mo se &uede mejorar sabiendo <ue si un nDmero no es
// divisible en!re 2 y su raH7 cuadrada, en!onces ya no ser@ divisible
// &or ningDn o!ro nDmeros 9I ser@ &rimo
//
// con es!a mejora &odemos a>orrar muc>as vuel!as del A>ile &ara
// nDmeros grandes
i42)
A>ile#i:num JJ &rimo44!rue$
+
Ejercicios de Programacin en Java 1%
i0# num Gi 44 ($ // si es divisible
&rimo40alse) // si >emos en!rado a<uH signi0ica <ue el nDmero no es &rimo
i33)
?
re!urn#&rimo$)
?
// es!a 0uncin me devuelve la suma de los divisores &ro&ios"
// Es decir cual<uier nDmero <ue divida a num en el rango 1""num91
//
// un ejem&lo:
// los divisores &ro&ios de 2 son: 1, 2, 3, , =, E, 12

s!a!ic in! sumaVdivisoresV&ro&ios #in! num$+
in! suma)
suma4()
0or #in! i41)i:num)i33$ // al ser >as!a i:num no !enemos en cuen!a el &ro&io num
i0#num Gi 44 ($ // si i divide a num
suma34i) // acumulamos i

re!urn#suma$)
?

&ublic s!a!ic void main#,!ring-. args$ +
in! a,b)
Ejercicios de Programacin en Java 1=

,ys!em"ou!"&rin!#56n!roduce a: 5$)
a4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!roduce b: 5$)
b4En!rada"en!ero#$)
i0 #a44sumaVdivisoresV&ro&ios #b$ JJ b44sumaVdivisoresV&ro&ios #a$$
,ys!em"ou!"&rin!ln#a3 5 y 5 3b3 5 son amigos"5$)
else
,ys!em"ou!"&rin!ln#a35 y 53b35 no son amigos"""[nCa siguien!e ve7 &rueba con 22(, 2E"5$)

?
?
)G.ise;a una funci"n 3en adelante D375 que decida si un nmero es primo.
&ac'age bol(=ej1E)
&ublic class *ain +

s!a!ic boolean esV&rimo#in! num$+
boolean &rimo)
in! i)
&rimo4!rue)
i42)

A>ile#i:num JJ &rimo44!rue$
+
i0#numGi44($ // si num es divisible &or i
&rimo40alse) // si llego a<uH es <ue num es divisible9I no es &rimo
Ejercicios de Programacin en Java 1B
i33)
?
re!urn#&rimo$)
?
&ublic s!a!ic void main#,!ring-. args$ +
boolean res)
in! num)
,ys!em"ou!"&rin!#56n!roduce numero: 5$)
num4En!rada"en!ero#$)
i0#esV&rimo#num$$
,ys!em"ou!"&rin!ln#5Es &rimo5$)
else
,ys!em"ou!"&rin!ln#5;o es &rimo5$)
?
?
):.@* que calcule a
n
.
&ac'age bol(=ej1F)
&ublic class *ain +

s!a!ic in! aVelevadoVn#in! a, in! n$+
in! res)
res41) // el resul!ado se iniciali7a a 1, ya <ue iremos mul!i&licando
i0#n44($ // &or de0inicin cual<uier nDmero elevado a ( es 1
Ejercicios de Programacin en Java 1E
res41)
else
0or #in! i41)i:4n)i33$
res4res8a)
re!urn#res$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! num,e1&,res)
,ys!em"ou!"&rin!#56n!rodu7ca base: 5$)
num4En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca su e1&onen!e: 5$)
e1&4En!rada"en!ero#$)

res4aVelevadoVn #num,e1&$)
,ys!em"ou!"&rin!ln#num 3 5 elevado a 5 3 e1& 35 4 5 3res$)

?
?
(&.@* que muestre en binario un nmero entre & y (88.
&ac'age bol(=ej2()
&ublic class *ain +
s!a!ic void binario#in! num$
+
Ejercicios de Programacin en Java 1F
in! !-.) // en ! guardaremos los dHgi!os binarios
in! con!)
! 4 neA in! -E.) // un nDmero en binario en!re ( y 2%% !iene E bi!s

i0 #num:( QQ 2%%:num$
,ys!em"ou!"&rin!ln#5;Dmero 0uera de rango #(""2%%$5$)
else
+
con! 4()
i0 #num44($
+
!-con!.4()
con!33)
?
// iremos dividiendo y cogiendo el res!o

A>ile#numT4($
+
!-con!. 4numG2)
num 4num/2)
con!33)
?
,ys!em"ou!"&rin!ln#5En binario: 5$)
// como ! !iene los dHgi!os en orden inverso
0or #in! i4con!91)iI4()i99$
,ys!em"ou!"&rin!#!-i.$)
,ys!em"ou!"&rin!ln#55$)
?
Ejercicios de Programacin en Java 1%(
?
&ublic s!a!ic void main#,!ring-. args$ +
in! num)
,ys!em"ou!"&rin!#56n!rodu7ca un numero #(""2%%$: 5$)
num4En!rada"en!ero#$)
binario#num$)
?
?
(). Escriba una funci"n que sume los n primeros nmeros impares.
&ac'age bol(=ej21)
&ublic class *ain +
s!a!ic in! sumaVnVim&ares #in! n$
+
in! suma4()
0or #in! i 41) i :4n ) i33$
suma 34 28i91) // asH calculamos el i9Ksimo im&ar
re!urn #suma$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! n)
,ys!em"ou!"&rin!#56n!rodu7ca un numero: 5$)
Ejercicios de Programacin en Java 1%1
n 4En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#5Ca suma de los 5 3n3 5 &rimeros im&ares es: 5 3sumaVnVim&ares #n$$)

?
?
&ac'age bol(=ej21)
&ublic class *ain +
s!a!ic in! sumaVnVim&ares #in! n$
+
in! suma4()
0or #in! i 41) i :4 28n91 ) i342$ // el 0or ir@ 1, 3, %, """"
// >as!a 28n91 #el n9Ksimo im&ar$
suma 34 i)
re!urn #suma$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! n)
,ys!em"ou!"&rin!#56n!rodu7ca un numero: 5$)
n 4En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#5Ca suma de los 5 3n3 5 &rimeros im&ares es: 5 3sumaVnVim&ares #n$$)

?
?
Ejercicios de Programacin en Java 1%2
((. ado el valor de un ngulo, ser2a interesante saber su seno, coseno y tangente. Escribir una
funci"n que muestre en pantalla los datos anteriores.
&ac'age bol(=ej22)
&ublic class *ain +
s!a!ic void in0ormacionVangulo #double n$
+
// como las 0unciones <ue calculan el seno, coseno y !angen!e !rabajan en
// radianes, >emos de &asar n de grados a radianes
n 4 *a!>"P6/1E(8n) // o!ra 0orma serHa n 4 *a!>"!oSadians#n$)

,ys!em"ou!"&rin!ln#5seno: 5 3 *a!>"sin#n$$)
,ys!em"ou!"&rin!ln#5coseno: 5 3 *a!>"cos#n$$)
,ys!em"ou!"&rin!ln#5!angen!e: 5 3 *a!>"!an#n$$)
?
&ublic s!a!ic void main#,!ring-. args$ +
double angulo)
,ys!em"ou!"&rin!#56n!rodu7ca un @ngulo #(""3=($: 5$)

angulo 4En!rada"real#$)

in0ormacionVangulo #angulo$)

?
?
(%. ise;ar una funci"n que calcule la distancia eucl2dea de dos puntos.
Ejercicios de Programacin en Java 1%3
&ac'age bol(=ej23)
&ublic class *ain +
s!a!ic double dis!anciaVeuclidea #in! 11, in! y1, in! 12, in! y2$
+
// a<uH no >ay m@s <ue !irar de la 0rmula de la dis!ancia euclHdea
// y desem&olvarla de los a&un!es
re!urn #*a!>"s<r!# *a!>"&oA #11912, 2$ 3 *a!>"&oA #y19y2, 2$$$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! 11, y1) // &rimer &un!o
in! 12, y2) // el o!ro &un!o
double l) // dis!ancia euclHdea
,ys!em"ou!"&rin!ln#5Pun!o 15$)
,ys!em"ou!"&rin!#51: 5$)
11 4 En!rada"en!ero#$)
,ys!em"ou!"&rin!#5y: 5$)
y1 4 En!rada"en!ero#$)
,ys!em"ou!"&rin!ln#5[nPun!o 25$)
,ys!em"ou!"&rin!#51: 5$)
12 4 En!rada"en!ero#$)
,ys!em"ou!"&rin!#5y: 5$)
y2 4 En!rada"en!ero#$)
l 4dis!anciaVeuclidea #11,y1, 12,y2$)
Ejercicios de Programacin en Java 1%
,ys!em"ou!"&rin!ln#5[nUis!ancia euclHdea: 5 3l$)

?
?
(0. @* a la que se le pasa como parmetro una tabla que debe rellenar. >e leer por teclado una
serie de nmeros: guardaremos solo los pares e ignoraremos los impares. 9ambin hay que devolver la
cantidad de impares ignorados.
&ac'age bol(=ej2)
&ublic class *ain +
s!a!ic in! rellenaV!ablaV&ares#in! !-.$+
in! i,num, im&aresVignorados)
i 4 ()
im&aresVignorados 4 ()
A>ile #i:!"leng!>$ // !erminaremos de rellenar la !abla cuando el nDmero
// de &ares sea igual <ue el !amaNo de la !abla
+
,ys!em"ou!"&rin!#56n!rodu7ca nDmero: 5$)
num 4 En!rada"en!ero#$)
i0#num G2 44 ($ // si es &ar
+
!-i. 4 num) // lo guardamos
i33)
?
else
im&aresVignorados33)
?
Ejercicios de Programacin en Java 1%%
re!urn#im&aresVignorados$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! igno,!-.)
! 4 neA in!-%.)
igno 4 rellenaV!ablaV&ares#!$)
,ys!em"ou!"&rin!ln#5El numero de im&ares ignorados es de: 5 3igno$)

,ys!em"ou!"&rin!ln#5Ca !abla <ueda: 5$)
0or#in! i4()i:%)i33$
,ys!em"ou!"&rin!#!-i.3 5 5$)
,ys!em"ou!"&rin!ln#55$)

?
?
(8. @* a la que se le pasa una tabla de enteros y un nmero. ebemos buscar el nmero en la tabla e
indicar si se encuentra o no.
&ac'age bol(=ej2%)
&ublic class *ain +
s!a!ic boolean busca#in! !-.,in! n$
+
in! i)
Ejercicios de Programacin en Java 1%=
boolean es!a)

i4()
A>ile #i:!"leng!> JJ !-i.T4n$ // si no es !-i., &aso al siguien!e
// con cuidado de no salirme de la !abla
i33)


// cuando !ermina el mien!ras, &uede ser &or dos mo!ivos:
// 9 <ue >e buscado &or !oda la !abla sin encon!rarlo y al 0inal me salgo de la !abla
// 9 o <ue lo >e encon!rado

i0 #i:!"leng!>$ // si no llego al 0inal de la !abla es &or <ue lo >e encon!rado
// !-i. 44 num no es v@lido, ya <ue si i es!@ 0uera de rango da un error
es!a 4!rue)
else
es!a 40alse)
re!urn#es!a$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! a-.4+1, 12, 3E, %, 11?) // es un ejem&lo de &osibles valores
in! num)
boolean es!a)
,ys!em"ou!"&rin!ln#5Ca !abla es: 5$)
0or #in! i4()i:%)i33$
,ys!em"ou!"&rin!ln#a-i.$)
,ys!em"ou!"&rin!#5[in!roduce numero a buscar: 5$)
num4En!rada"en!ero#$)
Ejercicios de Programacin en Java 1%B
es!a4busca#a,num$)
i0 #es!a$
,ys!em"ou!"&rin!ln#5EC nDmero es!@5$)
else
,ys!em"ou!"&rin!ln#5El nDmero no es!@5$)
?
?
(6. /gual que el ejercicio anterior, pero suponiendo que la tabla no est siempre llena, y el nmero
de elementos se pasa tambin como parmetro.
&ac'age bol(=ej2=)
&ublic class *ain +
s!a!ic boolean busca#in! !-.,in! n, in! !am$
+
in! i)
boolean es!a)

i4()
A>ile #i:!am JJ !-i.T4n$ // si no es !-i., &aso al siguien!e
// con cuidado de no salirme de la !abla
i33)


// cuando !ermina el mien!ras, &uede ser &or dos mo!ivos:
// 9 <ue >e buscado &or !oda la !abla sin encon!rarlo y al 0inal me salgo de la !abla
// 9 o <ue lo >e encon!rado

Ejercicios de Programacin en Java 1%E
i0 #i:!am$ // si no llego al 0inal de la !abla es &or <ue lo >e encon!rado
// !-i. 44 num no es v@lido, ya <ue si i es!@ 0uera de rango
// !-i. es basura
es!a 4!rue)
else
es!a 40alse)
re!urn#es!a$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! a-.4 neA in! -2(.)
in! !am)
in! num)
boolean es!a)

a-(. 4 1)
a-1. 4 12)
a-2. 4 3E)
a-3. 4 %)
a-. 4 11)

!am 4 %)
,ys!em"ou!"&rin!ln#5Ca !abla es: 5$)
0or #in! i4()i:!am)i33$
,ys!em"ou!"&rin!ln#a-i.$)
,ys!em"ou!"&rin!#5[n6n!roduce numero a buscar: 5$)
num4En!rada"en!ero#$)
es!a4busca#a, num, !am$)
Ejercicios de Programacin en Java 1%F
i0 #es!a$
,ys!em"ou!"&rin!ln#5El nDmero es!@5$)
else
,ys!em"ou!"&rin!ln#5El nDmero no es!@5$)
?
?
(F.ise;ar la funci"n operaWtabla, a la que se le pasa dos tablas, el nmero de elementos tiles y
que operaci"n se desea realizar: sumar, restar, multiplicar o dividir 3mediante un carcter: `s`,
`r`, `m`, `d`5. <a funci"n debe devolver una tabla con los resultados.
&ac'age bol(=ej2B)
&ublic class *ain +
s!a!ic in!-. o&eraV!abla#in! a-., in! b-., c>ar o&c, in! nelem$+
in! i, resul!-.)
resul! 4 neA in!-nelem.)
sAi!c>#o&c$
+
case OsO:
0or#i4()i:4nelem91)i33$
resul!-i. 4 a-i. 3 b-i.)
brea')
case OrO:
0or#i4()i:4nelem91)i33$
resul!-i. 4 a-i. 9 b-i.)
brea')
Ejercicios de Programacin en Java 1=(
case OmO:
0or#i4()i:4nelem91)i33$
resul!-i. 4a-i. 8 b-i.)
brea')
case OdO:
0or#i4()i:4nelem91)i33$
resul!-i. 4 a-i. / b-i.)
brea')
?
re!urn #resul!$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! numVda!osVu!iles)
c>ar o&eracion)
in! !abla1-., !abla2-., resul!ado-.)
!abla1 4 neA in!-1(.)
!abla2 4 neA in!-1%.)
!abla1-(. 4)
!abla1-1. 4B)
!abla1-2. 42)
!abla1-3. 4B)
!abla2-(. 493)
!abla2-1. 43)
!abla2-2. 4=)
!abla2-3. 41B)
numVda!osVu!iles 4)

,ys!em"ou!"&rin!ln#5!abla1 !abla25$)
0or#in! i4()i:numVda!osVu!iles)i33$
Ejercicios de Programacin en Java 1=1
,ys!em"ou!"&rin!ln #!abla1-i.3 5 5 3!abla2-i.$)

,ys!em"ou!"&rin!ln#5L&eracin #s, r, m, d$: 5$)
o&eracion 4 En!rada"carac!er#$)
resul!ado 4o&eraV!abla #!abla1, !abla2, o&eracion, numVda!osVu!iles$)
,ys!em"ou!"&rin!ln#5El resul!ado de la o&eracin es:5$)
0or#in! i4()i:numVda!osVu!iles)i33$
,ys!em"ou!"&rin!ln #resul!ado-i.$)
?
?
(G. @* que ordene la tabla que se le pasa.
pacHage bol&6ej(G?
public class +ain I
static void ordenar3int aJK5I
int tamCa.length?
int au!?
## ordenaremos utilizando la ordenaci"n por intercambio
for 3int iC&?iYtam$)$)?i[[5I
for 3int jC&?jYtam$i$)?j[[5I
if3aJjK_aJj[)K5 ## si el elemento j es mayor que el j[)
I
au!CaJjK? ## los intercambiamos
Ejercicios de Programacin en Java 1=2
aJjKCaJj[)K?
aJj[)KCau!?
P
P
P
P
static void mostrarWtabla3int tJK5I
int tamCt.length?
for 3int iC&?iYtam?i[[5I
>ystem.out.print3tJiK [ L L5?
P
P
public static void main3>tringJK args5 I
int tJKCne. intJGK?
for 3int iC&?iYG?i[[5I
tJiKC3int53+ath.random35D)&&5[)?
P
>ystem.out.println3L9abla aleatoriaL5?
mostrarWtabla3t5?
>ystem.out.println3Lanan9abla ordenadaL5?
ordenar3t5?
mostrarWtabla3t5?

P
P
Ejercicios de Programacin en Java 1=3
(:. @* que toma como parmetros dos tablas. <a primera con los 6 nmeros de una apuesta de la
primitiva, y la segunda con los 6 nmeros ganadores. <a funci"n debe devolver el nmero de
aciertos.
&ac'age bol(=ej2F)
&ublic class *ain +
/8 algunas mejoras &ro&ues!as &ara el alumno son:
8 9 com&robar <ue no >ay nDmeros re&e!idos en las !ablas
8 9 com&robar <ue los nDmeros es!@n en el rango 1""F
8 9 mirar el !amaNo de las !ablas, <ue debe ser =
8/
s!a!ic in! &rimi!iva#in! a&ues!a-., in! &remiado-.$+
in! acier!os)
in! a) // u!ili7aremos a como Hndice de la !abla a&ues!a
in! &) // y & &ara recorrer &remiado
acier!os4()
0or #a4()a:a&ues!a"leng!>)a33$ // recorremos la !abla de a&ues!a
+
&4() // &ara cada nDmero de la a&ues!a recorremos &remiado
// se &odrHa >acer con un 0or, &ero con el A>ile evi!amos vuel!as innecesarias
A>ile#&:&remiado"leng!> JJ a&ues!a-a.T4&remiado-&.$
&33)
i0#&:&remiado"leng!>$ // si & indica un elemen!o de la !abla
acier!os33) // !enemos un acier!o m@s
?
Ejercicios de Programacin en Java 1=
re!urn#acier!os$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! &rimi!iva-.4neA in!-=.)
in! a&ues!a-.4neA in!-=.)
in! acier!os4()
,ys!em"ou!"&rin!ln#5,u a&ues!a es: 5$)
0or #in! i4()i:&rimi!iva"leng!>)i33$
+
&rimi!iva-i.4#in!$#*a!>"random#$8F31$)
,ys!em"ou!"&rin!#&rimi!iva-i. 3 5 5$)
?

,ys!em"ou!"&rin!ln#5[nCa combinacin ganadora es: 5$)
0or #in! i4()i:a&ues!a"leng!>)i33$
+
a&ues!a-i.4#in!$#*a!>"random#$8F31$)
,ys!em"ou!"&rin!#a&ues!a-i. 35 5$)
?
acier!os4&rimi!iva#&rimi!iva,a&ues!a$)
,ys!em"ou!"&rin!ln#5[n[nTiene 53acier!os35 acier!os[n5$)
i0 #acier!os 44 ($
,ys!em"ou!"&rin!ln#5Co im&or!an!e no es ganar""" es &ar!ici&ar"[n5$)
?
?
Ejercicios de Programacin en Java 1=%
%&. @* recursiva que calcule a
n
.
&ac'age bol(=ej3()
&ublic class *ain +
/8 sobrecargamos la 0uncin &ara <ue 0uncione !an!o con bases en!eras
8 como reales
8
8/
s!a!ic in! &o!encia #in! a, in! n$ +
in! res)
i0 #n 44 ($ // el caso base: cuando el e1&onen!e es (
res 4 1)
else
// caso recursivo: a2n 4 a 8a2n91

res 4 a 8 &o!encia#a, n 9 1$)
re!urn #res$)
?
s!a!ic double &o!encia #double a, in! n$ +
double res)
i0 #n 44 ($
res 4 1)
else
res 4 a 8 &o!encia#a, n 9 1$)
re!urn #res$)
?
Ejercicios de Programacin en Java 1==
&ublic s!a!ic void main#,!ring-. args$ +
double num, resul!ado)
in! &o!encia)
,ys!em"ou!"&rin!#56n!rodu7ca base #real$: 5$)
num 4 En!rada"real#$)
,ys!em"ou!"&rin!#56n!rodu7ca la &o!encia: 5$)
&o!encia 4 En!rada"en!ero#$)
resul!ado 4 &o!encia#num, &o!encia$)
,ys!em"ou!"&rin!ln#5El resul!ado es: 5 3 resul!ado$)
?
?
%). 7alcular el factorial de n recursivamente.
&ac'age bol(=ej31)
&ublic class *ain +
s!a!ic in! 0ac!orial#in! num$+
in! res)
i0#num44($ // caso base: (T es igual a 1
res41)
else
res4num80ac!orial#num91$) // nT4 n8#n91$8#n92$""" un ejem&lo 3T438281
// !ambiKn ocurre <ue nT4n8#n91$T
// como ejem&lo T483T
re!urn#res$)
?
Ejercicios de Programacin en Java 1=B
&ublic s!a!ic void main#,!ring-. args$ +
in! num,resul!ado)
,ys!em"ou!"&rin!#56n!rodu7ca el numero: 5$)
num4En!rada"en!ero#$)

resul!ado40ac!orial#num$)
,ys!em"ou!"&rin!ln#num35T es igual a 53resul!ado$)
?
?
%(. @* que calcule el valor m!imo de una tabla de forma recursiva.
&ac'age bol(=ej32)
&ublic class *ain +
/88 la 0uncin m@1imo busca el mayor nDmero en!re los elemen!os de !,
8 a &ar!ir de las &osicin &os"
8/
s!a!ic in! ma1imo #in! !-., in! &os$
+
in! res)
i0#&os44!"leng!>91$ // caso base: &os indica el Dl!imo elemen!o de !
// en es!e caso es!e ser@ el m@1imo
res4!-&os.)
else
+
in! ')
Ejercicios de Programacin en Java 1=E
' 4 ma1imo #!,&os31$) // ' ser@ el mayor desde la &osicin &os31 >as!a el Dl!imo elemen!o
i0 #!-&os.I'$ // si !-&os. es mayor <ue '
res 4 !-&os.) //!-&os. es el m@1imo
else
res 4 ') // en caso con!rario ser@ ' el m@1imo
?
re!urn#res$)
?
// el usuario u!ili7ar@ es!a 0uncin &or comodidad
s!a!ic in! ma1imo #in! !-.$
+
re!urn #ma1imo #!,($$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! da!os-.)
in! ma1)
da!os 4 neA in!-1(.)
0or #in! i 4 () i : da!os"leng!>) i33$
da!os-i. 4 #in!$ #*a!>"random#$81(((31$)
,ys!em"ou!"&rin!ln#5Cos da!os son:5$)
0or #in! i 4 () i : da!os"leng!>) i33$
,ys!em"ou!"&rin!#da!os-i. 3 5 5$)

ma1 4ma1imo#da!os$)
Ejercicios de Programacin en Java 1=F
,ys!em"ou!"&rin!ln#5[n[nEl m@1imo es: 5 3 ma1$)
?
?
&ac'age bol(=ej32)
&ublic class *ain +
&ublic s!a!ic void main#,!ring-. args$
+
in! !-.4+B, 2, 1(, %, 1, F?) // un ejem&lo &ara &robar la 0uncin
in! ma1)
ma1 4ma1imo#!$)
,ys!em"ou!"&rin!ln#5El m@1imo es: 5 3ma1$)
?
// El m@1imo de una !abla ser@ el m@1imo en!re el &rimer elemen!o de la
// !abla y el res!o de la !abla #es decir del segundo elemen!o >as!a el
// Dl!imo$"
//
// Xamos acor!ando la !abla, indicando el &rimer Hndice donde se em&e7ar@ a
// buscar el m@1imo"
// El caso base ser@ una !abla donde solo se busca en un elemen!o elemen!o"
// Es!@ claro <ue ese Dnico elemen!o ser@ el mayor de la !abla #de 1 elemen!o$"
s!a!ic in! ma1imo#in! !-.$
+
re!urn #ma1imo#!, (, !"leng!>91 $$)
?
Ejercicios de Programacin en Java 1B(
s!a!ic in! ma1imo#in! !-., in! desde, in! >as!a$
+
in! mayor)
i0 #desde 44 >as!a$ // caso base
// la !abla solo !iene un elemen!o
mayor4!-desde.)
else
+
mayor 4 ma1imo#!, desde31, >as!a$)
i0 #mayor : !-desde.$
mayor 4 !-desde.)
?
re!urn #mayor$)
?
?
%%. @* que calcule el n$simo trmino de la serie de *ibonacci. En esta serie el n$simo valor se
calcula sumando los dos valores anteriores. Es decir fibonacci3n5 C fibonacci3n$
)5[fibonacci3n$(5, siendo fibonacci3&5C) y fibonacci3)5C).
&ac'age bol(=ej33)
&ublic class *ain +
s!a!ic in! 0ibo#in! num$
+
in! res)
i0#num44($ // &rimer caso base
res4()
else+
i0#num441$ // segundo caso base
Ejercicios de Programacin en Java 1B1
res41)
else
res40ibo#num91$30ibo#num92$) // caso general recursivo
?
re!urn#res$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! num,resul!ado)
,ys!em"ou!"&rin!#5Xamos calcular 0ibonacci#n$"[n6n!rodu7ca n #se recomienda n:($: 5$)
num4En!rada"en!ero#$)
resul!ado40ibo#num$) // si n es muy grande es!o &uede !ardar bas!an!e"
,ys!em"ou!"&rin!ln#5[n0ibonacci#5 3 num 3 5$ 4 5 3resul!ado$)

?
?
%0. /gual que el ejercicio anterior, pero pudiendo configurar los valores de los dos primeros trmino
de la serie.
&ac'age bol(=ej3)
&ublic class *ain +
/88
8 sobrecargamos la 0uncin &ara <ue 0uncione de la siguien!e 0orma:
8 9 si solo se le &asa el !Krmino a calcular: u!ili7a los casos bases !H&icos
Ejercicios de Programacin en Java 1B2
8 9 se le &uede &asar los valores de los casos bases: 0ibo#($ y 0ibo#1$
8/
s!a!ic in! 0ibo#in! num$
+
in! res)
i0#num44($ // &rimer caso base
res4()
else+
i0#num441$ // segundo caso base
res41)
else
res40ibo#num91$30ibo#num92$) // caso general recursivo
?
re!urn#res$)
?
s!a!ic in! 0ibo#in! num, in! 0ibo(, in! 0ibo1$
+
in! res)
i0#num44($ // &rimer caso base, <ue !endr@ el valor indicado &or el usuario
res40ibo()
else+
i0#num441$ // segundo caso base, !ambiKn con0igurable
res40ibo1)
else
res40ibo#num91,0ibo(, 0ibo1$30ibo#num92, 0ibo(, 0ibo1$)
// caso general recursivo
// >emos de acordarnos de u!ili7ar la 0uncin 0ibo <ue
// !iene 3 &ar@me!ros
?
Ejercicios de Programacin en Java 1B3
re!urn#res$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! num,resul!ado)
in! 0ibo(,0ibo1)
,ys!em"ou!"&rin!ln#5Xamos calcular 0ibonacci#n$[n5$)
,ys!em"ou!"&rin!#56n!rodu7ca el valor de 0ibonacci#($: 5$)
0ibo( 4 En!rada"en!ero#$)
,ys!em"ou!"&rin!#56n!rodu7ca el valor de 0ibonacci#1$: 5$)
0ibo1 4 En!rada"en!ero#$)
,ys!em"ou!"&rin! #5[n6n!rodu7ca n #se recomienda n:($: 5$)
num4En!rada"en!ero#$)
// si n es muy grande es!o &uede !ardar bas!an!e"
resul!ado40ibo#num, 0ibo(, 0ibo1$)
,ys!em"ou!"&rin!ln#5[n0ibonacci#5 3 num 3 5$ 4 5 3resul!ado$)
?
?
%8. @* que realice la bsqueda dicot"mica en una tabla, de forma recursiva.
&ac'age bol(=ej3%)
&ublic class *ain +
Ejercicios de Programacin en Java 1B
// a la 0uncin se le &asa, la !abla, el elemen!o a buscar, y la &rimera
// y Dl!ima &osicin donde buscar"
s!a!ic in! busca #in! !-., in! elem, in! &rimero, in! ul!imo$
+
in! &os)
i0#&rimero I4 ul!imo$ // caso base: solo >ay un elemen!o donde buscar

i0 #!-&rimero.44elem$
&os 4&rimero)
else
&os 491)
else
+
in! &os1, &os2)
// llamada recursiva
//buscamos en la &rimera mi!ad de la !abla: (""mi!ad
&os1 4 busca #!, elem, &rimero, #&rimero3ul!imo$/2$)
// buscamos en la segunda &ar!e de la !abla: mi!ad31""ul!imo
// se &one mi!ad31, &or <ue el elemen!o mi!ad ya &er!enece a la
// &rimera &ar!e""" &or no re&e!irlo
&os2 4 busca #!, elem, #&rimero3ul!imo$/231, ul!imo$)
i0 #&os1 T4 91$ // si lo encuen!ro en la &rimera &ar!e
&os 4&os1)
else
&os 4&os2) // en caso con!rario debo encon!rarlo en la segunda &ar!e
// en caso de no encon!rarse &os1 y &os2 ser@n 91, y se coger@ el valor de &os2 #91$
?
re!urn#&os$)
Ejercicios de Programacin en Java 1B%
?
// el usuario u!ili7ar@ es!a 0uncin &or comodidad
// solo es necesario &asarle la !abla y el elemen!o a buscar
// devuelve el Hndice del elemen!o si lo encuen!ra o 91 en caso con!rario
s!a!ic in! busca #in! !-., in! elem$
+
re!urn #busca #!, elem, (, !"leng!>91$$)
?
&ublic s!a!ic void main#,!ring-. args$ +
in! da!os-.)
in! num)
in! &os)
da!os 4 neA in!-1(.)
// &ara no !eclearlos, cagamos da!os alea!orios
0or #in! i 4 () i : da!os"leng!>) i33$
da!os-i. 4 #in!$ #*a!>"random#$81(((31$)
,ys!em"ou!"&rin!ln#5Cos da!os son:5$)
0or #in! i 4 () i : da!os"leng!>) i33$
,ys!em"ou!"&rin!#da!os-i. 3 5 5$)
,ys!em"ou!"&rin!#5[n[nElemen!o a buscar: 5$)
num 4En!rada"en!ero#$)
// llamamos a la 0uncin buscar
&os 4busca#da!os, num$)
i0 #&os 44 91$
Ejercicios de Programacin en Java 1B=
,ys!em"ou!"&rin!ln#5[n[n;o encon!rado5$)
else
,ys!em"ou!"&rin!ln#5[n[nEncon!rado en la &osicin: 5 3&os$)
?
?
%6. @* que toma una tabla bidimensional de enteros, representando un tablero de ajedrez. isponemos
de las constantes ,1 3pe"n blanco5, 9O 3torre negra5, etc. 3,, 9, 7, -, R, 5. icho m"dulo debe
devolver un valor booleano, que indique si el rey negro est amenazado.
&ac'age bol(=ej3=)
&ublic class *ain +
0inal s!a!ic in! X491) // esca<ue vacHo
0inal s!a!ic in! P4() // &en
0inal s!a!ic in! T41) // !orre
0inal s!a!ic in! C42) // caballo
0inal s!a!ic in! R43) // al0il
0inal s!a!ic in! U4) // dama
0inal s!a!ic in! S4%) // rey
// igual &ara los negros
0inal s!a!ic in! P;41()
0inal s!a!ic in! T;411)
0inal s!a!ic in! C;412)
0inal s!a!ic in! R;413)
0inal s!a!ic in! U;41)
0inal s!a!ic in! S;41%)
&ublic s!a!ic void main#,!ring-. args$
+
Ejercicios de Programacin en Java 1BB
0inal in! !ablero-.-. 4 + +X, X, X, X, X, X, X, X?,
+X, X, X, X, X, X, X, X?,
+X, X, X, X, X, X, X, R;?,
+X, X, X, X, X, X, T, X?,
+X, X, U;, X, X, X, X, X?,
+X, X, X, C;, X, X, X, X?,
+X, X, P, P, X, X, X, X?,
+X, X, S, X, X, X, X, X??)
// >ay <ue !ener con el !ablero: como lo visuali7amos y sus Hndices"
// En realidad el !ablero no es como se ve arriba" Ma <ue >emos de imaginarlo
// ro!ado F( grados >acia la i7<uierda"
boolean amena7a) // una &osible mejora es indicar en la variable
// amena7a la &rimera &ie7a con!raria nos es!@
// acec>ando e indicar con un esca<ue vacHo <ue
// no e1is!e &eligro
amena7a 4 ja<ue #!ablero$)
// mos!ramos se e1is!e amena7a
,ys!em"ou!"&rin!ln#5Ja<ue: 5 3amena7a$)
?
s!a!ic boolean ja<ue#in! !ablero-.-.$
+
boolean amena7a40alse)
in! &ie7a) // &ie7a <ue no es!@ amena7ando
in! &osVrey-.) // &osicin del rey en el !ablero
&osVrey 4 neA in! -2.)
&osVrey 4 buscaVrey #!ablero$)
// a>ora iremos viendo las &osibles amena7as una a una:
Ejercicios de Programacin en Java 1BE
// en &rimer lugar veremos si nos amena7a un caballo:
amena7a 4amena7aVcaballo #!ablero, &osVrey$)
// RWLSR
// miraremos >acia la derec>a #d1:1, dy:($
// a<uH no &uede amena7ar una !orre o dama
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, 1, ($)
i0 #&ie7a 44U; QQ &ie7a 44T;$
amena7a4!rue)
// miraremos >acia la i7<uierda #d1:91, dy:($
// a<uH no &uede amena7ar una !orre o dama
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, 91, ($)
i0 #&ie7a 44U; QQ &ie7a 44T;$
amena7a4!rue)
// miraremos >acia arriba #d1:(, dy:1$
// a<uH no &uede amena7ar una !orre o dama
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, (, 1$)
i0 #&ie7a 44U; QQ &ie7a 44T;$
amena7a4!rue)
// miraremos >acia abajo #d1:(, dy:91$
// a<uH no &uede amena7ar una !orre o dama
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, (, 91$)
i0 #&ie7a 44U; QQ &ie7a 44T;$
amena7a4!rue)
// miraremos en la diagonal derec>a arriba #d1:1, dy:1$
// a<uH no &uede amena7ar un al0il o una dama
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, 1, 1$)
i0 #&ie7a 44U; QQ &ie7a 44R;$
amena7a4!rue)
// miraremos en la diagonal derec>a abajo #d1:1, dy:91$
// a<uH no &uede amena7ar un al0il o una dama
Ejercicios de Programacin en Java 1BF
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, 1, 91$)
i0 #&ie7a 44U; QQ &ie7a 44R;$
amena7a4!rue)
// miraremos en la diagonal i7<uierda arriba #d1:91, dy:1$
// a<uH no &uede amena7ar un al0il o una dama
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, 91, 1$)
i0 #&ie7a 44U; QQ &ie7a 44R;$
amena7a4!rue)
// miraremos en la diagonal i7<uierda abajo #d1:91, dy:91$
// a<uH no &uede amena7ar un al0il o una dama
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, 91, 91$)
i0 #&ie7a 44U; QQ &ie7a 44R;$
amena7a4!rue)
// 0al!a <ue nos amenace un &en
// el &osible &en se encuen!ra arriba a la derec>a o a la i7<uierda
i0 # #&osVrey-(.31:E JJ &osVrey-1.31:E JJ !ablero-&osVrey-(.31.-&osVrey-1.31.44P;$ QQ
#(:4&osVrey-(.91 JJ &osVrey-1.31:E JJ !ablero-&osVrey-(.91.-&osVrey-1.31.44P;$ $
amena7a4!rue)
re!urn #amena7a$)
?
// es!a 0uncin busca el rey blanco y devuelve su &osicin
// en una !abla de dos elemen!os" ,iendo &osicion-(. la columna y
// &osicion-1. la 0ila"
s!a!ic in!-. buscaVrey #in! !ablero-.-.$
+
in! i,j)
in! &osicion-.)
Ejercicios de Programacin en Java 1E(
&osicion 4 neA in! -2.)
0or #i4() i :E) i33$
0or #j4() j :E) j33$
i0 #!ablero-i.-j.44S$
+
&osicion-(. 4i)
&osicion-1. 4j)
?
re!urn #&osicion$)
?
// es!a 0uncin busca la &rimera &ie7a <ue e1is!e desde la &osicin &os,
// en la direccin indicada &or d1, dy"
// Cos valores de d1, dy son:
// d1 dy direccin
// 1 1 diagonal derec>a arriba
// 1 ( derec>a
// 1 91 diagonal derec>a abajo
// ( 1 >acia arriba
// ( ( E,TE CR,L ;L ,E URS` ;P;CR
// ( 91 >acia abajo
// 91 1 diagonal i7<uierda arriba
// 91 ( >acia la i7<uierda
// 91 91 diagonal i7<uierda abajo
s!a!ic in! &rimeraV&ie7a #in! !ablero-.-., in! &os-., in! d1, in! dy$
+
in! &os1, &osy) //&osicin del !ablero en la <ue es!amos mirando
in! &ie7a)
&os1 4&os-(.)
&osy 4&os-1.)
Ejercicios de Programacin en Java 1E1
&ie7a 4 X) // en &rinci&io su&onemos <ue no >ay ninguna &ie7a
// damos el &rimer &aso: es decir &asamos a la &rimera casilla
// des&uKs del rey"
&os1 34d1)
&osy 34dy)

// mien!ras no nos salgamos del !ablero y no encon!remos una &ie7a
A>ile # (:4&os1 JJ &os1:4B JJ
(:4&osy JJ &osy:4B JJ
&ie7a 44X$
+
&ie7a 4 !ablero-&os1.-&osy.)
&os1 34 d1)
&osy 34 dy)
?
re!urn #&ie7a$)
?
s!a!ic boolean amena7aVcaballo #in! !ablero-.-., in! &os-.$
+
boolean amena7a40alse)
// Way <ue !ener cuidado al com&robar los caballos de no salirse del
// !ablero
// Uesde la &osicin ac!ual vemos los &osibles oc>o &osiciones desde donde
// &uede amena7arnos un caballo"
// Rlgunas de es!as &osiciones &ueden es!ar 50uera5 del !ablero
i0 # # &os-(.32 :E JJ &os-1.31 :E JJ !ablero-&os-(.32.-&os-1.31. 44C;$ QQ
# &os-(.32 :E JJ (:4 &os-1.91 JJ !ablero-&os-(.32.-&os-1.91. 44C;$ QQ
#(:4 &os-(.92 JJ &os-1.31 :E JJ !ablero-&os-(.92.-&os-1.31. 44C;$ QQ
#(:4 &os-(.92 JJ (:4 &os-1.91 JJ !ablero-&os-(.92.-&os-1.91. 44C;$ QQ
Ejercicios de Programacin en Java 1E2
# &os-(.31 :E JJ &os-1.32 :E JJ !ablero-&os-(.31.-&os-1.32. 44C;$ QQ
# &os-(.31 :E JJ (:4 &os-1.92 JJ !ablero-&os-(.31.-&os-1.92. 44C;$ QQ
#(:4 &os-(.91 JJ &os-1.32 :E JJ !ablero-&os-(.91.-&os-1.32. 44C;$ QQ
#(:4 &os-(.91 JJ (:4 &os-1.92 JJ !ablero-&os-(.91.-&os-1.92. 44C;$ $
amena7a 4 !rue)
re!urn #amena7a$)
?
?
%F. /gual que el ejercicio anterior, pero indicando si e!iste jaque mate a las negras.
&ac'age bol(=ej3B)
&ublic class *ain +
0inal s!a!ic in! X491) // esca<ue vacHo
0inal s!a!ic in! P4() // &en
0inal s!a!ic in! T41) // !orre
0inal s!a!ic in! C42) // caballo
0inal s!a!ic in! R43) // al0il
0inal s!a!ic in! U4) // dama
0inal s!a!ic in! S4%) // rey
// igual &ara los negros
0inal s!a!ic in! P;41()
0inal s!a!ic in! T;411)
0inal s!a!ic in! C;412)
0inal s!a!ic in! R;413)
0inal s!a!ic in! U;41)
0inal s!a!ic in! S;41%)
Ejercicios de Programacin en Java 1E3
&ublic s!a!ic void main#,!ring-. args$
+
in! !ablero-.-. 4 + + X, X, X, X, X, X, X, X?,
+ X, X, X, X, X, X, X, X?,
+ X, X, X, X, X, X, X, X?,
+ X, X, X, X, X, X, X, U;?,
+ X, X, X, X, X, X, X, X?,
+C;, X, X, U;, X, X, X, X?,
+ X, P, P, P;, X, X, X, X?,
+ X, X, S, X, X, X, X, X??)
// >ay <ue !ener con el !ablero: como lo visuali7amos y sus Hndices"
// En realidad el !ablero no es como se ve arriba" Ma <ue >emos de imaginarlo
// ro!ado F( grados >acia la i7<uierda"
in! numVja<ue4()
in! &osVrey-.)
boolean amena7a40alse) // una &osible mejora es indicar en la variable
// amena7a la &rimera &ie7a con!raria nos es!@
// acec>ando e indicar con un esca<ue vacHo <ue
// no e1is!e &eligro
&osVrey 4 buscaVrey#!ablero$)
i0 # ja<ue #!ablero$ 44 !rue $
+
amena7a 4!rue)
numVja<ue4()
// in!en!aremos mover el rey a las casillas adyacen!es
// y com&robar si en la nueva ubicacin recibe ja<ue
numVja<ue 34 moverVrey #!ablero, (, 91$)
numVja<ue 34 moverVrey #!ablero, (, 1$)
numVja<ue 34 moverVrey #!ablero, 1, 91$)
Ejercicios de Programacin en Java 1E
numVja<ue 34 moverVrey #!ablero, 1, ($)
numVja<ue 34 moverVrey #!ablero, 1, 1$)
numVja<ue 34 moverVrey #!ablero, 91, 91$)
numVja<ue 34 moverVrey #!ablero, 91, ($)
numVja<ue 34 moverVrey #!ablero, 91, 1$)
?
// mos!ramos se e1is!e amena7a
i0 #amena7a$
i0 #numVja<ue:E$
,ys!em"ou!"&rin!ln#5,olo es ja<ue"5$)
else
,ys!em"ou!"&rin!ln#5Ja<ue *a!e5$)
else
,ys!em"ou!"&rin!ln#5El rey no es!@ amena7ado5$)
?
s!a!ic boolean ja<ue#in! !ablero-.-.$
+
boolean amena7a40alse)
in! &ie7a) // &ie7a <ue no es!@ amena7ando
in! &osVrey-.) // &osicin del rey en el !ablero
&osVrey 4 neA in! -2.)
&osVrey 4 buscaVrey #!ablero$)
// a>ora iremos viendo las &osibles amena7as una a una:
// en &rimer lugar veremos si nos amena7a un caballo:
amena7a 4amena7aVcaballo #!ablero, &osVrey$)
// RWLSR
// miraremos >acia la derec>a #d1:1, dy:($
// a<uH no &uede amena7ar una !orre o dama
Ejercicios de Programacin en Java 1E%
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, 1, ($)
i0 #&ie7a 44U; QQ &ie7a 44T;$
amena7a4!rue)
// miraremos >acia la i7<uierda #d1:91, dy:($
// a<uH no &uede amena7ar una !orre o dama
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, 91, ($)
i0 #&ie7a 44U; QQ &ie7a 44T;$
amena7a4!rue)
// miraremos >acia arriba #d1:(, dy:1$
// a<uH no &uede amena7ar una !orre o dama
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, (, 1$)
i0 #&ie7a 44U; QQ &ie7a 44T;$
amena7a4!rue)
// miraremos >acia abajo #d1:(, dy:91$
// a<uH no &uede amena7ar una !orre o dama
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, (, 91$)
i0 #&ie7a 44U; QQ &ie7a 44T;$
amena7a4!rue)
// miraremos en la diagonal derec>a arriba #d1:1, dy:1$
// a<uH no &uede amena7ar un al0il o una dama
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, 1, 1$)
i0 #&ie7a 44U; QQ &ie7a 44R;$
amena7a4!rue)
// miraremos en la diagonal derec>a abajo #d1:1, dy:91$
// a<uH no &uede amena7ar un al0il o una dama
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, 1, 91$)
i0 #&ie7a 44U; QQ &ie7a 44R;$
amena7a4!rue)
// miraremos en la diagonal i7<uierda arriba #d1:91, dy:1$
// a<uH no &uede amena7ar un al0il o una dama
Ejercicios de Programacin en Java 1E=
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, 91, 1$)
i0 #&ie7a 44U; QQ &ie7a 44R;$
amena7a4!rue)
// miraremos en la diagonal i7<uierda abajo #d1:91, dy:91$
// a<uH no &uede amena7ar un al0il o una dama
&ie7a 4&rimeraV&ie7a#!ablero, &osVrey, 91, 91$)
i0 #&ie7a 44U; QQ &ie7a 44R;$
amena7a4!rue)
// 0al!a <ue nos amenace un &en
// el &osible &en se encuen!ra arriba a la derec>a o a la i7<uierda
i0 # #&osVrey-(.31:E JJ &osVrey-1.31:E JJ !ablero-&osVrey-(.31.-&osVrey-1.31.44P;$ QQ
#(:4&osVrey-(.91 JJ &osVrey-1.31:E JJ !ablero-&osVrey-(.91.-&osVrey-1.31.44P;$ $
amena7a4!rue)
re!urn #amena7a$)
?
// es!a 0uncin busca el rey blanco y devuelve su &osicin
// en una !abla de dos elemen!os" ,iendo &osicion-(. la columna y
// &osicion-1. la 0ila"
s!a!ic in!-. buscaVrey #in! !ablero-.-.$
+
in! i,j)
in! &osicion-.)
&osicion 4 neA in! -2.)
0or #i4() i :E) i33$
0or #j4() j :E) j33$
i0 #!ablero-i.-j.44S$
Ejercicios de Programacin en Java 1EB
+
&osicion-(. 4i)
&osicion-1. 4j)
?
re!urn #&osicion$)
?
// es!a 0uncin busca la &rimera &ie7a <ue e1is!e desde la &osicin &os,
// en la direccin indicada &or d1, dy"
// Cos valores de d1, dy son:
// d1 dy direccin
// 1 1 diagonal derec>a arriba
// 1 ( derec>a
// 1 91 diagonal derec>a abajo
// ( 1 >acia arriba
// ( ( E,TE CR,L ;L ,E URS` ;P;CR
// ( 91 >acia abajo
// 91 1 diagonal i7<uierda arriba
// 91 ( >acia la i7<uierda
// 91 91 diagonal i7<uierda abajo
s!a!ic in! &rimeraV&ie7a #in! !ablero-.-., in! &os-., in! d1, in! dy$
+
in! &os1, &osy) //&osicin del !ablero en la <ue es!amos mirando
in! &ie7a)
&os1 4&os-(.)
&osy 4&os-1.)
&ie7a 4 X) // en &rinci&io su&onemos <ue no >ay ninguna &ie7a
// damos el &rimer &aso: es decir &asamos a la &rimera casilla
// des&uKs del rey"
&os1 34d1)
&osy 34dy)
Ejercicios de Programacin en Java 1EE

// mien!ras no nos salgamos del !ablero y no encon!remos una &ie7a
A>ile # (:4&os1 JJ &os1:4B JJ
(:4&osy JJ &osy:4B JJ
&ie7a 44X$
+
&ie7a 4 !ablero-&os1.-&osy.)
&os1 34 d1)
&osy 34 dy)
?
re!urn #&ie7a$)
?
s!a!ic boolean amena7aVcaballo #in! !ablero-.-., in! &os-.$
+
boolean amena7a40alse)
// Way <ue !ener cuidado al com&robar los caballos de no salirse del
// !ablero
// Uesde la &osicin ac!ual vemos los &osibles oc>o &osiciones desde donde
// &uede amena7arnos un caballo"
// Rlgunas de es!as &osiciones &ueden es!ar 50uera5 del !ablero
i0 # # &os-(.32 :E JJ &os-1.31 :E JJ !ablero-&os-(.32.-&os-1.31. 44C;$ QQ
# &os-(.32 :E JJ (:4 &os-1.91 JJ !ablero-&os-(.32.-&os-1.91. 44C;$ QQ
#(:4 &os-(.92 JJ &os-1.31 :E JJ !ablero-&os-(.92.-&os-1.31. 44C;$ QQ
#(:4 &os-(.92 JJ (:4 &os-1.91 JJ !ablero-&os-(.92.-&os-1.91. 44C;$ QQ
# &os-(.31 :E JJ &os-1.32 :E JJ !ablero-&os-(.31.-&os-1.32. 44C;$ QQ
# &os-(.31 :E JJ (:4 &os-1.92 JJ !ablero-&os-(.31.-&os-1.92. 44C;$ QQ
#(:4 &os-(.91 JJ &os-1.32 :E JJ !ablero-&os-(.91.-&os-1.32. 44C;$ QQ
#(:4 &os-(.91 JJ (:4 &os-1.92 JJ !ablero-&os-(.91.-&os-1.92. 44C;$ $
amena7a 4 !rue)
Ejercicios de Programacin en Java 1EF
re!urn #amena7a$)
?
s!a!ic in! moverVrey #in! !ablero-.-., in! d1, in! dy$
+
in! e1is!eVja<ue4() // e1is!eVja<ue vale ( si no >ay &eligro y 1 si
// el rey es!@ amena7ado o no &uede moverse a es!a
// casilla"
in! &os-.)
&os 4 neA in! -2.)
&os 4 buscaVrey#!ablero$)

i0 # (:4&os-(.3d1 JJ &os-(.3d1:E JJ
(:4&os-1.3dy JJ &os-1.3dy:E JJ
# !ablero-&os-(.3d1.-&os-1.3dy.44X QQ
!ablero-&os-(.3d1.-&os-1.3dy.44P; QQ
!ablero-&os-(.3d1.-&os-1.3dy.44T; QQ
!ablero-&os-(.3d1.-&os-1.3dy.44C; QQ
!ablero-&os-(.3d1.-&os-1.3dy.44R; QQ
!ablero-&os-(.3d1.-&os-1.3dy.44U; $ $
+
in! &ie7a)
// guardamos la &ie7a <ue ocu&a la &osicin a ocu&ar &or el rey
// es!a &ie7a &uede ser X #vacHo$ o una &ie7a negra <ue el
// rey ca&!urar@
&ie7a4!ablero-&os-(.3d1.-&os-1.3dy.)
// movemos el rey
!ablero-&os-(..-&os-1.. 4X)
!ablero-&os-(.3d1.-&os-1.3dy. 4S)
i0 #ja<ue#!ablero$$
e1is!eVja<ue41)
Ejercicios de Programacin en Java 1F(
//volvemos el rey a su &osicin inicial
!ablero-&os-(..-&os-1.. 4S)
!ablero-&os-(.3d1.-&os-1.3dy. 4&ie7a)
?
else
// no &odemos mover el rey, en la &rac!ica es!a casilla no es u!ili7able
// &or el rey &ara esca&ar""" es lo mismo <ue una amena7a #ja<ue$"
e1is!eVja<ue41)
re!urn #e1is!eVja<ue$)
?
?
Ejercicios de Programacin en Java 1F1
Ap8ndice I
Boletines completos
&O2E/0N $
Variables y condicionales
). ,edir los coeficientes de una ecuaci"n se (B grado, y muestre sus soluciones reales. >i no e!isten,
debe indicarlo.
(. ,edir el radio de un c2rculo y calcular su rea. -C,/DrE(.
%. ,edir el radio de una circunferencia y calcular su longitud.
<C(D,/Dr.
0. ,edir dos nmeros y decir si son iguales o no.
8. ,edir un nmero e indicar si es positivo o negativo.
6. ,edir dos nmeros y decir si uno es mltiplo del otro.
F. ,edir dos nmeros y decir cual es el mayor.
G. ,edir dos nmeros y decir cual es el mayor o si son iguales.
:. ,edir dos nmeros y mostrarlos ordenados de mayor a menor.
Ejercicios de Programacin en Java 1F2
)&. ,edir tres nmeros y mostrarlos ordenados de mayor a menor.
)). ,edir un nmero entre & y :.::: y decir cuantas cifras tiene.
)(. ,edir un nmero entre & y :.::: y mostrarlo con las cifras al revs.
)%. ,edir un nmero entre & y :.:::, decir si es capica.
)0. ,edir una nota de & a )& y mostrarla de la forma: /nsuficiente, >uficiente, 1ien...
)8. ,edir el d2a, mes y a;o de una fecha e indicar si la fecha es correcta. >uponiendo todos los meses de
%& d2as.
)6. ,edir el d2a, mes y a;o de una fecha e indicar si la fecha es correcta. 7on meses de (G, %& y %)
d2as. >in a;os bisiestos.
)F. ,edir el d2a, mes y a;o de una fecha correcta y mostrar la fecha del d2a siguiente. suponer que todos
los meses tienen %& d2as.
)G. Qdem que el ej. )F, suponiendo que cada mes tiene un nmero distinto de d2as 3suponer que febrero
tiene siempre (G d2as5.
):. ,edir dos fechas y mostrar el nmero de d2as que hay de diferencia. >uponiendo todos los meses de %&
d2as.
(&. ,edir una hora de la forma hora, minutos y segundos, y mostrar la hora en el segundo siguiente.
(). ,edir una nota numrica entera entre & y )&, y mostrar dicha nota de la forma: cero, uno, dos,
tres...
((. ,edir un nmero de & a :: y mostrarlo escrito. ,or ejemplo, para 86 mostrar: cincuenta y seis.
Ejercicios de Programacin en Java 1F3
&O2E/0N %
Condicionales y bucles
). <eer un nmero y mostrar su cuadrado, repetir el proceso hasta que se introduzca un nmero negativo.
(. <eer un nmero e indicar si es positivo o negativo. El proceso se repetir hasta que se introduzca un
&.
%. <eer nmeros hasta que se introduzca un &. ,ara cada uno indicar si es par o impar.
0. ,edir nmeros hasta que se teclee uno negativo, y mostrar cuntos nmeros se han introducido.
8. Realizar un juego para adivinar un nmero. ,ara ello pedir un nmero O, y luego ir pidiendo nmeros
indicando SmayorT o SmenorT segn sea mayor o menor con respecto a O. El proceso termina cuando el
usuario acierta.
6. ,edir nmeros hasta que se teclee un &, mostrar la suma de todos los nmeros introducidos.
F. ,edir nmeros hasta que se introduzca uno negativo, y calcular la media.
G. ,edir un nmero O, y mostrar todos los nmeros del ) al O.
:. Escribir todos los nmeros del )&& al & de F en F.
)&. ,edir )8 nmeros y escribir la suma total.
)). ise;ar un programa que muestre el producto de los )& primeros nmeros impares.
)(. ,edir un nmero y calcular su factorial.
)%. ,edir )& nmeros. +ostrar la media de los nmeros positivos, la media de los nmeros negativos y la
cantidad de ceros.
)0. ,edir )& sueldos. +ostrar su suma y cuantos hay mayores de )&&&U.
Ejercicios de Programacin en Java 1F
)8. adas las edades y alturas de 8 alumnos, mostrar la edad y la estatura media, la cantidad de alumnos
mayores de )G a;os, y la cantidad de alumnos que miden ms de ).F8.
)6. ,ide un nmero 3que debe estar entre & y )&5 y mostrar la tabla de multiplicar de dicho nmero.
)F. @na empresa que se dedica a la venta de desinfectantes necesita un programa para gestionar las
facturas. En cada factura figura: el c"digo del art2culo, la cantidad vendida en litros y el precio
por litro.
>e pide de 8 facturas introducidas: *acturaci"n total, cantidad en litros vendidos del art2culo ) y
cuantas facturas se emitieron de ms de 6&& U.
)G. /gual que el anterior pero suponiendo que no se introduce el precio por litro. >olo e!isten tres
productos con precios:
)$ &,6 U#litro, ($ % U#litro y %$ ),(8 U#litro.
):. adas 6 notas, escribir la cantidad de alumnos aprobados, condicionados 3C05 y suspensos.
(&. ,edir un nmero O, introducir O sueldos, y mostrar el sueldo m!imo.
(). ,edir )& nmeros, y mostrar al final si se ha introducido alguno negativo.
((. ,edir 8 calificaciones de alumnos y decir al final si hay algn suspenso.
(%. ,edir 8 nmeros e indicar si alguno es mltiplo de %.
Ejercicios de Programacin en Java 1F%
&O2E/0N 3
Bucles anidados
). Realiza detenidamente una traza al siguiente programa y muestra cual seria la salida por pantalla:
,RAVR-+- ejW)
4-R/-1<E>
suma, i, j: EO9ERA
7A+/EOXA
,-R- i Y$ ) Z->9- 0
,-R- j Y$ % Z->9- & /O7 $)
suma Y$ iD)&[j
escribir 3suma5
*/O ,-R-
*/O ,-R-
*/O
(. Realiza una traza del siguiente algoritmo y muestra la salida generada por pantalla.
,RAVR-+- ejW)
4-R/-1<E>
i, j: EO9ERA
7A+/EOXA
,-R- i Y$ ) Z->9- %
j Y$ i[)
+/EO9R-> j Y 0
escribir 3j$i5
j Y$ j[)
*/O +/EO9R->
*/O ,-R-
*/O
%. ise;a una aplicaci"n que muestre las tablas de multiplicar del ) al )&.
Ejercicios de Programacin en Java 1F=
0. ibuja un cuadrado de n elementos de lado utilizando D.
8. Oecesitamos mostrar un contador con 8 d2gitos 3\$\$\$\$\5, que muestre los nmeros del &$&$&$&$& al
:$:$:$:$:, con la particularidad que cada vez que aparezca un % lo sustituya por una E.
6. Realizar un programa que nos pida un nmero n, y nos diga cuantos nmeros hay entre ) y n que son
primos.
Ejercicios de Programacin en Java 1FB
&O2E/0N *
/ablas
). <eer 8 nmeros y mostrarlos en el mismo orden introducido.
(. <eer 8 nmeros y mostrarlos en orden inverso al introducido.
%. <eer 8 nmeros por teclado y a continuaci"n realizar la media de los nmeros positivos, la
media de los negativos y contar el nmero de ceros.
0. <eer )& nmeros enteros. ebemos mostrarlos en el siguiente orden: el primero, el ltimo, el segundo,
el penltimo, el tercero, etc.
8. <eer por teclado dos tablas de )& nmeros enteros y mezclarlas en una tercera de la forma: el )B de
-, el )B de 1, el (B de -, el (B de 1, etc.
6. <eer los datos correspondiente a dos tablas de )( elementos numricos, y mezclarlos en una tercera de
la forma: % de la tabla -, % de la 1, otros % de -, otros % de la 1, etc.
F. <eer por teclado una serie de )& nmeros enteros. <a aplicaci"n debe indicarnos si los nmeros estn
ordenados de forma creciente, decreciente, o si estn desordenados.
G. ise;ar una aplicaci"n que declare una tabla de )& elementos enteros. <eer mediante el teclado G
nmeros. espus se debe pedir un nmero y una posici"n, insertarlo en la posici"n indicada, desplazando
los que estn detrs.
:. 7rear un programa que lea por teclado una tabla de )& nmeros enteros y la desplace una posici"n
hacia abajo 3el ltimo pasa a ser el primero5.
Ejercicios de Programacin en Java 1FE
)&. Qdem, desplazar O posiciones 3O es introducido por el usuario5.
)). <eer 8 elementos numricos que se introducirn ordenados de forma creciente. ]stos los guardaremos
en una tabla de tama;o )&. <eer un nmero O, e insertarlo en el lugar adecuado para que la tabla
contine ordenada.
)(. <eer por teclado una tabla de )& elementos numricos enteros y leer una posici"n 3entre & y :5.
Eliminar el elemento situado en la posici"n dada sin dejar huecos.
)%. <eer )& enteros. Vuardar en otra tabla los elementos pares de la primera, y a continuaci"n los
elementos impares.
Realizar dos versiones: una trabajando con los valores y otra trabajando con los 2ndices.
)0. <eer dos series de )& enteros, que estarn ordenados crecientemente. 7opiar 3fusionar5 las dos
tablas en una tercera, de forma que sigan ordenados.
)8. <eer )& enteros ordenados crecientemente. <eer O y buscarlo en la tabla. >e debe mostrar la posici"n
en que se encuentra. >i no est, indicarlo con un mensaje.
)6. ^ueremos desarrollar una aplicaci"n que nos ayude a gestionar las notas de un centro educativo. 7ada
grupo 3o clase5 est compuesto por 8 alumnos. >e pide leer las notas del primer, segundo y tercer
trimestre de un grupo. ebemos mostrar al final: la nota media del grupo en cada trimestre, y la media
del alumno que se encuentra en la posici"n O 3O se lee por teclado5.
Ejercicios de Programacin en Java 1FF
&O2E/0N ,
Tablas n-dimensionales
). 7rear una tabla bidimensional de tama;o 8!8 y rellenarla de la siguiente forma: la posici"n 9Jn,mK
debe contener n[m. espus se debe mostrar su contenido.
(. 7rear y cargar una tabla de tama;o 0!0 y decir si es simtrica o no, es decir, si se obtiene la misma
tabla al cambiar filas por columnas.
%. 7rear y cargar dos matrices de tama;o %!%, sumarlas y mostrar su suma.
0. 7rear y cargar una tabla de tama;o %!%, trasponerla y mostrarla.
8. 7rear una tabla de tama;o F!F y rellenarla de forma que los elementos de la diagonal principal sean )
y el resto &.
6. 7rear y cargar una tabla de tama;o )&!)&, mostrar la suma de cada fila y de cada columna.
F. utilizando dos tablas de tama;o 8!: y :!8, cargar la primera y trasponerla en la segunda.
G. 7rear una matriz SmarcoT de tama;o G!6: todos sus elementos deben ser & salvo los de los bordes que
deben ser ). +ostrarla.
:. Zacer lo mismo que el ejercicio anterior, pero con una matriz :!:!:. Es decir, creamos un cubo con
las caras puestas a ) y el interior a &.
)&. <os siguientes programas piden una serie de datos y tras procesarlos ofrecen unos resultados por
pantalla. +ostrar el resultado:
,RAVR-+- Ej)&a
4-R/-1<E>
i, m, a: EO9ERA>
t: 9-1<- J8K EO9ERA>
7A+/EOXA
,-R- i& Z->9- 0
leer 3tJiK5
,RAVR-+- Ej)&b
4-R/-1<E>
n, i: EO9ERA>
a, b: 9-1<- J)&&K EO9ERA>
7A+/EOXA
n )&
Ejercicios de Programacin en Java 2((
*/O ,-R-
m &
,-R- i & Z->9- 0
>/ tJiK _ m
m tJiK
*/O >/
*/O ,-R-
a tJ0$mK
tJ0$mK tJmK
tJmK a
,-R- i & Z->9- 0
escribir 3tJiK5
*/O ,-R-
*/O ,RAVR-+-
atos de entrada:
$0, &, ), % y (.
,-R- i& Z->9- n$)
leer 3aJiK5
*/O ,-R-
,-R- i & Z->9- n#(
bJiK aJn$)$iK
bJn$)$iK aJiK
*/O ,-R-
,-R- i & Z->9- n$)
>/ i mod ( C &
escribir 3aJiK5
>/OA
escribir 3bJiK5
*/O >/
*/O ,-R-
*/O ,RAVR-+-
atos de entrada:
6, (, G, :, (, 8, G, (, 6 y ).
))$>e pretende realizar un programa para gestionar la lista de participaciones en una competici"n de
salto de longitud. El nmero de plazas disponible es de )&. >us datos se irn introduciendo en el mismo
orden que vayan inscribindose los atletas. ise;ar el programa que muestre las siguientes opciones:
)$ /nscribir un participante.
($ +ostrar listado de datos.
%$ +ostrar listado por marcas.
0$ *inalizar el programa.
>i se selecciona ), se introducirn los datos de uno de los participantes: Oombre, mejor marca del
(&&(, mejor marca del (&&) y mejor marca del (&&&.
>i se elige la opci"n (, se debe mostrar un listado por nmero de dorsal.
<a opci"n % mostrar un listado ordenado por la marca del (&&(, de mayor a menor.
9ras procesar cada opci"n, se debe mostrar de nuevo el men inicial, hasta que se seleccione la opci"n
0, que terminar el programa.
Ejercicios de Programacin en Java 2(1
&O2E/0N +
Funciones
). Realizar una funci"n, a la que se le pase como parmetro un nmero O, y muestre por pantalla
O veces, el mensaje: S+"dulo ejecutndoseT
(. ise;ar una funci"n que tenga como parmetros dos nmeros, y que calcule el m!imo.
%. Qdem una versi"n que calcule el m!imo de % nmeros.
0. Qdem una versi"n que calcule el m!imo de una tabla de n elementos.
8. *unci"n a la que se le pasan dos enteros y muestra todos los nmeros comprendidos entre
ellos, inclusive.
6. *unci"n que muestra en pantalla el doble del valor que se le pasa como parmetro.
F. Realizar una funci"n que calcule 3muestre en pantalla5 el rea o el volumen de un cilindro,
segn se especifique. ,ara distinguir un caso de otro se le pasar el carcter `a` 3para
rea5 o `v` 3para el volumen5. -dems hemos de pasarle a la funci"n el radio y la altura.
G. Qdem que devuelva una tabla con el rea y el volumen.
:. +"dulo al que se le pasa un nmero entero y devuelve el nmero de divisores primos que
tiene.
)&.Qdem dise;ar una funci"n que devuelve una tabla con los divisores.
)).Escribir una funci"n que calcule el m!imo comn divisor de dos nmeros.
)(.Qdem con tres nmeros.
Ejercicios de Programacin en Java 2(2
)%.Qdem con una tabla.
)0.Escribir una funci"n que calcule el m2nimo comn mltiplo de dos nmeros.
)8.Qdem con tres nmeros.
)6.Qdem con una tabla.
)F.Escriba una funci"n que decida si dos nmeros enteros positivos son amigos. os nmeros son
amigos, si la suma de sus divisores 3distintos de ellos mismos5 son iguales.
)G.ise;a una funci"n 3en adelante D375 que decida si un nmero es primo.
):.@* que calcule a
n
.
(&.@* que muestre en binario un nmero entre & y (88.
(). Escriba una funci"n que sume los n primeros nmeros impares.
((. ado el valor de un ngulo, ser2a interesante saber su seno, coseno y tangente. Escribir
una funci"n que muestre en pantalla los datos anteriores.
(%. ise;ar una funci"n que calcule la distancia eucl2dea de dos puntos.
(0. @* a la que se le pasa como parmetro una tabla que debe rellenar. >e leer por teclado
una serie de nmeros: guardaremos solo los pares e ignoraremos los impares. 9ambin hay que
devolver la cantidad de impares ignorados.
(8. @* a la que se le pasa una tabla de enteros y un nmero. ebemos buscar el nmero en la
tabla e indicar si se encuentra o no.
Ejercicios de Programacin en Java 2(3
(6. /gual que el ejercicio anterior, pero suponiendo que la tabla no est siempre llena, y el
nmero de elementos se pasa tambin como parmetro.
(F.ise;ar la funci"n operaWtabla, a la que se le pasa dos tablas, el nmero de elementos
tiles y que operaci"n se desea realizar: sumar, restar, multiplicar o dividir 3mediante un
carcter: `s`, `r`, `m`, `d`5. <a funci"n debe devolver una tabla con los resultados.
(G. @* que ordene la tabla que se le pasa.
(:. @* que toma como parmetros dos tablas. <a primera con los 6 nmeros de una apuesta de la
primitiva, y la segunda con los 6 nmeros ganadores. <a funci"n debe devolver el nmero de
aciertos.
%&. @* recursiva que calcule a
n
.
%). 7alcular el factorial de n recursivamente.
%(. @* que calcule el valor m!imo de una tabla de forma recursiva.
%%. @* que calcule el n$simo trmino de la serie de *ibonacci. En esta serie el n$simo
valor se calcula sumando los dos valores anteriores. Es decir
fibonacci3n5 C fibonacci3n$)5[fibonacci3n$(5, siendo fibonacci3&5C) y fibonacci3)5C).
%0. /gual que el ejercicio anterior, pero pudiendo configurar los valores de los dos primeros
trmino de la serie.
%8. @* que realice la bsqueda dicot"mica en una tabla, de forma recursiva.
%6. @* que toma una tabla bidimensional de enteros, representando un tablero de ajedrez.
isponemos de las constantes ,1 3pe"n blanco5, 9O 3torre negra5, etc. 3,, 9, 7, -, R, 5.
Ejercicios de Programacin en Java 2(
icho m"dulo debe devolver un valor booleano, que indique si el rey negro est amenazado.
%F. /gual que el ejercicio anterior, pero indicando si e!iste jaque mate a las negras.
Ejercicios de Programacin en Java 2(%
Ap8ndice II
Clase Entrada
im&or! java"io"8)
&ublic class En!rada +
s!a!ic ,!ring iniciali7ar#$+
,!ring bu7on455)
6n&u!,!reamSeader 0lujo4neA 6n&u!,!reamSeader#,ys!em"in$)
Bu00eredSeader !eclado4neA Bu00eredSeader#0lujo$)
!ry+
bu7on4!eclado"readCine#$)
?
ca!c>#E1ce&!ion e$+
,ys!em"ou!"a&&end#5En!rada incorrec!a$5$)
?
re!urn bu7on)
?
s!a!ic in! en!ero#$+
in! valor46n!eger"&arse6n!#iniciali7ar#$$)
re!urn valor)
?
s!a!ic double real#$+
double valor4Uouble"&arseUouble#iniciali7ar#$$)
Ejercicios de Programacin en Java 2(=
re!urn valor)
?
s!a!ic ,!ring cadena#$+
,!ring valor4iniciali7ar#$)
re!urn valor)
?
s!a!ic c>ar carac!er#$+
,!ring valor4iniciali7ar#$)
re!urn valor"c>arR!#($)
?
?
Ejercicios de Programacin en Java 2(B

Das könnte Ihnen auch gefallen