30Days-WithJava 😍




A continuación presentaremos enunciados de ejercicios en Java, uno por cada día hasta llegar a 30 días. 

La idea principal de esta iniciativa es poder leer, comprender y resolver los ejercicios usando el lenguaje Java.

Day 1

Crear una clase Main y crear el método main sin utilizar las herramientas de autocompletado del IDE. Deberás mostrar por consola el siguiente mensaje: "Voy con toda. Naahh... esto esta para bebés!". Luego deberás crear otra clase main con el nombre "MainDoscon su respectivo método main e imprimir el mensaje: "Todavía tengo tiempo para tomarme un café con pan!".

Day 2

Crear un programa que divida el número 7 entre 2 y que realice el promedio de los siguientes números: 5, 28, 33. El programa deberá imprimir por pantalla los resultados y  si algunos de los resultados es un número decimal, debes imprimir ese resultado pero como un número entero con el siguiente mensaje: "Este era un número decimal pero ahora es un entero".

Day 3

Se necesita un programa de potenciación que permita recibir número como base y un número como exponente y que imprima el resultado por consola.

Day 4

Crea un paquete que contenga una clase con el método main y otro paquete que contenga las operaciones matemáticas básicas: sumar, restar, multiplicar y dividí. Mostrar por pantalla la suma, la resta, la multiplicación y la división de los números 16 y 32 haciendo uso de la clase que contiene las operaciones matemáticas.

Day 5

Escriba una aplicación que reciba del usuario un número compuesto por cinco dígitos, que separe ese número en sus dígitos individuales y los imprima, cada uno separado de los demás por tres espacios. Por ejemplo, si el usuario escribe el número 42339, el programa debe imprimir: 4  2  3  3  9

Day 6

Cree una clase llamada Empleado, que incluya tres variables de instancia: un primer nombre (tipo String), un apellido paterno (tipo String) y un salario mensual (double). Su clase debe tener un constructor que inicialice las tres variables de instancia. Proporcione un método establecer y un método obtener para cada variable de instancia. Si el salario mensual no es positivo, no establezca su valor. Escriba una aplicación de prueba llamada PruebaEmpleado, que demuestre las capacidades de la clase Empleado. Cree dos objetos Empleado y muestre el salario anual de cada objeto. Después, proporcione a cada Empleado un aumento del 10% y muestre el salario anual de cada Empleado otra vez.

Day 7

Desarrolle una aplicación en Java que determine el sueldo bruto para cada uno de tres empleados. La empresa paga la cuota normal en las primeras 40 horas de trabajo de cada empleado, y cuota y media en todas las horas trabajadas que excedan de 40. Usted recibe una lista de los empleados de la empresa, el número de horas que trabajó cada uno la semana pasada y la tarifa por horas de cada empleado. Su programa debe recibir como entrada esta información para cada empleado, para luego determinar y mostrar el sueldo bruto de cada trabajador. Utilice la clase Scanner para introducir los datos.

Day 8

El proceso de encontrar el valor más grande se utiliza con frecuencia en aplicaciones de computadora. Por ejemplo, un programa para determinar el ganador de un concurso de ventas recibe como entrada el número de unidades vendidas por cada vendedor. El vendedor que haya vendido más unidades es el que gana el concurso. Escriba un programa en seudocódigo y después una aplicación en Java que reciba como entrada una serie de 10 números enteros, y que determine e imprima el mayor de los números. Su programa debe utilizar cuando menos las siguientes tres variables:
    a) contador: un contador para contar hasta 10 (para llevar el registro de cuántos números         se han introducido, y para determinar cuando se hayan procesado los 10 números). 
    b) numero: el entero más reciente introducido por el usuario. 
    c) mayor: el número más grande encontrado hasta ahora.

Day 9

Un palíndromo es una secuencia de caracteres que se lee igual al derecho y al revés. Por ejemplo, cada uno de los siguientes enteros de cinco dígitos es un palíndromo: 12321, 55555, 45554 y 11611. Escriba una aplicación que lea un entero de cinco dígitos y determine si es un palíndromo. Si el número no es de cinco dígitos, el programa debe mostrar un mensaje de error y permitir al usuario que introduzca un nuevo valor.

Day 10

 Un vendedor minorista en línea vende cinco productos cuyos precios de venta son los siguientes: producto 1, $2.98; producto 2, $4.50; producto 3, $9.98; producto 4, $4.49 y producto 5, $6.87. Escriba una aplicación que lea una serie de pares de números, como se muestra a continuación: a) número del producto; b) cantidad vendida. Su programa debe utilizar una instrucción switch para determinar el precio de venta de cada producto. Debe calcular y mostrar el valor total de venta de todos los productos vendidos. Use un ciclo controlado por centinela para determinar cuándo debe el programa dejar de iterar para mostrar los resultados finales.

Day 11

