P. 1
Ejercicios de Programación en Java

Ejercicios de Programación en Java

|Views: 2|Likes:

More info:

Published by: Carlos Andres Islas Maldonado on Nov 28, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/11/2015

pdf

text

original

Afianza tus conocimientos de programaci ón mediante la resolución de ejercicios

Ejercicios de Programación en Java
Condicionales, Bucles, Tablas y Funciones
F.M. Pérez Montes

Esta obra está publicada bajo una licencia: Creative Commons Reconocimiento-No Comercial-Sin Obra Derivada 3.0 España, que le permite copiar, distribuir y comunicar públicamente la obra, siempre y cuando reconozca el crédito 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 Innovaci n Ed!cativa Ed!innova. Esta obra se encuentra disponile en: http:##....eduinnova.es#monografias(&))#ene(&))#java.pdf Dep sito le"al# SE $%$$-%0$$. IS&N# '()-)*-+$*-(,',-(.

A mi hija Claudia, la solución a todos los problemas.

IEN/OS A todos los que han hecho posible este libro. En especial a mi amigo y compañero: Alfonso Jiménez. .A-RADECI. por sus innumerables correcciones y por la clase Entrada.

0NDICE

,r"logo ............................................... ,ágina /ntroducci"n .......................................... ,ágina 1olet2n ) 34ariables y condicionales5 ................. ,ágina

) 0 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 -péndice / 31oletines completos5 ...................... ,ágina ):( -péndice // 37lase Entrada5 ........................... ,ágina (&6

/

PR12O-O
El libro Ejercicios de Programación 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 metáfora del pianista para e!plicar el tándem programar#lenguaje de programaci"n: saber tocar las notas de un piano es relativamente fácil, 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 entender la mecánica de un while. 4olviendo al piano: una vez que dominamos la relaci"n tecla#nota, un pianista debe if o

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 Programación 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 práctica facilita la asimilaci"n de las técnicas 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 también es muy didáctico, simplemente por el hecho de que con =ava podemos abstraernos un poco más, al ser un lenguaje de más alto nivel. 9ambién 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 práctica 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 más didáctica posible. @n programador

Ejercicios de Programación en Java

2

e!perto seguramente encontrará soluciones mucho más 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 técnica o ciclo formativo de grado superior, serán 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 práctica.

>evilla, octubre de (&)& *rancisco +. ,érez +ontes

Ejercicios de Programación en Java

3

.. de la siguiente forma: 1olet2n ). 9ablas n$dimensionales 1olet2n 6.. Ejercicios de Programación en Java . *unciones <os ejercicios no tienen soluci"n única... aqu2 se plantea la más didáctica y fácil de entender..... <a resoluci"n de los ejercicios de programaci"n... 7ondicionales y bucles 1olet2n %. escuela técnica o ciclo formativo de grado superior.. son el complemento ideal para las clases de programaci"n impartidas en una facultas...... En cada bolet2n se resuelven ejercicios con una temática común. 7uando e!isten distintas soluciones....... 1ucles anidados 1olet2n 0.. 9ablas 1olet2n 8. 4ariables y condicionales 1olet2n (. utilizando distintos enfoques.IN/ROD3CCI1N Este libro está compuesto como una colecci"n de boletines de ejercicios 3se encuentran disponibles en el -péndice I5. se incluye más de una soluci"n por ejercicio... dejando de lado la eficiencia.....

<as funciones que proporciona la clase Entrada son: En!rada"en!ero#$ Entrada. .ado la clase Entrada. En un principio el alumno no debe tener los conocimientos necesarios para escribir el c"digo que le proporcione dicha entrada.Atro aspecto importante es la entrada por teclado.caracter35 <ee un número entero por teclado y lo devuelve <ee un número real por teclado y lo devuelve <ee una cadena de caracteres y la devuelve <ee un solo carácter por teclado y lo devuelve Ejercicios de Programación en Java % . se ha dise. algo primordial para poder introducir datos y probar nuestros programas.cadena35 Entrada. -lgo similar ocurre en las asignaturas de programaci"n. <a clase Entrada se encuentra en el -péndice II.or todo esto. que permite realizar de forma transparente la entrada por teclado. lo que plantea el problema de empezar a e!plicar c"digo y funciones que se escapan al programador novel. -prender a utilizarla es sencillo y proporciona una herramienta c"moda y fiable para dejar de preocuparnos por la entrada de datos.real35 Entrada.

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

!ring-. args$ + double a.olución: 5 3 12$) ? ? ? (.ys!em"ou!"&rin!ln#5.ys!em"ou!"&rin!ln#5. ./DrE(.ys!em"ou!"&rin!ln#5El @rea de una circun0erencia de radio 5 3 r3 5 es: 5 3 a$) ? ? %.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&ción es: *a!>"&oA #r.r) // @rea y radio .// si a4( nos encon!ramos una división &or cero" 114#9b3*a!>"s<r!#d$$/#28a$) 124#9b9*a!>"s<r!#d$$/#28a$) . &ac'age bol(1ej(2) &ublic class *ain + &ublic s!a!ic void main#. 2$ . .edir el radio de un c2rculo y calcular su área.edir el radio de una circunferencia y calcular su longitud. -C. &ac'age bol(1ej(3) &ublic class *ain + Ejercicios de Programación en Java B .olución: 5 3 11$) .

on iguales5$) else .n2) .&ublic s!a!ic void main#.ys!em"ou!"&rin!#56n!roduce o!ro nDmero: 5$) n24En!rada"en!ero#$) i0#n144n2$ . 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!#56n!roduce un nDmero: 5$) n14En!rada"en!ero#$) .ys!em"ou!"&rin!ln#5Ca longi!ud de una circun0erencia de radio 5 3 r3 5 es: 5 3 l$) ? ? 0.!ring-.ys!em"ou!"&rin!ln#5. args$ + in! n1.!ring-. . &ac'age bol(1ej( ) &ublic class *ain + &ublic s!a!ic void main#.edir dos números y decir si son iguales o no.o son iguales5$) ? ? Ejercicios de Programación en Java E .ys!em"ou!"&rin!ln#5.

args$ + in! num) .ega!ivo5$) else // su&onemos <ue el ( es &osi!ivo" .!ring-. . args$ + in! n1.n2) .8. .ys!em"ou!"&rin!#56n!roduce un nDmero: 5$) num4En!rada"en!ero#$) i0# num : ($ . &ac'age bol(1ej(%) &ublic class *ain + &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#5Posi!ivo5$) ? ? 6.edir un número e indicar si es positivo o negativo.!ring-. &ac'age bol(1ej(=) &ublic class *ain + &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#5.edir dos números y decir si uno es múltiplo del otro.ys!em"ou!"&rin!#56n!roduce o!ro nDmero: 5$) n24En!rada"en!ero#$) Ejercicios de Programación en Java F .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#5.edir dos números y decir cual es el mayor.o son mDl!i&los5$) F.ys!em"ou!"&rin!#56n!roduce un nDmero: 5$) n14En!rada"en!ero#$) .n2) .ys!em"ou!"&rin!ln#n2 3 5 es mayor <ue 5 3 n1$) ? ? Ejercicios de Programación en Java 1( .on mDl!i&los5$) else .? ? i0#n1Gn244($ . .ys!em"ou!"&rin!ln#5. args$ + in! n1.!ring-. &ac'age bol(1ej(B) &ublic class *ain + &ublic s!a!ic void main#.

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

edir tres números y mostrarlos ordenados de mayor a menor.ys!em"ou!"&rin!ln#n1 3 5 y 5 3 n2$) else . 53c$) else+ i0#aIc JJ cIb$ ..b.ys!em"ou!"&rin!ln#n2 3 5 y 5 3 n1$) ? ? )&. 53c35.ys!em"ou!"&rin!#56n!roduce o!ro nDmero: 5$) n24En!rada"en!ero#$) i0#n1In2$ .ys!em"ou!"&rin!ln#a35.!ring-.ys!em"ou!"&rin!#56n!rodu7ca segundo nDmero: 5$) b4En!rada"en!ero#$) . args$ + in! a. 53b35. .ys!em"ou!"&rin!#56n!rodu7ca !ercer nDmero: 5$) c4En!rada"en!ero#$) i0#aIb JJ bIc$ .c) . 53b$) Ejercicios de Programación en Java 12 .ys!em"ou!"&rin!ln# a35.ys!em"ou!"&rin!#56n!rodu7ca &rimer nDmero: 5$) a4En!rada"en!ero#$) .ys!em"ou!"&rin!#56n!roduce un nDmero: 5$) n14En!rada"en!ero#$) . &ac'age bol(1ej1() &ublic class *ain + &ublic s!a!ic void main#.

53c35.else+ i0#bIa JJ aIc$ .ys!em"ou!"&rin!ln#c35.!ring-.::: y decir cuantas cifras tiene.ys!em"ou!"&rin!ln#b35. 53a$) else+ i0#cIa JJ aIb$ .ys!em"ou!"&rin!ln#c35. 53a35. &ac'age bol(1ej11) &ublic class *ain + &ublic s!a!ic void main#. 53b35. 53b$) else+ i0#cIb JJ bIa$ . args$ + in! num) .edir un número entre & y :. 53c$) else+ i0#bIc JJ cIa$ . 53a$) ? ? ? ? ? ? ? )).ys!em"ou!"&rin!ln#5!iene 1 ci0ra5$) Ejercicios de Programación en Java 13 . .ys!em"ou!"&rin!ln#b35. 53a35.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 3 ci0ras5$) else+ i0#num:1(((($ . &ac'age bol(1ej12) &ublic class *ain + &ublic s!a!ic void main#.::: y mostrarlo con las cifras al revés.ys!em"ou!"&rin!ln#5!iene ci0ras5$) else+ i0#num:1((((($ . d. um:#unidades de millar$ // c: #cen!enas$.!ring-. d: #decenas$.ys!em"ou!"&rin!ln#5!iene 2 ci0ras5$) else+ i0#num:1((($ . args$ + in! num) in! dm. .edir un número entre & y :. c.ys!em"ou!"&rin!ln#5!iene % ci0ras5$) ? ? ? ? ? ? )(. um. u: #unidades$ Ejercicios de Programación en Java 1 .else+ i0#num:1(($ . u) // F F " F F F a cada guarismo lo llamaremos: //dm um c d u: dm #decenas de millar$.

edir un número entre & y :.:::.. .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: . decir si es capicúa.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$) ? ? )%. &ac'age bol(1ej13) Ejercicios de Programación 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) // 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 Programación en Java 1= . u: #unidades$ . d. um. u) // F F " F F F a cada guarismo lo llamaremos: //dm um c d u: dm #decenas de millar$. d: #decenas$. c. args$ + in! num) in! dm.!ring-. um:#unidades de millar$ // c: #cen!enas$.&ublic class *ain + &ublic s!a!ic void main#.

print3L/ntroduzca un número entre & y ::.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. u: 3unidades5 ## En esta versi"n haremos que el número )() " el %% sea visto como capicúa.:::: L5? numCEntrada.ys!em"ou!"&rin!ln #5el nDmero . d: 3decenas5.out. u? boolean capicua C false? ## suponemos que el número no es capicúa? ## : : . um. d. ## <a idea es no tener en cuenta los ceros por la derecha. um:3unidades de millar5 ## c: 3centenas5. &ero nues!ro código lo iden!i0ica como .L ca&icDa" Ma // <ue !rabajamos con el ((121" .i0 #dm 44 u JJ um 44 d$ .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. >ystem.ys!em"ou!"&rin!ln #5el nDmero es ca&icDa5$) else . : : : a cada guarismo lo llamaremos: ##dm um c d u: dm 3decenas de millar5.entero35? ## unidad u C num M )&? num C num # )&? Ejercicios de Programación en Java 1B . c.

u5 if 3dm CC & NN um CC u NN c CC d5 capicua C true? ##si el número tiene % cifras 3&. u5 if 3dm CC & NN umCC& NN c CC u5 capicua C true? ##si el número tiene ( cifras 3&. c. c. d. d. u5 if 3dm CC & NN um CC & NN c CC & NN d CC u5 capicua C true? ## se entiende que un número de una cifra no es capicúa if 3capicua5 >ystem. um. &. &. d. &.out.## 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 número tiene 8 cifras 3dm. c. u5 if 3dm CC u NN um CC d5 capicua C true? ##si el número tiene 0 cifras 3&. um. d.println 3Lel número es capicúaL5? Ejercicios de Programación en Java 1E .

.ys!em"ou!"&rin!ln#5B6E.TE5$) else i0#no!a44%$ ..ys!em"ou!"&rin!ln#56.ys!em"ou!"&rin!ln#5.else P P >ystem.PF6C6E. >uficiente..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!rucción // y no es necesario u!ili7ar llaves + ? i0#no!aI4( JJ no!a:%$ .TE5$) else i0#no!a44=$ .5$) else i0#no!a44B QQ no!a44E$ . 1ien.out. &ac'age bol(1ej1 ) &ublic class *ain + &ublic s!a!ic void main#.println 3Lel número OA es capicúaL5? )0.PF6C6E..LTRBCE5$) else Ejercicios de Programación en Java 1F .ys!em"ou!"&rin!ln#5.!ring-.edir una nota de & a )& y mostrarla de la forma: /nsuficiente. args$ + in! no!a) .

ys!em"ou!"&rin!ln#5.TE5$) brea') case =: ..ys!em"ou!"&rin!ln#5B6E.LBSE.ys!em"ou!"&rin!ln#56.PF6C6E. args$ + in! no!a) .ys!em"ou!"&rin!ln#5.!ring-.RC6E.TE5$) brea') case %: .LTRBCE5$) brea') case F: Ejercicios de Programación en Java 2( .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 : .TE5$) ? ? &ac'age bol(1ej1 b) &ublic class *ain + &ublic s!a!ic void main#.5$) brea') case B: case E: .i0#no!a44F QQ no!a441( $ .ys!em"ou!"&rin!ln#5.PF6C6E.

o de una fecha e indicar si la fecha es correcta.ys!em"ou!"&rin!#56n!rodu7ca mes: 5$) mes4En!rada"en!ero#$) . &ac'age bol(1ej1%) &ublic class *ain + &ublic s!a!ic void main#.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 Programación en Java 21 .mes. >uponiendo todos los meses de %& d2as.edir el d2a.ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$) dia4En!rada"en!ero#$) .ys!em"ou!"&rin!ln#5. args$ + in! dia. mes y a.TE5$) brea') de0aul!: . .LBSE.case 1(: .!ring-.ys!em"ou!"&rin!ln#5ESSLS5$) brea') ? ? ? )8.RC6E.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!ln #5Fec>a correc!a5$) else .aNo) .ys!em"ou!"&rin!ln#5Fec>a incorrec!a5$) else+ i0#mes442 JJ #diaI41 JJ dia:42E$$ Ejercicios de Programación en Java 22 .o de una fecha e indicar si la fecha es correcta. &ac'age bol(1ej1=) &ublic class *ain + &ublic s!a!ic void main#.ys!em"ou!"&rin!#56n!rodu7ca mes: 5$) mes4En!rada"en!ero#$) . args$ + in! dia. 7on meses de (G.os bisiestos.ys!em"ou!"&rin!ln #5RNo incorrec!o5$) else else ? ? . %& y %) d2as.ys!em"ou!"&rin!ln#5UHa incorrec!o5$) )6.ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$) dia4En!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($ . mes y a. .!ring-.i0 #aNo T4 ($ .mes.edir el d2a. >in a.ys!em"ou!"&rin!ln#5*es incorrec!o5$) .

ys!em"ou!"&rin!#56n!rodu7ca mes: 5$) mes4En!rada"en!ero#$) .mes.ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$) dia4En!rada"en!ero#$) . args$ + in! dia.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$$ .aNo) in! diasVdelVmes) boolean 0ec>aVcorrec!a4!rue) .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!#56n!rodu7ca aNo: 5$) aNo4En!rada"en!ero#$) Ejercicios de Programación en Java 23 .!ring-.ys!em"ou!"&rin!ln#5Fec>a incorrec!a5$) ? ? ? ? ? &ac'age bol(1ej1=) &ublic class *ain + &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#dia 3 5/5 3 mes 3 5/5 3 aNo35: Fec>a correc!a5$) else ..

edir el d2a.ys!em"ou!"&rin!ln#5Fec>a incorrec!a5$) ? ? )F. &ac'age bol(1ej1B) &ublic class *ain + Ejercicios de Programación en Java 2 . suponer que todos los meses tienen %& d2as. .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 .o de una fecha correcta y mostrar la fecha del d2a siguiente. mes y a.

!ring-.ys!em"ou!"&rin!#56n!rodu7ca mes: 5$) mes4En!rada"en!ero#$) .ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$) dia4En!rada"en!ero#$) . 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 código &asarHamos del aNo 91 al ( #<ue nunca e1is!ió$ // &ara corregirlo: i0 #aNo 44 ($ aNo 4 1) Ejercicios de Programación en Java 2% .aNo) . lo reiniciamos a 1 e incremen!amos el mes i0 #dia I4 3($ + dia 4 1) mes 33) // si el mes su&era 12.mes.&ublic s!a!ic void main#. args$ + in! dia.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(.

ys!em"ou!"&rin!ln #dia 3 5/53 mes 3 5/5 3 aNo$) )G.mes.ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$) dia4En!rada"en!ero#$) . )F. Qdem que el ej.ys!em"ou!"&rin!#56n!rodu7ca mes: 5$) mes4En!rada"en!ero#$) . &ac'age bol(1ej1E) &ublic class *ain + &ublic s!a!ic void main#.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 Programación en Java 2= .aNo) in! diasVdelVmes4() // guardaremos el nDmero de dHas <ue !iene el mes .? ? . suponiendo que cada mes tiene un número distinto de d2as 3suponer que febrero tiene siempre (G d2as5.!ring-. args$ + in! dia.

// si el dHa su&era el nDmero de dHas del mes. &ac'age bol(1ej1F) &ublic class *ain + Ejercicios de Programación en Java 2B .ys!em"ou!"&rin!ln #dia 3 5/53 mes 3 5/5 3 aNo$) ? ? ):. . 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 código &asarHamos del aNo 91 al ( #<ue nunca e1is!ió$ // &ara corregirlo: i0 #aNo 44 ($ aNo 4 1) .edir dos fechas y mostrar el número de d2as que hay de diferencia. >uponiendo todos los meses de %& d2as. // lo reiniciamos a 1 e incremen!amos el mes i0 #dia I4 diasVdelVmes$ + dia 4 1) mes 33) // si el mes su&era 12.

ys!em"ou!"&rin!ln #5UHas de di0erencia: 5 3 !o!alVdias$) (&.ys!em"ou!"&rin!#56n!rodu7ca mes: 5$) mes24En!rada"en!ero#$) .mes2.!ring-.ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$) dia24En!rada"en!ero#$) .ys!em"ou!"&rin!ln #5Fec>a 1:5$) .ys!em"ou!"&rin!#56n!rodu7ca aNo: 5$) aNo14En!rada"en!ero#$) .mes1.aNo2) in! !o!alVdias) .aNo1) in! dia2. minutos y segundos.&ublic s!a!ic void main#. y mostrar la hora en el segundo siguiente.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!#56n!rodu7ca mes: 5$) mes14En!rada"en!ero#$) .ys!em"ou!"&rin!#56n!rodu7ca dHa: 5$) dia14En!rada"en!ero#$) .ys!em"ou!"&rin!ln #5Fec>a 2:5$) . .edir una hora de la forma hora. args$ + in! dia1. &ac'age bol(1ej2() Ejercicios de Programación en Java 2E .

s) // >ora.ys!em"ou!"&rin!#56n!rodu7ca >ora: 5$) >4En!rada"en!ero#$) . minu!os y segundos . los reiniciamos a ( e incremen!amos los minu!os i0 #s I4 =($ + s 4 () m 33) // si los minu!os su&eran %F. args$ + in! >.ys!em"ou!"&rin!#56n!rodu7ca minu!os: 5$) m4En!rada"en!ero#$) . 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 Programación en Java 2F .!ring-. los reiniciamos a ( e incremen!amos la >ora i0 #m I4 =($ + m 4 () > 33) // si la >ora su&era 23.&ublic class *ain + &ublic s!a!ic void main#.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.m.

