Está en la página 1de 7

Carátula para entrega de prácticas

Facultad de Ingeniería Laboratorio de docencia

Laboratorios de computación
salas A y B
Dra. Rocío Alejandra Aldeco Pérez
Profesor:

Asignatura: Programación Orientada a Objetos

Grupo: 6

No de Práctica(s): #2

Integrante(s): Mendoza González Mario

No. de Equipo de
2
cómputo empleado:

No. de Lista o Brigada:

Semestre: 2020-2

Fecha de entrega: 21/02/2020

Observaciones: Ninguna

CALIFICACIÓN: __________
PROGRAMACIÓN ORIENTADA A OBJETOS 2020-2

PRÁCTICA DE ESTUDIO 2: FUNDAMENTOS Y SINTAXIS DEL LENGUAJE

Programación Orientada a Objetos

Grupo: 6

Facultad de Ingeniería

Departamento de Computación

OBJETIVO: CREAR PROGRAMAS QUE IMPLEMENTEN VARIABLES Y CONSTANTES DE


DIFERENTES TIPOS DE DATOS, EXPRESIONES Y ESTRUCTURAS DE CONTROL DE
FLUJO.

ACTIVIDADES:

➔ Crear variables y constantes de diferentes tipos de datos.


➔ Crear diversas expresiones (operadores, declaraciones, etc.).
➔ Implementar estructuras de control de flujo (if/else, switch, for, while, etc.).

ACTIVIDADES DE LA PRÁCTICA:

Realiza las siguientes actividades después de leer y revisar en clase la Práctica de Estudio
2:​ ​Fundamentos y sintaxis del lenguaje.

1. Diseña una clase que contenga los atributos


❏ Nombre 
❏ Apellido Paterno 
❏ Apellido Materno 
❏ Fecha de Nacimiento 

Y los métodos

❖ nombreCompleto​ : Genera el nombre completo de una persona


❖ calcularEdad​: Dada la fecha de nacimiento calcula la edad en años
❖ calcularRFC​
: Dados todos los atributos calcula el RFC

[1]​ [2]
Las fechas pueden usar la clase ​Date y ​DateFormat​ . El RFC​ se calcula siguiendo el
procedimiento descrito en la referencia.
PROGRAMACIÓN ORIENTADA A OBJETOS 2020-2

2. Explica el funcionamiento de los métodos ​calcularEdad y calcularRFC ​


mostrando el
código correspondiente.

Método para calcular la edad:

El funcionamiento
de este método
se basa en primer
lugar pedir la
fecha de
nacimiento al
usuario la cual
deberá tener el
formato
“dd/mm/aaaa”
incluyendo las
diagonales.
Después de
recibir esta fecha, se almacenará en una arreglo de Strings, separandola por medio del indicador
“/”, al tener el dia, el mes y el año por separado (en diferentes índices el arreglo) fue más fácil el
poder obtener la fecha, puesto que solo se tenía que trabajar con el año. El año que se almaceno
es convertido a un entero, y por medio de la función “Calendar”, la cual obtiene la fecha actual del
sistema, pero solo se hizo uso del año actual, se realizó una resta entre el año actual y el año de
nacimiento que fue tomado de la fecha que ingreso el usuario, lo cual es un entero que va a
regresar el método.

Método para calcular el RFC:


PROGRAMACIÓN ORIENTADA A OBJETOS 2020-2
PROGRAMACIÓN ORIENTADA A OBJETOS 2020-2

Este código básicamente lo que realiza es calcular el RFC con valores ingresados por el usuario,
aunque no es solo un simple RFC ya que este método se codificó para que pudiera hacer
excepciones a la hora de manipular los datos para el RFC, por ejemplo se creó una condición la
cual si el usuario ingresa un apellido paterno compuesto, se tienen que desechar los compuestos
como De, La, entre muchos otros, lo mismo con el apellido materno y con el nombre. Lo que se
hizo básicamente fue declarar un contador e inicializarlo en 0, se creó un ciclo el cual recorre a la
cadena del apellido paterno, en cada iteración busca cuantos espacios vacíos encuentra, y
conforme vaya encontrando espacios va incrementado el contador, ya teniendo el contador con el
número de espacios que hubo en la cadena, se procedía a pasar el contador por varias
sentencias de tipo “IF”, las cuales verificaban que valor tenia el contador, la cadena de apellido
paterno se almaceno en un arreglo de Strings para así tener por separado el apellido y a los
compuestos del apellido. Los IFS básicamente revisaban cuantos espacios se encontraron en la
cadena, y según al número de espacios lo que hacían las sentencias IF es solo tomar lo que se
encontrará después del último espacio encontrado, esto se hacía para poder trabajar con el puro
apellido y hacer de lado los compuestos. Ya que se hacían de lado los compuestos del apellido y
solo nos quedaba el apellido, entonces se procedia a tomar la primera letra del apellido y además
con un ciclo for se recorre el arreglo en busca de alguna vocal y la primera vocal que encuentre
es la que iba a tomar.

