Programacion orientada a objetos ss14

27
Servicio de asesoría y resolución de ejercicios [email protected] www.maestronline.com Solicita una cotización a través de nuestros correos. Maestros Online Programación orientada a objetos Apoyo en ejercicios Servicio de asesorías y solución de ejercicios [email protected]

description

www.maestronline.com [email protected]

Transcript of Programacion orientada a objetos ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Solicita una cotización a través de nuestros correos.

Maestros Online

Programación

orientada a

objetos

Apoyo en

ejercicios

Servicio de asesorías y solución de ejercicios

[email protected]

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

1. Reúnanse en equipo.

2. Realicen las siguientes actividades y elaboren un documento con sus respuestas.

a. Mencionen dos objetos que estén a su alrededor, para cada uno de ellos,

escriban 6 atributos y 6 comportamientos.

b. A continuación se listan una serie de palabras o frases. Si el objeto es un

correo electrónico, encierren en un círculo sus atributos, subrayen los

comportamientos y tachen las que no tengan relación.

i. Asunto.

ii. Recibir un correo.

iii. Cantidad de correos almacenados texto del correo.

iv. Eliminar completamente el correo a quién va dirigido.

v. Nombre del paquete empleado para enviar/recibir correos.

vi. Mover el correo a una carpeta.

vii. Hora en la que se envió/recibió el correo.

viii. Carpeta en la que está el correo.

ix. Marcar como leído el correo.

x. Fecha en la que se envió/recibió el correo.

xi. Con copia para.

xii. Enviar el correo.

xiii. Crear un correo.

c. Contesten las siguientes preguntas:

i. ¿Cuál es la diferencia entre la programación lineal y la programación

estructurada?

ii. ¿Cuándo es mejor la programación orientada a objetos que la

programación estructurada?

iii. ¿Por qué crees que la programación orientada a objetos facilita el

desarrollo de programas grandes y complejos?

iv. ¿Cuál o cuáles de las características de la POO ayudan a agilizar el

desarrollo de software?

v. Una de las características de la POO es el encapsulamiento.

¿Consideras que esta característica se puede dar cuando no hay

ocultamiento de información?

d. En un diccionario de informática pueden encontrar la siguiente definición de la

palabra abstracción:

Abstracción: Es un proceso mental que se aplica al seleccionar algunas

características y propiedades de un conjunto de cosas del mundo real,

excluyendo otras no pertinentes. En otras palabras, es una representación

mental de la realidad.

e. Realicen lo siguiente:

i. Dibujen en un papel un celular.

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

ii. Lo que dibujaron es un celular o la abstracción de un celular. ¿Por

qué?

iii. ¿Por qué consideran que la capacidad de abstracción es importante en

el desarrollo de software?

3. En equipo realicen las siguientes actividades:

a. Para cada uno de los siguientes enunciados de un problema, realicen lo que

se indica y entreguen un reporte con las respuestas.

Primer enunciado

La compañía OBJ está conformada por empleados y departamentos. Se

cuenta con los siguientes datos de cada empleado: nombre, sueldo y

antigüedad en la empresa. Para cada uno de los departamentos se cuenta con

la siguiente información: su clave, su nombre, ubicación y la cantidad de

empleados que tiene.

i. El objetivo es hacer un sistema para actualizar y mostrar la información

del empleado y del departamento.

Segundo enunciado

Un zoológico desea hacer una aplicación computacional para llevar la

organización de las especies, los empleados y las visitas guiadas.

Para cada una de las especies se quiere conservar: su nombre en español, su

nombre científico, una descripción general y sección del zoológico en la que

está ubicada.

Cada empleado cuenta con: su número de empleado, nombre y sección del

zoológico en la que labora.

El zoológico programa visitas guiadas dos o 3 veces al mes,

aproximadamente.

Para cada visita se almacenan los siguientes datos: la fecha y hora en la que

se realizará, la escuela que programó la visita y la cantidad de niños que

asistirán.

Básicamente lo que que realiza la aplicación es añadir, mostrar y modificar la

información de las especies, empleados y visitas guiadas.

ii. Identifiquen las clases.

iii. Reconozcan los atributos y comportamientos de cada clase. Deben

incluir solamente los que se mencionan en el enunciado.

iv. Determinen el nivel de visibilidad de los atributos y métodos.

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

v. Construyan el encabezado de cada método. Para este caso no tomen

en cuenta un lenguaje de programación, solo es importante determinar

el nombre, qué parámetros debe recibir, si regresa o no un resultado.

vi. Dibujen el diagrama de cada una de las clases identificadas.

4. De manera individual, realiza las siguientes actividades.

a. Lee el siguiente enunciado de un problema y realiza lo siguiente:

Enunciado

La tienda Quiquiriquí los ha contratado para que le realicen una aplicación que funcione en un

dispositivo móvil y cuyo objetivo sea acceder a la información de sus empleados y clientes.

Tanto para los empleados como para los clientes se debe contar con su nombre, edad y

teléfono.

Solo para los empleados se tienen también el sueldo y su antigüedad.

Al dueño de la tienda le gusta llevar un registro adicional sobre los clientes que incluye el

promedio de sus compras y el saldo deudor. La aplicación debe permitir añadir, mostrar y

modificar la información de los empleados y clientes de la tienda.

i. Identifica las clases involucradas en el problema.

ii. Especifica el tipo de relación que existe entre las clases.