ys!em"ou!"&rin!ln#5UL. tres. dos.edir una nota numérica entera entre & y )&. uno.5$) brea') case : .ys!em"ou!"&rin!ln#5P. y mostrar dicha nota de la forma: cero. &ac'age bol(1ej21) &ublic class *ain + &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#5TSE. args$ + in! num) .CL5$) brea') Ejercicios de Programación en Java 3( .L5$) brea') case 2: . .ys!em"ou!"&rin!ln#5CPRTSL5$) brea') case %: ..5$) brea') case 3: .()..ys!em"ou!"&rin!ln#5C6.ys!em"ou!"&rin!ln#5CESL5$) brea') case 1: .ys!em"ou!"&rin!#56n!rodu7ca una no!a numKrica en!re ( y 1(: 5$) num4En!rada"en!ero#$) sAi!c>#num$+ case (: .!ring-.

.or ejemplo.ys!em"ou!"&rin!ln#5.ys!em"ou!"&rin!ln#5. para 86 mostrar: cincuenta y seis.!ring-.PEXE5$) brea') case 1(: .E6. &ac'age bol(1ej22) &ublic class *ain + &ublic s!a!ic void main#. args$ + in! num) in! unidades.ys!em"ou!"&rin!ln#5U6EY5$) brea') ? ? ? ((. .ys!em"ou!"&rin!ln#5.ys!em"ou!"&rin!ln#5LCWL5$) brea') case F: .5$) brea') case B: .6ETE5$) brea') case E: .edir un número de & a :: y mostrarlo escrito.case =: . decenas) // es!a versión muesr!a 11 como die7 y uno" // es una 0orma de >acerlo bas!an!e burda" Ejercicios de Programación en Java 31 .

ys!em"ou!"&rin!#5sesen!a5$) Ejercicios de Programación en Java 32 .""" // y o!ro condicional &ara mos!rar 5y5 .ys!em"ou!"&rin!#5vein!e5$) brea') case 3: .ys!em"ou!"&rin!#5cincuen!a5$) brea') case =: .12.// se &uede &oner algunos condicionales &ara los nDmeros es&eciales: 11.ys!em"ou!"&rin!#55$) brea') case 1: .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!#5die75$) brea') case 2: .ys!em"ou!"&rin!#5cuaren!a5$) brea') case %: .ys!em"ou!"&rin!#5!rein!a5$) brea') case : .

ys!em"ou!"&rin!ln#5dos5$) brea') case 3: .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!#5se!en!a5$) brea') case E: .ys!em"ou!"&rin!ln#5cua!ro5$) Ejercicios de Programación en Java 33 .ys!em"ou!"&rin!ln#5!res5$) brea') case : .ys!em"ou!"&rin!#5oc>en!a5$) brea') case F: .brea') case B: .

ys!em"ou!"&rin!ln#5nueva5$) brea') ? ? ? Ejercicios de Programación en Java 3 .ys!em"ou!"&rin!ln#5sie!e5$) brea') case E: .ys!em"ou!"&rin!ln#5cinco5$) brea') case =: .ys!em"ou!"&rin!ln#5seis5$) brea') case B: .ys!em"ou!"&rin!ln#5oc>o5$) brea') case F: .brea') case %: .

Condicionales y bucles ).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!#56n!rodu7ca o!ro nDmero: 5$) num4En!rada"en!ero#$) // volvemos a leer num ? ? ? &olet4n % Ejercicios de Programación en Java 3% . <eer un número y mostrar su cuadrado. repetir el proceso hasta que se introduzca un número negativo.cuadrado) // num guardar@ el nDmero <ue leamos // y cuadrado guardar@ el cuadrado de num . &ac'age bol(2ej(1) &ublic class *ain + &ublic s!a!ic void main#.!ring-.ys!em"ou!"&rin!ln#num3 5Z es igual a 53 cuadrado$) . args$ + in! num.

<eer números hasta que se introduzca un &. &ac'age bol(2ej(2) &ublic class *ain + &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#5.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 ( ? ? %. args$ + in! num) .!ring-. <eer un número e indicar si es positivo o negativo. El proceso se repetirá hasta que se introduzca un &.ys!em"ou!"&rin!ln#5Posi!ivo5$) else // si no es &osi!ivo: es nega!ivo .ega!ivo5$) // re&e!imos el &roceso y volvemos a leer num . &ac'age bol(2ej(3) Ejercicios de Programación en Java 3= . .(.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 .ara cada uno indicar si es par o impar.

&ublic class *ain + &ublic s!a!ic void main#. . y mostrar cuántos números se han introducido.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 . con!ador) Ejercicios de Programación en Java 3B .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.ys!em"ou!"&rin!ln#56m&ar5$) // re&e!imos el &roceso y volvemos a leer num . args$ + in! num.!ring-.!ring-.ys!em"ou!"&rin!ln#5Par5$) else // en caso con!rario: im&ar . &ac'age bol(2ej( ) &ublic class *ain + &ublic s!a!ic void main#.edir números hasta que se teclee uno negativo. args$ + in! num) .

Realizar un juego para adivinar un número. num) Ejercicios de Programación en Java 3E . y luego ir pidiendo números indicando SmayorT o SmenorT según sea mayor o menor con respecto a O.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 . . &ac'age bol(2ej(%) &ublic class *ain + &ublic s!a!ic void main#.e >an in!roducido: 5 3con!ador 3 5 nDmeros5$) // sin !ener en cuen!a el Dl!imo nDmero nega!ivo" 8. args$ + in! n.ys!em"ou!"&rin!ln#5.!ring-.ara ello pedir un número O.ys!em"ou!"&rin!#56n!rodu7ca o!ro nDmero: 5$) num4En!rada"en!ero#$) ? ? ? . El proceso termina cuando el usuario acierta.// num guardar@ los nDmeros in!roducidos // y con!ador se incremen!ar@ &ara llevar la cuen!a de los nDmeros in!roducidos .

!ring-.ys!em"ou!"&rin!ln#5mayor5$) .// n es el nDmero <ue >ay <ue acer!ar // num guarda los nDmeros in!roducidos .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!#56n!roduce nDmero: 5$) num4En!rada"en!ero#$) ? // al salir del mien!ras !enemos la cer!e7a <ue num es igual a n ? ? &ac'age bol(2ej(%) &ublic class *ain + &ublic s!a!ic void main#.ys!em"ou!"&rin!#56n!roduce . num) // n es el nDmero <ue >ay <ue acer!ar // num guarda los nDmeros in!roducidos .ys!em"ou!"&rin!ln#5menor5$) else .ys!em"ou!"&rin!ln#5acer!as!e"""5$) Ejercicios de Programación en Java 3F .: 5$) n 4En!rada"en!ero#$) . args$ + in! n.

&ac'age bol(2ej(=) &ublic class *ain + &ublic s!a!ic void main#.edir números hasta que se teclee un &.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#5mayor5$) . mostrar la suma de todos los números introducidos. args$ + Ejercicios de Programación en Java ( .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. .ys!em"ou!"&rin!ln#5menor5$) else .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" .!ring-.

&ac'age bol(2ej(B) &ublic class *ain + &ublic s!a!ic void main#. args$ + in! num. . y calcular la media.ys!em"ou!"&rin!ln#5Ca suma de !odos los nDmeros es: 53suma$) ? ? F.ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$) num4En!rada"en!ero#$) suma4suma3num) ? A>ile#numT4($) .in! num.edir números hasta que se introduzca uno negativo.!ring-. suma.suma) suma4() do + . 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 Programación 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 división &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 número O, y mostrar todos los números del ) al O.
&ac'age bol(2ej(E) &ublic class *ain + &ublic s!a!ic void main#,!ring-. args$ +

Ejercicios de Programación 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 números 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!rucción en su cuer&o de ejecución // no &recisa de llaves + ?

? ?

Ejercicios de Programación en Java

3

)&. ,edir )8 números 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 números 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&licación 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 Programación 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&licación de los 1( &rimeros im&ares: 5 3 &roduc!o$) ? ?

)(. ,edir un número 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 Programación en Java

%

!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. la media de los números negativos y la cantidad de ceros. &ac'age bol(2ej13) &ublic class *ain + &ublic s!a!ic void main#. ya <ue mul!i&licar@9 // &or ejem&lo: el 0ac!orial de 1( es: // 1(8F8E8B8=8%8 838281 0or #in! i4num)iI()i99$ + 0ac!orial40ac!orial8i) ? ? ? . +ostrar la media de los números positivos.0ac!orial41) // es im&or!an!e iniciali7arlo a 1.ys!em"ou!"&rin!ln#5El 0ac!orial de 5 3 num 3 5 es: 5 3 0ac!orial$) )%.edir )& números.mediaVneg) // las medias E&osi!ivas y nega!ivaF &ueden !ener decimales Ejercicios de Programación en Java = .

o se &uede >acer la media de los &osi!ivos5$) Ejercicios de Programación en Java B .ys!em"ou!"&rin!ln#5.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($ .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#5*edia de los nega!ivos: 53 mediaVneg$) ? ? ? )0.ys!em"ou!"&rin!ln#5.!ring-. &ac'age bol(2ej1 ) &ublic class *ain + &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#5*edia de los &osi!ivos: 53 mediaV&os$) ? // !ra!amos los nega!ivos i0 #con!V&os 44($ .mayorV1((() suma4() mayorV1(((4() 0or #in! i41)i:1()i33$ + . . args$ + in! sueldo.else + mediaV&os4 #0loa!$sumaV&os/con!V&os) .edir )& sueldos. +ostrar su suma y cuantos hay mayores de )&&&U.o se &uede >acer la media de los nega!ivos5$) else + mediaVneg4 #0loa!$sumaVneg/con!Vneg) .ys!em"ou!"&rin!#5Escribe un sueldo: 5$) sueldo 4En!rada"en!ero#$) i0#sueldoI1((($ mayorV1(((33) Ejercicios de Programación en Java E .suma.

suma4suma3sueldo) ? .ys!em"ou!"&rin!ln#5Rlumno 5 3i$) .F8. mostrar la edad y la estatura media. la cantidad de alumnos mayores de )G a.ys!em"ou!"&rin!#56n!rodu7ca al!ura: 5$) al!ura4En!rada"real#$) i0#edadI1E$ mayorVedad33) Ejercicios de Programación en Java F . y la cantidad de alumnos que miden más de ). adas las edades y alturas de 8 alumnos.ys!em"ou!"&rin!ln#5la suma es de: 53suma$) ? ? )8.mediaVedad.mediaVal!ura. args$ + in! edad. &ac'age bol(2ej1%) &ublic class *ain + &ublic s!a!ic void main#.!ring-.ys!em"ou!"&rin!ln#5*ayores de 1((( >ay: 53mayorV1((($) .ys!em"ou!"&rin!#56n!rodu7ca edad: 5$) edad4En!rada"en!ero#$) .os.mayorVedad.sumaVal!) mayorVedad4() mediaVal!ura4() mayorV1B%4() sumaVedad4() sumaVal!4() 0or #in! i41)i:%)i33$+ .mayorV1B%) //mayorVedad: mayores de 1E aNos double al!ura.sumaVedad.

&ac'age bol(2ej1=) &ublic class *ain + &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#5Ca al!ura media es de: 5 3mediaVal!ura$) . .ys!em"ou!"&rin!#56n!roduce nDmero #de ( a 1($: 5$) num4En!rada"en!ero#$) ? Ejercicios de Programación en Java %( .ys!em"ou!"&rin!ln#5[n[nCa edad media es de: 5 3mediaVedad$) .!ring-. args$ + in! num) do + .ys!em"ou!"&rin!ln#5*ayor de 1"B%: 5 3mayorV1B%$) ? ? )6.i0#al!uraI1"B%$ mayorV1B%33) sumaVedad4sumaVedad3edad) sumaVal!4sumaVal!3al!ura) ? mediaVedad4sumaVedad/%) mediaVal!ura4sumaVal!/%) .ys!em"ou!"&rin!ln#5*ayor de 1E aNos: 5 3mayorVedad$) .ide un número 3que debe estar entre & y )&5 y mostrar la tabla de multiplicar de dicho número.

ys!em"ou!"&rin!ln#num 3 5 1 5 3 i 3 5 4 5 3 num8i$) ? ? ? )F.ys!em"ou!"&rin!ln#5[n[nTabla del 5 3 num$) 0or #in! i41)i:41()i33$ + . En cada factura figura: el c"digo del art2culo. &ac'age bol(2ej1B) &ublic class *ain + &ublic s!a!ic void main#.!ring-. la cantidad vendida en litros y el precio por litro. args$ + in! codigo) // el código 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) 0loa! 0ac!uracionV!o!al) in! li!rosVcod1) // guardar@ el im&or!e de la 0ac!ura con la <ue es!emos !rabajando // el im&or!e de !odas las 0ac!uras // el !o!al de li!ros vendidos del &roduc!o 1 en !odas las 0ac!uras Ejercicios de Programación en Java %1 . >e pide de 8 facturas introducidas: *acturaci"n total.A>ile # T #(:4num JJ num:41($$) . cantidad en litros vendidos del art2culo ) y cuantas facturas se emitieron de más de 6&& U. @na empresa que se dedica a la venta de desinfectantes necesita un programa para gestionar las facturas.

ys!em"ou!"&rin!#5código de &roduc!o: 5$) codigo4En!rada"en!ero#$) .ys!em"ou!"&rin!ln#5[n[n[nSesumen de ven!as[n5$) // 0ac!uración !o!al .ys!em"ou!"&rin!ln#5Fac!ura n] 5 3 i$) .ys!em"ou!"&rin!ln#5Ca 0ac!uración !o!al es de: 5 30ac!uracionV!o!al 3 5\5$) Ejercicios de Programación en Java %2 .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) ? .in! masV=(() m@s de =(( \ 0ac!uracionV!o!al 4 () li!rosVcod1 4 () masV=(( 4 () // con!ador <ue sirve &ara llevar la cuen!a de cuan!as 0ac!uras >ay de 0or #in! i41)i:4%)i33$ + .ys!em"ou!"&rin!#5can!idad #li!ros$: 5$) li!ros4En!rada"en!ero#$) .

($ % U#litro y %$ ).(8 U#litro.// li!ros del ar!iculo 1 . &ac'age bol(2ej1E) &ublic class *ain + &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#5Fac!ura su&erior a =((\: 5 3 masV=(($) ? ? )G. args$ + in! codigo) // el código 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) 0loa! 0ac!uracionV!o!al) in! li!rosVcod1) in! masV=(() m@s de =(( \ 0ac!uracionV!o!al 4 () // guardar@ el im&or!e de la 0ac!ura con la <ue es!emos !rabajando // el im&or!e de !odas las 0ac!uras // el !o!al de li!ros vendidos del &roduc!o 1 en !odas las 0ac!uras // con!ador <ue sirve &ara llevar la cuen!a de cuan!as 0ac!uras >ay de Ejercicios de Programación en Java %3 .6 U#litro. >olo e!isten tres productos con precios: )$ &. /gual que el anterior pero suponiendo que no se introduce el precio por litro.!ring-.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 .

li!rosVcod1 4 () masV=(( 4 () 0or #in! i41)i:4%)i33$ + .ys!em"ou!"&rin!#5código 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 Programación en Java % .ys!em"ou!"&rin!ln#5Fac!ura n] 5 3 i$) .

ys!em"ou!"&rin!ln#5Fac!ura su&erior a =((\: 5 3 masV=(($) ? ? ):.li!rosVcod1 34 li!ros) i0#im&or!eV0ac!ura I4 =(($ masV=(( 33) ? .ys!em"ou!"&rin!ln#5Ca 0ac!uración !o!al es de: 5 30ac!uracionV!o!al 3 5\5$) // li!ros del ar!iculo 1 . args$ + in! no!a.condicionados) a&robados4() sus&ensos4() Ejercicios de Programación en Java %% . adas 6 notas. escribir la cantidad de alumnos aprobados.sus&ensos.ys!em"ou!"&rin!ln #5[n[n[nSesumen de ven!as[n5$) // 0ac!uración !o!al .!ring-.a&robados. &ac'age bol(2ej1F) &ublic class *ain + &ublic s!a!ic void main#. condicionados 3C05 y suspensos.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 .

us&ensos: 5 3sus&ensos$) .condicionados4() 0or #in! i41)i:4=)i33$ + . &ac'age bol(2ej2() &ublic class *ain + &ublic s!a!ic void main#. y mostrar el sueldo má!imo. ya <ue es el Dnico caso &osible sus&ensos33) ? .ys!em"ou!"&rin!ln#5Condicionados: 53condicionados$) ? ? (&.edir un número O. introducir O sueldos.ys!em"ou!"&rin!ln#5.!ring-.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.ys!em"ou!"&rin!ln#5R&robados: 5 3a&robados$) . args$ + Ejercicios de Programación en Java %= . .

ys!em"ou!"&rin!ln#5[nEl sueldo m@1imo es: 5 3sueldoVma1$) Ejercicios de Programación en Java %B .in! sueldo.Dmero de sueldos: 5$) n 4 En!rada"en!ero#$) . es!e sueldo ser@ el nuevo m@1imo" ? ? ? &ac'age bol(2ej2() &ublic class *ain + &ublic s!a!ic void main#.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.!ring-. iniciali7amos el sueldo // m@1imo a cero" . sueldoVma14() in! n) . sueldoVma1) in! n) sueldoVma1 4 () // como los sueldos son &osi!ivos.ys!em"ou!"&rin!ln#5999999995$) 0or #in! i41)i:4n)i33$ + . args$ + in! sueldo.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!#5. es!e sueldo ser@ el nuevo m@1imo" ? ? .ys!em"ou!"&rin!ln#5[nEl sueldo m@1imo es: 5 3sueldoVma1$) ? Ejercicios de Programación en Java %E .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.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) .

cambiamos el valor de >ayVnega!ivo a !rue ? i0#>ayVnega!ivo 44 !rue$ .().edir )& números. &ac'age bol(2ej21) &ublic class *ain + &ublic s!a!ic void main#. 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!ln#5.ys!em"ou!"&rin!ln#5. . y mostrar al final si se ha introducido alguno negativo.e >a in!roducido algDn nDmero nega!ivo5$) else .o >ay ningDn nDmero nega!ivo5$) ? ? Ejercicios de Programación en Java %F .!ring-.ys!em"ou!"&rin!#56n!roduce nDmero: 5$) num4En!rada"en!ero#$) i0#num:($ >ayVnega!ivo 4!rue) // si num es menor <ue cero.

&ac'age bol(2ej22) &ublic class *ain + &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#5Way alumnos sus&ensos5$) else .edir 8 números e indicar si alguno es múltiplo de %.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$ . .o >ay sus&ensos5$) (%.!ring-.edir 8 calificaciones de alumnos y decir al final si hay algún suspenso. 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$ + . &ac'age bol(2ej23) &ublic class *ain + Ejercicios de Programación en Java =( .((.ys!em"ou!"&rin!ln#5. .

!ring-.&ublic s!a!ic void main#.ys!em"ou!"&rin!ln#5Way mDl!i&los de 35$) ? ? de 3" Ejercicios de Programación en Java =1 .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!rucción signi0ica <ue al menos >ay un mDl!i&lo ? i0#mul!i&loV3 44 0alse$ .ys!em"ou!"&rin!ln#5no e1is!en mDl!i&los de 35$) else . args$ + in! num) boolean mul!i&loV3) mul!i&loV340alse) 0or #in! i4()i:%)i33$+ .

j Y$ % Z->9.ejW) 4-R/-1<E> suma. j: EO9ERA 7A+/EOXA .0 .-R*/O &olet4n 3 Ejercicios de Programación en Java =2 .Bucles anidados ). Realiza detenidamente una traza al siguiente programa y muestra cual seria la salida por pantalla: .-R*/O . i.-R.-R.RAVR-+.& /O7 $) suma Y$ iD)&[j escribir 3suma5 */O .i Y$ ) Z->9.

-R- */O Ejercicios de Programación en Java =3 .ys!em"ou!"&rin!ln#suma$) ? ? ? ? (.RAVR-+.!ring-.% j Y$ i[) +/EO9R-> j Y 0 escribir 3j$i5 j Y$ j[) */O +/EO9R-> */O . j: EO9ERA 7A+/EOXA .i Y$ ) Z->9.-R.&ac'age bol(3ej(1) &ublic class *ain + &ublic s!a!ic void main#. args$ + in! suma) 0or #in! i4()i: )i33$+ 0or #in! j43)jI()j99$+ suma4i81(3j) .ejW) 4-R/-1<E> i. . Realiza una traza del siguiente algoritmo y muestra la salida generada por pantalla.

ys!em"ou!"&rin!ln #5[n[nTabla del 5 3!abla$) .ys!em"ou!"&rin!ln#j9i$) j33) ? ? ? ? %.ys!em"ou!"&rin!ln #59999999999999995$) 0or #i41)i:41()i33$ Ejercicios de Programación en Java = . ise.i) 0or #!abla41) !abla:41() !abla33$ + . args$ + in! !abla. &ac'age bol(3ej(3) &ublic class *ain + &ublic s!a!ic void main#. args$ + in! j) 0or #in! i4()i:3)i33$+ j4i31) A>ile#j: $+ .a una aplicaci"n que muestre las tablas de multiplicar del ) al )&.!ring-.!ring-.&ac'age bol(3ej(2) &ublic class *ain + &ublic s!a!ic void main#.

ys!em"ou!"&rin!ln #55$) ? ? ? Ejercicios de Programación en Java =% . ibuja un cuadrado de n elementos de lado utilizando D.+ ? ? ? ? .!ring-. args$ + in! n) // !amaNo del lado in! 0ila.ys!em"ou!"&rin!ln #!abla 3 5 1 5 3 i 3 5 4 5 3 !abla8i$) 0.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$) . &ac'age bol(3ej( ) &ublic class *ain + &ublic s!a!ic void main#. col) .

ys!em"ou!"&rin!#5E5$) else .ys!em"ou!"&rin!#i$) i0#j443$ .ys!em"ou!"&rin!#5E5$) else .!ring-. que muestre los números del &$&$&$&$& al :$:$:$:$:. 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$ . Oecesitamos mostrar un contador con 8 d2gitos 3\$\$\$\$\5.ys!em"ou!"&rin!#'$) i0#l443$ . con la particularidad que cada vez que aparezca un % lo sustituya por una E.ys!em"ou!"&rin!#l$) i0#m443$ Ejercicios de Programación en Java == .ys!em"ou!"&rin!#5E5$) else .ys!em"ou!"&rin!#j$) i0#'443$ .8.ys!em"ou!"&rin!#5E5$) else . &ac'age bol(3ej(%) &ublic class *ain + &ublic s!a!ic void main#.

con!V&ri) boolean &rimo) con!V&ri4() . args$ + in! j.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 Programación en Java =B .ys!em"ou!"&rin!ln#5 5$) ? ? ? ? ? ? ? 6.else .ys!em"ou!"&rin!#5E5$) . y nos diga cuantos números hay entre ) y n que son primos.ys!em"ou!"&rin!#m$) . Realizar un programa que nos pida un número n. &ac'age bol(3ej(=) &ublic class *ain + &ublic s!a!ic void main#.!ring-.num.

