Вы находитесь на странице: 1из 18

14-1-2019

Cuaderno de Ejercicios

Realizado por: Dra. Begoña Albizuri


Departamento Académico de Computación
INTRODUCCIÓN. EVALUACIÓN DE EXPRESIONES ARITMÉTICAS
A continuación se muestra un ejemplo de cómo se evalúa una expresión aritmética mostrando el
proceso, en el cual se indican las prioridades de los operadores, el orden en el que se evalúan y los
resultados parciales.

Se considera una variable p, la cual se inicializa en 0. Cada vez que se encuentra un paréntesis
izquierdo p se incrementa en 4, y cada vez que se encuentra un paréntesis derecho se decrementa
en 4. Entonces, la prioridad de los operadores se considera la original más p.

6 + 3 * ( 5 - 8 ) / 2
Prioridad 1 2 5 2
Orden de evaluación 1

Resultado parcial 6 + 3 * -3 / 2
Prioridad 1 2 2
Orden de evaluación 1 2
Resultado parcial 6 + -9 / 2

Resultado parcial 6 + -4.5

Resultado final 1.5

i. Evalúa las siguientes expresiones mostrando todo el proceso igual como se muestra en el
ejemplo. No es necesario que indiques los mensajes de la izquierda (prioridad, orden de
evaluación, etc.). Considera que / es la división de Java. ^ → potencia. ↑ → raíz

a) 3*4^2/8 / 3 f) 10 / 3+5*8+4=25–8+(4*2/3) / 2*10+20


b) 10–3*20/3+4*2 g) ((4/2*6)+5)-2<>4 / 2^2-3
c) 2*3–4+3*6/3 h) 20≤2/2^2+4*(6+2 % 2)
d) 50/2/5*2 % 5+8–(3^2/4)+2 I) 2 / 4-2>3*(20 % 4-5)
e) ((8+3*(4*5/2)–3) % 6)+1 j) 25≥6*5-2

ii. Considera las siguientes expresiones e indica la prioridad de cada operador y el orden en que
se deben evaluar. Por ejemplo:

2 * b - a + b * d / e
Prioridad 2 1 1 2 2
Orden de evaluación 1 4 5 2 3

a) f – e * d / c + b * a d) d * (a + b) – log(e * f / g) + b / (a – b * c)
b) a * a – b * c / d * (e + 2 * f) ↑ 2 e) a ^ 2 + ((a + b * (c * a / 2) – 3) * f) + b
c) 6 / 2 * 5 % 3 – 2 * 3

Cuaderno de ejercicios 1 Realizado por: Dra. Begoña Albizuri


iii. Considera las siguientes expresiones a las que les sobran paréntesis. Escríbelas con los
paréntesis necesarios, de tal forma que continúen obteniendo el mismo resultado que
inicialmente.

a) a + (b / c) * d
b) ((b * c) / d) – f
c) (((a + b) – c) + d) * f
d) ((a / b) * c) * (d + f)
e) (b + (c * (d – e))) – (((c + g) * i) / h)

iv. Indica cómo se deben escribir las siguientes expresiones en un solo renglón. Utiliza sólo los
paréntesis necesarios. Todas las variables son de un carácter.

x+y
a)
y
+3
z

b) (x 2
+y2 )
2

x +y −z
c)
2z + y 2 − xyz

c
d) ad − b e + 2*f
d

a
cd
e)
b − fg
e

Cuaderno de ejercicios 2 Realizado por: Dra. Begoña Albizuri


En el transcurso del cuaderno vamos a encontrar ejercicios etiquetados. Dicha etiqueta es Adivina y
un número entero consecutivo, indicando el orden en el que debemos resolver los ejercicios.

Estos ejercicios van a ir componiendo una aplicación. Adivina nos va a permitir adivinar el número
que pensó el usuario.

ELEMENTOS BÁSICOS DE JAVA Y ESTRUCTURAS DE CONTROL

Para cada uno de los ejercicios escribe un programa que haga lo especificado.

1. Declarar una variable N de tipo int, una variable A de tipo double y una variable C de tipo char y
asignar a cada una un valor.

A continuación muestre por pantalla:

a) El valor de cada variable.


b) La suma de N + A
c) La diferencia de A - N
d) El valor numérico correspondiente al carácter que contiene la variable C.
e) El carácter correspondiente al valor numérico de C más 1.

2. Declarar dos variables X e Y de tipo int, dos variables N y M de tipo double y asignar a cada una
un valor. A continuación muestre por pantalla:

a) El producto X * Y
b) El cociente X / Y
c) El cociente N / M
d) El resto X % Y
e) El resto N % M

3. Escribe un programa para resolver cada uno de los siguientes incisos. Los datos se deben
imprimir con formato.

a) Leer dos enteros y dos reales y calcular el promedio de los cuatro valores. Imprimir los dos
reales de los datos mostrando dos decimales y el promedio con 4 decimales.
b) Leer un nombre y mostrar el mensaje: “Hola nombre_introducido”.
c) Leer la clave, el nombre y el sueldo de un empleado, aumentarle al sueldo el 3.57% e
imprimir los tres datos, con el nuevo sueldo. El sueldo deberá ser impreso con dos decimales
y mostrando el signo de pesos y comas para separación de miles. Por ejemplo, $45,678.87

4. Leer un número entero e indicar:

a) Si es positivo o negativo.
b) Si es par o impar.
c) Si es múltiplo de 10.
d) Leer otro entero y calcular la división del primero por el segundo. Se debe comprobar que
el divisor sea distinto de cero.
e) Considere los dos enteros y si el primero es mayor que el segundo calcule el absoluto de la
resta del segundo menos el primero. En caso contrario, calcule el primero elevado al
segundo y la raíz cúbica del segundo.

Cuaderno de ejercicios 3 Realizado por: Dra. Begoña Albizuri


5. Leer dos caracteres y:

a) Decir si el primero es una letra en mayúsculas.


b) Indicar si los caracteres son iguales.
c) Indicar si el segundo es un número.

6. Leer una cantidad de grados centígrados y pasarla a grados Fahrenheit. La fórmula


correspondiente es: F = 32 + ( 9 * C / 5)

7. Leer una velocidad dada en Km/h, transformarla a m/s y mostrarla.

Resuelva los siguientes ejercicios utilizando métodos estáticos.


8. Calcular el salario semanal de un obrero, el cual se obtiene de la siguiente manera:
si trabaja 40 horas o menos se le pagan $16.75 por hora, si trabaja más de 40 horas se le pagan
$16.75 por cada una de las primeras 40 horas y $20 por cada hora extra. Muestre el salario que
se le debe pagar al obrero con formato (2 decimales y comas).

9. Reciba dos enteros correspondientes al kilometraje y año de fabricación de un auto e imprima


su estado de acuerdo a las siguientes reglas:

Si el kilometraje es menor a 5050 y el año es 2015 o superior el estado es "Genial".


Si el kilometraje está entre 5050 y 35231 y el año está entre 2008 y 2016 el estado es
"Maravilla".
Si el kilometraje está entre 35231 y 78934 y el año está entre 1998 y 2008 el estado es
"Conservado".
Todas las demás combinaciones deben dar "Auto desechable”.

10. Leer la clave secreta de un cliente del banco ABC y determinar si es correcta. El banco establece
que la clave secreta para acceso a sus cajeros automáticos debe ser un número de cuatro
dígitos, tales que ninguno de ellos se repita y que la suma de los dos dígitos intermedios sea
par. La clave debe ser leída y procesada como un número entero.

11. Mostrar los números del 1 al 100 y del 100 al 1.

12. Leer un entero mayor a cero y mostrar su tabla de multiplicar del 1 al 20.

13. Dado un mensaje, calcular su costo para enviarlo por telégrafo. Para esto se sabe que cada letra
cuesta $10.- los caracteres especiales que no sean letras cuestan $30.- y los dígitos tienen un
valor de $20.- cada uno. Los espacios no tienen valor.

14. Leer n datos reales, que representan las estaturas de n personas, y obtener:

a) La estatura promedio.
b) El porcentaje de estaturas mayores a 1.70.

15. Leer un dígito mayor o igual a 0 y luego una serie de números enteros positivos. Se sabe que se
terminaron los datos cuando se recibe un número negativo (bandera de final de datos). El
programa debe determinar cuántos números de los leídos terminan en ese dígito.

16. Leer 5 precios y sumarlos, si la suma es mayor a 300 entonces que agregar el 10% del precio
final sino solo el 7% e indicar cuál de los cinco precios es el mayor.

Se debe imprimir el precio mayor utilizando comas para separar los miles y sólo dos decimales,
por ejemplo: $5,476.76.

Cuaderno de ejercicios 4 Realizado por: Dra. Begoña Albizuri