iii. Reconoce los atributos y comportamientos de cada clase. Incluye

solamente los que se mencionan en el enunciado.

iv. Determina el nivel de visibilidad de los atributos y métodos.

v. Construye el encabezado de cada método. Para este caso, no tomes

en cuenta un lenguaje de programación solo es importante determinar

el nombre, qué parámetros debe recibir, si regresa o no un resultado.

vi. Dibuja el diagrama de cada una de las clases identificadas.

2. Reúnanse en equipo para realiza un programa que sea útil para determinar si los

números enteros A, B y C, proporcionados por el usuario, son medidas correctas para

los lados de un triángulo y si lo son, indicar si se trata de un triángulo equilátero,

isósceles o escaleno.

NOTA: A, B y C son los lados de un triángulo si cumplen con las siguientes

condiciones:

1. Todos los números son mayores que cero

2. A + B > C

3. A + C > B

4. B + C > A

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Es decir, la suma de dos de las medidas debe ser estrictamente mayor que la

tercera.

El triángulo equilátero tiene 3 lados iguales, el isósceles tiene 2 lados iguales y el

escaleno tiene los 3 lados de diferente longitud.

El programa debe solicitar y leer la magnitud de los tres lados del triángulo. Cada uno

de ellos debe ser un número con punto decimal.

Después de leer los datos el programa debe desplegar una de las siguientes leyendas:

5. Las medidas no forman un triángulo.

6. El triángulo es equilátero.

7. El triángulo es isósceles.

8. El triángulo es escaleno.

2. Reúnanse en equipo y den solución al siguiente ejercicio.

a. Ejercicio 1. Parque de diversiones Great Adventure Mexico.

El dueño del parque de diversiones “Great Adventure Mexico” tiene una máquina para

vender boletos. La máquina vende 3 tipos de boletos:

i. Adulto que cuestan $120,

ii. (N) Niños que cuestan $75 y

iii. Abuelitos con credencial del INAPAM que cuestan $60.

Para comprar los boletos en esta máquina deben solicitarse de 1 a la vez (como la

máquina que vende latas de refrescos). Puedes suponer que la máquina tiene una

cantidad ilimitada de boletos de los 3 tipos.

Al momento de la consultoría, se dan cuenta de que para dar solución al problema es

necesario escribir un programa que pregunte el tipo de boleto (A clave para el boleto

de adulto, N clave para el boleto de niño o I clave para el boleto de INAPAM), muestre

su precio y luego pregunte si hay otro cliente, si el usuario contesta que sí, el

programa debe repetir el proceso.

Ejemplo de la ejecución del programa:

Tipo de boleto? A

El boleto cuesta? $120.00

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Otro boleto (s/n)? s

Tipo de boleto? I

El boleto cuesta? $60.00

Otro boleto (s/n)? n

Fin del programa

b. Ejercicio 2. Omitiendo los múltiplos de 3

Escriban un programa que genere y despliegue los primeros 100 números de

la siguiente secuencia:

1, 2, 4, 5, 7, 8, 10…

Observen que la secuencia omite los múltiplos de 3. Los 100 números se

deberán desplegar en pantalla en grupos de 10 en 10. El programa no solicita

ningún dato de entrada.

Ejemplo de la ejecución del programa:

1 2 4 5 7 8 10 11 13 14

16 17 19 20 22 23 25 26 28 29

31…

IMPORTANTE: El programa debe utilizar un ciclo que genere los números.

3. Reúnanse en equipo y den solución a los siguientes ejercicios.

a. Ejercicio 3. Conversión de unidades

En la empresa en la cual trabajan, la dirección desea lanzar una App para Android que

convierta unidades de metros a Centímetros (C), Yardas (Y) o Pies (P). Como ustedes

quieren ser Project Manager del proyecto, tu jefe como prueba les pide que desarrollen

un programa el cual le solicite al usuario la cantidad de metros y el tipo de conversión,

para después desplegar la cantidad en la unidad de longitud seleccionada.

No se sabe la cantidad de conversiones que realizará el programa pero está

establecido que el programa se debe terminar cuando la cantidad de metros sea igual

a cero.

Ejemplo de la ejecución del programa:

¿Cantidad en metros? 10

Unidad (C/Y/P)? Y

10 metros es igual a 10.9361 yardas

¿Cantidad en metros? 5

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

¿Unidad (C/Y/P)? P

5 metros es igual a 196.85 pulgadas

¿Cantidad en metros? 0

Fin del programa

El programa debe contener 3 métodos:

ii. Método para convertir de metros a centímetros.

iii. Método para convertir de metros a yardas.

iv. Método para convertir de metros a pulgadas.

e. Ejercicio 4. Funciones trigonométricas

Es clase de Matemáticas Financieras y han olvidado su calculadora científica,

como necesitan ser capaces de resolver los ejercicios, deciden escribir un

programa que despliegue en pantalla las tablas de alguna de las siguientes

funciones trigonométricas Math.Sin(x), Math.Cos(x) o Math.Tan(x).

Para esto el programa debe solicitar al usuario lo siguiente:

i. Tabla que desea desplegar: Cos, Sin o Tan.

ii. Valor inicial de x.

iii. Valor final de x.

Después de leer la información, el programa debe desplegar en pantalla la

tabla para valores de x que van desde el inicial hasta el final en incrementos de

0.1.