// &ara cada nDmero i.ys!em"ou!"&rin!ln#5En el rango 1""5 3 num 3 5. 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$$) ? ? ? ? . >ay 53 con!V&ri 3 5 nDmeros &rimos5$) Ejercicios de Programación en Java =E .

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

args$ + in! !-.ys!em"ou!"&rin!ln#5Cos nDmeros #en orden inverso$:5$) 0or #in! i4 )iI4()i99$ .!ring-.4neA in! -%.) 0or #in! i4()i:%)i33$ + . la media de los negativos y contar el número de ceros. <eer 8 números y mostrarlos en orden inverso al introducido.!ring-.4En!rada"en!ero#$) ? .(.con!Vcero) Ejercicios de Programación en Java B( .ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$) !-i. &ac'age bol( ej(2) &ublic class *ain + &ublic s!a!ic void main#. &ac'age bol( ej(3) &ublic class *ain + &ublic s!a!ic void main#.4neA in!-%.sumaVneg.ys!em"ou!"&rin!ln#!-i. <eer 8 números por teclado y a continuaci"n realizar la media de los números positivos.con!Vneg.$) ? ? %.) in! sumaV&os. args$ + in! !-.con!V&os.

leer y &rocesar.) con!V&os33) ? else+ sumaVneg4sumaVneg3!-i.ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$) !-i.ys!em"ou!"&rin!ln#5.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.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($ . en un solo bucle 0or #in! i4()i:%)i33$+ .I($+ sumaV&os4sumaV&os3!-i.44($ con!Vcero33) else+ i0#!-i.4En!rada"en!ero#$) ? 0or #in! i4()i:%)i33$+ i0#!-i.o se &uede reali7ar la media de nDmeros nega!ivos5$) else Ejercicios de Programación en Java B1 .) con!Vneg33) ? ? ? i0#con!V&os44($ .

ys!em"ou!"&rin!ln#5Ca can!idad de cero es de: 5 3 con!Vcero$) ? ? 0.4En!rada"en!ero#$) ? . el último. &ac'age bol( ej( ) &ublic class *ain + ebemos mostrarlos en el siguiente orden: el primero.ys!em"ou!"&rin!ln#5El resul!ado es:5$) 0or #i4()i:4 )i33$+ . etc..) ! 4 neA in!-1(.) 0or #i4()i:1()i33$+ .!ring-.ys!em"ou!"&rin!#56n!rodu7ca numero: 5$) !-i.ys!em"ou!"&rin!ln#5Ca media de los nega!ivos: 5 3 #0loa!$sumaVneg/con!Vneg$) . args$ + in! i.ys!em"ou!"&rin!ln#!-F9i. el segundo. <eer )& números enteros.$) // y el i9Ksimo &or el 0inal ? Ejercicios de Programación en Java B2 . el &ublic s!a!ic void main#. !-.ys!em"ou!"&rin!ln #!-i. el tercero.$) // mos!ramos el i9Ksimo nDmero &or el &rinci&io . penúltimo.

4En!rada"en!ero#$) ? // leemos la !abla b Ejercicios de Programación en Java B3 .ys!em"ou!"&rin!#5nDmero: 5$) a-i.) // leemos la !abla a . el (B de 1.!ring-.j) a4neA in!-1(. el (B de -. args$ + in! a-. &ac'age bol( ej(%) &ublic class *ain + &ublic s!a!ic void main#.) // la !abla c !endr@ <ue !ener el doble de !amaNo <ue a y b" c 4 neA in! -2(.. el )B de 1.// como en cada vuel!a de 0or se mues!ran dos nDmeros // &ara mos!rarlos !odos. <eer por teclado dos tablas de )& números enteros y mezclarlas en una tercera de la forma: el )B de -.) in! i..ys!em"ou!"&rin!ln#5Ceyendo la !abla a5$) 0or #i4()i:1()i33$+ .) b4neA in!-1(. b-. c-. solo necesi!aremos la mi!ad de vuel!as" ? ? 8. etc.

35 5$) ? ? .4a-i.ys!em"ou!"&rin!ln#5Ceyendo la !abla b5$) 0or #i4()i:1()i33$+ . % de la 1.) j33) ? .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. etc.ys!em"ou!"&rin!ln#5Ca !abla c <ueda: 5$) 0or #j4()j:2()j33$ // seguimos u!ili7ando j. otros % de la 1. <eer los datos correspondiente a dos tablas de )( elementos numéricos. otros % de -. y mezclarlos en una tercera de la forma: % de la tabla -.) j33) c-j.ys!em"ou!"&rin!#5nDmero: 5$) b-i. &ara la !abla c" Run<ue se &odrHa u!ili7ar i" . &ac'age bol( ej(=) Ejercicios de Programación en Java B .4b-i.ys!em"ou!"&rin!ln#55$) 6.ys!em"ou!"&rin!#c-j..

!ring-.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 Programación en Java B% .) b4neA in!-12.) // la !abla c !endr@ <ue !ener el doble de !amaNo <ue a y b" c 4 neA in! -2 . args$ + in! a-. b-.) in! i.) // leemos la !abla a ..ys!em"ou!"&rin!#5nDmero: 5$) b-i.ys!em"ou!"&rin!#5nDmero: 5$) a-i. c-..4En!rada"en!ero#$) ? // leemos la !abla b .&ublic class *ain + &ublic s!a!ic void main#.j) a4neA in!-12.ys!em"ou!"&rin!ln#5Ceyendo la !abla a5$) 0or #i4()i:12)i33$+ .ys!em"ou!"&rin!ln#5Ceyendo la !abla b5$) 0or #i4()i:12)i33$+ .

ys!em"ou!"&rin!ln#55$) Ejercicios de Programación en Java B= .ys!em"ou!"&rin!ln#5Ca !abla c <ueda: 5$) 0or #j4()j:2 )j33$ // seguimos u!ili7ando j. incremen!amos la i en 3" i343) ? // la j se incremen!a cada ve7 <ue se aNade un elemen!o a la !abla c" .A>ile #i:12$ + // co&iamos 3 de a 0or #in! '4()':3) '33$ + c-j.) j33) ? // co&iamos 3 de b 0or #in! '4()':3)'33$ + c-j.) j33) ? // como >emos co&iado 3 de a y b.35 5$) ? ? .4a-i3'. &ara la !abla c" Run<ue se &odrHa u!ili7ar i" .4b-i3'.ys!em"ou!"&rin!#c-j.

. &ac'age bol( ej(B) &ublic class *ain + &ublic s!a!ic void main#.) crecien!e 4 0alse) decrecien!e 4 0alse) Ejercicios de Programación en Java BB .!ring-.: la serie !-i. <eer por teclado una serie de )& números enteros. o si están desordenados. &ara algDn i.F. args$ + in! numeros-.I!-i31. es decrecien!e 8 8 o el caso con!rario" 8 8/ numeros 4 neA in! -1(. <a aplicaci"n debe indicarnos si los números están ordenados de forma creciente.) in! i) boolean crecien!e. decreciente. se cum&le !-i. 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. !-i31.

I numeros-i31.4En!rada"en!ero#$) ? // com&robaremos el orden 0or #i4()i:F)i33$ // usamos i e i31.ys!em"ou!"&rin!ln#5Ceyendo nDmeros:5$) 0or #i4()i:1()i33$+ . &or lo <ue la i solo &odr@ llegar >as!a E #ó :F$ + i0 #numeros-i.erie decrecien!e"5$) i0 #crecien!e 44!rue JJ decrecien!e 44!rue$ // si >a !enido momen!os crecien!e y decrecien!es .$ crecien!e 4 !rue) // en es!e momen!o es crecien!e ? // de&endiendo de los valores de crecien!e y decrecien!e daremos un !i&o de ordenación i0 #crecien!e 44!rue JJ decrecien!e 440alse$ //!oda las &arejas es!@n en orden crecien!e .ys!em"ou!"&rin!ln#5.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 .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.ys!em"ou!"&rin!ln#5Todos los nDmeros iguales"5$) // lo <ue signi0ica <ue !odos son iguales ? ? Ejercicios de Programación en Java BE .// leemos los nDmeros .ys!em"ou!"&rin!#5nDmero: 5$) numeros-i.$ // en es!e momen!o es decrecien!e decrecien!e 4 !rue) i0 #numeros-i. : numeros-i31.

args$ + in! !-.ys!em"ou!"&rin!#5Posición donde inser!ar #de ( a E$: 5$) &osicion 4 En!rada"en!ero#$) // su&ondremos <ue la &osición es!ar@ en!re ( y E" // un valor dis!in!o &odrHa dar un error en !iem&o de ejecución // una &osible mejora. ise.ys!em"ou!"&rin!#56n!rodu7ca nDmero: 5$) !-i. &ro&ues!a &ara el lec!or. espués se debe pedir un número y una posici"n. &osicion) // leemos E nDmeros .ar una aplicaci"n que declare una tabla de )& elementos enteros.G.ys!em"ou!"&rin!ln#5Ceyendo da!os"""5$) 0or #in! i4()i:E)i33$+ .!ring-.4En!rada"en!ero#$) ? // &edimos el nuevo elemen!o y la &osición . desplazando los que estén detrás. <eer mediante el teclado G números.) in! elemen!o.uevo elemen!o: 5$) elemen!o 4 En!rada"en!ero#$) . &ac'age bol( ej(E) &ublic class *ain + &ublic s!a!ic void main#.4neA in!-1(. insertarlo en la posici"n indicada. es com&robar es!o" // a>ora des&la7aremos los elemen!os de la !abla // desde &osición >as!a el Dl!imo #en es!e caso B$ Ejercicios de Programación en Java BF .ys!em"ou!"&rin!#5.

args$ + in! !-.4!-i.$) ? ? :. el segundo pasa a ser el tercero y as2 sucesivamente.) in! ul!imo) // leemos la !abla 0or #in! i4()i:1()i33$+ .ys!em"ou!"&rin!#56n!rodu7ca nDmero: 5$) !-i. 7rear un programa que lea por teclado una tabla de )& números enteros y la desplace una posici"n hacia abajo: el primero pasa a ser el segundo. El último pasa a ser el primero.0or #in! i4B)iI4&osicion)i99$ !-i31. &ac'age bol( ej(F) &ublic class *ain + &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#5Ca !abla <ueda:5$) 0or #in! i4()i:F)i33$ .!ring-.) //inser!amos el nuevo elemen!o !-&osicion.ys!em"ou!"&rin!ln#!-i.4En!rada"en!ero#$) ? // guardamos el Dl!imo elemen!o de la !abla ul!imo 4 !-F. 4elemen!o) .4neA in!-1(.) Ejercicios de Programación en Java E( .

ys!em"ou!"&rin!ln#5Ca !abla <ueda:5$) 0or #in! i4()i:1()i33$ . Qdem.$) ? ? )&.// des&la7amos >acia abajo #de ( >acia la Dl!ima &osición$ // al des&la7ar &erdemos el Dl!imo valor. 4ul!imo) .4neA in!-1(.4!-i. args$ + in! !-.4En!rada"en!ero#$) ? usuario5. desplazar O posiciones 3O es introducido por el &ac'age bol( ej1() &ublic class *ain + &ublic s!a!ic void main#.) // el Dl!imo valor &asa a ser el &rimero !-(.) in! ul!imo) in! n) // leemos la !abla 0or #in! i4()i:1()i33$+ .!ring-. // &regun!amos cuan!as &osiciones se desea des&la7ar .ys!em"ou!"&rin!#56n!rodu7ca nDmero: 5$) !-i.ys!em"ou!"&rin!ln#!-i. &or eso lo >emos guardado an!es" 0or #in! i4E)iI4()i99$ !-i31.ys!em"ou!"&rin!#5Posiciones a des&la7ar:5 $) Ejercicios de Programación en Java E1 .

conseguiremos des&la7ar n veces" es!e algori!mo es muy 0@cil de im&lemen!ar.4!-i.) // des&la7amos >acia abajo #de ( >acia la Dl!ima &osición$ // al des&la7ar &erdemos el Dl!imo valor. 4ul!imo) ? ? ? . &or eso lo !enemos guardado" 0or #in! i4E)iI4()i99$ !-i31.) // el Dl!imo valor &asa a ser el &rimero !-(.$) // un algori!mo m@s e0icien!e &ac'age bol( ej1() &ublic class *ain + Ejercicios de Programación en Java E2 . &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.n 4 En!rada"en!ero#$) // // // // del ejercicio an!erior !enemos una versión <ue des&la7a una sola &osición" .ys!em"ou!"&rin!ln#5Ca !abla <ueda:5$) 0or #in! i4()i:1()i33$ .i re&e!imos es!e &roceso n veces.ys!em"ou!"&rin!ln#!-i.

ys!em"ou!"&rin!#5Posiciones a des&la7ar:5 $) n 4 En!rada"en!ero#$) // // // // // // en el caso de des&la7ar una &osición: 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.ys!em"ou!"&rin!#56n!rodu7ca nDmero: 5$) !-i.4En!rada"en!ero#$) ? // &regun!amos cuan!as &osiciones desea des&la7ar .) // la !abla 0unciona como si 0uese circular &or eso u!ili7amos el módulo . <ue &asar@n a ser &rimero y segundo$ como a &riori no sabemos cuan!os elemen!os vamos a des&la7ar. 4co&ia-#i3n$G1(. ni cuan!os elemen!os !enemos <ue guardar" Pna buena solución es >acer una co&ia de la !abla com&le!a in! co&ia-.ys!em"ou!"&rin!ln#!-i.$) ? ? Ejercicios de Programación en Java E3 .ys!em"ou!"&rin!ln#5[n[nCa !abla <ueda:5$) 0or #in! i4()i:1()i33$ . args$ + in! !-.!ring-.) in! n) // leemos la !abla 0or #in! i4()i:1()i33$+ .&ublic s!a!ic void main#.4neA in!-1(. 4 !"clone#$) // des&la7amos >acia abajo n &osiciones 0or #in! i4()i:1()i33$ !-i.

o )&.j) 0or #in! i4()i:%)i33$ + .ys!em"ou!"&rin!#5.: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 Programación en Java E . <eer 8 elementos numéricos que se introducirán ordenados de forma creciente. ]stos los guardaremos en una tabla de tama.) in! num. args$ + in! !-. <eer un número O.4En!rada"en!ero#$) ? .ys!em"ou!"&rin!#56n!rodu7ca nDmero #ordenado crecien!emen!e$: 5$) !-i. &ac'age bol( ej11) &ublic class *ain + &ublic s!a!ic void main#.!ring-.)). e insertarlo en el lugar adecuado para que la tabla continúe ordenada.4neA in!-1(.ys!em"ou!"&rin!ln#$) .si!ioVnum.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.

Eliminar el elemento situado en la posici"n dada sin dejar huecos.ys!em"ou!"&rin!ln#!-i.4num) . args$ + in! !-.$) ? ? )(. <eer por teclado una tabla de )& elementos numéricos enteros y una posici"n 3entre & y :5.) in! &osicion) // leemos los 1( nDmeros 0or #in! i4()i:1()i33$ + .4En!rada"en!ero#$) ? Ejercicios de Programación en Java E% . &ac'age bol( ej12) &ublic class *ain + &ublic s!a!ic void main#.0or #in! i4 ) iI4si!ioVnum) i99$ !-i31.4!-i.ys!em"ou!"&rin!ln#5Ca nueva serie ordenada <ueda: 5$) 0or #in! i4()i:%31)i33$ .ys!em"ou!"&rin!#5Elemen!o #53i35$: 5$) !-i.!ring-.4neA in!-1(.) // &or Dl!imo &onemos num en su si!io &ara <ue !odo siga ordenado !-si!ioVnum.

$) // elemen!o D!il menos en la !abla ? ? )%..) // ya <ue den!ro usamos #i31$ <ue es la Dl!ima &osición // asH evi!amos salirnos de la !abla . Realizar dos versiones: una trabajando con los valores y otra trabajando con los 2ndices.ys!em"ou!"&rin!#5Posición a eliminar: 5$) &osicion4En!rada"en!ero#$) // des&la7amos desde &osición >as!a el 0inal !odos los elemen!os un lugar >acia la i7<uierda // con lo <ue el elemen!o <ue es!@ en &osición se &ierde #se borra$ 0or #in! i4&osicion)i:F)i33$ // la i llega >as!a la &enDl!ima &osición. Vuardar en otra tabla los elementos pares de la primera.""" Ejercicios de Programación en Java E= . <eer )& enteros.ys!em"ou!"&rin!ln#!-i. es decir !-(. 4 !-i31. &ac'age bol( ej13) &ublic class *ain + /88 8 En es!a versión u!ili7aremos &ara ver los elemen!os &ares o im&ares 8 los valores de la !abla. !-i...ys!em"ou!"&rin!ln#$) // leemos la &osición <ue nos in!eresa // su&onemos <ue la &osición es!@ en el rango (""F . y a continuaci"n los elementos impares. !-1.ys!em"ou!"&rin!ln#5Ca !abla <ueda: 5$) 0or #in! i4()i:F)i33$ // >ay <ue !ener cuidado <ue a>ora >ay un .

&ar-.) im&ar4neA in!-con!Vim&ar.ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$) !-i.G244($ con!V&ar33) else con!Vim&ar33) // creamos las !ablas &ar e im&ar del !amaNo adecuado &ar4neA in!-con!V&ar. args$ + in! !-.) in! con!V&ar.!ring-.) // Ceemos los valores de la !abla 0or #in! i4()i:1()i33$+ .) // con!ador de nDmeros &ares y !abla &ara guardarlos 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 Programación en Java EB .8/ &ublic s!a!ic void main#.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.im&ar-.) // Hdem &ara los im&ares ! 4 neA in!-1(.

