Академический Документы
Профессиональный Документы
Культура Документы
Cuaderno de Ejercicios
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
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
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
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
Estos ejercicios van a ir componiendo una aplicación. Adivina nos va a permitir adivinar el número
que pensó el usuario.
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.
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
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.
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.
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.
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.
El programa debe:
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:
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.
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.
1 1 1
2 4 8
3 9 27
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)
º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.
Los siguientes números perfectos después del 6 son 28, 496, 8128, 33550336, 8589869056.
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 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110.
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:
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.
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.
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.
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.
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:
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.
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 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.
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.
Se quiere:
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.
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.
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.
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:
Crea el proyecto CalculadoraCompleja que contenga la clase Complejo. Lee dos números
complejos, resuelve las tres operaciones y muestra los resultados.
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:
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.
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%
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.
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 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:
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.