Ejemplo de la ejecución del programa:

Tipo de tabla (S/C/T)? C

Valor inicial? 0

Valor final? 1

x Cos(x)

-----------------------

0 1

0.1 0.995

----

1 0.5403

El programa debe incluir un método que despliegue la tabla para cada una de

las funciones trigonométricas.

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Diagrama de clases básico para modelar la estructura de un problema y un programa

escrito en Java.

Instrucciones para realizar evidencia:80%

La evidencia a realizar para este módulo consta de 2 partes.

1. La primera de ellas tiene que ver con modelado de las clases que se deben

construir para resolver la problemática que se plantea.

2. La segunda parte consiste en elaborar un programa en un lenguaje orientado a

objetos que resuelva la situación que se describe en dicha sección.

3. Lee el siguiente enunciado de un problema y realiza lo siguiente:

Haz clic en cada botón para ver el enunciado del problema.

Problema

a. Identifica las clases involucradas en el problema.

b. Especifica el tipo de relación que existe entre las clases.

c. Reconoce los atributos y comportamientos de cada clase. Incluir

solamente los que se mencionan en el enunciado.

d. Determina el nivel de visibilidad de los atributos y métodos.

e. Construye el encabezado de cada método. Para este caso, no tomes en

cuenta un lenguaje de programación, solo es importante determinar el

nombre, qué parámetros debe recibir, si regresa o no un resultado.

f. Dibuja el diagrama de cada una de las clases identificadas.

4. Escribe un programa que pida al usuario una fecha con tres números enteros

(día, mes y año). El programa debe indicar al usuario si la fecha es válida o no.

En la realización del programa debes considerar:

a. La cantidad de días que tiene cada mes y además si el año es bisiesto o

no.

b. Recuerda que un año bisiesto es aquel en el que el mes de febrero tiene

29 días. Se dice que un año es bisiesto si es divisible entre 4, excepto

que sea divisible entre 100. Pero si es divisible entre 100 y también es

divisible entre 400, entonces sí es bisiesto.

c. Al ejecutar el programa, este pedirá al usuario que teclee primero el

número del día, posteriormente solicitará y leerá el número del mes y

finalmente el año con un número de 4 dígitos.

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

d. El programa verificará la fecha y desplegará en la pantalla la palabra

FECHA CORRECTA si la fecha es válida, o FECHA INCORRECTA si la

fecha no es válida.

e. Una vez que el programa termina de verificar la primera fecha, el

programa debe preguntar al usuario si desea validar otra fecha. Si su

respuesta es „S‟ o „s‟ el programa repetirá el proceso antes descrito de lo

contrario terminará su ejecución.

Ejemplo de la ejecución del programa:

Día? 6

Mes? 13

Año? 2013

FECHA INCORRECTA

Desea verificar otra fecha S/N? s

Día? 29

Mes? 2

Año? 1900

FECHA INCORRECTA

Desea verificar otra fecha S/N? s

Día? 28

Mes? 2

Año? 1900

FECHA CORRECTA

Desea verificar otra fecha S/N? n

5. Al elaborar el programa, debes emplear métodos definidos por ti, que realicen

una acción específica como por ejemplo: “determinar si un año es bisiesto o

no”.

6. Cajero Automático

7. Un banco desea introducir el servicio de Cajero Automático para proveer algunas

facilidades a sus clientes.

8. Los cajeros solo pueden aceptar tarjetas de cuentas de cheques y tarjetas de cuentas

de ahorros. Los usuarios solo pueden: ver su balance, retirar dinero de sus tarjetas y

cambiar su PIN.

9. Cada tarjeta solo puede acceder a una cuenta ya sea de cheques o de ahorros pero,

una cuenta de cheques puede ser accedida utilizando diferentes tarjetas (no más de 4

tarjetas). Un PIN está asociado con cada tarjeta para verificar la autenticidad del

usuario.

10. Toda cuenta tiene un balance (cantidad de dinero que tiene la cuenta).

11. La cuenta de cheques tiene derecho a un 10% de sobregiro. Por lo tanto para una

cuenta de cheques, el máximo retiro permitido no debe exceder del balance más el

sobregiro en el entendido de que en el cajero siempre habrá suficiente dinero.

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

12. Una cuenta de ahorros no tiene un porcentaje de sobregiro por lo que el máximo retiro

permitido no debe exceder del balance.

13. La información del cliente no se requiere en este sistema y se cuenta con 2 tipos

de hardware (la lectora de tarjetas y el dispensador de dinero).

14. La lectora de tarjetas lee la tarjeta y envía el número al sistema. El sistema le indica a

la lectora cuándo sacar la tarjeta.

Escribe un programa que obtenga la suma de los elementos que están en posiciones

opuestas dentro de un arreglo unidimensional de enteros. El procedimiento a seguir es el

siguiente:

a. Identifiquen el tamaño del arreglo (el arreglo puede tener un número par o impar de

elementos).

b. Llenen un arreglo con los valores enteros tecleados por el usuario.

c. Creen otro arreglo que contenga la suma de los elementos que están en las

posiciones opuestos dentro del arreglo es decir se suma el elemento de la posición

cero con el elemento de la última posición y el resultado se guarda en la posición cero

del nuevo arreglo; luego se suma el elemento de la posición 1 con el de la penúltima

posición y se guarda en la segunda posición del nuevo arreglo y así sucesivamente.