4!-i..ys!em"ou!"&rin!ln#5[n[nTabla &ar:5$) 0or #in! i4()i:con!V&ar)i33$ .) in! &ar-.) con!Vim&ar33) ? .) con!V&ar33) ? else + im&ar-con!Vim&ar. !-2.4!-i...!.ys!em"ou!"&rin!ln#&ar-i.) Ejercicios de Programación en Java EE ..""" 8 en im&ar !-1. args$ + in! !-.ys!em"ou!"&rin!ln#im&ar-i.$) .!ring-.i0#!-i.G244($ + &ar-con!V&ar.ys!em"ou!"&rin!ln#5Tabla im&ar:5$) 0or #in! i4()i:con!Vim&ar)i33$ .$) ? ? &ac'age bol( ej13) &ublic class *ain + /8 8 En es!a versión nos 0ijaremos en los Hndices &ares e im&ares 8 en &ar se incluir@ !-2.""" 8/ &ublic s!a!ic void main#.

4 !-i.ys!em"ou!"&rin!ln#im&ar-i.in! im&ar-.) // Ceemos los valores de la !abla 0or #in! i4()i:1()i33$+ .$) ? ? Ejercicios de Programación en Java EF .$) . 4 !-i.) // debajo: 1/2 4(.) 0or #in! i41)i:1()i342$ // la división en!era redondeada >acia el en!ero m@s &ró1imo &or im&ar-i/2.ys!em"ou!"&rin!ln#&ar-i.) // co&iamos cada elemen!o en la !abla adecuada 0or #in! i4()i:1()i342$ &ar-i/2.) im&ar4neA in!-%.ys!em"ou!"&rin!ln#5Tabla im&ar:5$) 0or #in! i4()i:%)i33$ . 3/2 41.ys!em"ou!"&rin!#56n!rodu7ca un nDmero: 5$) !-i.) ! 4 neA in!-1(. e!c" .4En!rada"en!ero#$) ? // creamos las !ablas &ar e im&ar del !amaNo adecuado #%$ &ar4neA in!-%.ys!em"ou!"&rin!ln#5[n[nTabla &ar:5$) 0or #in! i4()i:%)i33$ .

ys!em"ou!"&rin!ln#$) // creamos c Ejercicios de Programación en Java F( . de forma que sigan ordenados. <eer dos series de )& enteros. b-.)0.ys!em"ou!"&rin!ln#5Ua!os &ara a:5$) 0or #i4()i:1()i33$+ .4En!rada"en!ero#$) ? .ys!em"ou!"&rin!#56n!rodu7ca numero #orden crecien!e$: 5$) a-i.ys!em"ou!"&rin!#56n!rodu7ca numero #orden crecien!e$: 5$) b-i.ys!em"ou!"&rin!ln#5[nUa!os &ara b:5$) 0or #i4()i:1()i33$+ .. 7opiar 3fusionar5 las dos tablas en una tercera.') a 4neA in!-1(.. que estarán ordenados crecientemente.j. &ac'age bol( ej1 ) &ublic class *ain + &ublic s!a!ic void main#. args$ + in! a-.!ring-.) // leemos a . c-.) b 4neA in!-1(.) in! i.4En!rada"en!ero#$) ? // leemos b .

&ara // en la siguien!e vuel!a. 4 a-i. 4 b-j.$ // nos in!eresa el elemen!o de a + c-'.) j33) '33) ? else // >ay <ue co&iar el res!o de a en c A>ile #i:1($ // como >emos co&iado a c-'. <ueda &or co&iar un res!o de b A>ile #j:1($ + c-'.) // comen7amos a 0usionar i4() // u!ili7aremos i j4() // u!ili7aremos j '4() // u!ili7aremos ' a y b en c como Hndice de a) como Hndice de b) como Hndice de c A>ile#i:1( JJ j:1($ + i0 #a-i..) i33) // incremen!amos i &ara !omar el siguien!e elemen!o de a ? else + c-'. incremen!amos '. u!ili7ar el siguien!e >ueco de la !abla Ejercicios de Programación en Java F1 .) j33) // incremen!amos j &ara !omar el siguien!e elemen!o de b ? '33) ? // 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.c 4 neA in! -2(. : b-j. 4 b-j.

args$ + in! !-. 4 a-i.4neA in!-1(. &ac'age bol( ej1%) &ublic class *ain + &ublic s!a!ic void main#. <eer )& enteros ordenados crecientemente. >e debe mostrar la posici"n en que se encuentra. >i no está. indicarlo con un mensaje.ys!em"ou!"&rin!#56n!rodu7ca numero #orden crecien!e$: 5$) !-i.4En!rada"en!ero#$) ? .ys!em"ou!"&rin!ln#$) Ejercicios de Programación en Java F2 .+ c-'. <eer O y buscarlo en la tabla. 3 5 .ys!em"ou!"&rin!ln#5*os!ramos la !abla c:5$) 0or #'4()':2()'33$ .j) 0or #in! i4()i:1()i33$+ .) in! num.ys!em"ou!"&rin!#c-'.ys!em"ou!"&rin!ln#55$) ? ? 5$) )8.!ring-.) i33) '33) ? .

>e pide leer las notas del primer.44num$ // num es!@ en la &osición i" En!onces si es!@ a>H .ys!em"ou!"&rin!ln#5Encon!rado en la &osición 5 3 j$) else .. 7ada grupo 3o clase5 está compuesto por 8 alumnos. ^ueremos desarrollar una aplicaci"n que nos ayude a gestionar las notas de un centro educativo. &ac'age bol( ej1=) &ublic class *ain + Ejercicios de Programación en Java F3 .ys!em"ou!"&rin!ln#5.ys!em"ou!"&rin!ln#5.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" . : num.o encon!rado5$) else+ // si !-j.o encon!rado5$) ? ? ? )6. sin encon!rarlo i0#!-j. 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. segundo y tercer trimestre de un grupo. >emos sobre&asado el lugar donde deberHa es!ar num.

sumaVsegundo. args$ + in! &rimer-.) !ercer 4 neA in! -%.e &odrHan &rocesar las // no!as mien!ras se leen" Pre0erimos u!ili7ar dos blo<ues &or !ener un código m@s legible" // leemos las no!as del &rimer !rimes!re .!ring-.ys!em"ou!"&rin!#5Rlumnos #53i35$: 5$) &rimer-i..4En!rada"en!ero#$) ? // leemos las no!as del !ercer !rimes!re .ys!em"ou!"&rin!#5Rlumno #53i35$: 5$) segundo-i.&ublic s!a!ic void main#.) // el &rograma cons!a de dos &ar!es: en!rada de da!os y &rocesado" .) segundo 4 neA in! -%.ys!em"ou!"&rin!ln#5.i) in! sumaV&rimer.ys!em"ou!"&rin!ln#5..o!as de &rimer !rimes!re:5$) 0or #i4()i:%)i33$+ .o!as del !ercer !rimes!re:5$) 0or #i4()i:%)i33$+ . sumaV!ercer) double mediaValumno) // creamos las !ablas necesarias &rimer 4 neA in! -%. segundo-.ys!em"ou!"&rin!#5Rlumnos #53i35$: 5$) !ercer-i.4En!rada"en!ero#$) Ejercicios de Programación en Java F .4En!rada"en!ero#$) ? // leemos las no!as del segundo !rimes!re . !ercer-.o!as del segundo !rimes!re:5$) 0or #i4()i:%)i33$+ .ys!em"ou!"&rin!ln#5.) // no!as del &rimer. segundo y !ercer !rimes!re in! num.

? // 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 &osición 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 &osición 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 Programación en Java

F%

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. espués 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%

&olet4n ,

0or #in! i4()i:%)i33$ // u!ili7amos i &ara la &rimera dimensión + 0or #in! j4()j:%)j33$ // u!ili7amos j &ara la segunda dimensión + !-i.-j.4i3j) ? ? ,ys!em"ou!"&rin!ln#5TRBCR: 5$)

Ejercicios de Programación 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 simétrica 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 Programación 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 solución 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 solución 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 Programación en Java

FE

) in! i.o %!%.4En!rada"en!ero#$) ? ? . sumarlas y mostrar su suma.-3.-53j35.ys!em"ou!"&rin!ln #5*a!ri7 R:5$) 0or #i4()i:3)i33$ + 0or #j4()j:3)j33$ + .ys!em"ou!"&rin!#5B-53i35.) b 4 neA in!-3.-. suma-.4En!rada"en!ero#$) ? ? Ejercicios de Programación en Java FF .-3.-53j35.. &ac'age bol(%ej(3) &ublic class *ain + &ublic s!a!ic void main#.j) a 4 neA in!-3. args$ + in! a-.ys!em"ou!"&rin!#5R-53i35.: 5$) a-i.-.) // Ceemos los da!os . b-.ys!em"ou!"&rin!ln #5*a!ri7 B:5$) 0or #i4()i:3)i33$ + 0or #j4()j:3)j33$ + .!ring-.-j.. 7rear y cargar dos matrices de tama.-j.: 5$) b-i.%.-.

) Ejercicios de Programación en Java 1(( .o %!%.ys!em"ou!"&rin!ln #$) ? ? ? 0.ys!em"ou!"&rin! #suma-i. 3 b-i.ys!em"ou!"&rin!ln #5*a!ri7 .-3. 4 a-i.4neA in!-3.) 0or #i4()i:3)i33$ + 0or #j4()j:3)j33$ + suma-i. 3 5 5$) ? . args$ + in! !-.-j.uma:5$) 0or #i4()i:3)i33$ + 0or #j4()j:3)j33$ + . &ac'age bol(%ej( ) &ublic class *ain + &ublic s!a!ic void main#.-j.-j. trasponerla y mostrarla.!ring-.// >acemos la suma suma 4 neA in!-3. 7rear y cargar una tabla de tama.-.-3.-j.) ? ? // mos!ramos los resul!ado .

-i.-j.in! au1) 0or #in! i4()i:3)i33$+ 0or #in! j4()j:3)j33$+ .) !-j.: 5$) !-i.ys!em"ou!"&rin! #5*a!ri7 original:5$) 0or #in! i4()i:3)i33$+ .""" &ero cuando !rans&ongamos el elemen!o -2.-j.4En!rada"en!ero#$) ? ? // mos!ramos la ma!ri7 original .35 5$) ? ? // // // // !ras&onemos la ma!ri7 no &odemos !rans&oner !odos los elemen!os" Pn ejem&lo el elemen!o !-1.-j.4au1) ? ? Ejercicios de Programación en Java 1(1 .-1.ys!em"ou!"&rin!#!-i.ys!em"ou!"&rin!#56n!rodu7ca elemen!o-53i35. se convier!e en el -1.) !-i." Rl in!ercambiar dos veces los elemen!o.-2.-1.ys!em"ou!"&rin!ln#$) 0or #in! j4()j:3)j33$+ .-53j35. se convier!e en el -2.-i.4!-j. 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.-2.

ys!em"ou!"&rin!ln#$) . args$ + in! !-.ys!em"ou!"&rin!ln #5*a!ri7 !rans&ues!a5$) 0or #in! i42)iI4()i99$+ .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#. 7rear una tabla de tama.j) 0or #i4()i:B)i33$ 0or #j4()j:B)j33$ i0 #i44j$ !-i. 4 1) else !-i. !odos los elemen!os se Ejercicios de Programación en Java 1(2 .-B. al crear una !abla de en!eros.) in! i.35 5$) ? ? ? ? 8.-j.-j.ys!em"ou!"&rin!#!-i.ys!em"ou!"&rin!ln#$) 0or #in! j4()j:3)j33$+ .ys!em"ou!"&rin!ln#59999999999999999999995$) .!ring-.4neA in!-B.-j. 4 () // en java.// mos!ramos la ma!ri7 !rans&ues!a .

ys!em"ou!"&rin!#!-i.4neA in!.-53j35.) in! sumaV0ila.// iniciali7an a (" Por lo <ue es!a ins!rucción no es necesaria" .35 5$) . args$ + in! !-. mostrar la suma de cada fila y de cada columna.ys!em"ou!"&rin!#5Elemen!o -53i35.e aNaV // de &ara <ue el código 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" ..-j.!ring-..ys!em"ou!"&rin!ln #5*a!ri7:5$) 0or #i4()i:B)i33$ + 0or #j4()j:B)j33$ .o )&!)&. &ac'age bol(%ej(=) &ublic class *ain + &ublic s!a!ic void main#.: 5$) Ejercicios de Programación en Java 1(3 ..sumaVcol) in! i.ys!em"ou!"&rin!ln #$) ? ? ? 6.) 0or #i4()i:!amaNo)i33$+ 0or #j4()j:!amaNo)j33$+ .j) 0inal in! !amaNo4 ) ! 4 neA in!-!amaNo. 7rear y cargar una tabla de tama.-!amaNo.-.

!ring-.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. cargar la primera y trasponerla en la segunda.-j. &ac'age bol(%ej(B) &ublic class *ain + &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#$) 0or #i4()i:!amaNo)i33$+ sumaVcol4() 0or #j4()j:!amaNo)j33$+ sumaVcol4sumaVcol3!-i.-j.-j..? ? !-i. b-.-.) Ejercicios de Programación en Java 1( . args$ + in! a-. utilizando dos tablas de tama.4En!rada"en!ero#$) // sumamos columna a columna .o 8!: y :!8.-.) ? .ys!em"ou!"&rin!ln#5Fila535 53j35:535 53sumaV0ila$) ? ? ? F.) ? .

) ? ? // mos!ramos la ma!ri7 !ras&ues!a .-j.ys!em"ou!"&rin!#5Elemen!o -53i35.: 5$) a-i.j) a 4 neA in!-%.4En!rada"en!ero#$) // si <ueremos a>orrarnos in!roducir %1F # %$ nDmeros.ys!em"ou!"&rin! #b-i. 4 a-i.-j.-j.) b 4 neA in! -F.) 0or #i4()i:%)i33$+ 0or #j4()j:F)j33$+ .-j. 3 5 5$) .in! i.-F.-i. &odemos comen!ar las // dos lineas an!eriores y u!ili7ar #&or ejem&lo$: // a-i.-53j35. 4 1(8i3j) ? ? // !ras&onemos 0or #i4()i:%)i33$+ 0or #j4()j:F)j33$+ b-j.ys!em"ou!"&rin!ln#5*a!ri7 !ras&ues!a5$) 0or #i4()i:F)i33$+ 0or #j4()j:%)j33$ .-%.ys!em"ou!"&rin!ln #$) ? ? ? Ejercicios de Programación en Java 1(% .

) ! 4 neA in!-E. Zacer lo mismo que el ejercicio anterior. Ejercicios de Programación en Java 1(= .) // 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.!ring-.-j.o G!6: todos sus elementos deben ser & salvo los de los bordes que deben ser ).ys!em"ou!"&rin!ln #$) ? ? :. &ac'age bol(%ej(E) &ublic class *ain + &ublic s!a!ic void main#.j) in! !-.ys!em"ou!"&rin!#5*a!ri7 marco: 5$) 0or #i4()i:E)i33$+ .35 5$) ? ? .ys!em"ou!"&rin! #!-i.G.-j.-.41) ? .ys!em"ou!"&rin!ln#$) 0or #j4()j:=)j33$+ .41) i0#j44( QQ j44%$ // si nos encon!ramos en la &rimera o Dl!ima 0ila !-i. args$ + in! i. pero con una matriz :!:!:. 7reamos un cubo con las caras puestas a ) y el interior a &. +ostrarla. 7rear una matriz SmarcoT de tama.

ys!em"ou!"&rin!ln #5 99999999999999 5$) ? Ejercicios de Programación en Java 1(B .-'. 0ila o ca&a de la ma!ri7 !-i.!ring-.-j.-F. args$ + in! !-.) in! i.ys!em"ou!"&rin!ln#5*a!ri7: 5$) 0or #i4()i:F)i33$ + .41) ? ? ? // *os!ramos la ma!ri7 ca&a a ca&a .ys!em"ou!"&rin!ln #$) ? .') ! 4 neA in!-F.&ac'age bol(%ej(F) &ublic class *ain + &ublic s!a!ic void main#.-.-F.j. 3 5 5$) ? .-.-'.ys!em"ou!"&rin!#!-i.) 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.ys!em"ou!"&rin!ln#5Ca&a: 5 3i$) 0or #j4()j:F)j33$ + 0or #'4()':F)'33$ + .-j.

(.J)&&K EO9ERA> 7A+/EOXA n  )& .-R.-R.-R.0 leer 3tJiK5 */O . G.0 >/ tJiK _ m m  tJiK */O >/ */O . Ejercicios de Programación en Java 1(E . G.Ej)&b 4-R/-1<E> n.n$) >/ i mod ( C & escribir 3aJiK5 >/OA escribir 3bJiK5 */O >/ */O .? ? )&.n#( bJiK  aJn$)$iK bJn$)$iK  aJiK */O .RAVR-+.i  & Z->9.-R.-R.i& Z->9. <os siguientes programas piden una serie de datos y tras procesarlos ofrecen unos resultados por pantalla.i  & Z->9. (. a: EO9ERA> t: 9-1<.RAVR-+atos de entrada: $0. (. b: 9-1<. ).-Ra  tJ0$mK tJ0$mK  tJmK tJmK  a .-R.-Rm  & .0 escribir 3tJiK5 */O .-R.RAVR-+.-R. :. % y (. m. i: EO9ERA> a.n$) leer 3aJiK5 */O . .J8K EO9ERA> 7A+/EOXA . 8. 6 y ).RAVR-+atos de entrada: 6.Ej)&a 4-R/-1<E> i.i  & Z->9.i& Z->9.-R*/O .-R*/O . &. +ostrar el resultado: .i  & Z->9.

(.) !-m. 1. al u!ili7ar da!os como Hndices de !ablas sin las &er!inen!es com&robaciones" in! ! 4 neA in! -%.!ring-.) !. 2?) m 4 () 0or #i4() i:4 ) i33$ i0 #!-i.9m. escribir el código 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.) 0or #i4() i:4 ) i33$ !-i. 3. I m $ m 4 !-i. 4 a) 0or #i4() i:4 ) i33$ . args$ + in! i. y !ras Ks!a.) a 4 !.ys!em"ou!"&rin!ln #!-i.9m. m.&ac'age bol(%ej1() &ublic class *ain + &ublic s!a!ic void main#. a) // // // // // // la idea de es!e ejercicio es >acer una !ra7a de 0orma manual.$) ? ? Ejercicios de Programación en Java 1(F . 4 En!rada"en!ero#$) // &odemos sus!i!uir la lec!ura de da!os &or la siguien!e lHnea: //in! !-. 4 !-m. 4 +9 .

4 neA in! -1(.) in! b-.$) else . 2. 4 a-n919i. escribir el código 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.ys!em"ou!"&rin!ln #b-i. 2. %. al u!ili7ar da!os como Hndices de !ablas sin las &er!inen!es com&robaciones" 8/ in! a-. i) /8 la idea de es!e ejercicio es >acer una !ra7a de 0orma manual.) ? 0or #i4() i:n) i33$ i0 #i G 2 44 ($ . 1?) n 4 1() 0or #i4() i:4n/2) i33$ + b-i. y !ras Ks!a.ys!em"ou!"&rin!ln #a-i. 4 neA in! -1(.) b-n919i.$) ? ? Ejercicios de Programación en Java 11( .&ac'age bol(%ej1() &ublic class *ain + &ublic s!a!ic void main#. args$ + in! n. F. E. 4 a-i. E.!ring-. 4 +=. 2. =.) 0or #i4() i:4n) i33$ a-i. 4 En!rada"en!ero#$) // &odemos sus!i!uir la declaración de a y la lec!ura de da!os &or la siguien!e lHnea: // in! a-.