Escriba un método llamado esPar que utilice el operador residuo (%) para determinar si un entero dado es par. El método debe tomar un argumento entero y devolver true si el entero es par, y false en caso contrario. Incorpore este método en una aplicación que reciba como entrada una secuencia de enteros (uno a la vez), y que determine si cada uno es par o impar.

Day 12

Se dice que un entero positivo es primo si puede dividirse solamente por 1 y por sí mismo. Por ejemplo, 2, 3, 5 y 7 son primos, pero 4, 6, 8 y 9 no. Por definición, el número 1 no es primo.
    a) Escriba un método que determine si un número es primo. 
    b) Use este método en una aplicación que determine y muestre en pantalla todos los                 números primos menores que 10,000. ¿Cuántos números hasta 10,000 tiene que probar         para asegurarse de encontrar todos los números primos? 
    c) Al principio podría pensarse que n/2 es el límite superior para evaluar si un número n es     primo, pero sólo es necesario ir hasta la raíz cuadrada de n. Vuelva a escribir el programa y     ejecútelo de ambas formas.

Day 13

Una pequeña aerolínea acaba de comprar una computadora para su nuevo sistema de reservaciones automatizado. Se le ha pedido a usted que desarrolle el nuevo sistema. Usted escribirá una aplicación para asignar asientos en cada vuelo del único avión de la aerolínea (capacidad: 10 asientos). 
    Su aplicación debe mostrar las siguientes alternativas: Por favor escriba 1 para Primera Clase y Por favor escriba 2 para Economico. Si el usuario escribe 1, su aplicación debe asignarle un asiento en la sección de primera clase (asientos 1 a 5). Si el usuario escribe 2, su aplicación debe asignarle un asiento en la sección económica (asientos 6 a 10). Su aplicación deberá entonces imprimir un pase de abordar, indicando el número de asiento de la persona y si se encuentra en la sección de primera clase o clase económica. 
    Use un arreglo unidimensional del tipo primitivo boolean para representar la tabla de asientos del avión. Inicialice todos los elementos del arreglo con false para indicar que todos los asientos están vacíos. A medida que se asigne cada asiento, establezca el elemento correspondiente del arreglo en true para indicar que ese asiento ya no está disponible. 
    Su aplicación nunca deberá asignar un asiento que ya haya sido asignado. Cuando esté llena la sección económica, su programa deberá preguntar a la persona si acepta ser colocada en la sección de primera clase (y viceversa). Si la persona acepta, haga la asignación de asiento apropiada. Si no, imprima el mensaje “El próximo vuelo sale en 3 horas”.

Day 14

Internet y Web permiten que cada vez haya más personas conectadas en red, unidas por una causa, expresen sus opiniones, etcétera. Los candidatos presidenciales recientes usaron Internet en forma intensiva para expresar sus mensajes y recaudar dinero para sus campañas. En este ejercicio, escribirá un pequeño programa de encuestas que permite a los usuarios calificar cinco asuntos de conciencia social, desde 1 (menos importante) hasta 10 (más importante). Elija cinco causas que sean importantes para usted (por ejemplo, temas políticos, sobre el medio ambiente). Use un arreglo unidimensional llamado temas (de tipo String) para almacenar las cinco causas. Para sintetizar las respuestas de la encuesta, use un arreglo bidimensional de 5 filas y 10 columnas llamado respuestas (de tipo int), en donde cada fila corresponda a un elemento del arreglo temas. Cuando se ejecute el programa, debe pedir al usuario que califique cada tema. Haga que sus amigos y familiares respondan a la encuesta. Después haga que el programa muestre un resumen de los resultados, incluyendo:
  
    a) Un informe tabular con los cinco temas del lado izquierdo y las 10 calificaciones en la             parte superior, listando en cada columna el número de calificaciones recibidas para                 cada tema. 
    b) A la derecha de cada fila, muestre el promedio de las calificaciones para cada tema                específico. 
    c) ¿Qué tema recibió la mayor puntuación total? Muestre ambos, el asunto y la puntuación.     d)¿Cuál obtuvo la menor puntuación total? Muestre tanto el tema como la puntuación total.

Day 15

Dibuje una jerarquía de herencia para los estudiantes en una universidad. Use a Estudiante como la superclase de la jerarquía, y después extienda Estudiante con las clases EstudianteNoGraduado y EstudianteGraduado. Siga extendiendo la jerarquía con el mayor número de niveles que sea posible. Por ejemplo, EstudiantePrimerAnio, EstudianteSegundoAnio, EstudianteTercerAnio y EstudianteCuartoAnio podrían extender a EstudianteNoGraduado, y EstudianteDoctorado y EstudianteMaestria podrían ser subclases de EstudianteGraduado. Después de dibujar la jerarquía, hable sobre las relaciones que existen entre las clases. [Nota: no necesita escribir código para este ejercicio].

Day 16