17. Leer un número entero, mayor a cero, de varias cifras y mostrar sus cifras separadas por un
guion. Por ejemplo, si el número leído es 362, entonces el programa deberá mostrar 3-6-2

18. Leer un número entero de varias cifras (> 0) y mostrarlo como en el ejemplo. Si el número es
4936, entonces escribirá:

4
49
493
4936
19. Leer un número entero de varias cifras (> 0) y mostrarlo como en el ejemplo. Si el número es
4936, entonces escribirá:

6
36
936
4936

20. Calcular el salario de los vendedores de autos en un determinado mes, conociendo la cantidad
de autos vendidos y el total del monto de ventas, de cada vendedor. Se sabrá que se terminaron
los datos cuando se reciba un número negativo para la cantidad de autos vendidos.

La agencia paga a su personal de ventas un salario de $2,850.00 al mes más una comisión de
$1265.00 por auto vendido más un 5% del valor de la venta. El programa deberá imprimir los
salarios finales con formato.

21. Leer una serie de números enteros por teclado hasta que se lea un número negativo (bandera
de final de datos). El programa indicará cuántos números enteros positivos acabados en 2 se
han leído.

22. Leer la variable entera mes y comprobar si el valor corresponde a un mes de 30 días, de 31 o
de 28. Se considerará que febrero tiene 28 días. El programa deberá, también mostrar el nombre
del mes. Se debe comprobar que el valor introducido esté comprendido entre 1 y 12.

23. Leer un entero que representa el tipo de motor de una bomba para mover fluidos. El programa
debe imprimir el mensaje que corresponda al tipo leído:

a) Si el tipo de motor es 0, “No hay establecido un valor definido para el tipo de bomba”.
b) Si el tipo de motor es 1, “La bomba es una bomba de agua”.
c) Si el tipo de motor es 2, “La bomba es una bomba de gasolina”.
d) Si el tipo de motor es 3, “La bomba es una bomba de hormigón”.
e) Si el tipo de motor es 4, “La bomba es una bomba de pasta alimenticia”.
f) Si no se cumple ninguno de los valores anteriores, “No existe un valor válido para ese tipo
de bomba”.

24. Leer un entero entre 1 y 7, representando los días de la semana (considerando el lunes como el
1) e imprimir el día al que corresponde: lunes, martes, etc.

25. Leer el resultado (entero) obtenido al lanzar un dado de seis caras. Mostrar por pantalla el
número en letras de la cara opuesta al resultado obtenido. El resultado debe ser un número
entero entre 1 y 6, si no se encuentra en este rango se indicará el error con un mensaje
apropiado.

En las caras opuestas de un dado de seis caras están los números: 1-6, 2-5 y 3-4. Si por ejemplo
el usuario proporciona un 2, entonces el programa escribirá: cinco.

Cuaderno de ejercicios 5 Realizado por: Dra. Begoña Albizuri


26. En la siguiente tabla se muestra el número de camas de las habitaciones de una casa rural,
además de la planta donde está ubicada cada una de ellas:

El programa debe:

a) Mostrar el listado de las habitaciones de la casa rural, es decir, la tabla anterior.


b) Pedir y leer el número asociado a una habitación.
c) Mostrar el color de la habitación seleccionada, la planta y la cantidad de camas.

27. Leer n valores double, representando las temperaturas de n ciudades y que para cada una
indique el tipo de clima que tiene, considerando la siguiente clasificación:

TEMPERATURA TIPO DE CLIMA


< 10 Frio
≥10, < 20 Nublado
≥ 20 ≤ 30 Calor
> 30 Tropical

28. Leer la fecha de nacimiento de una persona (día, mes, año) y calcular el número de la suerte de
dicha persona. El número de la suerte se calcula sumando el día, mes y año de la fecha de
nacimiento y a continuación sumando las cifras obtenidas en la suma.

Por ejemplo, si la fecha de nacimiento es 12/07/1980

Entonces el número de la suerte es: 12 + 7 + 1980 = 1999 → 1 + 9 + 9 + 9 = 28

Número de la suerte: 28

29. Leer tres números enteros H, M, S que contienen hora, minutos y segundos, respectivamente, y
comprobar si la hora que indican es una hora válida. Se supondrá que la hora está en modo 24
horas, es decir, el valor válido para las horas será mayor o igual que cero y menor que 24. El
valor válido para los minutos y segundos estará comprendido entre 0 y 59, ambos incluidos.