d. Desplieguen el arreglo con los valores tecleados por el usuario.

e. Desplieguen el nuevo arreglo con la suma de los elementos que están en posiciones

opuestas.

1. A continuación, se pone como ejemplo la ejecución en consola del programa:

Cantidad de elementos del arreglo: 7

Teclea los 7 valores

1: 8

2: 6

3: 4

4: 2

5: 1

6: 7

7: 3

Elementos del arreglo: 8 6 4 2 1 7 3

Elementos del nuevo arreglo: 11 13 5 2

Restricciones:

Las restricciones del programa son las siguientes:

El programa debe contener varios métodos.

El programa debe emplear 2 arreglos uno para los valores leídos y otro para

almacenar las sumas.

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Parte 2

3. En equipo, escriban la solución computacional al siguiente problema.

4. A continuación se presenta un ejemplo de la ejecución del programa:

¿Cuál es la dimensión de la matriz? 10

La matriz resultante es:

1 9 9 9 9 9 9 9 9 1

9 1 9 9 9 9 9 9 1 9

9 9 1 9 9 9 9 1 9 9

9 9 9 1 9 9 1 9 9 9

9 9 9 9 1 1 9 9 9 9

9 9 9 9 1 1 9 9 9 9

9 9 9 1 9 9 1 9 9 9

9 9 1 9 9 9 9 1 9 9

9 1 9 9 9 9 9 9 1 9

1 9 9 9 9 9 9 9 9 1

5. Escriban la solución computacional al siguiente problema.

6. A continuación se presenta un ejemplo de la ejecución del programa:

Cantidad de renglones del arreglo? 3

Cantidad de columnas del arreglo? 5

El arreglo que se generó es el siguiente:

1 4 5 8 0

2 0 9 7 0

3 6 2 8 9

Cantidad de ceros: 3

Cantidad de ceros por renglón: 1 2 0

Cantidad de ceros por columna: 0 1 0 0 2

Parte 3

7. En equipo, escriban la solución computacional para el siguiente problema.

8. A continuación se presenta un ejemplo de la ejecución del programa:

Secuencia? ATGCTATGATCG

base A: 3

base G: 3

base C: 2

base T: 4

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Secuencia? AGTCAGTCAAGGGTC

base A: 4

base G: 5

base C: 3

base T: 3

Secuencia? ttctcgtcga

base A: 1

base G: 2

base C: 3

base T: 4

Secuencia? FIN

9. Escriban la solución computacional para el siguiente problema.

10. A continuación se presenta un ejemplo de la ejecución del programa:

Mensaje? Feliz 16avo Cumpleaños!

El costo del mensaje es:

17 letras $170.00

2 dígitos $40.00

2 especiales $60.00

TOTAL: $270.00

Nota: Considera que tu actividad debe estar documentada (proceso) y fundamentada.

Entregable(s): Programas escritos en el lenguaje de programación Java.

Escribe una aplicación que cree un arreglo de 10 caracteres que contenga un „*‟ en la casilla 0 y „#‟ en las demás casillas (*#########). El usuario tecleará un número que indicará hacia dónde se debe mover el asterisco. Si el número es positivo el asterisco se debe mover hacia la derecha. Si el número es negativo el asterisco se debe mover hacia la izquierda. Si el número es cero se termina el programa. El programa debe emplear excepciones para controlar que el asterisco no se salga del arreglo. En lugar de salirse del arreglo el asterisco debe quedar en el límite.

1. A continuación, se pone como ejemplo la ejecución en consola del programa:

*#########

3

###*######

-1

##*#######

6

########*#

6

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

#########*

-11

*#########

0

Parte 2

3. En equipo escribe la clase LaHora que contenga la siguiente estructura.

4. Y que contenga las siguientes restricciones:

En la estructura se puede observar que LaHora tiene tres atributos: hora,

minutos, segundos. La clase tendrá tres constructores y

los métodos get y setcorrespondientes a cada uno de los atributos. El resto de los

métodos se explican a continuación:

a. valida()

Este método regresa un valor de verdadero si la los atributos de LaHora

tienen valores correctos es decir que la hora estén en el rango de 1 a 23,

los minutos y los segundos de 0 a 59.

b. despliega()

Se encarga de desplegar LaHora en el formato hh:mm:ss.

c. segundosTranscurridos()

Regresa un entero con la cantidad de segundos transcurridos desde la

media noche hasta LaHora.

d. ajusta()

Modifica LaHora a la hora minutos y segundos que corresponde después

de haber pasado los segundos que se reciben como parámetro a partir de

la media noche.

e. avanza()

El método avanza LaHora un 60 segundos.

f. retrocede()

Este método retrocede LaHora 60 segundos.

5. Escriban un programa de aplicación que sea útil para verificar el funcionamiento

de cada uno de los métodos de la clase.

Parte 3

6. En equipo, analiza el siguiente enunciado:

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Un número complejo, es una entidad matemática que viene dada por un par de

números reales, el primero ”a” se denomina la parte real y al segundo ”b” la parte

imaginaria. Un número complejo puede ser expresado como a + bi.

a. Escriban la clase Complejo la cual debe contener la siguiente estructura.

b. Verifiquen el funcionamiento de tu clase con el siguiente programa.

c. El programa solicitará un número (n) que significa el número de casos.