9ras procesar cada opci"n. y 2((2 in! o&c.. hasta que se seleccione la opci"n 0.!ring-. de mayor a menor. >i se selecciona ).-. >us datos se irán introduciendo en el mismo orden que vayan inscribiéndose los atletas.Dmero m@1imo de &ar!ici&an!es // U: nDmero de dorsal // *(. +ostrar listado de datos. El número de plazas disponible es de )&. <a opci"n % mostrará un listado ordenado por la marca del (&&(.) numc4() o&c4() Ejercicios de Programación en Java 111 .*(41. +ostrar listado por marcas. >i se elige la opci"n (.in!er) in! &ar!-. mejor marca del (&&) y mejor marca del (&&&. se debe mostrar un listado por número de dorsal.au1) boolean dVre&. se introducirán los datos de uno de los participantes: Oombre. &ac'age bol(%ej11) &ublic class *ain + &ublic s!a!ic void main#.))$>e pretende realizar un programa para gestionar la lista de participaciones en una competici"n de salto de longitud. 2((1.*243) // TR*: .. mejor marca del (&&(.ar el programa que muestre las siguientes opciones: )$ ($ %$ 0$ /nscribir un participante.U4(. *inalizar el programa. *1. args$ + 0inal in! TR*41(. se debe mostrar de nuevo el menú inicial.numc.*142.4neA in!-TR*. que terminará el programa. ise. *2: *arca del 2(((.i.dorsal.

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.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.-U.ys!em"ou!"&rin!ln#$) .-*(.4En!rada"en!ero#$) Ejercicios de Programación en Java 112 .44dorsal$+ . in!rodu7ca una o&ción: 5$) o&c4En!rada"en!ero#$) .ys!em"ou!"&rin!#56n!rodu7ca marca del 2(((: 5$) &ar!-numc.ys!em"ou!"&rin!ln#$) sAi!c>#o&c$+ case 1: i0#numc442($ .ys!em"ou!"&rin!#5Por 0avor.do+ .ys!em"ou!"&rin!ln#51" 6nscribir &ar!ici&an!es5$) .alir5$) .ys!em"ou!"&rin!ln#52" *os!rar lis!ado &or da!os5$) .ys!em"ou!"&rin!ln#5 " .ys!em"ou!"&rin!ln#53" *os!rar lis!ado &or marcas5$) .ys!em"ou!"&rin!ln#5999999999999999999999999999999995$) .ys!em"ou!"&rin!ln#5Cis!ado com&le!o5$) else+ do+ .4dorsal) .ys!em"ou!"&rin!ln#5999999999999999999999999999999995$) .ys!em"ou!"&rin!#5Uorsal regis!rado"5$) .

con!rolado &or in!ercambio in!er4!rue) A>ile#in!er44!rue$+ in!er40alse) 0or #in! j4()j:4numc9191)j33$+ i0#&ar!-j.4En!rada"en!ero#$) .-'. ULS.ys!em"ou!"&rin!#56n!rodu7ca marca del 2((2: 5$) &ar!-numc.$+ 0or #in! '4()': )'33$+ au14&ar!-j.4&ar!-j31.TRUL UE URTL.35 5$) ? ? brea') case 3: Ejercicios de Programación en Java 113 .-'.E^P.RC:5$) .-'.-'..-U.ys!em"ou!"&rin!#&ar!-j.I&ar!-j31..ys!em"ou!"&rin!ln#$) numc33) ? ? brea') case 2: // mK!odo de ordenación &or burbuja.-*2.-'.ys!em"ou!"&rin!ln#$) 0or #in! '4()': )'33$+ .4au1) ? in!er4!rue) ? ? ? .) &ar!-j.) &ar!-j31.-*1..ys!em"ou!"&rin!ln #5dorsal 9 marcas5$) 0or #in! j4()j:numc)j33$+ .4En!rada"en!ero#$) .ys!em"ou!"&rin!ln#5C6.ys!em"ou!"&rin!#56n!rodu7ca marca del 2((1: 5$) &ar!-numc.-U.

$+ 0or #in! '4()': )'33$+ au14&ar!-j.) &ar!-j.ys!em"ou!"&rin!#&ar!-j.-'.-'.4au1) ? in!er4!rue) ? ? ? .-'.I&ar!-j31.-'.35 5$) ? ? brea') Ejercicios de Programación en Java 11 .-*2.ys!em"ou!"&rin!ln#$) 0or #in! '4()': )'33$+ .? ? A>ile#o&cT4 $) ? ? in!er4!rue) A>ile#in!er44!rue$+ in!er40alse) 0or #in! j4()j:4numc9191)j33$+ i0#&ar!-j.) &ar!-j31.4&ar!-j31.ys!em"ou!"&rin!ln #5dorsal 9 marcas5$) 0or #in! j4()j:numc)j33$+ . :5$) .ys!em"ou!"&rin!ln#5C6.-*2.TRUL PLS *RSCR.-'.

Realizar una funci"n.ys!em"ou!"&rin!ln#59999999999999999999999999995$) mos!rar#num$) .&olet4n + Funciones ). d!lo e5ec!t6ndoseT &ac'age bol(=ej(1) &ublic class *ain + &ublic s!a!ic void main#. a la que se le pase como parámetro un número O.ys!em"ou!"&rin!ln#59999999999999999999999999995$) ? ? s!a!ic void mos!rar#in! num$+ 0or #in! i4()i:num)i33$+ . el mensaje: S.ys!em"ou!"&rin!#56n!rodu7ca un numero: 5$) num4En!rada"en!ero#$) . args$ + in! num) .!ring-. y muestre por pantalla O veces.ys!em"ou!"&rin!ln#5*ódulo ejecu!@ndose5$) ? ? Ejercicios de Programación en Java 11% .

(.b) . b$) . y que calcule el má!imo. ise.ar una funci"n que tenga como parámetros dos números. in! b$+ in! ma1) i0#aIb$ ma14a) else ma14b) ? re!urn#ma1$) // su&onemos <ue los !res nDmeros ser@n dis!in!os &ublic s!a!ic void main#.!ring-.ys!em"ou!"&rin!ln#5El nDmero mayor es: 5 3ma1$) ? ? Ejercicios de Programación en Java 11= . &ac'age bol(=ej(2) &ublic class *ain + s!a!ic in! ma1imo#in! a.ys!em"ou!"&rin!#56n!rodu7ca un numero: 5$) a4En!rada"en!ero#$) . args$ + in! ma1) in! a.ys!em"ou!"&rin!#56n!rodu7ca o!ro numero: 5$) b4En!rada"en!ero#$) ma1 4ma1imo #a.

Qdem una versi"n que calcule el má!imo de % números.ys!em"ou!"&rin!#56n!rodu7ca o!ro numero: 5$) b4En!rada"en!ero#$) .%. en!onces b es el m@1imo ma14b) else // si el m@1imo no es a ni 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. args$ + in! ma1) in! a. ser@ c ma14c) ? re!urn#ma1$) &ublic s!a!ic void main#. in! b. b.ys!em"ou!"&rin!#56n!rodu7ca el Dl!imo: 5$) c4En!rada"en!ero#$) Ejercicios de Programación en Java 11B . &ac'age bol(=ej(3) &ublic class *ain + s!a!ic in! ma1imo#in! a.!ring-. c) .ys!em"ou!"&rin!#56n!rodu7ca un numero: 5$) a4En!rada"en!ero#$) .

es el nuevo m@1imo ma14!-i.$+ in! ma1) ma1 4 !-(.ys!em"ou!"&rin!ln#55$) ma1 4ma1imo #a. en!onces !-i.) Ejercicios de Programación en Java 11E . Qdem una versi"n que calcule el má!imo de una tabla de n elementos.!ring-. c$) . es mayor <ue ma1.) 0or #in! i 4 () i : !"leng!>) i33$ i0 #!-i. b. args$ + in! ma1) in! !-..) re!urn#ma1$) ? &ublic s!a!ic void main#.Ima1$ // si !-i. &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! !-.ys!em"ou!"&rin!ln#5El nDmero mayor es: 5 3ma1$) ? ? 0.

&ac'age bo(l=ej(%) &ublic class *ain + s!a!ic void mos!rar#in! a. *unci"n a la que se le pasan dos enteros y muestra todos los números comprendidos entre ellos.) 0or #in! i 4 () i : !"leng!>) i33$ // llenamos la !abla con valores alea!orios en!re 1 y 1(( !-i.in! b$+ in! mayor.e &odrHa u!ili7ar la 0unción ma1imo#$ im&lemen!ada an!eriormen!e" mayor4a) menor4b) ? else+ // en es!e caso b ser@ el mayor Ejercicios de Programación en Java 11F . inclusive.ys!em"ou!"&rin!#!-i.ys!em"ou!"&rin!ln#5Cos valores son:5$) 0or #in! i 4 () i : !"leng!>) i33$ . menor) // desconocemos el orden en el <ue vienen a y b" // Co <ue >aremos es &oner los valores correc!os en mayor.4#in!$#*a!>"random#$81((31$) . 35 5$)) ma1 4 ma1imo #!$) .ys!em"ou!"&rin!ln#5[nEl nDmero mayor es: 5 3ma1$) ? ? 8. menor" i0#aIb$+ // a es el mayor" .!4neA in! -=.

ys!em"ou!"&rin!#56n!rodu7ca segundo numero: 5$) b4En!rada"en!ero#$) mos!rar#a. args$ + in! a.ys!em"ou!"&rin!#56n!rodu7ca &rimer numero: 5$) a4En!rada"en!ero#$) . *unci"n que muestra en pantalla el doble del valor que se le pasa como parámetro.b$) ? ? 6.b) . &ac'age bol(=ej(=) &ublic class *ain + s!a!ic void doble#in! num$ + Ejercicios de Programación en Java 12( .ys!em"ou!"&rin!ln#$) ? &ublic s!a!ic void main#.mayor4b) menor4a) ? 0or #in! i4menor)i:4mayor)i33$ .!ring-.ys!em"ou!"&rin!#i35 5$) .

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

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.!i&oVcalculo$) ? ? G.ys!em"ou!"&rin!#56n!rodu7ca radio: 5$) radio4En!rada"real#$) . Qdem que devuelva una tabla con el área y el volumen.al!) c>ar !i&oVcalculo) . args$ + double radio.al!.? ? brea') case OaO: area 4 28*a!>"P68radio8al!ura 3 28*a!>"P68radio8radio) .ys!em"ou!"&rin!ln#56ndicador del c@lculo erróneo5$) &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#5El @rea es de: 53area$) brea') de0aul!: . &ac'age bol(=ej(E) &ublic class *ain + Ejercicios de Programación en Java 122 .!ring-.ys!em"ou!"&rin!#56n!rodu7ca al!ura: 5$) al!4En!rada"real#$) .

) // -(.$) . ya <ue a&un!a a // la !abla creada den!ro de la 0unción .ys!em"ou!"&rin!ln#5El @rea es de: 5 3resul!ado-1.!ring-.area) double calculo-.) //es!a !abla no necesi!a neA. 428*a!>"P68radio8al!ura 3 28*a!>"P68radio8radio) re!urn #calculo$) ? &ublic s!a!ic void main#.) calculo 4 neA double -2.al!) double resul!ado-.s!a!ic double-. &ara el volumen y -1. areaVyVvolumenVcilindro#double radio. args$ + double radio.ys!em"ou!"&rin!ln#5El volumen es de: 5 3resul!ado-(. double al!ura$ + double volumen. &ara el @rea calculo-(. 4*a!>"P68radio8radio8al!ura) // radio8radio es el radio al cuadrado calculo-1.$) ? ? Ejercicios de Programación en Java 123 .ys!em"ou!"&rin!#56n!rodu7ca al!ura: 5$) al!4En!rada"real#$) resul!ado 4areaVyVvolumenVcilindro#radio.ys!em"ou!"&rin!#56n!rodu7ca radio: 5$) radio4En!rada"real#$) .al!$) // resul!ado >ace re0erencia a la !abla devuel!a // &or la 0unción" .

+"dulo al que se le pasa un número entero y devuelve el número de divisores primos que tiene.:. &ac'age bol(=ej(F) &ublic class *ain + // la 0unción 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 Programación en Java 12 .

al no ser &rimos &or lo <ue 2 !iene !res divisores &rimos: el 1. 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#.// // // // // // es!a 0unción 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. args$ + in! num. el 2 y el 3" s!a!ic in! numVdivisores #in! num$+ in! con!) con!41) // siem&re >abr@ un divisor seguro.div) .!ring-.ys!em"ou!"&rin!ln#5Tiene 5 3div3 5 divisores5$) Ejercicios de Programación en Java 12% .ys!em"ou!"&rin!#56n!roduce numero: 5$) num4En!rada"en!ero#$) div4numVdivisores#num$) ? ? .

ar una funci"n que devuelve una tabla con los divisores. &ac'age bol(=ej1() &ublic class *ain + // la 0unción 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.Qdem dise. 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 Programación en Java 12= .)&.

divisores#in! num$+ in! con!4() in! div-. al no ser &rimos &or lo <ue 2 !iene !res divisores #el 1. 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! -. no se consideran divisores.) 0or #in! i41)i:4num)i33$ i0#esV&rimo #i$ JJ num Gi 44 ($ // si i es &rimo y divide a num Ejercicios de Programación en Java 12B . el 2 y el 3$ s!a!ic in! numVdivisores#in! num$+ in! con!) con!41) // siem&re >abr@ un divisor seguro.// // // // // // // es!a 0unción 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 .) // !abla donde guardaremos los divisores) in! numVdiv) // nDmero de divisores &rimos <ue !iene num" numVdiv 4 numVdivisores #num$) div 4neA in!-numVdiv.

!ring-.ys!em"ou!"&rin!#56n!roduce numero: 5$) num4En!rada"en!ero#$) divisores 4divisores#num$) . args$ + in! num.Escribir una funci"n que calcule el má!imo común divisor de dos números. 4i) con!33) // incremen!amos el nDmero de divisores &ublic s!a!ic void main#. divisores-. 3 5 5$) .ys!em"ou!"&rin!ln#55$) ? ? )).ys!em"ou!"&rin!ln#5Cos divisores de 5 3 num 3 5 son:5$) 0or #in! i 4 () i : divisores"leng!>) i33$ .+ ? re!urn#div$) ? div-con!. &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 Programación en Java 12E .ys!em"ou!"&rin!#divisores-i.) .

in! b$+ in! min) i0#aIb$ min4b) else min4a) ? re!urn#min$) &ublic s!a!ic void main#.b$) mcd41) // e1is!e un mcd seguro.!ring-.// Ca idea es dividir &or !odos los nDmeros desde 1 >as!a mHnimo#a. <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. args$ + in! a. b. b$ // y <uedarnos con el mayor" s!a!ic in! ma1VcomunVdivisor #in! a. el 1. in! b$ + in! mcd41) in! min) min 4 minimo #a. mcd) Ejercicios de Programación en Java 12F .

ys!em"ou!"&rin!#56n!roduce numero: 5$) a4En!rada"en!ero#$) . in! c$ + in! mcd41) in! min) // &ara no im&lemen!ar la 0unción mHnimo &ara !res nDmeros Ejercicios de Programación en Java 13( . in! b.Qdem con tres números. &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$) ? ? .ys!em"ou!"&rin!ln#5El mcd de 53a35 y 53b35 es: 53mcd$) )(.ys!em"ou!"&rin!ln#55$) mcd 4 ma1VcomunVdivisor #a.ys!em"ou!"&rin!#56n!roduce o!ro: 5$) b4En!rada"en!ero#$) . b. c$ y <uedarnos con el mayor" s!a!ic in! ma1VcomunVdivisor #in! a.

ys!em"ou!"&rin!#56n!roduce a: 5$) a4En!rada"en!ero#$) . args$ + in! a.!ring-.ys!em"ou!"&rin!#56n!roduce b: 5$) b4En!rada"en!ero#$) .c$$) mcd41) // e1is!e un mcd seguro.// u!ili7aremos la 0unción con solo dos &ar@me!ros) min 4 minimo #a.minimo#b. mcd) . <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#. b.c . el 1.ys!em"ou!"&rin!#56n!roduce c: 5$) Ejercicios de Programación en Java 131 .

Qdem con una tabla.ys!em"ou!"&rin!ln#5El mcd de #53a35.c4En!rada"en!ero#$) . 53b35. c$ y <uedarnos con el mayor" 8/ s!a!ic in! ma1VcomunVdivisor #in! !-. &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. c$) . b.$ + 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 Programación en Java 132 .ys!em"ou!"&rin!ln#55$) mcd 4 ma1VcomunVdivisor #a. b. 53c35$ es: 53mcd$) ? ? )%.

el 1" 0or #in! i42)i:4min)i33$ + divideVaV!odos 4!rue) 0or #in! '4()':!"leng!>)'33$ i0# !-'. min debe !ener el valor mHnimo de !oda la !abla" mcd41) // e1is!e un mcd seguro.GiT4($ // si i divide a !-i.) // u!ili7aremos la 0unción con solo dos &ar@me!ros) 0or #in! i 4 () i : !"leng!>) i33$ min 4 minimo #min. in! b$+ in! min) i0#aIb$ min4b) else min4a) re!urn#min$) Ejercicios de Programación en Java 133 .// es!o 0unciona &ara !abla con al menos un valor min 4 !-(.$) // al !erminar el 0or. 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.!-i.

args$ + in! !-. 35 5$) . &ac'age bol(=ej1 ) &ublic class *ain + Ejercicios de Programación en Java 13 .!ring-.Escribir una funci"n que calcule el m2nimo común múltiplo de dos números. 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$ .. mcd) ! 4 neA in! .ys!em"ou!"&rin!ln#5El mcd es: 5 3mcd$) ? ? )0..ys!em"ou!"&rin!ln#55$) mcd 4 ma1VcomunVdivisor #!$) .? &ublic s!a!ic void main#.ys!em"ou!"&rin!#!-i.) 0or #in! i 4 () i : !"leng!>) i33$ !-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. b$) mcm 4ma1) i41) // en &rinci&io el mcm es el mayor de los dos nDmeros 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! mcm) in! ma1) in! i) ma1 4 ma1imo #a. y mul!i&licarlo &or i./8 el mHnimo comDn mDl!i&lo de a y b. in! b$+ in! ma1) i0#aIb$ ma14a) ? Ejercicios de Programación en Java 13% . 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.

calcularemos Ejercicios de Programación en Java 13= .!ring-.else ma14b) re!urn#ma1$) ? &ublic s!a!ic void main#. mcm) . args$ + in! a.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 0unción ma1VcomunVdivisor.b$) . b.ys!em"ou!"&rin! #56n!roduce b: 5$) b4En!rada"en!ero#$) .ys!em"ou!"&rin! #56n!roduce a: 5$) a4En!rada"en!ero#$) .ys!em"ou!"&rin!ln#55$) mcm 4 minVcomunVmul!i&lo #a.

in! b$+ in! min) i0#aIb$ min4b) else Ejercicios de Programación en Java 13B .b$) mcd41) // e1is!e un mcd seguro.b$) re!urn #mcm$) ? s!a!ic in! ma1VcomunVdivisor #in! a. 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.// el mHnimo comDn mDl!i&lo de dos nDmeros como la mul!i&licación de ambos // divido &or el mcd s!a!ic in! minVcomunVmul!i&lo #in! a. in! b$ + in! mcm) mcm 4 a8b / ma1VcomunVdivisor #a. in! b$ + in! mcd41) in! min) min 4 minimo #a.

Qdem con tres números. mcm) .!ring-. b$) .ys!em"ou!"&rin!#56n!roduce b: 5$) b4En!rada"en!ero#$) .ys!em"ou!"&rin!#56n!roduce a: 5$) a4En!rada"en!ero#$) . b. &ac'age bol(=ej1%) &ublic class *ain + // el mHnimo comDn mDl!i&lo de a. b y c" Ejercicios de Programación en Java 13E . es el nDmero m@s &e<ueNo <ue // es divisible &or a. b y c.ys!em"ou!"&rin!ln#5El mcm de 53a35 y 53b35 es: 53mcm$) ? ? )8.min4a) ? re!urn#min$) &ublic s!a!ic void main#. args$ + in! a.ys!em"ou!"&rin!ln#55$) mcm 4 minVcomunVmul!i&lo #a.

in! b. >as!a <ue el nDmero resul!an!e sea divisible &or !odos s!a!ic in! minVcomunVmul!i&lo #in! a.c$$) mcm 4ma1) i41) // en &rinci&io el mcm es el mayor de los dos nDmeros 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.// // // // 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""$. ma1imo#b. in! c$ + in! mcm41) in! ma1) in! i) ma1 4 ma1imo #a. in! b$+ in! ma1) i0#aIb$ ma14a) else ma14b) ? Ejercicios de Programación en Java 13F .