30. Leer tres variables enteras: hora, minuto y segundo. El programa debe calcular y mostrar la hora
completa del siguiente segundo.

31. Leer un entero positivo n y mostrar una tabla con los primeros n números positivos, el cuadrado
y el cubo de cada uno.

Suponiendo que n es 3, entonces deberá mostrar:

ENTERO CUADRADO CUBO

1 1 1
2 4 8
3 9 27

Cuaderno de ejercicios 6 Realizado por: Dra. Begoña Albizuri


32. Leer un número n, 5 ≤ n ≤ 15, y mostrar las tablas de multiplicar de 1 a n. Si n fuera 5,entonces
mostraría:

1 2 3 4 5

1 1 2 3 4 5
2 2 4 6 8 10
3 3 6 9 12 15
4 4 8 12 16 20
5 5 10 15 20 25

33. Calcular la cantidad de cifras que componen un número entero que se lee.

34. Leer una temperatura expresada en grados Centígrados y convertirla a grados Kelvin.
El proceso de leer grados centígrados se debe repetir mientras que se responda ‘S’ a la pregunta:
Repetir proceso? (S/N)

Para hacer la conversión de grados Centígrados a grados Kelvin utilizaremos la fórmula:

ºK = ºC + 273

35. Leer un número entero, que puede ser positivo o negativo, y comprobar si es perfecto.

Un número es perfecto si es igual a la suma de todos sus divisores positivos sin incluir el propio
número.

Por ejemplo, el número 6 es perfecto. El 6 tiene como divisores: 1, 2, 3 y 6 pero el 6 no se cuenta


como divisor para comprobar si es perfecto. Si sumamos 1 + 2 + 3 = 6

Los siguientes números perfectos después del 6 son 28, 496, 8128, 33550336, 8589869056.

36. Calcular y mostrar los números perfectos entre 1 y 1000.

37. Leer dos números enteros y decir si son amigos.

Dos números enteros positivos A y B son amigos si la suma de los divisores propios de A es
igual a B y la suma de los divisores propios de B es igual a A.

Los divisores propios de un número incluyen la unidad pero no el propio número.

Un ejemplo de números amigos son los números 220 y 284.

Los divisores propios de 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110.

La suma de los divisores propios de 220 da como resultado 284

Los divisores propios de 284 son 1, 2, 4, 71 y 142.

La suma de los divisores propios de 284 da como resultado 220.

Por lo tanto 220 y 284 son amigos.

38. Leer un entero n (> 1) y mostrar los primeros n términos de la serie de Fibonacci. En esta serie
los dos primeros números son 0 y 1, los siguientes se construyen sumando los dos anteriores:

Por ejemplo, si n = 7, entonces los primeros 7 números de la serie son: 0, 1, 2, 3, 5, 8, 13

Cuaderno de ejercicios 7 Realizado por: Dra. Begoña Albizuri


39. Leer un número natural (≥ 0) y decir si es triangular

Un natural es triangular si es la suma de una sucesión ascendente no nula de naturales


consecutivos que comienza en 1.

Los primeros números triangulares son: 1, 3 = 1 + 2, 6= 1 + 2 + 3, 10 = 1 + 2 + 3 +4 + 5

40. Leer un número natural (≥ 0) e imprimir todos los números triangulares menores o iguales al
natural leído.

41. Adivina 1. Leer un número entero positivo y convertirlo a binario, creando una cadena de
caracteres (String),

El proceso consiste en: dividir el número entre 2 y quedarnos con el resto de la división. Esta
cifra, que será un cero o un uno, es el dígito de menos peso (más a la derecha) del número
binario. A continuación volvemos a dividir el cociente que hemos obtenido entre 2 y nos
quedamos con el resto de la división. Esta cifra será la segunda por la derecha del número
binario. Esta operación se repite hasta que obtengamos un cero como cociente.

Para convertir 12 en binario haremos:

6 3 1 0 → se terminó el proceso
2 12 2 6 2 3 2 1
0 0 1 1
Entonces, 12 en binario es 1100

42. Adivina 2. Leer un String que contiene un número, que se supone está en binario, y transformarlo
a decimal.

Los dígitos del número binario ocupan una posición que se numera de derecha a izquierda
empezando por cero. La posición del dígito más a la derecha es la 0.

Numero Binario: 1 1 0 1 0 1
Posición que ocupa cada dígito 5 4 3 2 1 0

Para pasar el número a decimal se multiplica cada dígito binario por 2 elevado a la posición que
ocupa. La suma de todos los productos es el equivalente en decimal.