Por cada caso, se deberán teclear dos números Complejos (parte real e

imaginaria). Por cada caso, el programa mostrar la suma de complejo1 y

complejo2, la resta de complejo1 - complejo2 y la resta de complejo2 -

complejo1.

d. A continuación, se pone como ejemplo la ejecución en consola del

programa:

2

8 -2

2 -1

10-3i

6-1i

-6+1i

10 4

3 2

13+6i

7+2i

-7-2i

Nota: Considera que tu actividad debe estar documentada (proceso) y fundamentada.

Programa en lenguaje Java para solucionar un problema aplicando arreglos, strings y

una aplicación en lenguaje Java mediante el uso y construcción de una clase.

Instrucciones para realizar evidencia:80%

La evidencia a realizar para este módulo consta de 2 problemas a resolver. En cada

problema vas a realizar un programa en un lenguaje orientado a objetos que resuelva la

situación concreta que se te presenta.

Problema 1

1. Elabora un programa que emplee arreglos y strings para solucionar un

problema.

MANK

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Dentro de un sistema computacional se requiere crear una "Mascara de ceros y uno" para

una secuencia de números de tal forma que se asigne un 0 para los valores positivos y

el 1 para los negativos.

Por ejemplo: La secuencia: 1, -3, -5, 8, 9, -6, -43, -8 tendría la siguiente máscara:

01100111.

Escribe un programa que lea una secuencia de 10 números enteros y despliegue en

pantalla la máscara.

Ejemplo de la ejecución del programa:

Teclea la secuencia de números:

1: -3

2: 5

3: 8

4: 34

5: -12

6: -56

7: 4

8: 39

9: 90

10: -1

La máscara que le corresponde es: 1000110001

Restricciones:

El programa debe contener un método de nombre getMask que regrese como resultado

un string que contiene la máscara.

Problema 2

2. Elabora un programa que emplee clases y objetos para solucionar un problema.

Escribe la clase Fecha que contenga la siguiente estructura:

public class Fecha {

private int dia;

private int mes;

private int anio;

public Fecha () { }

public Fecha (int d, int m, int a) { }

public Fecha ( Fecha f2 ) {}

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

public int getDia() {}

public int getMes() {}

public int getAnio() {}

public void setDia(int d) {}

public void setMes(int m) {}

public void setAnio(int a) {}

public boolean esBisiesto() { return false; }

public boolean validaFecha() { return false; }

public boolean igualQue(Fecha f2) { return false; }

public boolean mayorQue(Fecha f2) { return false; }

public void despliegaFechaCorta() {}

public void despliegaFechaLarga() {}

public String nombreMes(){}

public void avanza() {}

public void avanzaNDias (int N) {}

}

En la estructura se puede observar que una fecha tiene 3 atributos: día, mes y año.

La clase tendrá tres constructores y los métodos get y set correspondientes a cada uno de

los atributos.

El resto de los métodos se explican a continuación:

esBisiesto: regresa el valor de true si el año es bisiesto; regresa false en caso contrario.

validaFecha: regresa el valor de true si la fecha es correcta; regresa false en caso

contrario.

Una fecha es correcta si el año es mayor a 1900, el mes está en el rango del 1 al 12 y el

día es correcto de acuerdo al mes y al año.

igualQue: este método compara dos fechas (la fecha del this y la fecha que recibe como

parámetro). Regresa el valor true si ambas fechas son iguales es decir tienen el mismo

día, mes y año. Regresa un false en caso contrario.

mayorQue: este método compara dos fechas (la fecha del this y la fecha que recibe

como parámetro). El método regresa el valor true si la fecha del this es mayor (se

presenta después) a la fecha que recibe como parámetro.

despliegaFechaCorta: el método despliega la fecha en el formato: dd-mm-aaaa.

despliegaFechaLarga: el método despliega la fecha en el formato: dd del nombreDelMes

de aaaa.

nombreMes: regresa el nombre del mes que le corresponde al número asignado al

atributo mes.

avanza: el método avanza un día la fecha del this.

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

avanzaNDias: este método avanza N días la fecha del this. El método se puede auxiliar el

método avanza para realizar su proceso.

Ahora escribe una aplicación de la clase Fecha que realice lo siguiente:

a. Lee el día, mes y año de una fecha "f1".

b. Asegurarte de que la fecha "f1" es correcta. Si no lo es leer la fecha nuevamente.

c. Despliega el siguiente menú:

i. Desplegar fecha forma corta.

ii. Desplegar fecha forma larga.

iii. Determinar si el año es bisiesto.

iv. Avanzar la fecha 1 día y desplegarla en forma corta.

v. Avanzar la fecha N días y desplegarla en forma corta.

vi. Comparar dos fechas por igual.

vii. Comparar si una fecha es mayor a otra.

viii. Salir.

d. El programa debe entrar en un ciclo realizando la acción solicitada hasta que el

usuario seleccione la opción h.

Restricciones:

Para la opción "e", el valor de N será proporcionado por el usuario.

En las opciones "f" y "g", el programa deberá leer otra fecha que sea válida

antes de realizar la comparación.

Parte 1

A continuación se muestran una serie de preguntas acompañadas de un programa.

1. Ejecuten el programa en la computadora y con base en los resultados del mismo,

realicen lo que se indica para cada inciso:

a. Programa 1

Ejecuten el siguiente programa:

import java.io.*;