La misma dinámica se siguió con el apellido materno y con el nombre, la unica diferencia es que
en estos no se utilizó un ciclo for para recorrer el arreglo, ya que no se necesitaba encontrar
alguna vocal de ambos.

Al final se realizó una concatenación de todas letras que iba tomando por cada apellido y el
nombre.

Por último se utilizó la fecha de nacimiento ingresada por el usuario la cual fue partida por la
PROGRAMACIÓN ORIENTADA A OBJETOS 2020-2

función SPLIT y se colocó en un arreglo de Strings, en esta ocasión sí se tenía que manipular a
toda la fecha por lo cual se realizó una concatenación del año (Solo los últimos dos
dígitos)-mes-día para así poder obtener los dígitos que se iban a imprimir en el RFC.

Al final en el método solo se colocó una concatenación de las letras con los dígitos numéricos, los
cuales fueron acomodados en la forma de un RFC original.

Cabe destacar que el programa no puede soportar muchas excepciones, ya que solo fue
codificado para que lograra pasar los test de Alphagrader, y desde mi punto de vista puede ser
mejorado en algunos aspectos pero cumple con lo básico solicitado en la práctica.

3. Cuando estés seguro de que tu programa es correcto, súbelo a Alphagrader.

El programa paso todas las pruebas.

Recuerda subir esta práctica y tu archivo .java a Schoology y pasar todas las pruebas en
Alphagrader.

TIP.

Puedes revisar los siguientes ejemplos:

https://geekytheory.com/tip-java-obtener-fecha-y-hora

https://cafelojano.wordpress.com/2007/11/21/transformando-string-a-date-uso-de-simpledateform
at/

[1]
https://docs.oracle.com/javase/8/docs/api/java/util/Date.html​,
https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

[2]
https://www.mi-rfc.com.mx/
PROGRAMACIÓN ORIENTADA A OBJETOS 2020-2

Conclusion

En esta práctica se hizo uso de un código el cual ya se había implementado en clase,


básicamente se reutilizo el código de “Nombre completo”, con la gran diferencia de que ahora se
tenía que agregar más atributos y más métodos, los cuales calculaban la edad de una persona
según su fecha de nacimiento y además calculaban el RFC (​Registro Federal de Contribuyentes),
haciendo uso del nombre, apellidos y fecha de nacimiento ingresadas por el usuario.

Se hizo uso de for e if, más que nada para poder adentrarnos a lo que son las estructuras de
control en Java, se hizo uso de “Calendar”, una clase que toma la fecha actual del sistema, se
hizo uso del método SPLIT, se utilizaron arreglos para almacenar cadenas, se hizo uso de
conocimientos sobre programas que ya se habían realizado antes, por ejemplo el convertir un
tipo de variable a un tipo diferente, entre otras muchas cosas.

Se aprendió lo básico que se puede encontrar en cualquier lenguaje de programación, se trabajo


con lo que es la sintaxis de Java, se trabajo con lo fundamental para poder entender ¿Qué es
lenguaje orientado a objetos? y ¿Como es que funciona?.

La práctica en sí estuvo un poco complicada porque aun no me familiarizo bien con lo que es
Java, y se me complica un poco el hecho de poder interpretar y modelar algunas cosas, pero
poco a poco se realizó, pero gracias al intercambio de ideas con compañeros, la teoría que se vio
en clase y con mucha información que se encuentra en internet se logró resolver lo que se
esperaba en la práctica, tal vez no fue de la forma más “elegante” pero se logró.

Me llevo un buen conocimiento sobre lo que es Java, aunque me faltan muchas cosas por
aprender y poder tomarle sentido, pero paso a paso se va entendiendo lo que se requiere en la
materia, se cumplieron los objetivos de la práctica.

También podría gustarte