43. Leer una serie de enteros entre 0 y 9, y mostrar cada uno de estos números en letra. Cuando se
proporcione un entero fuera de este rango el programa terminará. Si por ejemplo leyó 7, entonces
mostrará Siete.

Cuaderno de ejercicios 8 Realizado por: Dra. Begoña Albizuri


44. Codificar un texto, utilizando el método de cifrado de César. El texto sólo contendrá letras
mayúsculas o minúsculas. La letras serán las correspondientes al alfabeto inglés (26 caracteres,
excluimos la ñ y Ñ).

En este método de cifrado cada letra del texto se sustituye por otra letra que se encuentra N
posiciones adelante en el alfabeto. Se considera que el alfabeto es circular, es decir, la letra
siguiente a la ‘z’ es la ‘a’.

Por ejemplo, si N es 3, la ‘a’ se transformaría en ‘d’, la ‘b’ en ‘e’, la ‘c’ en ‘f’, etc.

El programa leerá el texto y la N y mostrará el texto codificado.

45. Decodifique un texto, utilizando el método de cifrado de César.

Para decodificar un texto se realiza la operación contraria a la codificación. Se calcula la letra


que está N posiciones por detrás en el alfabeto. Como el alfabeto es circular, la letra anterior a
la ‘a’ es la ‘z’.

El programa leerá el texto codificado y la N y mostrará el texto decodificado.

46. Leer un carácter alfabético (mayúsculo o minúsculo) y construir un triángulo de n renglones,


considerando los siguientes caracteres, en el código ASCII, al leído. Por ejemplo, si el carácter
leído es ‘F’ y n = 4, entonces se mostrará:
F
F G
F G H
F G H I
47. Calcular el costo de peaje de una autopista de n vehículos. La forma de cobrar es:

a) Las bicicletas pagan $100


b) Las motos y los coches: $30 * kilómetros_a_recorrer
c) Los camiones: $30 * kilómetros_a_recorrer + 25 * toneladas_de_peso

48. Un negocio considera dos tipos de clientes: general (G) y afiliado (A), acepta dos formas de
pago: contado (C) y plazos (P). El negocio hace descuentos o cobra recargos, dependiendo del
tipo de cliente del que se trata, de la forma de pago y del monto de la compra. El programa debe
leer los datos de los clientes: monto, tipo de cliente y forma de pago, y mostrar el monto del
descuento o del recargo y el total a pagar. Se sabrá que ya no hay clientes cuando se reciba un
número menor o igual a 0 para el monto. Al terminar de leer la información de todos los clientes
se deberá mostrar: el total de dinero descontado, el total de dinero de los recargos, el total
cobrado al contado y el total cobrado a plazos.

Montos ≤ 1000 Contado - Descuento Plazos – Recargo

Cliente general 15% 10%


Cliente afiliado 20% 5%

Montos > 1000

Cliente general 17.5% 8.75%


Cliente afiliado 23.12% 3.49%

Cuaderno de ejercicios 9 Realizado por: Dra. Begoña Albizuri


49. Un restaurante proporciona descuentos, dependiendo del monto de la consumición:

CONSUMO DESCUENTO (%)


Hasta $100 10
Mayor a $100 y máximo $200 15.50
Mayor a $200 22.35

Después de aplicar el descuento calcula el impuesto (16%).

El programa debe leer dos montos de consumición y mostrar, a modo de tabla, el monto de la
consumición, el porcentaje (%) de descuento que le corresponde, el monto menos el descuento,
el impuesto ($) y el monto final. Por ejemplo, si las consumiciones son $145.56 y $1,120:

CONSUMICION DESCUENTO SUBTOTAL IVA TOTAL

$145.56 15.50% $123.00 $19.68 $142.48


$1,120.00 23.35% $858.48 $137.36 $995.84

Para facilitar la impresión de la tabla considere sólo tres consumiciones.

50. Leer N cadenas (número aleatorio entre 1 y 10). Cada cadena deberá tener sólo caracteres
alfabéticos. Dividirla en dos cadenas, una para los caracteres de posición par y otra para los
caracteres de posición impar. Por ej. cadenaLeida=”rraattoonn”,
cadenaPar=”raton”,cadenaImpar=”raton”. El programa mostrará cadenaPar y cadenaImpar de
cada cadenaLeida y al terminar el número de veces que las dos cadenas resultantes fueron
iguales.