c.!ring-. b. args$ + in! a. b.ys!em"ou!"&rin! #56n!roduce a: 5$) a4En!rada"en!ero#$) .ys!em"ou!"&rin!ln#55$) mcm 4 minVcomunVmul!i&lo #a.ys!em"ou!"&rin! #56n!roduce b: 5$) b4En!rada"en!ero#$) .ys!em"ou!"&rin! #56n!roduce c: 5$) c4En!rada"en!ero#$) . mcm) .re!urn#ma1$) ? &ublic s!a!ic void main#. c$) . es el nDmero m@s &e<ueNo <ue Ejercicios de Programación en Java 1 ( .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.

y mul!i&licarlo &or i. b$) mcm 4ma1) i41) // en &rinci&io el mcm es el mayor de los dos nDmeros 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. >as!a <ue el nDmero resul!an!e sea divisible &or el menor#a.b$ s!a!ic in! minVcomunVmul!i&lo #in! a.// // // // // 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. in! b$+ in! ma1) i0#aIb$ ma14a) else Ejercicios de Programación en Java 1 1 . in! b$ + in! mcm41) in! ma1) in! i) ma1 4 ma1imo #a.

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

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. >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. &ac'age bol(=ej1=) &ublic class *ain + // // // // // // el mHnimo comDn mDl!i&lo de a y b. y mul!i&licarlo &or i #1""$.Qdem con una tabla. b$) mcm 4ma1) i41) // en &rinci&io el mcm es el mayor de los dos nDmeros 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 Programación en Java 1 3 .)6.

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

&ac'age bol(=ej1B) &ublic class *ain + // la 0unción 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. si la suma de sus divisores 3distintos de ellos mismos5 son iguales.Escriba una funci"n que decida si dos números enteros positivos son amigos.ys!em"ou!"&rin!ln#5El mcm es: 5 3mcm$) ? ? )F. 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 os números son i42) A>ile#i:num JJ &rimo44!rue$ + Ejercicios de Programación en Java 1 % .. amigos.

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#. 2. E.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 0unción 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. args$ + in! a. .!ring-. =. 3.b) Ejercicios de Programación en Java 1 = .

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#a35 y 53b35 no son amigos"""[nCa siguien!e ve7 &rueba con 22(. &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 Programación en Java 1 B .a una funci"n 3en adelante D375 que decida si un número es primo..ys!em"ou!"&rin!ln#a3 5 y 5 3b3 5 son amigos"5$) else . ise. 2E "5$) ? ? )G.ys!em"ou!"&rin!#56n!roduce a: 5$) a4En!rada"en!ero#$) .

&ac'age bol(=ej1F) &ublic class *ain + s!a!ic in! aVelevadoVn#in! a. args$ + boolean res) in! num) .ys!em"ou!"&rin!ln#5. ya <ue iremos mul!i&licando i0#n44($ // &or de0inición cual<uier nDmero elevado a ( es 1 Ejercicios de Programación en Java 1 E .o es &rimo5$) ? ? ):. @* que calcule an.i33) ? ? re!urn#&rimo$) &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#5Es &rimo5$) else .ys!em"ou!"&rin!#56n!roduce numero: 5$) num4En!rada"en!ero#$) i0#esV&rimo#num$$ .!ring-. in! n$+ in! res) res41) // el resul!ado se iniciali7a a 1.

else res41) 0or #in! i41)i:4n)i33$ res4res8a) ? re!urn#res$) &ublic s!a!ic void main#.ys!em"ou!"&rin!#56n!rodu7ca su e1&onen!e: 5$) e1&4En!rada"en!ero#$) res4aVelevadoVn #num. &ac'age bol(=ej2() &ublic class *ain + s!a!ic void binario#in! num$ + Ejercicios de Programación en Java 1 F .!ring-. args$ + in! num.res) .e1&.e1&$) . @* que muestre en binario un número entre & y (88.ys!em"ou!"&rin!#56n!rodu7ca base: 5$) num4En!rada"en!ero#$) .ys!em"ou!"&rin!ln#num 3 5 elevado a 5 3 e1& 35 4 5 3res$) ? ? (&.

4numG2) num 4num/2) con!33) ? .) in! con!) // en ! guardaremos los dHgi!os binarios // un nDmero en binario en!re ( y 2%% !iene E bi!s ! 4 neA in! -E.in! !-.ys!em"ou!"&rin!ln#55$) Ejercicios de Programación en Java 1%( .ys!em"ou!"&rin!ln#5En binario: 5$) // como ! !iene los dHgi!os en orden inverso 0or #in! i4con!91)iI4()i99$ .) i0 #num:( QQ 2%%:num$ .$) ? .4() con!33) ? // iremos dividiendo y cogiendo el res!o A>ile#numT4($ + !-con!.ys!em"ou!"&rin!#!-i.Dmero 0uera de rango #(""2%%$5$) else + con! 4() i0 #num44($ + !-con!.ys!em"ou!"&rin!ln#5.

Escriba una funci"n que sume los n primeros números impares.ys!em"ou!"&rin!#56n!rodu7ca un numero #(""2%%$: 5$) num4En!rada"en!ero#$) ? ? binario#num$) (). args$ + in! n) . args$ + in! num) .!ring-.? &ublic s!a!ic void main#.ys!em"ou!"&rin!#56n!rodu7ca un numero: 5$) Ejercicios de Programación en Java 1%1 .!ring-. &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#.

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$ suma 34 i) re!urn #suma$) ? &ublic s!a!ic void main#.n 4En!rada"en!ero#$) . 3.ys!em"ou!"&rin!#56n!rodu7ca un numero: 5$) n 4En!rada"en!ero#$) . args$ + in! n) .ys!em"ou!"&rin!ln#5Ca suma de los 5 3n3 5 &rimeros im&ares es: 5 3sumaVnVim&ares #n$$) ? ? // el 0or ir@ 1. %.!ring-. """" // >as!a 28n91 #el n9Ksimo im&ar$ Ejercicios de Programación en Java 1%2 .

coseno y tangente. coseno y !angen!e !rabajan en // radianes.!ring-.ar una funci"n que calcule la distancia eucl2dea de dos puntos. ado el valor de un ángulo. ser2a interesante saber su seno.ys!em"ou!"&rin!#56n!rodu7ca un @ngulo #(""3=($: 5$) angulo 4En!rada"real#$) in0ormacionVangulo #angulo$) ? ? (%. &ac'age bol(=ej22) &ublic class *ain + s!a!ic void in0ormacionVangulo #double n$ + // como las 0unciones <ue calculan el seno. ise.ys!em"ou!"&rin!ln#5!angen!e: 5 3 *a!>"!an#n$$) ? &ublic s!a!ic void main#.ys!em"ou!"&rin!ln#5seno: 5 3 *a!>"sin#n$$) . args$ + double angulo) . Escribir una funci"n que muestre en pantalla los datos anteriores.((.ys!em"ou!"&rin!ln#5coseno: 5 3 *a!>"cos#n$$) . Ejercicios de Programación en Java 1%3 . >emos de &asar n de grados a radianes n 4 *a!>"P6/1E(8n) // o!ra 0orma serHa n 4 *a!>"!oSadians#n$) .

y2) // el o!ro &un!o double l) // dis!ancia euclHdea .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!ln#5Pun!o 15$) .y1.ys!em"ou!"&rin!#5y: 5$) y2 4 En!rada"en!ero#$) l 4dis!anciaVeuclidea #11. in! y2$ + // a<uH no >ay m@s <ue !irar de la 0órmula de la dis!ancia euclHdea // y desem&olvarla de los a&un!es re!urn #*a!>"s<r!# *a!>"&oA #11912.!ring-. args$ + in! 11.ys!em"ou!"&rin!#51: 5$) 12 4 En!rada"en!ero#$) .&ac'age bol(=ej23) &ublic class *ain + s!a!ic double dis!anciaVeuclidea #in! 11. 12. 2$ 3 *a!>"&oA #y19y2. in! y1. in! 12.ys!em"ou!"&rin!#51: 5$) 11 4 En!rada"en!ero#$) . y1) // &rimer &un!o in! 12.y2$) Ejercicios de Programación en Java 1% . 2$$$) ? &ublic s!a!ic void main#.

>e leerá por teclado una serie de números: guardaremos solo los pares e ignoraremos los impares. 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 . 9ambién hay que devolver la cantidad de impares ignorados.ys!em"ou!"&rin!ln#5[nUis!ancia euclHdea: 5 3l$) ? ? (0. @* a la que se le pasa como parámetro una tabla que debe rellenar. &ac'age bol(=ej2 ) &ublic class *ain + s!a!ic in! rellenaV!ablaV&ares#in! !-..num.ys!em"ou!"&rin!#56n!rodu7ca nDmero: 5$) num 4 En!rada"en!ero#$) i0#num G2 44 ($ // si es &ar + !-i.$+ in! i. 4 num) // lo guardamos i33) ? else im&aresVignorados33) ? Ejercicios de Programación en Java 1%% .

&ac'age bol(=ej2%) &ublic class *ain + s!a!ic boolean busca#in! !-.in! n$ + in! i) ebemos buscar el número en la tabla e Ejercicios de Programación en Java 1%= .!-.ys!em"ou!"&rin!ln#5El numero de im&ares ignorados es de: 5 3igno$) .ys!em"ou!"&rin!#!-i.ys!em"ou!"&rin!ln#55$) ? ? 5$) (8. args$ + in! igno. @* a la que se le pasa una tabla de enteros y un número..re!urn#im&aresVignorados$) ? &ublic s!a!ic void main#.) ! 4 neA in!-%. indicar si se encuentra o no.3 5 .) igno 4 rellenaV!ablaV&ares#!$) .ys!em"ou!"&rin!ln#5Ca !abla <ueda: 5$) 0or#in! i4()i:%)i33$ .!ring-.

$) .boolean es!a) i4() A>ile #i:!"leng!> JJ !-i. %.ys!em"ou!"&rin!#5[in!roduce numero a buscar: 5$) num4En!rada"en!ero#$) Ejercicios de Programación en Java 1%B .ys!em"ou!"&rin!ln#a-i. 44 num no es v@lido. 3E.T4n$ // si no es !-i.4+1. &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. &aso al siguien!e // con cuidado de no salirme de la !abla i33) // cuando !ermina el mien!ras. 12..!ring-.ys!em"ou!"&rin!ln#5Ca !abla es: 5$) 0or #in! i4()i:%)i33$ . 11?) // es un ejem&lo de &osibles valores in! num) boolean es!a) . 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#. args$ + in! a-.

T4n$ // si no es !-i..es!a4busca#a. &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 Programación en Java 1%E . y el número de elementos se pasa también como parámetro. &ac'age bol(=ej2=) &ublic class *ain + s!a!ic boolean busca#in! !-.ys!em"ou!"&rin!ln#5El nDmero no es!@5$) ? ? (6.ys!em"ou!"&rin!ln#5EC nDmero es!@5$) else .. pero suponiendo que la tabla no está siempre llena. &aso al siguien!e // con cuidado de no salirme de la !abla i33) // cuando !ermina el mien!ras.in! n.num$) i0 #es!a$ . /gual que el ejercicio anterior. in! !am$ + in! i) boolean es!a) i4() A>ile #i:!am JJ !-i.

a-2. a-3. 4 4 4 4 4 1) 12) 3E) %) 11) !am 4 %) .4 neA in! -2(. num.ys!em"ou!"&rin!ln#a-i. es basura es!a 4!rue) else es!a 40alse) re!urn#es!a$) ? &ublic s!a!ic void main#..$) . a.ys!em"ou!"&rin!#5[n6n!roduce numero a buscar: 5$) num4En!rada"en!ero#$) es!a4busca#a.) in! !am) in! num) boolean es!a) a-(. a-1. args$ + in! a-. !am$) Ejercicios de Programación en Java 1%F .ys!em"ou!"&rin!ln#5Ca !abla es: 5$) 0or #in! i4()i:!am)i33$ .i0 #i:!am$ // si no llego al 0inal de la !abla es &or <ue lo >e encon!rado // !-i. ya <ue si i es!@ 0uera de rango // !-i. 44 num no es v@lido.!ring-.

in! nelem$+ in! i. 4 a-i. <a funci"n debe devolver una tabla con los resultados.) brea') Ejercicios de Programación en Java 1=( .ys!em"ou!"&rin!ln#5El nDmero no es!@5$) ? ? (F. 3 b-i. multiplicar o dividir 3mediante un carácter: `s`. resul!-.) sAi!c>#o&c$ + case OsO: 0or#i4()i:4nelem91)i33$ resul!-i. &ac'age bol(=ej2B) &ublic class *ain + s!a!ic in!-.ys!em"ou!"&rin!ln#5El nDmero es!@5$) else . 4 a-i.ar la funci"n operaWtabla. `r`.i0 #es!a$ .) resul! 4 neA in!-nelem. c>ar o&c. a la que se le pasa dos tablas. ise. 9 b-i.. o&eraV!abla#in! a-. in! b-.. `m`.) brea') case OrO: 0or#i4()i:4nelem91)i33$ resul!-i. `d`5. el número de elementos útiles y que operaci"n se desea realizar: sumar. restar.

!abla2-1.) !abla1 4 neA in!-1(. !abla2-3. !abla1-3. / b-i. !abla2-.case OmO: 0or#i4()i:4nelem91)i33$ resul!-i.) brea') ? ? re!urn #resul!$) &ublic s!a!ic void main#.) !abla2 4 neA in!-1%. !abla1-1.. resul!ado-. !abla2-2.. 4 ) 4B) 42) 4B) 493) 43) 4=) 41B) numVda!osVu!iles 4 ) .) brea') case OdO: 0or#i4()i:4nelem91)i33$ resul!-i. !abla1-2. args$ + in! numVda!osVu!iles) c>ar o&eracion) in! !abla1-. 4 a-i.ys!em"ou!"&rin!ln#5!abla1 !abla25$) 0or#in! i4()i:numVda!osVu!iles)i33$ Ejercicios de Programación en Java 1=1 . 8 b-i.) !abla1-(. 4a-i. !abla2-(.!ring-.

ys!em"ou!"&rin!ln #resul!ado-i. d$: 5$) o&eracion 4 En!rada"carac!er#$) resul!ado 4o&eraV!abla #!abla1. @* que ordene la tabla que se le pasa. o&eracion.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 Programación en Java 1=2 .ys!em"ou!"&rin!ln #!abla1-i.$) .ys!em"ou!"&rin!ln#5El resul!ado de la o&eración es:5$) 0or#in! i4()i:numVda!osVu!iles)i33$ .3 5 5 3!abla2-i. numVda!osVu!iles$) ..ys!em"ou!"&rin!ln#5L&eración #s. r. !abla2. pacHage bol&6ej(G? public class +ain I static void ordenar3int aJK5I int tamCa. m.$) ? ? (G.

println3L9abla aleatoriaL5? mostrarWtabla3t5? >ystem.out.length? for 3int iC&?iYtam?i[[5I >ystem.out.println3Lanan9abla ordenadaL5? ordenar3t5? mostrarWtabla3t5? P P Ejercicios de Programación en Java 1=3 .random35D)&&5[)? P >ystem.aJjKCaJj[)K? aJj[)KCau!? P P P P static void mostrarWtabla3int tJK5I int tamCt.print3tJiK [ L P L5? P public static void main3>tringJK args5 I int tJKCne. intJGK? for 3int iC&?iYG?i[[5I tJiKC3int53+ath.out.

.$+ in! acier!os) in! a) in! &) // u!ili7aremos a como Hndice de la !abla a&ues!a // 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. <a primera con los 6 números de una apuesta de la primitiva.T4&remiado-&. &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. @* que toma como parámetros dos tablas. &ero con el A>ile evi!amos vuel!as innecesarias A>ile#&:&remiado"leng!> JJ a&ues!a-a. <ue debe ser = 8/ s!a!ic in! &rimi!iva#in! a&ues!a-. in! &remiado-.(:. <a funci"n debe devolver el número de aciertos. y la segunda con los 6 números ganadores.$ &33) i0#&:&remiado"leng!>$ acier!os33) ? // si & indica un elemen!o de la !abla // !enemos un acier!o m@s Ejercicios de Programación en Java 1= .

ys!em"ou!"&rin!ln#5[n[nTiene 53acier!os35 acier!os[n5$) i0 #acier!os 44 ($ .ys!em"ou!"&rin!#a&ues!a-i.4#in!$#*a!>"random#$8 F31$) .u a&ues!a es: 5$) 0or #in! i4()i:&rimi!iva"leng!>)i33$ + &rimi!iva-i.ys!em"ou!"&rin!#&rimi!iva-i. 3 5 5$) ? . 35 5$) ? acier!os4&rimi!iva#&rimi!iva.re!urn#acier!os$) ? &ublic s!a!ic void main#. args$ + in! &rimi!iva-.ys!em"ou!"&rin!ln#5Co im&or!an!e no es ganar""" es &ar!ici&ar"[n5$) ? ? Ejercicios de Programación en Java 1=% .) in! a&ues!a-.!ring-.4#in!$#*a!>"random#$8 F31$) .a&ues!a$) .ys!em"ou!"&rin!ln#5.4neA in!-=.ys!em"ou!"&rin!ln#5[nCa combinación ganadora es: 5$) 0or #in! i4()i:a&ues!a"leng!>)i33$ + a&ues!a-i.) in! acier!os4() .4neA in!-=.

&ac'age bol(=ej3() &ublic class *ain + /8 sobrecargamos la 0unción &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.%&. in! n$ + double res) i0 #n 44 ($ res 4 1) else res 4 a 8 &o!encia#a. n 9 1$) re!urn #res$) ? s!a!ic double &o!encia #double a. @* recursiva que calcule an. n 9 1$) re!urn #res$) ? Ejercicios de Programación en Java 1== .

ys!em"ou!"&rin!#56n!rodu7ca la &o!encia: 5$) &o!encia 4 En!rada"en!ero#$) resul!ado 4 &o!encia#num.&ublic s!a!ic void main#. args$ + double num. 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 T4 83T ? re!urn#res$) Ejercicios de Programación en Java 1=B .ys!em"ou!"&rin!#56n!rodu7ca base #real$: 5$) num 4 En!rada"real#$) . &o!encia$) .ys!em"ou!"&rin!ln#5El resul!ado es: 5 3 resul!ado$) ? ? %). resul!ado) in! &o!encia) .!ring-.

. args$ + in! num.resul!ado) . &ac'age bol(=ej32) &ublic class *ain + /88 la 0unción m@1imo busca el mayor nDmero en!re los elemen!os de !. 8 a &ar!ir de las &osición &os" 8/ s!a!ic in! ma1imo #in! !-.ys!em"ou!"&rin!#56n!rodu7ca el numero: 5$) num4En!rada"en!ero#$) resul!ado40ac!orial#num$) ? ? .) in! ') // caso base: &os indica el Dl!imo elemen!o de ! // en es!e caso es!e ser@ el m@1imo Ejercicios de Programación en Java 1=E . in! &os$ + in! res) i0#&os44!"leng!>91$ else + res4!-&os.!ring-. @* que calcule el valor má!imo de una tabla de forma recursiva.&ublic s!a!ic void main#.ys!em"ou!"&rin!ln#num35T es igual a 53resul!ado$) %(.

) //!-&os.&os31$) // ' ser@ el mayor desde la &osición &os31 >as!a el Dl!imo elemen!o i0 #!-&os.!ring-.ys!em"ou!"&rin!ln#5Cos da!os son:5$) 0or #in! i 4 () i : da!os"leng!>) i33$ .' 4 ma1imo #!.$ + re!urn #ma1imo #!.ys!em"ou!"&rin!#da!os-i. es el m@1imo else res 4 ') // en caso con!rario ser@ ' el m@1imo ? ? re!urn#res$) // el usuario u!ili7ar@ es!a 0unción &or comodidad s!a!ic in! ma1imo #in! !-.) 0or #in! i 4 () i : da!os"leng!>) i33$ da!os-i. args$ + in! da!os-.I'$ // si !-&os.) in! ma1) da!os 4 neA in!-1(.($$) ? &ublic s!a!ic void main#. 3 5 5$) ma1 4ma1imo#da!os$) Ejercicios de Programación en Java 1=F . 4 #in!$ #*a!>"random#$81(((31$) . es mayor <ue ' res 4 !-&os.

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! !-. F?) // un ejem&lo &ara &robar la 0unción in! ma1) ma1 4ma1imo#!$) . 1(.4+B.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. (. 2.$ + re!urn #ma1imo#!. 1.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#. %. args$ + in! !-.. !"leng!>91 $$) ? Ejercicios de Programación en Java 1B( .!ring-.