public class Referencias {

public static void main(String[] args) {

int arr[] = { 1, 2, 3, 4, 5};

System.out.println(arr);

}

}

Contesten las siguientes preguntas:

¿Qué despliega el programa?

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

¿Por qué se despliega eso en lugar de desplegarse el contenido del

arreglo?

¿Qué instrucciones agregarías al programa para que se despliegue el

contenido del arreglo?

b. Programa 2

Ejecuten el siguiente programa:

import java.io.*;

public class ejercicio {

public static void main(String[] args) throws IOException {

int [] arr1 = {1, 2, 3, 4, 5};

int [] arr2 = {1, 2, 3, 4, 5};

if (arr1 == arr2)

System.out.println("Los arreglos son iguales");

else System.out.println("Los arreglos NO son iguales");

} }

Contesten las siguientes preguntas:

¿Qué despliega el programa?

La comparación (arr1 == arr2) ¿qué es lo que está comparando?

¿Qué instrucciones agregarías para comparar el contenido de los dos

arreglos?

c. Programa 3

Ejecuten el siguiente programa:

import java.io.*;

public class ejercicio {

public static BufferedReader entrada = new BufferedReader(new InputStream

Reader(System.in));

public static void main(String[] args) throws IOException {

int [] arr1 = new int [5];

Lee(arr1);

System.out.println(arr1);

}

public static void Lee(int [] arr) throws IOException {

for (int r = 0; r < arr.length; r++)

arr[r]=Integer.parseInt(entrada.readLine());

}

}

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Contesten la pregunta en relación a los resultados del programa anterior.

¿Qué despliega el programa?

Todos los valores que se almacenaron en el arreglo dentro del

método Lee

El primer valor almacenado en el arreglo

Se genera una excepción (error) ya que no se ha indicado qué posición

del arreglo debe desplegar

La dirección de memoria en la que se encuentra el arreglo

d. Programa 4

Ejecuten el siguiente programa:

import java.io.*;

public class Ejercicios {

public static BufferedReader entrada =

new BufferedReader(new InputStreamReader(System.in));

public static void main(String[] args) throws IOException {

String cambia = "ESPERANZA";

reemplaza(cambia);

System.out.println(cambia);

}

public static void reemplaza (String cambia)

{ cambia = "SALUD"; }

}

Contesta la pregunta en relación a los resultados del programa anterior.

¿Qué realiza la siguiente secuencia de código?

Despliega la palabra ESPERANZA

Despliega la palabra SALUD

Genera un error porque no se puede modificar el contenido de la

variable cambia

Despliega la dirección en la que se encuentra el String cambia

e. Programa 5

Ejecuten el siguiente programa:

import java.io.*;

class Fraccion {

private int numerador;

private int denominador;

public Fraccion(){ numerador = 0; denominador = 1; }

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

public Fraccion(int n, int d) { numerador = n; denominador = d; }

public Fraccion (Fraccion m) {

numerador = m.numerador;

denominador = m.denominador;

}

public int getNumerador() { return numerador; }

public int getDenominador() { return denominador; }

public void setNumerador(int numerador) { this.numerador = numerador; }

public void setDenominador(int denominador) { this.denominador =

denominador; }

public void despliega() { System.out.println(numerador + "/" +

denominador); }

}

public class UsoFraccion {

public static void main(String[] args) {

Fraccion f = new Fraccion (3 ,5);

Fraccion w = new Fraccion (3, 5);

if ( f == w )

System.out.println("Fracciones iguales");

else

System.out.println("Fracciones diferentes");

}

}

Contesten las preguntas en relación a los resultados del programa anterior.

¿Qué despliega el programa?

La comparación (f == w), ¿qué es lo que está comparando?

¿Qué instrucciones agregarías para comparar el contenido de los dos objetos?

La instrucción: System.out.println(f); hace lo mismo que la instrucción:

f.despliega();

¿Por qué?

Parte 2

2. Reúnanse en equipo y realicen la siguiente aplicación:

3. Escriban la clase Fecha que contenga lo siguiente:

a. Variables de instancia: día, mes, año todas de tipo entero

b. Constructor que inicializa la fecha en 1 de Enero de 1900

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

c. Constructor que inicializar la fecha en el día, mes y año especificado por el

usuario

d. Método público getDia que regresa el valor de día

e. Método público getMes que regresa el valor de mes

f. Método público getAño que regresa el valor de año

g. Método público setDia que asigna a la variable día el valor pasado como

parámetro

h. Método público setMes” que asigna a la variable mes el valor pasado como

parámetro

i. Método público setAño que asigna a la variable año el valor pasado como

parámetro

4. Ahora escriban la clase Amigo que contenga lo siguiente:

a. 9Variables de instancia:

nombre, de tipo String para almacenar el nombre del amigo

fecNac, de tipo Fecha para almacenar su fecha de nacimiento

b. Constructor que inicializa el objeto con el nombre y fecha que se recibe como

parámetro

c. Método público getNombre que regresa el valor del nombre

d. Método público getFecha que regresa el valor de la fecha de nacimiento

e. Método público setNombre que asigna a la variable nombre el valor pasado

como parámetro

f. Método público setFecha que asigna a la variable fecNac el valor pasado como

parámetro

5. Construyan un programa de aplicación que realice lo siguiente:

a. Solicitar al usuario el nombre y fecha de nacimiento de un amigo

b. Crear un objeto de tipo Amigo e inicializarlo con los datos proporcionados por