Cuaderno de ejercicios 10 Realizado por: Dra. Begoña Albizuri


PROGRAMACIÓN ORIENTADA A OBJETOS
Escribe las clases y los programas que permitan resolver los siguientes ejercicios.

51. Nos interesa calcular el área y el perímetro de rectángulos. Prueba tu aplicación con dos objetos.
El diagrama UML de la clase Rectángulo es:

52. Necesitamos calcular el área y el perímetro de círculos. Prueba tu aplicación con dos objetos. El
diagrama UML de la clase Círculo es:

53. Se tiene una oficina rectangular (el usuario deberá darte las medidas) que está cubierta por 3
tapetes circulares. Crea una clase aplicación y, usando las clases Rectángulo y Círculo, calcula
el área de la oficina que NO está cubierta por tapetes. Supón que los tapetes caben en la oficina.

54. Se desea conocer de cada objeto Persona si es niño, adolescente o adulto. Considerando que
un niño tiene entre 0 y 11 años, un adolescente entre 12 y 20 años y un adulto más de 20 años.
El programa creará 5 objetos y, utilizando el método correspondiente, indicará qué es la Persona.
Si lo deseas puedes leer los datos que les asignarás a los objetos.

55. Una empresa calcula el sueldo de los trabajadores dependiendo de las horas trabajadas y del
turno en que se trabajaron.

El valor de la hora en el turno diurno es de $13.75 y si el turno es nocturno, entonces se


incrementa en un 50.75%, es decir, la hora nocturna vale $20.73.

Cuaderno de ejercicios 11 Realizado por: Dra. Begoña Albizuri


El programa pedirá los datos de los trabajadores, creará los objetos y calculará los sueldos.

El mensaje que se presentará deberá ser: Sr(a) Ruiz su sueldo total es $1,200.48

Si el trabajador tiene turno diurno y su sueldo final fue superior a $2000, entonces de modifica
el turno a nocturno y se le piden al usuario cuáles serán sus nuevas horas trabajadas.

56. Una cadena de supermercados desea conocer:

a) El promedio de los sueldos mensuales de los gerentes que ganan anualmente más de 1
millón de pesos.
b) Cuántos gerentes ganan más de cierta cantidad, proporcionada por el usuario.
c) El promedio general de todos los sueldos.

Cuaderno de ejercicios 12 Realizado por: Dra. Begoña Albizuri


57. Se desea un programa que permita trabajar con los empleados de una empresa.

Se quiere:

a) Conocer la información completa de todos los empleados.

b) Dada la clave de un empleado, conocer su información completa (equals)

c) Conocer la información del empleado que gana más (compareTo)

d) Subir el sueldo a los empleados que ganan menos del promedio.

e) Conocer la información del empleado del cual se da su nombre (compareTo)

El programa debe tener un menú de operaciones que le permita al usuario realizar la operación
que desee en el orden que él decida hasta que disponga terminar.

Muestra el UML de la clase empleado. No debe haber métodos gets ni sets.

58. Se desea un programa que permita calcular y mostrar el bono navideño de los choferes de una
compañía de autobuses foráneos.

En general, para las mujeres el bono es del 60% del sueldo mensual, mientras que para los
hombres el bono es del 55%.

Pero si el chofer tiene más de 20 años en la compañía, se le dan $500, por cada año
adicional. Por ejemplo si un chofer es mujer, tiene 22 años de antigüedad en la
compañía y gana $3,000 mensuales, entonces su bono navideño será, el 60% de 3000 (por ser
mujer), es decir, 1800, pero además por cada año adicional a los 20, es decir, 2 años,
se le darán $500 pesos (2 * 500). De tal forma que su bono navideño será de $2,800.
El cálculo de bonos se hará mientras el usuario indique que desea hacer otro cálculo. Al
finalizar, el programa indicará cuántos choferes hubo en total y cuántos fueron hombres
y cuántos fueron mujeres.

Nota: en el constructor con parámetros no se especifican los nombres de los parámetros por
espacio. Siguen el orden de los atributos: clave, nombre, sexo, antigüedad y sueldo.

Cuaderno de ejercicios 13 Realizado por: Dra. Begoña Albizuri


59. A los enfermeros de un hospital les pagan según sus horas trabajadas, considerando una
determina tarifa de pago por horas.

Si la cantidad de horas trabajadas es mayor a 40 horas, la tarifa se incrementa en un 50% para


las horas extras.