En esta serie el n$ésimo valor se calcula sumando los dos valores anteriores. siendo fibonacci3&5C) y fibonacci3)5C).) else + mayor 4 ma1imo#!. in! desde. in! >as!a$ + in! mayor) i0 #desde 44 >as!a$ // caso base // la !abla solo !iene un elemen!o mayor4!-desde.s!a!ic in! ma1imo#in! !-. >as!a$) i0 #mayor : !-desde. Es decir fibonacci3n5 C fibonacci3n$ )5[fibonacci3n$(5.. &ac'age bol(=ej33) &ublic class *ain + s!a!ic in! 0ibo#in! num$ + in! res) i0#num44($ res4() else+ i0#num441$ // &rimer caso base // segundo caso base Ejercicios de Programación en Java 1B1 .) ? re!urn #mayor$) ? ? %%. @* que calcule el n$ésimo término de la serie de *ibonacci. desde31.$ mayor 4 !-desde.

ys!em"ou!"&rin!ln#5[n0ibonacci#5 3 num 3 5$ 4 5 3resul!ado$) ? ? 5$) %0. &ac'age bol(=ej3 ) &ublic class *ain + /88 8 sobrecargamos la 0unción &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 Programación en Java 1B2 . /gual que el ejercicio anterior. pero pudiendo configurar los valores de los dos primeros término de la serie. args$ + in! num.ys!em"ou!"&rin!#5Xamos calcular 0ibonacci#n$"[n6n!rodu7ca n #se recomienda n: ($: num4En!rada"en!ero#$) resul!ado40ibo#num$) // si n es muy grande es!o &uede !ardar bas!an!e" .resul!ado) .else ? res41) res40ibo#num91$30ibo#num92$) // caso general recursivo re!urn#res$) ? &ublic s!a!ic void main#.!ring-.

0ibo(. in! 0ibo(. 0ibo1$) // caso general recursivo // >emos de acordarnos de u!ili7ar la 0unción 0ibo <ue // !iene 3 &ar@me!ros ? // caso general recursivo Ejercicios de Programación en Java 1B3 . <ue !endr@ el valor indicado &or el usuario res40ibo() else+ i0#num441$ // segundo caso base.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$) ? re!urn#res$) ? s!a!ic in! 0ibo#in! num. in! 0ibo1$ + in! res) i0#num44($ // &rimer caso base. 0ibo(. !ambiKn con0igurable res40ibo1) else res40ibo#num91. 0ibo1$30ibo#num92.

re!urn#res$) ? &ublic s!a!ic void main#.resul!ado) in! 0ibo(.ys!em"ou!"&rin!#56n!rodu7ca el valor de 0ibonacci#1$: 5$) 0ibo1 4 En!rada"en!ero#$) . 0ibo1$) . de forma recursiva.ys!em"ou!"&rin!ln#5Xamos calcular 0ibonacci#n$[n5$) . args$ + in! num.ys!em"ou!"&rin!#56n!rodu7ca el valor de 0ibonacci#($: 5$) 0ibo( 4 En!rada"en!ero#$) . @* que realice la búsqueda dicot"mica en una tabla.!ring-.ys!em"ou!"&rin!ln#5[n0ibonacci#5 3 num 3 5$ 4 5 3resul!ado$) ? ? 5$) %8. &ac'age bol(=ej3%) &ublic class *ain + Ejercicios de Programación en Java 1B .0ibo1) . 0ibo(.ys!em"ou!"&rin! #5[n6n!rodu7ca n #se recomienda n: ($: num4En!rada"en!ero#$) // si n es muy grande es!o &uede !ardar bas!an!e" resul!ado40ibo#num.

. 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. #&rimero3ul!imo$/2$) // buscamos en la segunda &ar!e de la !abla: mi!ad31""ul!imo // se &one mi!ad31.44elem$ &os 4&rimero) else &os 491) else + in! &os1. y se coger@ el valor de &os2 #91$ re!urn#&os$) Ejercicios de Programación en Java 1B% . in! ul!imo$ + in! &os) i0#&rimero I4 ul!imo$ // caso base: solo >ay un elemen!o donde buscar i0 #!-&rimero. in! &rimero. elem. in! elem. &or <ue el elemen!o mi!ad ya &er!enece a la // &rimera &ar!e""" &or no re&e!irlo &os2 4 busca #!. la !abla. elem.// a la 0unción se le &asa. #&rimero3ul!imo$/231. el elemen!o a buscar. y la &rimera // y Dl!ima &osición donde buscar" s!a!ic in! busca #in! !-. &os2) // llamada recursiva //buscamos en la &rimera mi!ad de la !abla: (""mi!ad &os1 4 busca #!. &rimero.

args$ + in! da!os-. (.ys!em"ou!"&rin!#da!os-i. 4 #in!$ #*a!>"random#$81(((31$) .? // el usuario u!ili7ar@ es!a 0unción &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! !-.ys!em"ou!"&rin!#5[n[nElemen!o a buscar: 5$) num 4En!rada"en!ero#$) // llamamos a la 0unción buscar &os 4busca#da!os.ys!em"ou!"&rin!ln#5Cos da!os son:5$) 0or #in! i 4 () i : da!os"leng!>) i33$ . elem.!ring-. cagamos da!os alea!orios 0or #in! i 4 () i : da!os"leng!>) i33$ da!os-i. !"leng!>91$$) ? &ublic s!a!ic void main#.. 3 5 5$) .) // &ara no !eclearlos. in! elem$ + re!urn #busca #!. num$) i0 #&os 44 91$ Ejercicios de Programación en Java 1B= .) in! num) in! &os) da!os 4 neA in!-1(.

5. etc. 9. 9O 3torre negra5.else ? ? .1 3pe"n blanco5. icho m"dulo debe devolver un valor booleano.41%) &ublic s!a!ic void main#.o encon!rado5$) . args$ + Ejercicios de Programación en Java 1BB .ys!em"ou!"&rin!ln#5[n[n.411) C.413) U. 7.!ring-. que indique si el rey negro está amenazado.41() T.41 ) S. -. 3.. R. &ac'age bol(=ej3=) &ublic class *ain + 0inal 0inal 0inal 0inal 0inal 0inal 0inal 0inal 0inal 0inal 0inal 0inal 0inal s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic in! in! in! in! in! in! in! in! in! in! in! in! in! X491) P4() T41) C42) R43) U4 ) S4%) // // // // // // // esca<ue vacHo &eón !orre caballo al0il dama rey // igual &ara los negros P. representando un tablero de ajedrez. @* que toma una tabla bidimensional de enteros. isponemos de las constantes .ys!em"ou!"&rin!ln#5[n[nEncon!rado en la &osición: 5 3&os$) %6.412) R.

X. X. X?. X. X. X.-. X. X. X. X. X. C. X. X.) &osVrey 4 buscaVrey #!ablero$) // a>ora iremos viendo las &osibles amena7as una a una: Ejercicios de Programación en Java 1BE . U. +X. X. X. X.. X. P. X. X. X. T. +X. X. X. X. +X. X?. P. +X. X. X. X. X. X. R. 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 . X.ys!em"ou!"&rin!ln#5Ja<ue: 5 3amena7a$) ? s!a!ic boolean ja<ue#in! !ablero-. X. X. +X.-. X.) // &osición del rey en el !ablero &osVrey 4 neA in! -2. X?. +X. X. X. X. X.$ + boolean amena7a40alse) in! &ie7a) // &ie7a <ue no es!@ amena7ando in! &osVrey-. X?. X. X.0inal in! !ablero-. X?.. X?. 4 + +X. X. X. +X. S.?. X.

1.$ amena7a4!rue) // miraremos >acia la i7<uierda #d1:91. QQ &ie7a 44T. dy:91$ // a<uH no &uede amena7ar una !orre o dama &ie7a 4&rimeraV&ie7a#!ablero. 91$) i0 #&ie7a 44U. QQ &ie7a 44T. dy:($ // a<uH no &uede amena7ar una !orre o dama &ie7a 4&rimeraV&ie7a#!ablero. &osVrey. dy:($ // a<uH no &uede amena7ar una !orre o dama &ie7a 4&rimeraV&ie7a#!ablero. dy:1$ // a<uH no &uede amena7ar un al0il o una dama &ie7a 4&rimeraV&ie7a#!ablero. 1. ($) i0 #&ie7a 44U. &osVrey. 91. &osVrey. (. &osVrey. dy:1$ // a<uH no &uede amena7ar una !orre o dama &ie7a 4&rimeraV&ie7a#!ablero. QQ &ie7a 44R. QQ &ie7a 44T. (. QQ &ie7a 44T.$ amena7a4!rue) // miraremos en la diagonal derec>a abajo #d1:1.// en &rimer lugar veremos si nos amena7a un caballo: amena7a 4amena7aVcaballo #!ablero. &osVrey$) // RWLSR // miraremos >acia la derec>a #d1:1. 1$) i0 #&ie7a 44U. ($) i0 #&ie7a 44U. 1$) i0 #&ie7a 44U. &osVrey.$ amena7a4!rue) // miraremos >acia arriba #d1:(.$ amena7a4!rue) // miraremos >acia abajo #d1:(. dy:91$ // a<uH no &uede amena7ar un al0il o una dama Ejercicios de Programación en Java 1BF .$ amena7a4!rue) // miraremos en la diagonal derec>a arriba #d1:1.

iendo &osicion-(. QQ &ie7a 44R.91.31. &osVrey. 1. QQ &ie7a 44R. &osVrey. dy:1$ // a<uH no &uede amena7ar un al0il o una dama &ie7a 4&rimeraV&ie7a#!ablero. 91$) i0 #&ie7a 44U.$ amena7a4!rue) // miraremos en la diagonal i7<uierda arriba #d1:91. 91$) i0 #&ie7a 44U. buscaVrey #in! !ablero-.$ amena7a4!rue) // 0al!a <ue nos amenace un &eón // el &osible &eón se encuen!ra arriba a la derec>a o a la i7<uierda i0 # #&osVrey-(.31:E JJ &osVrey-1.-&osVrey-1. 91.31:E JJ !ablero-&osVrey-(.91 JJ &osVrey-1.44P.-. 1$) i0 #&ie7a 44U.) Ejercicios de Programación en Java 1E( .$ + in! i.-&osVrey-1.&ie7a 4&rimeraV&ie7a#!ablero. 91. QQ &ie7a 44R.$ $ amena7a4!rue) ? re!urn #amena7a$) // es!a 0unción busca el rey blanco y devuelve su &osición // en una !abla de dos elemen!os" .44P.$ QQ #(:4&osVrey-(. dy:91$ // a<uH no &uede amena7ar un al0il o una dama &ie7a 4&rimeraV&ie7a#!ablero.31.31:E JJ !ablero-&osVrey-(.31.$ amena7a4!rue) // miraremos en la diagonal i7<uierda abajo #d1:91. la columna y // &osicion-1. la 0ila" s!a!ic in!-.j) in! &osicion-. &osVrey.

E URS` .L .L . in! dy$ + in! &os1. in! &os-.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-.-. dy son: // d1 dy dirección // 1 1 diagonal derec>a arriba // 1 ( derec>a // 1 91 diagonal derec>a abajo // ( 1 >acia arriba // ( ( E.-j.P. 4j) ? re!urn #&osicion$) ? // es!a 0unción busca la &rimera &ie7a <ue e1is!e desde la &osición &os.) Ejercicios de Programación en Java 1E1 . 4i) &osicion-1. // en la dirección indicada &or d1.44S$ + &osicion-(.TE CR...) 0or #i4() i :E) i33$ 0or #j4() j :E) j33$ i0 #!ablero-i.) &osy 4&os-1. in! d1. dy" // Cos valores de d1.&osicion 4 neA in! -2. &osy) //&osición del !ablero en la <ue es!amos mirando in! &ie7a) &os1 4&os-(.

$ 44C..92 JJ (:4 &os-1.91.) &os1 34 d1) &osy 34 dy) ? ? re!urn #&ie7a$) s!a!ic boolean amena7aVcaballo #in! !ablero-.-&os-1.91.$ 44C.-.$ 44C.-&os-1.31 # &os-(.&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.-&os-1.$ QQ QQ QQ QQ Ejercicios de Programación en Java 1E2 . 44C.31.31 #(:4 &os-(.32.32.-&osy. !ablero-&os-(.-&os-1.32 :E JJ &os-1. !ablero-&os-(.92 JJ &os-1.92.91 #(:4 &os-(.$ + boolean amena7a40alse) // Way <ue !ener cuidado al com&robar los caballos de no salirse del // !ablero // // // i0 Uesde la &osición ac!ual vemos los &uede amena7arnos un caballo" Rlgunas de es!as &osiciones &ueden # # &os-(. in! &os-.31. !ablero-&os-(.91 &osibles oc>o &osiciones desde donde es!ar :E JJ JJ :E JJ JJ 50uera5 del !ablero !ablero-&os-(.92.32 :E JJ (:4 &os-1.

pero indicando si e!iste jaque mate a las negras.31.92.91 JJ (:4 &os-1.412) R.-&os-1.413) U.# &os-(.92 JJ !ablero-&os-(.$ #(:4 &os-(.91 JJ &os-1.31 :E JJ (:4 &os-1.$ #(:4 &os-(.-&os-1. /gual que el ejercicio anterior. 44C.$ # &os-(.92 JJ !ablero-&os-(.41 ) S.32.-&os-1.41() T.41%) Ejercicios de Programación en Java 1E3 .31.411) C.91.$ amena7a 4 !rue) ? ? re!urn #amena7a$) QQ QQ QQ $ %F.32 :E JJ !ablero-&os-(. 44C. 44C.91. &ac'age bol(=ej3B) &ublic class *ain + 0inal 0inal 0inal 0inal 0inal 0inal 0inal 0inal 0inal 0inal 0inal 0inal 0inal s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic s!a!ic in! in! in! in! in! in! in! in! in! in! in! in! in! X491) P4() T41) C42) R43) U4 ) S4%) // // // // // // // esca<ue vacHo &eón !orre caballo al0il dama rey // igual &ara los negros P. 44C.92.-&os-1.31 :E JJ &os-1.32.32 :E JJ !ablero-&os-(.

(. X. X. X.&ublic s!a!ic void main#. +C. X. X. X. X. X. X. X. U. 1. S. + X. X. (. P. X.. X?. X. X. X. X.. X.. args$ + in! !ablero-. X?. X. X?. X. + X. X. + X.-. X. P. + X. X. X. P. 91$) Ejercicios de Programación en Java 1E .?. X. X. X. X. 91$) numVja<ue 34 moverVrey #!ablero. X. X?. X. X. X. X. U. X. X. + X. 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-. X. X?. X. X. 4 + + X. 1$) numVja<ue 34 moverVrey #!ablero. X.) 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 ubicación recibe ja<ue numVja<ue 34 moverVrey #!ablero. + X. X. X.!ring-.

) // &osición del rey en el !ablero &osVrey 4 neA in! -2.olo es ja<ue"5$) else . dy:($ // a<uH no &uede amena7ar una !orre o dama Ejercicios de Programación en Java 1E% . 91$) #!ablero. 91. &osVrey$) // RWLSR // miraremos >acia la derec>a #d1:1.ys!em"ou!"&rin!ln#5Ja<ue *a!e5$) else . 91.? numVja<ue numVja<ue numVja<ue numVja<ue numVja<ue 34 34 34 34 34 moverVrey moverVrey moverVrey moverVrey moverVrey #!ablero.ys!em"ou!"&rin!ln#5El rey no es!@ amena7ado5$) ? s!a!ic boolean ja<ue#in! !ablero-.-. 1$) // mos!ramos se e1is!e amena7a i0 #amena7a$ i0 #numVja<ue:E$ . ($) #!ablero. 91.$ + boolean amena7a40alse) in! &ie7a) // &ie7a <ue no es!@ amena7ando in! &osVrey-.) &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. 1. ($) #!ablero.ys!em"ou!"&rin!ln#5. 1$) #!ablero. 1.

$ amena7a4!rue) // miraremos >acia la i7<uierda #d1:91.&ie7a 4&rimeraV&ie7a#!ablero. dy:91$ // a<uH no &uede amena7ar un al0il o una dama &ie7a 4&rimeraV&ie7a#!ablero.$ amena7a4!rue) // miraremos en la diagonal derec>a abajo #d1:1. QQ &ie7a 44T. (. QQ &ie7a 44R. 1$) i0 #&ie7a 44U. ($) i0 #&ie7a 44U. &osVrey. dy:1$ // a<uH no &uede amena7ar un al0il o una dama &ie7a 4&rimeraV&ie7a#!ablero. 1. dy:91$ // a<uH no &uede amena7ar una !orre o dama &ie7a 4&rimeraV&ie7a#!ablero. &osVrey. QQ &ie7a 44R. QQ &ie7a 44T. dy:1$ // a<uH no &uede amena7ar una !orre o dama &ie7a 4&rimeraV&ie7a#!ablero. (. &osVrey. 1$) i0 #&ie7a 44U.$ amena7a4!rue) // miraremos >acia abajo #d1:(. QQ &ie7a 44T. &osVrey. dy:1$ // a<uH no &uede amena7ar un al0il o una dama Ejercicios de Programación en Java 1E= . &osVrey.$ amena7a4!rue) // miraremos >acia arriba #d1:(.$ amena7a4!rue) // miraremos en la diagonal i7<uierda arriba #d1:91. 1. 91$) i0 #&ie7a 44U. dy:($ // a<uH no &uede amena7ar una !orre o dama &ie7a 4&rimeraV&ie7a#!ablero. QQ &ie7a 44T.$ amena7a4!rue) // miraremos en la diagonal derec>a arriba #d1:1. 91$) i0 #&ie7a 44U. ($) i0 #&ie7a 44U. &osVrey. 91. 1.

91.31.-j.$ + in! i.31:E JJ &osVrey-1. 91. 91.$ $ amena7a4!rue) ? re!urn #amena7a$) // es!a 0unción busca el rey blanco y devuelve su &osición // en una !abla de dos elemen!os" .91 JJ &osVrey-1.) &osicion 4 neA in! -2.44S$ Ejercicios de Programación en Java 1EB . la 0ila" s!a!ic in!-. 91$) i0 #&ie7a 44U. QQ &ie7a 44R.&ie7a 4&rimeraV&ie7a#!ablero.-&osVrey-1. dy:91$ // a<uH no &uede amena7ar un al0il o una dama &ie7a 4&rimeraV&ie7a#!ablero. &osVrey.$ QQ #(:4&osVrey-(.j) in! &osicion-. buscaVrey #in! !ablero-. QQ &ie7a 44R.) 0or #i4() i :E) i33$ 0or #j4() j :E) j33$ i0 #!ablero-i.44P.-&osVrey-1.31. &osVrey.-.31. la columna y // &osicion-1.$ amena7a4!rue) // 0al!a <ue nos amenace un &eón // el &osible &eón se encuen!ra arriba a la derec>a o a la i7<uierda i0 # #&osVrey-(. 1$) i0 #&ie7a 44U.44P.31:E JJ !ablero-&osVrey-(.$ amena7a4!rue) // miraremos en la diagonal i7<uierda abajo #d1:91.iendo &osicion-(.31:E JJ !ablero-&osVrey-(.

) &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 Programación en Java 1EE . in! dy$ + in! &os1.P.L . // en la dirección indicada &or d1. dy" // Cos valores de d1..L . 4j) re!urn #&osicion$) // es!a 0unción busca la &rimera &ie7a <ue e1is!e desde la &osición &os.-.TE CR.) &osy 4&os-1..E URS` . in! &os-.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! d1.+ ? ? &osicion-(. &osy) //&osición del !ablero en la <ue es!amos mirando in! &ie7a) &os1 4&os-(. dy son: // d1 dy dirección // 1 1 diagonal derec>a arriba // 1 ( derec>a // 1 91 diagonal derec>a abajo // ( 1 >acia arriba // ( ( E. 4i) &osicion-1.

-&os-1.92.-.$ 44C. !ablero-&os-(.31 :E JJ (:4 &os-1.-&os-1. !ablero-&os-(. !ablero-&os-(.32 #(:4 &os-(.-&os-1. !ablero-&os-(.31 #(:4 &os-(.92 amena7a 4 !rue) &osibles oc>o &osiciones desde donde es!ar :E JJ JJ :E JJ JJ :E JJ JJ :E JJ JJ 50uera5 del !ablero !ablero-&os-(.91 #(:4 &os-(.91 JJ &os-1.-&os-1.$ 44C.32 :E JJ (:4 &os-1. !ablero-&os-(.-&os-1.31.91.31.$ 44C.31.31. !ablero-&os-(.92.32.92.32.32 :E JJ &os-1.92.91.-&os-1.// 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.31 :E JJ &os-1. !ablero-&os-(.32 # &os-(. in! &os-.32.$ QQ QQ QQ QQ QQ QQ QQ $ Ejercicios de Programación en Java 1EF . 44C.91 # &os-(.$ 44C.) &os1 34 d1) &osy 34 dy) ? ? re!urn #&ie7a$) s!a!ic boolean amena7aVcaballo #in! !ablero-.$ 44C.$ 44C.32.92 JJ (:4 &os-1.91.31 # &os-(.-&os-1.91 JJ (:4 &os-1.92 #(:4 &os-(.-&os-1.$ 44C.-&osy.92 JJ &os-1.$ + boolean amena7a40alse) // Way <ue !ener cuidado al com&robar los caballos de no salirse del // !ablero // // // i0 Uesde la &osición ac!ual vemos los &uede amena7arnos un caballo" Rlgunas de es!as &osiciones &ueden # # &os-(.91..

3dy.3d1 JJ &os-(.-&os-1.? re!urn #amena7a$) s!a!ic in! moverVrey #in! !ablero-..-&os-1.44C.) // movemos el rey !ablero-&os-(.-&os-1.3d1.3dy.3d1.-&os-1.44U.3dy.-.3dy.3dy.3d1.44T.3d1.3d1.44P. !ablero-&os-(.-&os-1.3dy.-&os-1. 4X) !ablero-&os-(. 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-.3d1.) &os 4 neA in! -2. 4S) i0 #ja<ue#!ablero$$ e1is!eVja<ue41) Ejercicios de Programación en Java 1F( . + in! &ie7a) QQ QQ QQ QQ QQ $ $ // guardamos la &ie7a <ue ocu&a la &osición 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-(.) &os 4 buscaVrey#!ablero$) i0 # (:4&os-(.3dy JJ &os-1.3dy. !ablero-&os-(. !ablero-&os-(.44R.3dy. in! d1.3dy:E JJ # !ablero-&os-(.3d1. !ablero-&os-(..-&os-1.3d1:E JJ (:4&os-1.-&os-1.44X !ablero-&os-(.-&os-1.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 Programación en Java 1F1 . 4S) !ablero-&os-(.//volvemos el rey a su &osición inicial !ablero-&os-(.-&os-1.3d1.

>i no e!isten. <C(D. -C. .edir dos números y decir cual es el mayor. y muestre sus soluciones reales.edir dos números y mostrarlos ordenados de mayor a menor.edir el radio de un c2rculo y calcular su área.edir dos números y decir cual es el mayor o si son iguales. debe indicarlo. Ap8ndice I Ejercicios de Programación en Java 1F2 .Boletines completos &O2E/0N $ Variables y condicionales ). 6. G. .edir un número e indicar si es positivo o negativo. .edir dos números y decir si son iguales o no. 0. %.edir los coeficientes de una ecuaci"n se (B grado. . (. ./DrE(. F. . . .edir el radio de una circunferencia y calcular su longitud. 8. :./Dr. .edir dos números y decir si uno es múltiplo del otro.

edir tres números y mostrarlos ordenados de mayor a menor.edir una nota de & a )& y mostrarla de la forma: /nsuficiente..edir un número entre & y :. ((.edir una nota numérica entera entre & y )&. )G. . . . decir si es capicúa.edir un número entre & y :. )0.. .edir el d2a. 1ien. . mes y a. . mes y a. (). %& y %) d2as. )F. >uponiendo todos los meses de %& d2as. y mostrar dicha nota de la forma: cero..os bisiestos. mes y a.edir un número de & a :: y mostrarlo escrito. .edir dos fechas y mostrar el número de d2as que hay de diferencia.)&.edir un número entre & y :. minutos y segundos. y mostrar la hora en el segundo siguiente. (&. . )8.::: y mostrarlo con las cifras al revés. >uficiente. )6.edir una hora de la forma hora. )(. ):. )F. . .or ejemplo.:::..o de una fecha correcta y mostrar la fecha del d2a siguiente.edir el d2a.edir el d2a. 7on meses de (G. >uponiendo todos los meses de %& d2as. uno.o de una fecha e indicar si la fecha es correcta.o de una fecha e indicar si la fecha es correcta. para 86 mostrar: cincuenta y seis. . )%. )). . Qdem que el ej. suponiendo que cada mes tiene un número distinto de d2as 3suponer que febrero tiene siempre (G d2as5. dos. >in a. tres. Ejercicios de Programación en Java 1F3 .::: y decir cuantas cifras tiene. suponer que todos los meses tienen %& d2as. .

. . )0. El proceso termina cuando el usuario acierta. <eer un número y mostrar su cuadrado. .edir números hasta que se introduzca uno negativo. y calcular la media. y mostrar todos los números del ) al O. <eer un número e indicar si es positivo o negativo. . G.edir números hasta que se teclee uno negativo.ara cada uno indicar si es par o impar. 8.edir )& sueldos. Ejercicios de Programación en Java 1F . 0. El proceso se repetirá hasta que se introduzca un &.edir )& números. :. %. Escribir todos los números del )&& al & de F en F. mostrar la suma de todos los números introducidos.edir un número y calcular su factorial. 6. repetir el proceso hasta que se introduzca un número negativo. . ise. F. .edir números hasta que se teclee un &.edir )8 números y escribir la suma total. y mostrar cuántos números se han introducido. . )). )%. +ostrar la media de los números positivos. +ostrar su suma y cuantos hay mayores de )&&&U. y luego ir pidiendo números indicando SmayorT o SmenorT según sea mayor o menor con respecto a O.edir un número O. Realizar un juego para adivinar un número. la media de los números negativos y la cantidad de ceros. (.ar un programa que muestre el producto de los )& primeros números impares. . .&O2E/0N % Condicionales y bucles ). )(. <eer números hasta que se introduzca un &. .ara ello pedir un número O. )&.