Mediante el uso de interfaces, es posible especificar comportamientos similares para clases que pueden ser dispares. Los gobiernos y las compañías en todo el mundo se están preocupando cada vez más por el impacto ecológico del carbono (las liberaciones anuales de dióxido de carbono en la atmósfera), debido a los edificios que consumen diversos tipos de combustibles para obtener calor, los vehículos que queman combustibles para producir energía, y demás. Muchos científicos culpan a estos gases de invernadero por el fenómeno conocido como calentamiento global. Cree tres pequeñas clases no relacionadas por herencia: las clases Edificio, Auto y Bicicleta. Proporcione a cada clase ciertos atributos y comportamientos apropiados que sean únicos, que no tengan en común con otras clases. Escriba la interfaz ImpactoEcologico con un método obtenerImpactoEcologico. Haga que cada una de sus clases implementen a esa interfaz, de modo que su método obtenerImpactoEcologico calcule el impacto ecológico del carbono apropiado para esa clase (consulte sitios Web que expliquen cómo calcular el impacto ecológico del carbono). Escriba una aplicación que cree objetos de cada una de las tres clases, coloque referencias a esos objetos en ArrayList y después itere a través del objeto ArrayList, invocando en forma polimórfica el método obtenerImpactoEcologico de cada objeto. Para cada objeto imprima cierta información de identificación, además de su impacto ecológico.

Day 17

Realice el Modelo Entidad-relación, el Modelo Relacional y luego haga el sistema en Java aplicando Programación Orientada a Objetos (OOP) del siguiente caso:

“A un concesionario de autos llegan clientes para comprar automóviles. De cada auto interesa saber la matrícula, modelo, marca y color. Un cliente puede comprar varios autos en el concesionario. Cuando un cliente compra un auto, se le hace una ficha en el concesionario con la siguiente información: cédula, nombre, apellidos, dirección y teléfono. Los autos que el concesionario vende pueden ser nuevos o usados (de segunda mano). De los autos nuevos interesa saber el número de unidades que hay en el concesionario. De los autos viejos interesa el número de kilómetros que lleva recorridos. El concesionario también dispone de un taller en el que los mecánicos reparan los autos que llevan los clientes. Un mecánico repara varios carros a lo largo del día, y un auto puede ser reparado por varios mecánicos. Los mecánicos tienen una cédula, nombre, apellidos, fecha de contratación y salario. Se desea guardar también la fecha en la que se repara cada vehículo y el número de horas que se tarda en arreglar cada automóvil. [El sistema debe ser por consola. No se debe usar BBDD ni interfaz grafica (swing)].

Day 18

Para el siguiente caso, se necesita que usted como programador Java, diseñe y realice el Modelo Relacional y luego haga el sistema en Java aplicando Programación Orientada a Objetos (OOP)

"La clínica “Más vida” necesita llevar un control informatizado de su gestión de pacientes y médicos. De cada paciente se desea guardar el código, nombre, apellidos, dirección, población, departamento, teléfono y fecha de nacimiento. De cada médico se desea guardar el código, nombre, apellidos, teléfono y especialidad. Se desea llevar el control de cada uno de los ingresos que el paciente hace en el hospital. Cada ingreso que realiza el paciente queda registrado en la base de datos. De cada ingreso se guarda el código de ingreso (que se incrementará automáticamente cada vez que el paciente realice un ingreso), el número de habitación y cama en la que el paciente realiza el ingreso y la fecha de ingreso. Un médico puede atender varios ingresos, pero el ingreso de un paciente solo puede ser atendido por un único médico. Un paciente puede realizar varios ingresos en el hospital." [El sistema debe ser por consola. No se debe usar BBDD ni interfaz gráfica (swing)].

Day 19

Se quiere diseñar una base de datos relacional para gestionar los datos de los socios de un club náutico. De cada socio se guardan los datos personales y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y los datos personales del patrón, que no tiene por qué ser el propietario del barco ni es necesario que sea socio del club.
Por lo tanto, se le ha contrato para que usted para que haga el diseño del diagrama relacional y el diagrama de clases. Luego debe implementarlo en Java. [El sistema debe ser por consola. No se debe usar BBDD ni interfaz gráfica (swing)].

Day 20

Use la herencia para crear una superclase de excepción llamada ExcepcionA, así como las subclases de excepción ExcepcionB y ExcepcionC, en donde ExcepcionB hereda de ExcepcionA y ExcepcionC hereda de ExcepcionB. Escriba un programa para demostrar que el bloque catch para el tipo ExcepcionA atrapa excepciones de los tipos ExcepcionB y ExcepcionC.

_________________________________________________________________________

Solución

Las soluciones se irán subiendo ( o anexando) en mi repositorio de GitHub (a medida que saque tiempo xd): 


Nota: Este blog está en construcción, por lo tanto, en el transcurso de lo días se estará agregando los ejercicios restante hasta completar 30 días programando en Java; a su vez también se estará subiendo la soluciones en repositorio.
Recuerda que el objetivo de las soluciones es dar una idea general de como se resolvería, por lo que puede estar sujeta a mejoras y correcciones.

Comentarios

Entradas populares