Escribe un programa para calcular el salario de 4 enfermeros según las horas trabajadas y la
tarifa. Los datos de los enfermeros serán proporcionados por el usuario. No todos los enfermeros
tienen la misma tarifa. Nota que el sueldo no es un dato proporcionado al objeto a pesar de ser
un atributo. El programa deberá llamar a setSueldo para que calcule el sueldo.

60. Se requiere representar de manera simplificada el concepto Alumno por medio de una clase.

Para resolver el problema tienes que pensar cuáles son las características del concepto que
estás representando con la clase. En este caso, consideramos que los alumnos tienen clave, la
calificación de dos tareas y la de un examen. El 30% de la calificación final es el promedio de
las tareas y el 70% restante es el examen. Muestra el diagrama UML de la clase Alumno con la
funcionalidad mínima necesaria. Realiza la clase aplicación Grupo para probar la clase Alumno.

61. Teófilo desea guardar cierta información de sus amigos para poder consultar su teléfono, saber
cuántos amigos tiene del gimnasio, cuántos de la escuela y cuántos del club de alpinismo.
También quiere saber cuántos de sus amigos son mayores de edad y cuáles son sus nombres.
Teófilo sabe que cabe la posibilidad de que alguno de sus amigos cambie su número de teléfono
por lo que tendrá que modificar dicha información. Por último, quiere conocer la información
completa de todos sus amigos.

Analiza el problema y haz el UML de la clase Amigo, mostrando los atributos y métodos que se
requieren.

Escribe el programa que, utilizando la clase Amigo, resuelva el problema.

62. Un número complejo consta de una parte real y una parte imaginaria teniendo la forma a + bi,
donde a y b son números reales. Así, en el número complejo 1.5 + 3.4i, 1.5 es la parte real, y 3.4
es la parte imaginaria.
Las operaciones básicas entre números complejos se definen de la siguiente manera:

Suma: (a + bi) + (c + di) = (a + c) + (b + d)i


Resta: (a + bi) - (c + di) = (a - c) + (b - d)i
Multiplicación: (a + bi) * (c + di) = (ac - bd) + (ad + bc)i

Crea el proyecto CalculadoraCompleja que contenga la clase Complejo. Lee dos números
complejos, resuelve las tres operaciones y muestra los resultados.

Cuaderno de ejercicios 14 Realizado por: Dra. Begoña Albizuri


63. Una escuela japonesa utiliza n robots en sus clases de computación. Cada robot tiene un número
de identificación y un porcentaje de vida. El número de identificación de cada robot lo
proporcionará el usuario. Mientras que el porcentaje de vida de cada uno será calculado por el
programa, siendo un valor real aleatorio entre 1 y 100.
Se te pide que escribas una aplicación que permita conocer:
a) Cuántos robots tienen menos de un 25% de vida.
b) La cantidad de robots que tienen más del 75% de vida.
c) Cuál es el porcentaje más alto de vida y qué número de robot lo tiene.

64. La información que se tiene sobre las personas del Club del Jubilado es: clave y edad. Crea la
clase Jubilado que tenga, entre otros, los métodos:
a) mayor, que reciba como argumento un Jubilado, que compare la edad del objeto dueño y la
del que recibe como argumento y regrese el jubilado que tiene más años.
b) vivo, que regrese verdadero si el jubilado tiene menos de 110 años (se considera que está
vivo) y falso si tiene más.
c) compareTo, que compare la edad del jubilado con un entero que recibe como argumento.

Se desea conocer cuántos jubilados ya no están vivos y cuántos hay con más de 100 años.

66. Un banco antes de conceder un préstamo, comprueba los ingresos del solicitante. Si los ingresos
son superiores a $120,000 anuales, el préstamo se concede. Si los ingresos son inferiores a
$120,000 anuales pero superiores a $100,000 y el solicitante tiene máximo 2 hijos, el préstamo
se concede. También se le concede, si tiene ingresos entre $80,000 y $100,000 pero no tiene
hijos. Crea el UML de la clase Solicitante para que el programa, utilizando los métodos de la
clase, determine:

a) Si a n solicitantes se les concede el préstamo o no.


b) A cuántos solicitantes se les otorgó el préstamo.
c) Cuántos solicitantes tienen más de dos hijos.
d) A cuánto asciende el ingreso mayor y qué solicitante lo tiene.
e) Dada una clave de un solicitante muestre su información completa o un mensaje
apropiado si ninguno la tiene.