En cada factura figura: el c"digo del art2culo. ):. (&. .os. )6. escribir la cantidad de alumnos aprobados.(8 U#litro.6 U#litro. . la cantidad vendida en litros y el precio por litro. mostrar la edad y la estatura media.)8.ide un número 3que debe estar entre & y )&5 y mostrar la tabla de multiplicar de dicho número. . )F. ((. Ejercicios de Programación en Java 1F% . .edir 8 números e indicar si alguno es múltiplo de %. >olo e!isten tres productos con precios: )$ &. y mostrar al final si se ha introducido alguno negativo. la cantidad de alumnos mayores de )G a. @na empresa que se dedica a la venta de desinfectantes necesita un programa para gestionar las facturas. adas las edades y alturas de 8 alumnos. )G. y mostrar el sueldo má!imo. introducir O sueldos.F8. cantidad en litros vendidos del art2culo ) y cuantas facturas se emitieron de más de 6&& U. ($ % U#litro y %$ ).edir un número O.edir 8 calificaciones de alumnos y decir al final si hay algún suspenso. . /gual que el anterior pero suponiendo que no se introduce el precio por litro. >e pide de 8 facturas introducidas: *acturaci"n total. condicionados 3C05 y suspensos. y la cantidad de alumnos que miden más de ).edir )& números. (). (%. adas 6 notas.

-R*/O %.i Y$ ) Z->9. j: EO9ERA 7A+/EOXA . ise. Realiza detenidamente una traza al siguiente programa y muestra cual seria la salida por pantalla: .a una aplicaci"n que muestre las tablas de multiplicar del ) al )&.0 .% j Y$ i[) +/EO9R-> j Y 0 escribir 3j$i5 j Y$ j[) */O +/EO9R-> */O . i.-R.RAVR-+.-R*/O .i Y$ ) Z->9.-R.& /O7 $) suma Y$ iD)&[j escribir 3suma5 */O . j: EO9ERA 7A+/EOXA .RAVR-+. Realiza una traza del siguiente algoritmo y muestra la salida generada por pantalla.ejW) 4-R/-1<E> i. .j Y$ % Z->9. Ejercicios de Programación en Java 1F= .&O2E/0N 3 Bucles anidados ).ejW) 4-R/-1<E> suma.-R*/O (.-R.

8. que muestre los números del &$&$&$&$& al :$:$:$:$:. Realizar un programa que nos pida un número n. con la particularidad que cada vez que aparezca un % lo sustituya por una E. ibuja un cuadrado de n elementos de lado utilizando D. Oecesitamos mostrar un contador con 8 d2gitos 3\$\$\$\$\5. y nos diga cuantos números hay entre ) y n que son primos. Ejercicios de Programación en Java 1FB . 6.0.

F. <a aplicaci"n debe indicarnos si los números están ordenados de forma creciente. decreciente. etc. <eer por teclado una serie de )& números enteros. (. %. etc. <eer los datos correspondiente a dos tablas de )( elementos numéricos. el (B de 1. 0. :. <eer 8 números por teclado y a continuaci"n realizar la media de los números positivos. insertarlo en la posici"n indicada. 7rear un programa que lea por teclado una tabla de )& números enteros y la desplace una posici"n hacia abajo 3el último pasa a ser el primero5. espués se debe pedir un número y una posici"n. o si están desordenados. <eer por teclado dos tablas de )& números enteros y mezclarlas en una tercera de la forma: el )B de -. el penúltimo. 8. Ejercicios de Programación en Java 1FE . <eer mediante el teclado G números.ar una aplicaci"n que declare una tabla de )& elementos enteros. ise. el )B de 1. <eer 8 números y mostrarlos en el mismo orden introducido. desplazando los que estén detrás. el (B de -. etc. <eer 8 números y mostrarlos en orden inverso al introducido. y mezclarlos en una tercera de la forma: % de la tabla -. la media de los negativos y contar el número de ceros. el segundo. otros % de la 1. <eer )& números enteros. % de la 1. el tercero. 6. el último. otros % de -. ebemos mostrarlos en el siguiente orden: el primero. G.&O2E/0N * /ablas ).

)). desplazar O posiciones 3O es introducido por el usuario5. que estarán ordenados crecientemente. >i no está. >e debe mostrar la posici"n en que se encuentra. )0. y la media del alumno que se encuentra en la posici"n O 3O se lee por teclado5. Eliminar el elemento situado en la posici"n dada sin dejar huecos.o )&. >e pide leer las notas del primer. )%. e insertarlo en el lugar adecuado para que la tabla continúe ordenada. )8. <eer por teclado una tabla de )& elementos numéricos enteros y leer una posici"n 3entre & y :5. <eer 8 elementos numéricos que se introducirán ordenados de forma creciente. Qdem. de forma que sigan ordenados. Realizar dos versiones: una trabajando con los valores y otra trabajando con los 2ndices. )(. <eer O y buscarlo en la tabla. y a continuaci"n los elementos impares.)&. ^ueremos desarrollar una aplicaci"n que nos ayude a gestionar las notas de un centro educativo. <eer dos series de )& enteros. <eer un número O. 7ada grupo 3o clase5 está compuesto por 8 alumnos. <eer )& enteros ordenados crecientemente. <eer )& enteros. segundo y tercer trimestre de un grupo. )6. indicarlo con un mensaje. ebemos mostrar al final: la nota media del grupo en cada trimestre. ]stos los guardaremos en una tabla de tama. Ejercicios de Programación en Java 1FF . 7opiar 3fusionar5 las dos tablas en una tercera. Vuardar en otra tabla los elementos pares de la primera.

7rear una tabla bidimensional de tama.-R.&O2E/0N . es decir. <os siguientes programas piden una serie de datos y tras procesarlos ofrecen unos resultados por pantalla. +ostrarla. si se obtiene la misma tabla al cambiar filas por columnas. %. utilizando dos tablas de tama. Tablas n-dimensionales ).i& Z->9. 8.o )&!)&. )&. 7rear una tabla de tama. cargar la primera y trasponerla en la segunda. +ostrar el resultado: . pero con una matriz :!:!:.o %!%. Es decir.mK debe contener n[m.Ej)&a 4-R/-1<E> i.o G!6: todos sus elementos deben ser & salvo los de los bordes que deben ser ).RAVR-+. 7rear y cargar una tabla de tama. Zacer lo mismo que el ejercicio anterior. :.o 8!8 y rellenarla de la siguiente forma: la posici"n 9Jn.Ej)&b 4-R/-1<E> n. mostrar la suma de cada fila y de cada columna.J8K EO9ERA> 7A+/EOXA . 6. trasponerla y mostrarla. espués se debe mostrar su contenido. creamos un cubo con las caras puestas a ) y el interior a &. G. b: 9-1<. F. (.o 8!: y :!8. 7rear una matriz SmarcoT de tama.o 0!0 y decir si es simétrica o no.RAVR-+. a: EO9ERA> t: 9-1<. 7rear y cargar una tabla de tama.o %!%. 7rear y cargar dos matrices de tama. m. 0.0 leer 3tJiK5 .J)&&K EO9ERA> 7A+/EOXA n  )& Ejercicios de Programación en Java 2(( . sumarlas y mostrar su suma. 7rear y cargar una tabla de tama. i: EO9ERA> a.o F!F y rellenarla de forma que los elementos de la diagonal principal sean ) y el resto &.

-R. El número de plazas disponible es de )&. .n#( bJiK  aJn$)$iK bJn$)$iK  aJiK */O . (. >us datos se irán introduciendo en el mismo orden que vayan inscribiéndose los atletas.ar el programa que muestre las siguientes opciones: )$ ($ %$ 0$ /nscribir un participante.i& Z->9.-R. :.-R.-R*/O .i  & Z->9.-Rm  & . +ostrar listado por marcas. 6 y ). que terminará el programa. ise.-R. 9ras procesar cada opci"n.n$) >/ i mod ( C & escribir 3aJiK5 >/OA escribir 3bJiK5 */O >/ */O . *inalizar el programa. +ostrar listado de datos. 8.-R. (.i  & Z->9. de mayor a menor.-Ra  tJ0$mK tJ0$mK  tJmK tJmK  a . se debe mostrar de nuevo el menú inicial. mejor marca del (&&) y mejor marca del (&&&.i  & Z->9. <a opci"n % mostrará un listado ordenado por la marca del (&&(.i  & Z->9.-R*/O .RAVR-+atos de entrada: 6. (.RAVR-+atos de entrada: $0. hasta que se seleccione la opci"n 0. &. G.0 >/ tJiK _ m m  tJiK */O >/ */O . G. se debe mostrar un listado por número de dorsal. mejor marca del (&&(.-R.0 escribir 3tJiK5 */O .-R. >i se elige la opci"n (. >i se selecciona ).n$) leer 3aJiK5 */O .*/O . Ejercicios de Programación en Java 2(1 . % y (. se introducirán los datos de uno de los participantes: Oombre. ). ))$>e pretende realizar un programa para gestionar la lista de participaciones en una competici"n de salto de longitud.

Qdem dise. )).Qdem con tres números. Qdem que devuelva una tabla con el área y el volumen. 6. +"dulo al que se le pasa un número entero y devuelve el número de divisores primos que tiene. el mensaje: S+"dulo ejecutándoseT (. Realizar una funci"n que calcule 3muestre en pantalla5 el área o el volumen de un cilindro.Escribir una funci"n que calcule el má!imo común divisor de dos números. )(. -demás hemos de pasarle a la funci"n el radio y la altura. %. Qdem una versi"n que calcule el má!imo de una tabla de n elementos. y que calcule el má!imo. inclusive. a la que se le pase como parámetro un número O. Qdem una versi"n que calcule el má!imo de % números. 8.&O2E/0N + Funciones ). G.ara distinguir un caso de otro se le pasará el carácter `a` 3para área5 o `v` 3para el volumen5. y muestre por pantalla O veces. según se especifique.ar una funci"n que devuelve una tabla con los divisores.ar una funci"n que tenga como parámetros dos números. :. F. Realizar una funci"n. *unci"n a la que se le pasan dos enteros y muestra todos los números comprendidos entre ellos. Ejercicios de Programación en Java 2(2 . *unci"n que muestra en pantalla el doble del valor que se le pasa como parámetro. )&. 0. ise. .

)%.Escriba una funci"n que decida si dos números enteros positivos son amigos. )G. )6. amigos. (8. os números son (0.Escribir una funci"n que calcule el m2nimo común múltiplo de dos números. )F. Escriba una funci"n que sume los n primeros números impares. 9ambién hay que devolver la cantidad de impares ignorados. )0. ((. @* que calcule an. tabla e indicar si se encuentra o no.a una funci"n 3en adelante D375 que decida si un número es primo. ().Qdem con una tabla. ser2a interesante saber su seno. >e leerá por teclado una serie de números: guardaremos solo los pares e ignoraremos los impares.ar una funci"n que calcule la distancia eucl2dea de dos puntos. @* que muestre en binario un número entre & y (88. ise. (%. Escribir una funci"n que muestre en pantalla los datos anteriores. (&. @* a la que se le pasa una tabla de enteros y un número. @* a la que se le pasa como parámetro una tabla que debe rellenar. ado el valor de un ángulo. ebemos buscar el número en la Ejercicios de Programación en Java 2(3 .Qdem con una tabla. si la suma de sus divisores 3distintos de ellos mismos5 son iguales. )8. ):. ise.Qdem con tres números. coseno y tangente.

a la que se le pasa dos tablas. `m`. %). 5. @* que realice la búsqueda dicot"mica en una tabla. Ejercicios de Programación en Java 2( . R. Es decir fibonacci3n5 C fibonacci3n$)5[fibonacci3n$(5.. %(. <a funci"n debe devolver el número de aciertos. 9O 3torre negra5. y la segunda con los 6 números ganadores. pero pudiendo configurar los valores de los dos primeros término de la serie. @* que calcule el n$ésimo término de la serie de *ibonacci.(6. %%. de forma recursiva. siendo fibonacci3&5C) y fibonacci3)5C). 9. En esta serie el n$ésimo valor se calcula sumando los dos valores anteriores. (F. el número de elementos útiles y que operaci"n se desea realizar: sumar. <a primera con los 6 números de una apuesta de la primitiva. `d`5. (G. isponemos de las constantes . `r`. representando un tablero de ajedrez. @* que ordene la tabla que se le pasa. ise. (:. 7. @* recursiva que calcule an. %0. @* que toma una tabla bidimensional de enteros. @* que calcule el valor má!imo de una tabla de forma recursiva.ar la funci"n operaWtabla. /gual que el ejercicio anterior. etc. @* que toma como parámetros dos tablas. -. y el número de elementos se pasa también como parámetro. %8. restar. pero suponiendo que la tabla no está siempre llena. 7alcular el factorial de n recursivamente. %6. <a funci"n debe devolver una tabla con los resultados. 3. %&. multiplicar o dividir 3mediante un carácter: `s`. /gual que el ejercicio anterior.1 3pe"n blanco5.

/gual que el ejercicio anterior. Ejercicios de Programación en Java 2(% . %F.icho m"dulo debe devolver un valor booleano. pero indicando si e!iste jaque mate a las negras. que indique si el rey negro está amenazado.

!reamSeader#.ys!em"in$) Bu00eredSeader !eclado4neA Bu00eredSeader#0lujo$) !ry+ bu7on4!eclado"readCine#$) ? ca!c>#E1ce&!ion e$+ .!reamSeader 0lujo4neA 6n&u!.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#$$) Ap8ndice II Ejercicios de Programación en Java 2(= .!ring iniciali7ar#$+ .Clase Entrada im&or! java"io"8) &ublic class En!rada + s!a!ic .!ring bu7on455) 6n&u!.

!ring valor4iniciali7ar#$) re!urn valor"c>arR!#($) ? ? Ejercicios de Programación en Java 2(B .? re!urn valor) s!a!ic .!ring valor4iniciali7ar#$) re!urn valor) ? s!a!ic c>ar carac!er#$+ .!ring cadena#$+ .

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->