el usuario

c. Solicitar al usuario la fecha del día de hoy

d. Desplegar lo siguiente:

Edad del amigo

Uno de los siguientes letreros: “Su cumpleaños ya pasó”, “Hoy es su

cumpleaños”, “Aún no llega su cumpleaños”

Parte 3

6. Escriban la clase Conjunto que cumpla con las siguientes características:

a. La clase tendrá dos atributos:

El arreglo de enteros valores el cual servirá para almacenar los

números del conjunto

La variable entera cantidad que indicará la cantidad de números que

tiene el conjunto

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

b. El constructor de la clase recibirá como parámetro la cantidad de casillas con

las que deberá crear el arreglo valores y a la variable cantidad se le asignará

un cero ya que el conjunto está vacío

c. El método público pertenece, el cual regresa el valor booleano true si el

número que recibe como parámetro se encuentra dentro del conjunto.

Regresará false en caso contrario

d. El método público agrega que recibe como parámetro el número que se

agregará al conjunto. Este método regresa el valor booleano false si el número

a agregar no cabe en el arreglo, en caso contrario debe regresar un true. Dado

que un conjunto no puede tener números repetidos, si el número a agregar ya

existe no debe agregarse al arreglo (aun así el método debe regresar un true)

e. El método público despliega el cual despliega todos los valores del conjunto en

una sola línea separados por un espacio en blanco

7. Al terminar de construir la clase, escribe un programa de aplicación que realice lo

siguiente:

a. Solicitar al usuario el tamaño del conjunto

b. Crear un conjunto del tamaño indicado

c. Entrar en un ciclo en el que leerá números que se deben ir agregando al

conjunto

d. Después de agregar cada número se debe desplegar el contenido del conjunto

e. El ciclo termina cuando se llena el conjunto

Nota: Considera que tu actividad debe estar documentada (proceso) y fundamentada.

Parte 1

Reúnanse en equipo y den solución a los siguientes ejercicios

1. Problemática del caso

Tienda Music and More

El dueño de la tienda Music and More los contacta porque sabe que ustedes son expertos

consultores. En la reunión les dice que necesita actualizarse y hacer automatizadas las ventas

de los CD de música de sus tiendas, por lo que les solicita un catálogo de música.

Les pide una aplicación de este catálogo para correr como piloto en una de sus tiendas, si el

sistema funciona y le gusta, se los comprará y será la herramienta que utilice en sus más de

200 tienda alrededor del país.

2. Diseño de las clases

Para el proyecto se requiere que escriban la clase de objetos y la aplicación que a

continuación se describen.

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Escriban la clase CD que contenga lo siguiente:

a. Variables de instancia:

Nombre: Variable de tipo String que contendrá el nombre del CD.

Cantante: Variable de tipo String que almacenará el nombre del

cantante o grupo

Género: Variable de tipo String que guardará el género del CD

Costo: Variable de tipo double que tendrá el precio de venta del CD

b. Constructor que inicializa el objeto con el nombre, cantante, género y costo

que se envíen como parámetro

c. Método público getNombre que regresa el valor almacenado en nombre

d. Método público getCantante que regresa el valor de cantante

e. Método público getGenero que regresa el valor de género

f. Método público getCosto que regresa el valor de costo

g. Método público setNombre que asigna a la variable nombre el valor pasado

como parámetro

h. Método público setCantante que asigna a la variable cantante el valor pasado

como parámetro

i. Método público setGenero que asigna a la variable género el valor pasado

como parámetro

j. Método público setCosto que asigna a la variable costo el valor pasado como

parámetro

k. Método público despliega que despliega en consola la información del CD

4. Diseño de la aplicación

Escriban una aplicación para el catálogo de música de la tienda Music and more, dicha

aplicación debe de utilizar la clase CD de la siguiente manera:

a. Solicitar al usuario la cantidad de CD que se almacenarán

b. Crear un arreglo de CD con la capacidad especificada por el usuario

c. Leer la información de cada uno de los CD y almacenarla en los objetos del

arreglo

d. Desplegar el contenido del arreglo. Para esto, la aplicación debe contener un

método que reciba como parámetro el arreglo y despliegue en consola cada

uno de los objetos del mismo

Parte 2

4. El dueño de la tienda Music and More les pidió nuevamente una cita y les solicitó unos

cambios para la aplicación del catálogo de música, por lo cual tendrán que modificar la

aplicación que desarrollaron en la parte 1, realizando lo siguiente:

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

a. Agreguen el método busca. Este método recibe como parámetro el arreglo de

CD’s, solicita al usuario el nombre o parte del nombre del CD, realiza una

búsqueda en el arreglo y despliega la información completa del CD o una frase

indicando que no se encontró

b. Elaboren el método despliegaGenero el cual recibe como parámetro el arreglo

de CD’s y despliega la información completa de todos aquellos CD que sean

del género especificado por el usuario

c. Agreguen el método despliegaCosto el cual recibe como parámetro el arreglo

de CD’s, solicita al usuario el costo y despliega todos aquellos CD’s cuyo costo

es menor al indicado por el usuario

d. Agreguen a la aplicación un menú que le permita al usuario seleccionar la

operación a realizar (desplegar todo, busca, desplegar por género o desplegar

por costo) o bien terminar la aplicación

Parte 3

5. Un maestro de biología llega a su negocio de consultoría y les comenta que le interesa