67. Un comerciante sólo vende sillas de tres tipos: 1, 2 y 3. Los precios son $200.50, $350 y $500,
respectivamente. Por cada cinco sillas compradas del tipo 1, del tipo 2 o del tipo 3 los clientes
reciben un descuento de 3%, 5% y 7%, respectivamente. Haz un programa para ingresar el tipo
de sillas a comprar, la cantidad y mostrar el importe a pagar. Muestra el UML de la clase Silla.

Cuaderno de ejercicios 15 Realizado por: Dra. Begoña Albizuri


68. Teniendo la clave de un trabajador, el sueldo, la categoría y condición (fijo o eventual), calcula
cuánto se le debe pagar en total. El porcentaje de bonificación (con respecto al sueldo) se calcula
de acuerdo a la siguiente tabla:

CATEGORÍA FIJO EVENTUAL


A 20.5% 17.2%
B 18.73% 15.46%
C 15% 14.03%
D 12.3% 10%

Todos los empleados aportan un donativo para obras sociales, el cual se les descuenta al sueldo
+ bonificación, dependiendo de su condición: a los fijos un 6% y a los eventuales un 4%. Crea y
utiliza la clase Trabajador.

69. Dos bancos ofrecen las siguientes tasas de interés anual capitalizable mensualmente:

BANCO A BANCO B
DEPÓSITO INTERÉS MENSUAL DEPÓSITO INTERÉS MENSUAL
0 a 500 5% 0 a 500 7%
501 a 4499 12% 501 a 3499 10%
≥ 4500 16% ≥ 3500 15%

Escribe un programa que:

Solicite al usuario el monto de dinero que desea depositar y el tiempo (meses) que lo
mantendrá en el banco.

Determine cuál de los dos bancos, A o B, es más conveniente para depositar el dinero y
muestre un mensaje indicando en qué banco debería el usuario depositar el monto
ingresado, y cuánto dinero tendrá luego de transcurrido el tiempo que indicó al inicio. ¿Qué
objeto deberías tener?

70. Una vinatería compró n cilindros para almacenar el vino que produce. Todos los cilindros son
idénticos en dimensiones. Escribe una aplicación que calcule la cantidad de vino que puede
almacenar la vinatería.
La vinatería también desea forrar los cilindros con unas telas que mandará a hacer con su logo.
Calcula cuánta tela se debe comprar en total para forrar los n cilindros.

Recuerda que un Cilindro estará compuesto de un objeto Rectángulo y dos objetos Círculo:

Rectángulo Circulo

Recuerda que el volumen de un cilindro se calcula multiplicando el área del círculo de la base
por la altura del cilindro.
Utiliza las clases Rectángulo y Círculo para crear la clase Cilindro.

Cuaderno de ejercicios 16 Realizado por: Dra. Begoña Albizuri


71. Adivina 3. Crea la clase NumeroBinario que permita crear la representación en binario de un
número decimal, guardándola en un String (Adivina 1). También se deberá poder transformar el
número en binario a su correspondiente en decimal (Adivina 2). Se desea poder saber si en una
determinada posición del número binario hay un 1 o un 0.

72. Escribe la clase Carta para representar una carta (naipe) de la baraja.

Los palos son: corazones, diamantes, espadas y tréboles. El número va a ser: del 1 al 10, 11->
Sota, 12 -> Reina y 13 -> Rey.

El toString creará un String tipo: 8-corazones o Sota-espadas.

El método getValor regresará el valor de la carta en el juego: los números del 1 (As) al 10, el
valor que muestran y las figuras (Sota, Reina y Rey) valen 10.

Prueba la clase creando cartas de manera aleatoria, tanto para el número como para el palo.

73. Una cajera necesita un programa que le ayude a saber cuántos billetes y monedas necesita dar
de cambio, de cada una de las siguientes denominaciones:

a) Billetes: 200, 100, 50 y 20


b) Monedas: 10, 5, 2, 1, 0.50 y 0.20

Tiene que dar el mayor número posibles de las mayores denominaciones y la menor cantidad
de las menores, así como de monedas. Por ejemplo si el cambio es $1390, entonces tiene que
dar: 6 billetes de 200, 1 billete de 100, 1 billete de 50 y 2 billetes de 20.

El programa recibirá el total de la compra, la cantidad de dinero proporcionada por el comprador


y mostrará los billetes que la cajera devuelve.

Cuaderno de ejercicios 17 Realizado por: Dra. Begoña Albizuri

Вам также может понравиться