mejorar la experiencia de aprendizaje con sus alumnos y desea enseñarles el tema de

los animales vertebrados, para eso quiere que desarrollen una aplicación en Java en

base al siguiente enunciado:

Los animales vertebrados son los más evolucionados del Reino Animal.

Poseen esqueleto interno con columna vertebral, o cuerda dorsal,

característica principal de estos animales, que sirve como sostén al

cuerpo y protege al sistema nervioso. Dos características que definen a

los vertebrados además de la anterior es el grupo (mamífero, ave, reptil,

etc.) al que pertenecen y el sonido que emiten. Como cualquier otro

animal tienen un peso y un nombre.

6. Para poder desarrollar la aplicación, es necesario que escriban la clase

abstracta Animal que contenga lo siguiente:

a. Variables de instancia: peso (int), nombre (String)

b. Constructor que inicializar el peso y el nombre por los valores especificados

por el usuario

c. Método público getPeso que regresa el valor de peso

d. Método público getNombre que regresa el valor de nombre

e. Método público setPeso que asigna a la variable peso el valor pasado como

parámetro

f. Método público setNombre que asigna a la variable nombre el valor pasado

como parámetro

g. Método abstracto say el cual regresa un valor String

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

7. Después deben escribir la clase Vertebrados como una clase derivada de la

clase Animal que contenga lo siguiente:

a. Variables de instancia: grupo (String), sonido (String)

b. Constructor que inicializar el peso, el nombre, el sonido y el grupo por los

valores especificados por el usuario. Este método debe utilizar super para

ejecutar el constructor de la clase base Animal

c. Método público say que regresa un String con el tipo de sonido que produce el

vertebrado.

d. Verifica el funcionamiento de tus clases con la siguiente aplicación:

public class pruebaanimal {

public static BufferedReader entrada =

new BufferedReader(new

InputStreamReader(System.in));

public static void main(String[] args) throws IOException {

Vertebrados [] vert = new Vertebrados [10];

vert[0] = new Vertebrados ("vaca", 100, "moo", "mamífero");

vert[1] = new Vertebrados ("gallo", 2, "kikiriqui", "ave");

vert[2] = new Vertebrados ("coyote", 15, "ahuuuuu", "mamífero");

vert[3] = new Vertebrados ("cocodrilo", 45, "ahhh", "reptil");

vert[4] = new Vertebrados ("pollito", 1, "piopio", "ave");

for (int k = 0; k < 5; k++) {

salida.println("El animal se llama:" + vert[k].getNombre());

salida.println("Pesa:" + vert[k].getPeso());

salida.println("y cuando se oye dice así: " + vert[k].say());

}

}

}

Nota: Considera que tu actividad debe estar documentada (proceso) y fundamentada.

Aplicación computacional en lenguaje Java para solucionar un problema mediante el

uso de clases y arreglos de objetos.

Instrucciones para realizar evidencia:80%

Como parte de la evidencia, analiza y da solución al siguiente problema:

1. Revisa la problemática del caso: Videoclub

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

El dueño de un videoclub sabe de ti a través de una red de networking, te contacta y te

informa que le interesa contratar tus servicios profesionales, pues te comenta que tiene

un problema: necesita mejorar la administración de su negocio, contar con la

elaboración de una aplicación para administrar las rentas de los dos tipos de productos

que maneja; videojuegos y películas.

Para todos los productos se tiene la siguiente información: nombre del producto, la

cantidad a pagar por rentar ese producto, cantidad de días que se presta al momento de

rentar y si en ese momento el producto está o no disponible.

Para cada una de las películas se tiene el género (acción, fantasía, drama, comedio y

aventura) y el año de producción.

Para los juegos se cuenta con el estilo (acción, deportes y aventuras) y la plataforma

(Xbox, Playstation, Wii) en la que se puede ejecutar.

2. Aplicación a realizar

Debes desarrollar una aplicación que permita realizar consultas y administrar las rentas

de los productos como se describe más adelante:

a. Realiza el diagrama de clase de acuerdo a la descripción anterior. El

diagrama debe incluir el nombre de la clase y las variables de instancia

tanto de la clase base como de las clases derivadas.

b. Construye la clase base y las clases derivadas las cuales deben incluir el

constructor y los métodosget y set para cada una de las variables de

instancia.

c. Construye una aplicación que emplee las clases que elaboraste en el

punto anterior y que realice lo siguiente:

Leer la cantidad de películas que proporcionará el usuario y

posteriormente leer la información de cada una de ellas: nombre,

costo de renta, días, género, año, rentado.

Leer la cantidad de videojuegos que proporcionará el usuario y

posteriormente leer la información de cada uno de ellos: nombre,

costo de renta, días, estilo, plataforma, rentado.

Nota: el campo rentado se refiere a si el producto está o no rentado (1 está rentado, 0 no

está rentado).

d. Permanecer en un ciclo ejecutando la acción solicitada por el usuario. La

acción se solicita a través de algunos de los siguientes comandos:

T/T: Despliega todos los productos

P/p: Despliega todas las películas

V/v: Despliega todos los videojuegos

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

S/s: Checar si una película está rentada

J/j: Verifica si un videojuego está o no rentado

C/c: Devuelve la cantidad de películas que están rentadas

X/x: Indica la cantidad de videojuegos cuya plataforma es Xbox

U/u: Termina el programa