Programación Orientada A Objetos Ago-Dic 2023
Programación Orientada A Objetos Ago-Dic 2023
Programación Orientada A Objetos Ago-Dic 2023
Esta asignatura aporta al perfil del egresado habilidades para analizar, modelar desarrollar
e implementar sistemas de información para la gestión de procesos y apoyo en la toma de
decisiones que aumenten la productividad y competitividad de las organizaciones utilizando
metodologías basadas en estándares internacionales.
Bibliografía
g) Por tema:
• Criterios de evaluación
• Instrumentos de evaluación-valoración
• Evidencias a entregar
h) Calendarización del trabajo semestral
OBLIGATORIAS OPCIONALES
Otras Observaciones:
REGISTRAR en
-Apartado CORREO ELECTRÓNICO: Su correo institucional (@aguascalientes.tecnm.mx)
-Apartado INSTITUCIÓN: ITA
-Apartado ACTIVIDAD: Estudiante
-Apartado DESEA PARTICIPAR EN EL CONGRESO COMO: Asistente
-Apartado FORMA DE PARTICIPACIÓN: Presencial
https://docs.google.com/forms/d/e/1FAIpQLSeZSaZJ8zeM6qmktGPeyXvMKShdmgwnKY
XWcsvT8DSU4wdGlw/viewform?pli=1
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
1. Entorno de desarrollo
a) Eclipse
b) NetBeans
c) BlueJ
d) JBuilder
e) JCreator
Seleccionar la plataforma a instalar como lo puede ser Linix, macOS o Windows. Existen
diferentes alternativas para bajarlo (Empacado .zip, instalador .exe y instalador MSI -
Microsoft Windows Installer-).
1.2.1. Compilación
1.2.3. Depuración
La depuración (debug) permite examinar las aplicaciones para buscar errores, ya que
posibilita observar las líneas que se van ejecutando, así como los valores que van tomando
las variables en cada paso.
1. Debug/
También pulsando con el botón derecho sobre un proyecto en explorador de proyectos y
seleccionar Debug. El programa se ejecuta hasta llegar al primer breakpoint.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Continuar ejecución (F8) Ejecuta una línea de código. Si la instrucción es una llamada
a un método, ejecuta el método sin entrar dentro del código del método.
Paso a paso (F7) Ejecuta una línea de código. Si la instrucción es una llamada a un
método, salta al método y continúa la ejecución por la primera línea del método.
Entra en el siguiente método (Ctrl + F7) Ejecuta una línea de código. Si la línea de
código actual se encuentra dentro de un método, se ejecutarán todas las instrucciones
queden del método y se vuelve a la instrucción desde la que se llamó al método.
Finaliza sesión del depurador (Mayúsculas + F5). Termina la depuración del programa.
Cumple
No. Al Inicio de la sesión: Valor Puntos Retroalimentación
Si No
1 Realiza su presentación mencionando su 5
nombre completo.
2 Menciona el indicador de alcance y la 5
descripción del problema a resolver.
Durante la sesión:
3 Maneja términos, conceptos y 30
conocimientos en su exposición de forma
correcta.
4 Explica la resolución del problema de forma 30
coherente y clara.
5 Interactúa con el grupo manteniendo 5
contacto visual durante la exposición.
6 Emplea un tono de voz adecuado durante la 5
exposición y sin utilizar muletillas.
7 Organiza y planea su presentación de 5
manera ordenada y planificada.
Cierre de la sesión:
8 Responde a las preguntas de forma 5
coherente y clara.
9 Cumple con el tiempo planeado para la 10
sesión: 6 a 10 minutos.
Puntuación Total
1ª Oportunidad
Realizar un cuadro comparativo de IDE’s actuales.
2ª Oportunidad
Investigar el funcionamiento de un IDE y elaborar un manual de uso que contenga, Menús, Estructura del proyecto,
Proceso de desarrollo de aplicaciones (Compilación, Archivos que crea el entorno de desarrollo y Depuración).
Indicador de Alcance 1.A.- El cuadro comparativo tiene logosde los IDE’s a color.
Calificación
Calificación mínima aceptable: 70 pts.
En caso de obtener una calificación menor a 70, deberá presentar 2ª Oportunidad y solo
deberá enviar los criterios donde obtuvo cero puntos. Si dentro de esos criterios se
encuentran Cuadro Comparativo, deberá elaborar el Manual IDE marcado como 2ª
oportunidad.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
2. Clases y objetos
Antes de que un programa pueda crear objetos de cualquier clase, ésta debe ser definida.
La definición de una clase significa que se debe dar un nombre, definir los atributos que
manejará, así como describir los métodos que realizarán las acciones o tareas de la clase.
Nombre de la clase
Atributos
Comportamiento
En donde:
El ámbito determina en qué partes del programa una entidad puede ser usada y es aplicable
principalmente a las variables declaradas en las clases.
1
CamelCase es un estilo de escritura que se aplica a frases o palabras compuestas. El nombre se debe a que las mayúsculas a lo largo de una palabra en CamelCase
se asemejan a las jorobas de un camello. El nombre CamelCase se podría traducir como Mayúsculas/Minúsculas Camello.
Atributos y Métodos:
Atributos:
Los atributos o características de una Clase pueden ser de tres tipos, los que definen el
grado de comunicación y visibilidad de ellos con el entorno, estos son:
public (+): Indica que el atributo será visible tanto dentro como fuera de la clase,
es decir, es accesible desde todos lados.
private (-): Indica que el atributo sólo será accesible desde dentro de la clase (sólo
sus métodos lo pueden accesar).
protected (#): Indica que el atributo no será accesible desde fuera de la clase, pero si
podrá ser accesado por métodos de la clase además de las subclases
que se deriven (herencia).
defecto Si no especifica ningún tipo de acceso, se utiliza el acceso por defecto,
esto significa que la variable es accesible a todas las clases contenidas
en el mismo paquete.
Métodos:
Cada método tiene asociado un tipo que se utiliza para controlar el acceso al método. Entre
estos se encuentra:
public (+): Indica que el método será visible tanto dentro como fuera de la clase,
es decir, es accesible desde todos lados.
private (-): Indica que el método sólo será accesible desde dentro de la clase (sólo
otros métodos de la clase lo pueden accesar).
protected (#): Indica que el método no será accesible desde fuera de la clase, pero si
podrá ser accesado por métodos de la clase además de métodos de
las subclases que se deriven (herencia).
defecto Si no especifica ningún tipo de acceso, se utiliza el acceso por defecto,
esto significa que el método es accesible a todas las clases contenidas
en el mismo paquete.
Modificador Clase Package Subclase Todos
public Sí Sí Sí Sí
private Sí No No No
protected Sí Sí Sí No
por defecto Sí Sí No No
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
En la siguiente tabla presentamos los 8 tipos de dato primitivos de Java, el número de bits
que ocupan y el rango de valores que pueden tomar.
NombreDeClase identificadorObjeto;
Ejercicio 2.1: Elabore una clase llamada Fecha, con tres variables miembro tipo int, que
representan el día, el mes y el año, el constructor por defecto inicializa las variables con 1
para el día, 1 para el mes y 1900 para el año, el constructor alternativo contara con tres
parámetros, Set’s y Get’s, además se sobre carga el método toString el cual regresa la
fecha bajo el formato dd/mm/aaaa (para lograr esto utilice la clase DecimalFormat que se
encuentra en el paquete java.text).
constructor alternativo con los valores: 23 para el día, 1 para el mes y 2023 para el año y
muestre en pantalla los dos objetos. Posteriormente modifique los varores del primer objeto
por medio de sus set’s capturando los datos desde el teclado. Y finalmente, despliege los
valores de forma individual utilizando sus correspondientes get’s.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Clase Principal
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Ejercicio 2.2: Elabore una clase llamada Árbol, con dos variables miembro, la primera se
llamará “Tipo” que representa el tipo de Árbol (Naranjo, Manzano, Pino, etc.) y Fruto
(Naranja, Manzana, Sin Fruto, etc.). Con dos constructores, el por defecto le pondrá los
valores de “Sin Tipo” a la variable Tipo y “Sin Fruto” a la variable Fruto, el constructor
alternativo se le mandaran dos parámetros que serán asignados a Tipo y Fruto, además
deberá tener los métodos Set’s y Get’s; la clase principal se debe de llamar Ejemplo_Arbol,
instancie dos objetos, el primero con el constructor por defecto, el segundo con el
constructor alternativa, los valores tendrán que ser capturados y finalmente despliegue
contenido en pantalla de cada objeto.
Ejercicio 2.3: Elabore una clase llamada Hora, con tres variables miembro, Horas, Minutos
y Segundos. Contará con cuatro constructores, el constructor por defecto le pondrá los
valores cero a las tres variables, el primer constructor alternativo recibirá un valor y se lo
asignará a las horas, mientras que a minutos y segundo le asignara cero, el siguiente
constructor alternativo recibirá dos parámetros los cuales se asignarán a las variables hora
y minutos; mientras que a segundos le podrá cero, al tercer constructor alternativo recibirá
tres parámetros los cuales se asignarán a horas, minutos y segundos, también debe de
tener los métodos Set’s y Get’s. Además, debe sobrecargara el método toString el cual
regresara los valores almacenados bajo el formato HH:MM:SS. La clase principal se debe
de llamar Ejemplo_Hora y deben instanciar cuatro objetos (cada uno creado con un
constructor diferente) y desplegando el contenido de los objetos en pantalla.
En Java existen una serie de clases predefinidas equivalentes a los tipos primitivos
denominadas wrappers, clases contenedoras o envoltorios. El identificador de cada una de
estas clases es el mismo que el del tipo primitivo correspondiente, pero con la letra inicial
en mayúsculas (salvo int - Integer y char - Character). Cada una de estas clases declaran
un conjunto de métodos de gran utilidad.
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
Boolean.- La clase booleana ajusta un valor del booleano de tipo primitivo en un objeto. Un
objeto de tipo Boolean contiene un único campo cuyo tipo es booleano. Además, esta clase
proporciona muchos métodos para convertir un valor booleano en un String y un String en
un booleano, así como otras constantes y métodos útiles cuando se trata de un booleano.
Campos Descripción
Métodos Descripción
Métodos Descripción
Character.- La clase Character envuelve un valor del tipo primitivo char en un objeto. Un
objeto de tipo Carácter contiene un solo valor cuyo tipo es char. Además, esta clase
proporciona varios métodos para determinar las características del carácter según varias
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Métodos Descripción
Métodos Descripción
Campos Descripción
Métodos Descripción
Byte(byte valor)
Crea un objeto Byte/Short/Integer/Long con el
Short (short valor)
valor determinado por el parámetro valor.
Integer(int valor)
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Métodos Descripción
Long(long valor)
Byte(String s)
Short (String s) Crea un objeto Byte/Short/Integer/Long con el
Integer(String s) valor determinado por el parámetro string s.
Long(String s)
byte byteValue()
Devuelve el valor almacenado en el objeto
short shortValue()
Byte/Short/Integer/Long como un dato
int intValue()
primitivo tipo byte/short/int/long.
long longValue()
Campos Descripción
Métodos Descripción
Float(float valor)
Crea un objeto Float/Double con el valor
Float(double valor)
determinado por el parámetro valor.
Double(double valor)
Métodos Descripción
static String toString(float valor) Devuelve el parámetro valor como dato tipo
static String toString(double valor) string.
Ejercicio 2.6: Elabore un programa que lea de teclado datos tipo: boolean, char, byte, int,
long, float y double y cree con el su correspondiente objeto tipo envoltorio Boolean,
Character, Byte, Short, Integer, Long, Float y Double; y los imprima de la siguiente forma:
Boolean = Verdadero/Falso
Character = Letra/Digito/Espacio en blanco/Otro, si es una letra indicar si es:
Mayúscula o Minúscula (en la misma línea anterior).
Byte MIN_VALUE <= valorByte <= MAX_VALUE, Bits = SIZE.
Short MIN_VALUE <= valorShort <= MAX_VALUE, Bits = SIZE.
Integer MIN_VALUE <= valorInt <= MAX_VALUE, Bits = SIZE.
Long MIN_VALUE <= valorLong <= MAX_VALUE, Bits = SIZE.
Float MIN_VALUE <= valorFloat <= MAX_VALUE, Bits = SIZE.
Double MIN_VALUE <= valorDouble <= MAX_VALUE, Bits = SIZE.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Clase Math
La Clase Math proporciona una gran variedad de métodos matemáticos al igual que algunas
constantes útiles.
Campos Descripción
Métodos Descripción
Métodos Descripción
static double max(double d1, double d2) Regresa el valor más grande. Ejemplo:
static float max(float f1, float f2)
Math.max(2.3,12.7) 12.7
static long max(long l1, long l2)
static int max(int i1, int i2) Math.max(-2.3,-12.7) -2.3
static double min(double d1, double d2) Regresa el valor más pequeño. Ejemplo:
static float min(float f1, float f2)
static long min(long l1, long l2)
Math.min(2.3,12.7) 2.3
static int min(int i1, int i2) Math.min(-2.3,-12.7) -12.7
Métodos Descripción
Regresa el argumento de a redondeado al
static long round(double a) valor más cercano.
System.out.println("round(4.4) es " +
static int round(float a) Math.round(4.4));
System.out.println("round(4.4) es " +
Math.round(5.5f));
Función
Significado Ejemplo de uso Resultado
matemática
abs Valor absoluto double x = Math.abs(-2.3); x = 2.3;
atan Arcotangente double x = Math.atan(1); x = 0.78539816339744;
sin Seno double x = Math.sin(0.5); x = 0.4794255386042;
cos Coseno double x = Math.cos(0.5); x = 0.87758256189037;
tan Tangente double x = Math.tan(0.5); x = 0.54630248984379;
exp Exponenciación double x = Math.exp(1); x = 2.71828182845904;
neperiana
log Logaritmo neperiano double x = x = 0.99960193833500;
Math.log(2.7172);
pow Potencia double x = Math.pow(2,3); x = 8.0;
round Redondeo double x = Math.round(2.5); x = 3;
random Número aleatorio double x = Math.ramdom(); x = 0.20614522323378;
max Número máximo double x = max(12.5, 3.3); x = 12.5;
min Número mínimo double x = min(12.5, 3.3); x = 3.3
Ejercicio 2.7: El siguiente programa genera 10 números aleatorios, además cada valor
generado lo transforma en un número entre 100 y 999 por medio de cálculos; y
posteriormente los imprime.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Clase Random Instancia que generar una secuencia de números pseudoaleatorios. Utiliza
una semilla de 48 bits, que se modifica usando una fórmula congruente
lineal.
Métodos Descripción
Ejercicio 2.8: El siguiente programa genera 10 números aleatorios mediante un objeto tipo
Random, además cada valor generado lo transforma en un número entre 100 y 999 por
medio de cálculos; y posteriormente los imprime.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Clase String La Clase String proporciona los mecanismos para el manejo de cadenas.
Ya que no se puede cambiar el valor de un String una vez que se ha
creado, esta clase se usa principalmente para analizar, manipular y
obtener los valores de las cadenas. Aunque hay métodos que permiten
modificar y añadir al valor de la cadena, estos métodos no modifican el
String en sí, sino que regresan un nuevo String con los valores deseado.
Métodos Descripción
Métodos Descripción
Métodos Descripción
Ejercicio 2.9: Elabore un programa que lea su nombre y lo despliegue por palabra.
Ejercicio 2.10: Elabore un programa que lea una oración y después una palabra e indique
si la palabra está contenida en la oración.
Ejercicio 2.11: Elabore un programa que lea su nombre, ponga una letra mayúscula en
cada palabra y las demás en minúsculas.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Cumple
No. Al Inicio de la sesión: Valor Puntos Retroalimentación
Si No
1 Realiza su presentación mencionando su 5
nombre completo.
2 Menciona el indicador de alcance y la 5
descripción del problema a resolver.
Durante la sesión:
3 Maneja términos, conceptos y 30
conocimientos en su exposición de forma
correcta.
4 Explica la resolución del problema de forma 30
coherente y clara.
5 Interactúa con el grupo manteniendo 5
contacto visual durante la exposición.
6 Emplea un tono de voz adecuado durante la 5
exposición y sin utilizar muletillas.
7 Organiza y planea su presentación de 5
manera ordenada y planificada.
Cierre de la sesión:
8 Responde a las preguntas de forma 5
coherente y clara.
9 Cumple con el tiempo planeado para la 10
sesión: 6 a 10 minutos.
Puntuación Total
Cuando necesitamos librerías de java, estamos llamando a una clase específica o a todo
un paquete. Por ejemplo, cuando ponemos esto:
import System.io.*;
Por medio de la sentencia package se pueden establecer paquetes. Para poder hacer esto,
se tiene que poner dentro de los programas .java esta sentencia y el nombre del paquete
que pertenece la clase.
Por ejemplo, supongamos que las clases Lapiz.java, Goma.java y Boligrafo.java, se van a
organizar para formar el paquete Escritorio.
Ejercicio 2.12:
Ahora para implementar estas clases debemos tener un programa que las utilice, por
ejemplo:
package ejemplo_escritorio;
import ejemplo_escritorio.Escritorio.*;
El término excepción es una forma corta da la frase “suceso excepcional” y puede definirse
de la siguiente forma:
Definición: Una excepción es un evento que ocurre durante la ejecución del programa
que interrumpe el flujo normal de las sentencias.
Estos bloques se conocen como bloques try y catch. Las excepciones se manejan mediante
un bloque try-catch de la siguiente forma:
try {
// Código que puede generar una excepción
…
…
}
Ejercicio 2.13: El siguiente programa captura dos valores tipo entero (mediante la clase
JOptionPane), posteriormente calcula la división primer número (numerador) entre el
segundo número (denominador) y finalmente se despliega en pantalla los valores.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
También puede ocurrir un error al convertir el dato a entero por medio del método parseInt
de la clase envoltorio Integer.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Ejercicio 2.14: Para subsanar el problema del ejercicio 2.13, se utilizará Excepciones. En
el siguiente programa se utiliza el bloque try-catch, en la sección try se ponen las sentencias
que podría generar una excepción y tiene dos secciones catch, la primera que captura o
cacha la excepción de formato numérico (NumberFormatException) y la segunda es una
excepción aritmética o de división por cero (ArithmeticException). Donde utiliza un ciclo en
do-while, que en caso de que ocurra una excepción regrese a solicitar los datos hasta que
la variable Continuar sea igual a false.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Exception Error …
ClassCastException MalformedURLException …
… …
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
La clase Error está relacionada con errores de la máquina virtual de Java y no el código,
generalmente estos errores no dependen del programador por lo que no debe preocuparse
por tratarlos.
Propagación:
main()⇒primero()⇒segundo()
Clausula finally
try{
// Código protegido que puede provocar excepciones
…
}
catch (TipoDeExcepcion excepcion) {
// Código que maneja el error
…
}
finally{
// Código que se ejecuta siempre al final
…
}
Si dentro de try hay alguna sentencia return, se ejecuta final y antes de devolver el
valor
try {
abrirGrifo();
regarCesped();
}
catch (MangueraRotaException e) {
darAlarma();
avisarFontanero();
}
finally{
cerrarGrifo();
}
Ejercicio 2.15: Elabore un programa que solicite su nombre y posteriormente solicite por
teclado un valor numérico, a continuación, imprima el carácter que este en esa posición, en
caso de que no exista esa posición, cachar la excepción
StringIndexOutOfBoundsException y mandar un mensaje de error.
Si desea que los usuarios puedan distinguir, mediante programación, ciertas condiciones
de error de otras, puede crear sus propias excepciones, a esto se le llama excepciones
definidas por el usuario. Para lograr esto a una clase derivada extiéndala de la clase base
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Exception. Cada una de estas clases define una excepción específica, por lo que en muchos
casos sólo hay que detectar la excepción.
Todas las excepciones tienen como clase base la clase Throwable, que está incluida en el
paquete java.lang.
Todos los métodos Java utilizan la sentencia throw para lanzar una excepción. Esta
sentencia requiere un sólo parámetro, un objeto Throwable. En el sistema Java, los objetos
lanzables son ejemplares de la clase Throwable definida en el paquete java.lang, como por
ejemplo:
Cuando se crea una nueva excepción, derivando de una clase Exception ya existente, se
puede cambiar el mensaje que lleva asociado. La cadena de texto puede ser recuperada a
través de un método.
Ejercicio 2.16: En el siguiente ejemplo declara una clase llamada EdadFueradeRango que
se extiende de la clase Exception. Contiene dos constructores, el primero es el de por
defecto el cual invoca al súper constructor sin parámetros, el segundo (constructor
alternativo) recibe como parámetro un String el cual es invocado al súper constructor.
Continuando con el ejemplo de la excepción fueran de rango, se declara una clase Persona
con el atributo edad del tipo entero, además cuenta con un constructor por defecto que le
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
asigna cero a Edad y un constructor alternativo que recibe un parámetro entero y el cual
utiliza un bloque try-catch, en la sección try invoca el método cambiaEdad enviando como
parámetro el valor entero edad, en caso de ocurrir un error lo cachara mediante la
instrucción catch y desplegará un mensaje de error donde indicará que la edad está fuera
de rango.
El método setEdad valida si la edad está entre 0 y 120 año si es así se la asigna a la variable
edad, en caso contrario lanza una excepción de EdadFueraDeRango.
Elabore una clase llamada estudiante, que contenga un campo llamado Calificación y que
mediante excepciones verifique que la Calificación este en el rango de 0 a 100. Y Mediante
una clase principal la ejemplifique.
1ª Oportunidad
1. Elabore una clase llamada Persona, con las siguientes variables miembro:
Métodos:
las variables de clase para el primero objeto (empleando sus correspondientes set’s)
capturando los datos desde el teclado y finalmente, muestre el contenido de cada variable
del objeto en forma individual (empleando su correspondiente get’s).
Métodos:
Para la clase principal (Ejemplo_Estudiante), instancie cinco objetos tipo Estudiante con
los datos capturados desde teclado y al final despliege en pantalla la siguiente
información:
2ª Oportunidad
1. Elabore una clase llamada Obrero, con las siguientes variables miembro:
NO (Número de Obrero)
Nombre (Nombre del Obrero)
Domicilio (Domicilio)
NSS (Número de Seguro Social)
Salario (Salario del Obrero)
Departamento (Nombre del departamento)
Métodos:
La clase principal (Ejemplo_Obrero), instancie dos objetos tipo Obrero, el primero objeto
deberá ser creado con el constructor por defecto y el segundo objeto deberá ser
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
instanciado con el constructor alternativo, cuyos datos deben ser capturados desde
teclado y al final despliegue el contenido de los objetos en pantalla. Después modifique
las variables de clase para el primero objeto (empleando sus correspondientes set’s)
capturando los datos desde el teclado y finalmente, muestre el contenido de cada variable
del objeto en forma individual (empleando su correspondiente get’s).
RFC
Nombre
Domicilio
Edad
Sueldo
Departamento
Métodos:
Para la clase principal (Ejemplo_Empleado), instancie cinco objetos tipo Empleado con
los datos capturados desde teclado y al final despliegue en pantalla la siguiente
información:
Elabore una clase llamada Vehículo con las siguientes variables de clase:
Placas
Marca
Modelo
Tipo
Color
Número de cilindros
Número de pasajeros
Implemente este programa mediante clases, instancia 10 objetos tipo vehículo con
diferentes datos, al final imprima la siguiente información:
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Instrucciones: Indique con una “X” en la intersección fila - columna las características mínimas que cumple el
proyecto entregado como evidencia, anote los puntos en cada criterio y súmelos.
Criterios de
Excelente Notable Bueno Suficiente Insuficiente Retroalimentación
desempeño
Presenta una portada con: Presenta una portada con Presenta una portada con Presenta una portada con Presenta una portada con
1. Logo del TecNM y del seis de los conceptos del cinco de los conceptos del cuatro de los conceptos del menos de cuatro de los
ITA en la parte superior. apartado excelente y sin apartado excelente y sin apartado excelente y sin conceptos mostrados en
2. Nombre del Instituto. errores ortográficos. errores ortográficos. errores ortográficos. el apartado excelente o
3. Nombre de la carrera. tiene errores ortográficos
4. Nombre de la materia y o No presenta portada.
hora.
5. Número de Unidad,
Portada descripción de la unidad
y redacción completa de
la Evidencia de
Aprendizaje.
6. Nombre y número de
control del estudiante.
7. Fecha.
Y sin errores ortográficos.
Pts. 5 pts. 4.5 pts. 4 pts. 3.5 pts. 0 pts.
Presenta la solución del problema Presenta la solución del problema Presenta la solución del problema Presenta la solución del problema El programa que presenta es
con los siguientes puntos: con los siguientes puntos: con los siguientes puntos: con los siguientes puntos: menora al 70% o no presenta la
Descripción del problema. Descripción del problema. Descripción del problema. Descripción del problema. solución del problema.
Desarrollo Diseño de la clase. Diseño de la clase. Diseño de la clase. Diseño de la clase.
Implementación de la clase. Implementación de la clase. Implementación de la clase. Implementación de la clase.
Problema 1 Clase principal. Clase principal. Clase principal. Clase principal.
Imágenes que muestran el Imágenes que muestran el Imágenes que muestran el Imágenes que muestran el
funcionamiento al 100%. funcionamiento al 90%. funcionamiento al 80%. funcionamiento al 70%.
Pts. 25 pts. 22.5 pts. 20 pts. 17.5 pts. 0 pts.
Presenta la solución del problema Presenta la solución del problema Presenta la solución del problema Presenta la solución del problema El programa que presenta es
con los siguientes puntos: con los siguientes puntos: con los siguientes puntos: con los siguientes puntos: menora al 70% o no presenta la
Descripción del problema. Descripción del problema. Descripción del problema. Descripción del problema. solución del problema.
Desarrollo Diseño de la clase. Diseño de la clase. Diseño de la clase. Diseño de la clase.
Implementación de la clase. Implementación de la clase. Implementación de la clase. Implementación de la clase.
Problema 2 Clase principal. Clase principal. Clase principal. Clase principal.
Imágenes que muestran el Imágenes que muestran el Imágenes que muestran el Imágenes que muestran el
funcionamiento al 100%. funcionamiento al 90%. funcionamiento al 80%. funcionamiento al 70%.
Pts. 25 pts. 22.5 pts. 20 pts. 17.5 pts. 0 pts.
Presenta la solución del problema Presenta la solución del problema Presenta la solución del problema Presenta la solución del problema El programa que presenta es
con los siguientes puntos: con los siguientes puntos: con los siguientes puntos: con los siguientes puntos: menora al 70% o no presenta la
Desarrollo Descripción del problema. Descripción del problema. Descripción del problema. Descripción del problema. solución del problema.
Todo el código Todo el código Todo el código Todo el código
Problema 3 Imágenes que muestran el Imágenes que muestran el Imágenes que muestran el Imágenes que muestran el
funcionamiento al 100%. funcionamiento al 90%. funcionamiento al 80%. funcionamiento al 70%.
Pts. 25 pts. 22.5 pts. 20 pts. 17.5 pts. 0 pts.
Presenta una opinión coherente con Presenta una opinión coherente Presenta una opinión coherente Presenta una opinión coherente Presenta una opinión no
el trabajo y sin errores ortográficos con el trabajo y sin errores con el trabajo y sin errores con el trabajo y con a lo menos coherente con el trabajo o Con
Conclusiones en más de media cuartilla con ortográficos en media cuartilla con ortográficos en menos de media dos errores ortográficos en menos más de dos errores ortográficos
formato justificado. formato justificado. cuartilla. de media cuartilla. o No presenta aportaciones
personales.
Pts. 20 pts. 18 pts. 16 pts. 14 pts. 0 pts.
Indicador de alcance E Entrega resolución de problemas adicionales en la práctica de programación
Indicador de alcance F Entrega la Práctica de programación en la fecha y hora señalada
Calificación
Calificación mínima aceptable: 70 pts.
En caso de obtener una calificación menor a 70, tendrá que presentar 2ª Oportunidad y
solo deberá de enviar los criterios donde obtuvo cero puntos. Si dentro de esos criterios
se encuentra los Problemas 1, 2 o 3, deberá elaborar los problemas marcados como 2ª
oportunidad.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
3. Métodos
La ejecución de las instrucciones de un método puede depender del valor de unas variables
especiales denominadas parámetros del método, de manera que en función del valor que
se dé a estas variables en cada llamada la ejecución del método se pueda realizar de una
u otra forma y podrá producir uno u otro valor de retorno.
La sintaxis es:
Dónde:
acceso Cada método tiene asociado un tipo que se utiliza para controlar el acceso al
método. Entre estos se encuentran:
public Este método público se puede llamar de cualquier código que tenga
acceso a la clase.
private Este método privado solo puede ser llamado desde otros métodos
dentro de la clase en que se definió el método privado.
static Declara el método como método de la clase y no como método del objeto (no
hereda el método).
Nota: Un método declarado como static solo puede ser llamado por otro método static
y hacer referencia a variables static.
tipo Es el tipo de datos que regresara el método. Si se estipula un tipo de dato void
indica el método no regresa ningún valor (void indica ausencia de valor). Dentro
del método para retornar el valor se utiliza la palabra reservada return y
posteriormente el valor, si el tipo de dato del método se declara void no es
necesario utilizar la sentencia return.
Los métodos pueden devolver un valor o un objeto. Todos los tipos primitivos en Java se
devuelven por valor y todos los objetos se devuelven por referencia. El retorno de la
referencia a un objeto en Java es similar a devolver un puntero a un objeto situado en
memoria dinámica en C++, excepto que la sintaxis es mucho más simple en Java, en donde
el item que se devuelve es la dirección de la posición en memoria dinámica donde se
encuentra almacenado el objeto.
Para devolver un valor se utiliza la palabra clave return. La palabra clave return va seguida
de una expresión que será evaluada para saber el valor de retorno. Esta expresión puede
ser compleja o puede ser simplemente el nombre de un objeto, una variable de tipo primitivo
o una constante.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
3.4.1. De clase
Métodos de clase
Un método de clase es aquel que puede ser invocado sin existir una instancia. Para declarar
un método como “Método de la clase” se utiliza la palabra reservada static:
Ejercicio 3.1: El siguiente programa lee un valor en grados Celsius y por medio de un
método llamado convierteAFahrenheit convierte los grados Celsius a grados Fahrenheit.
9
Fahrenheit = C + 32
5
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Para acceder a las variables o métodos de clase se utiliza el operador punto (.). Primero se
pone el nombre de la clase, un punto (.) y posteriormente el nombre de la variable de clase
o nombre del método de clase.
nombreClase.nombreVarClase;
nombreClase.nombreMetodoClase();
Suponga que desea realizar el cálculo de intereses anuales que percibirá por depositar
$10,000.00 pesos en el banco durante en 5 años percibiendo un interés del 6% anual.
𝐶𝑓 = 𝐶(1 + 𝑖)𝑡
Ejercicio 3.2: El siguiente programa declara una clase llamada Calculo, donde tiene un
método estático llamado interesCompuesto, que recibe como parámetros el Capital Inicial
(C), el interés (i) y el tiempo (t); y regresa el cálculo del Capital final (Cf). Posteriormente en
una clase principal se utiliza el método interesCompuesto.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
3.4.2. De Instancia
Métodos de instancia
Un método de instancia es el que se invoca siempre sobre una instancia (objeto) de una
clase. Para declarar un método de instancia se declara sin la palabra reservada static:
Para acceder a las variables o métodos de instancia se utiliza el operador punto (.). Primero
se pone el nombre del objeto, un punto (.) y posteriormente el nombre de la variable de
instancia (solo para cuando se declara como public o tipo de acceso amigable) o nombre
del método de instancia.
Objeto.nombreVarInstancia;
Objeto.nombreMetodoInstancia();
Los métodos set’s y get’s de una clase, son métodos de instancia, porque para utilizarlos
se tiene que instanciar un objeto e invocar los métodos correspondientes.
Ejercicio 3.3: Diseñe e implemente en el lenguaje java una clase de Lápiz Labial. Y
mediante una clase principal instancie dos objetos.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Ejercicio 3.4: Una tonelada métrica equivale a 35,273.92 onzas. Elabore un programa que
lea desde teclado el peso que le cabe a una caja en onzas y mediante el método
calculaCajas determine cuantas cajas se pueden llenar con una tonelada métrica de cereal.
𝐶𝑓 = 𝐶(1 + 𝑖)𝑡
𝐶𝑓
= (1 + 𝑖)𝑡
𝐶
𝑡 𝐶
√ 𝑓 =1+𝑖
𝐶
𝑡 𝐶
𝑓
1+𝑖 = √
𝐶
𝑡 𝐶
𝑓
𝑖 = √ −1
𝐶
60 24,432 60
𝑖= √ − 1 = √2.4432 − 1 = 1.0149998 − 1 ≈ 0.015 = 1.5% 𝑚𝑒𝑛𝑠𝑢𝑎𝑙 18% 𝑎𝑛𝑢𝑎𝑙
10,000
Ejercicio 3.5: Implemente el cálculo del interés en la clase Calculo y muestre los resultados
en pantalla.
El ámbito de una variable define su alcance de uso, o lo que es lo mismo, en que secciones
de código una variable estará disponible. Fuera de este ámbito, una variable no podrá ser
accedida (no existe).
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Tipos de ámbito
En Java tenemos tres tipos de ámbito que pueden aplicar a una variable:
Local
Global
Estático
Variables de ámbito local.- Las variables de ámbito local, o de bloque, son aquellas que
sólo pueden ser accedidas desde el bloque de código en el que han sido declaradas.
Variables de ámbito global.- Las variables de ámbito global, o de instancia, son aquellas
que pertenecen a cada instancia concreta de la clase donde han sido declaradas, y
dependiendo del modificador de visibilidad usado podrían ser sólo accedidas desde la
propia instancia a la que pertenecen:
Variables estáticas.- Las variables estáticas, o de clase, son aquellas que pertenecen a la
propia clase donde han sido declaradas, y dependiendo del modificador de visibilidad usado
podrían ser sólo accedidas desde la propia clase en la que han sido declaradas:
Los argumentos son los valores que se pasan al método para que realice un proceso o
tarea y el método recibe estos argumentos en los parámetros designados (variables).
En el paso de parámetros a funciones hay dos aproximaciones clásicas: el paso por valor
y paso por referencia.
Por valor: En el paso por valor se realiza una copia de los valores que se
pasan, trabajando dentro del método con la copia. Es por ello que cualquier cambio
que sufran dentro, no repercute fuera del método.
Por referencia: En el paso por referencia no se realiza dicha copia, por lo que las
modificaciones dentro de los métodos afectan a los parámetros y esos cambios son
permanentes al finalizar el método.
En Java el paso por parámetro por valor (ocho tipos básicos de Java), se realiza una copia
en el método y cualquier cambio a dicho parámetro no afecta a la variable original.
En el caso de los objetos es distinto, debido a que se pasa la referencia del objeto como
parámetro y cualquier cambio al objeto, se estará realizado la modificación al dato original.
Ejercicio 3.5: En el siguiente programa se instancia un objeto tipo Persona (vista en el tema
2.9) con los valores “José Pérez” para el nombre y 25 para la edad, la segunda variable
declarada es tipo int. Dentro del método main se despliegan los datos antes de enviar las
variables como parámetros al método Cambia. En el método Cambia, se modifica el objeto
en el campo nombre con “Luz Jiménez” y se multiplica el valor de la variable int por 4.
Cuando termina de ejecutar el método Cambia se vuelven a desplegar las variables y se
puede observar que el objeto cambió en el campo nombre, debido a que fue enviado por
referencia, sin embargo, la variable tipo int no sufrió cambios, porque se mandó por valor.
Qué un método devuelva el mismo objeto que le llamó. De esta manera se puede
hacer llamadas en cascada a métodos de la misma clase.
class Figura {
Triangulo t;
int radio;
. . .
public Triangulo MayorBase(Triangulo t) {
if (this.t.base > t.base)
return this;
else
return t;
}
}
La firma de un método está compuesta por valor de retorno, nombre del método, en cuanto
a los parámetros: tipo de dato, el número de parámetros y orden de cada parámetro. Sin
embargo, para la sobrecarga solo se toma en cuenta tipo de dato, el número de parámetros
y orden de cada parámetro.
Java diferencia los métodos sobrecargados con base en el tipo, número y orden de
argumentos que tiene el método y no por el tipo del valor de retorno.
Ejercicio 3.6: El siguiente programa declara una clase principal llamada Ejemplo_Area, con
cuatro métodos llamados “Area” que se encuentran sobrecargados. El primer y segundo
método calcula el área de un cuadrado y reciben un parámetro cada uno, el primer de ellos
recibe un tipo int y el segundo lo recibe tipo float. El tercer y cuarto método calcula en área
de un rectángulo, reciben dos parámetros, los parámetros del tercer método son de tipo int
y el cuarto método sus parámetros son de tipo float. Regresan un valor tipo long (primer y
tercer método) y un valor tipo double (el segundo y cuarto método). Además, se utiliza la
clase DecimalFormat para formatear los datos de salida.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Ejercicio 3.7: Elabore una clase principal que tenga 6 métodos sobrecargados llamado
areaTriangulo, que realizaran el cálculo del área de un triángulo en base a lo siguiente:
√3 ∙ 𝑎2
Á𝑟𝑒𝑎 =
4
𝑏∙𝑎
Á𝑟𝑒𝑎 =
2
Á𝑟𝑒𝑎 = √𝑝 ∙ (𝑝 − 𝑎) ∙ (𝑝 − 𝑏) ∙ (𝑝 − 𝑐)
Donde a, b y c son los valores de las longitudes de los lados del triángulo y
p se calcula así:
(𝑎 + 𝑏 + 𝑐)
𝑝=
2
Los primeros 3 métodos sobrecargados recibirán datos tipo int y los restantes 3,
datos tipo double. El valor de retorno de todos los métodos será double.
Unidad: 3. Métodos
Cumple
No. Al Inicio de la sesión: Valor Puntos Retroalimentación
Si No
1 Realiza su presentación mencionando su 5
nombre completo.
2 Menciona el indicador de alcance y la 5
descripción del problema a resolver.
Durante la sesión:
3 Maneja términos, conceptos y 30
conocimientos en su exposición de forma
correcta.
4 Explica la resolución del problema de forma 30
coherente y clara.
5 Interactúa con el grupo manteniendo 5
contacto visual durante la exposición.
6 Emplea un tono de voz adecuado durante la 5
exposición y sin utilizar muletillas.
7 Organiza y planea su presentación de 5
manera ordenada y planificada.
Cierre de la sesión:
8 Responde a las preguntas de forma 5
coherente y clara.
9 Cumple con el tiempo planeado para la 10
sesión: 6 a 10 minutos.
Puntuación Total
Constructores
Los constructores tienen el mismo nombre que la clase, además no tienen valor de retorno
(ni incluso void) y están clasificados en constructores por defecto y
alternativos/sobrecargados.
Regla: Java crea automáticamente un constructor por defecto cuando no existe otro
constructor. Tal constructor inicializa las variables tipo byte, short, int, float, double,
long (numéricas) con cero, las booleanas con false y las referencias con null.
Constructor alternativo/sobrecargado
Precaución: Tenga cuidado con la declaración de una clase que sólo tenga un
constructor con parámetros. En ese caso si se omite un constructor sin
parámetros no será posible utilizar el constructor por defecto.
Ejemplo: El código que se muestra a continuación declara una clase llamada Punto
con dos variables miembro tipo int (x y y), además tiene un constructor
alternativo (debido a que tiene parámetros), el cual asigna los valores que
se le envían como parámetros a las variables x y y, dado que no tiene un
constructor por defecto (sin parámetros), al querer instanciar un objeto del
tipo punto (que en este ejemplo lo llamamos primerPunto) marcará error,
debido a que dicho método constructor no existe.
Al instanciar un objeto tipo Punto, marcará un error debido a que se está invocando al
constructor por defecto, sin embargo, este método no existe.
Los destructores se utilizan para destruir una instancia de una clase y liberar memoria. En
Java no hay destructores, ya que la liberación de memoria es llevada a cabo por el Garbage
Collector GC (Recolector de Basura) cuando las instancias de los objetos quedan
desreferenciadas o fuera de alcance.
Cuando el GC se ejecuta, su propósito es buscar y borrar los objetos que no pueden ser
alcanzados. Cuando se ejecuta, busca todos esos objetos descartados y lo borra de la
memoria para que el ciclo de uso de memoria y liberándose pueda continuar.
Una forma de hacer elegible un objeto para que el GC lo detecte es desrefenciarlo, es decir,
asignarle el valor null a la variable que donde esta instanciado y con esto el GC lo detectará
y por consiguiente liberar espacio que ocupa.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Java provee algunos métodos que permiten solicitar a la JVM a ejecute el GC. Sin embargo,
no hay seguridad que JVM ejecute inmediatamente el GC o que libere todos los objetos
que son elegibles en ese momento.
Los métodos del GC que Java provee son miembros de la clase Runtime. La clase Runtime
es una clase especial que tiene un objeto para cada programa main. El objeto Runtime
provee de un mecanismo para comunicarse directamente con la máquina virtual. Para
obtener la instancia de Runtime, podemos usar el método Runtime.getRuntime(), el cual
nos retorna la instancia única del main en ejecución.
Ahora veamos un ejemplo para ver el funcionamiento del GC. El siguiente programa nos
permite saber el total de memoria dispone la JVM y así como cuanta memoria libre tiene.
Entonces se instanciarán 100,000 objetos tipo Date. Después de esto, se desplegará
cuanta memoria libre queda y entonces se invoca a el método del GC (el cual, decidirá si
se ejecuta o no). La memoria libre final resultante debería indicar cuando se ha ejecutado.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
1ª Oportunidad
Á𝑟𝑒𝑎 = 𝑏 ∙ 𝑎
Donde ̅̅̅̅
𝐴𝐶 y ̅̅̅̅
𝐵𝐷 son las diagonales y 𝜃 es el ángulo que lo conforma (Ver figura).
O seis parámetros y se calcula así:
𝑎 ∙ 𝑑 ∙ 𝑠𝑒𝑛 𝛼 + 𝑏 ∙ 𝑐 ∙ 𝑠𝑒𝑛 𝛾
Á𝑟𝑒𝑎 =
2
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Siendo:
Los primeros 3 métodos sobrecargados recibirán datos tipo long y los restantes
3, datos tipo double. El valor de retorno de todos los métodos será double. En la
clase principal imprima en pantalla los resultados de todos los métodos.
2ª Oportunidad
𝑉𝑜𝑙𝑢𝑚𝑒𝑛 = 𝐿3
𝑉𝑜𝑙𝑢𝑚𝑒𝑛 = 𝐿2 ∙ ℎ
𝐿𝑎𝑑𝑜𝑠 ∙ 𝐿 ∙ 𝑎𝑝
𝑉𝑜𝑙𝑢𝑚𝑒𝑛 = ∙ℎ
2
Donde:
Lados: Número de lados del prisma.
L: Lado del prisma.
ap: Apotema del prisma.
h: Altura del prisma.
Los primeros 3 métodos sobrecargados recibirán datos tipo long y los restantes
3, datos tipo double. El valor de retorno de todos los métodos será double. En la
clase principal imprima en pantalla los resultados de todos los métodos.
Escriba un programa que mediante un método determine si una cadena es palíndromo (un
palíndromo es una palabra que se lee igual en sentido directo como inverso, por ejemplo,
radar, reconocer, rotomotor, sometemos, AnitaPatina, AnitaLavaLaTina,
EvaUsabaRimelYLeMirabaSuave, SeEsONoSeEs, SomosONoSomos.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Instrucciones: Indique con una “X” en la intersección fila - columna las características mínimas que cumple el
proyecto entregado como evidencia, anote los puntos en cada criterio y súmelos.
Criterios de
Excelente Notable Bueno Suficiente Insuficiente Retroalimentación
desempeño
Presenta una portada con: Presenta una portada con seis Presenta una portada con Presenta una portada con Presenta una portada con
1. Logo del TecNM y del de los conceptos del apartado cinco de los conceptos del cuatro de los conceptos del menos de cuatro de los
ITA en la parte superior. excelente y sin errores apartado excelente y sin apartado excelente y sin conceptos mostrados en el
2. Nombre del Instituto. ortográficos. errores ortográficos. errores ortográficos. apartado excelente o tiene
3. Nombre de la carrera. errores ortográficos o No
4. Nombre de la materia y presenta portada.
hora.
5. Número de Unidad,
Portada descripción de la unidad
y redacción completa de
la Evidencia de
Aprendizaje.
6. Nombre y número de
control del estudiante.
7. Fecha.
Y sin errores ortográficos.
Pts. 5 pts. 4.5 pts. 4 pts. 3.5 pts. 0 pts.
Presenta la resolución del Presenta la resolución del Presenta la resolución del Presenta la resolución del El funcionamiento del
problema con los siguientes problema con los siguientes problema con los siguientes problema con los siguientes programa que presenta es
rubros: rubros: rubros: rubros: menor al 70% o no presenta
Descripción del Descripción del Descripción del Descripción del la solución del problema.
problema. problema. problema. problema.
Desarrollo Todo el código Todo el código Todo el código Todo el código
Problema 1 Ejecución del programa Ejecución del programa Ejecución del programa Ejecución del programa
mediante imágenes que mediante imágenes que mediante imágenes que mediante imágenes que
muestre el muestre el muestre el muestre el
funcionamiento correcto funcionamiento correcto funcionamiento correcto funcionamiento correcto
del programa al 100%. del programa al 90%. del programa al 80%. del programa al 70%.
Pts. 25 pts. 22.5 pts. 20 pts. 17.5 pts. 0 pts.
Presenta la resolución del Presenta la resolución del Presenta la resolución del Presenta la resolución del El funcionamiento del
problema con los siguientes problema con los siguientes problema con los siguientes problema con los siguientes programa que presenta es
rubros: rubros: rubros: rubros: menor al 70% o no presenta
Descripción del Descripción del Descripción del Descripción del la solución del problema.
problema. problema. problema. problema.
Desarrollo Todo el código Todo el código Todo el código Todo el código
Problema 2 Ejecución del programa Ejecución del programa Ejecución del programa Ejecución del programa
mediante imágenes que mediante imágenes que mediante imágenes que mediante imágenes que
muestre el muestre el muestre el muestre el
funcionamiento correcto funcionamiento correcto funcionamiento correcto funcionamiento correcto
del programa al 100%. del programa al 90%. del programa al 80%. del programa al 70%.
Pts. 25 pts. 22.5 pts. 20 pts. 17.5 pts. 0 pts.
Presenta la resolución del Presenta la resolución del Presenta la resolución del Presenta la resolución del El funcionamiento del
problema con los siguientes problema con los siguientes problema con los siguientes problema con los siguientes programa que presenta es
rubros: rubros: rubros: rubros: menor al 70% o no presenta
Descripción del Descripción del Descripción del Descripción del la solución del problema.
problema. problema. problema. problema.
Desarrollo Todo el código Todo el código Todo el código Todo el código
Problema 3 Ejecución del programa Ejecución del programa Ejecución del programa Ejecución del programa
mediante imágenes que mediante imágenes que mediante imágenes que mediante imágenes que
muestre el muestre el muestre el muestre el
funcionamiento correcto funcionamiento correcto funcionamiento correcto funcionamiento correcto
del programa al 100%. del programa al 90%. del programa al 80%. del programa al 70%.
Pts. 25 pts. 22.5 pts. 20 pts. 17.5 pts. 0 pts.
Presenta una opinión Presenta una opinión Presenta una opinión Presenta una opinión Presenta una opinión no
coherente con el trabajo y sin coherente con el trabajo y sin coherente con el trabajo y sin coherente con el trabajo y con coherente con el trabajo o
Conclusiones errores ortográficos en más de errores ortográficos en media errores ortográficos en menos a lo menos dos errores Con más de dos errores
media cuartilla con formato cuartilla con formato de media cuartilla. ortográficos en menos de ortográficos o No presenta
justificado. justificado. media cuartilla. aportaciones personales.
Pts. 20 pts. 18 pts. 16 pts. 14 pts. 0 pts.
Indicador de alcance E Entrega resolución de problemas adicionales en la práctica de programación
Indicador de alcance F Entrega la Práctica de programación en la fecha y hora señalada
Calificación
Calificación mínima aceptable: 70 pts.
En caso de obtener una calificación menor a 70, tendrá que presentar 2ª Oportunidad y solo
deberá de enviar los criterios donde obtuvo cero puntos. Si dentro de esos criterios se
encuentra los Problemas 1, 2 o 3, deberá elaborar los problemas marcados como 2ª
oportunidad.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Cree una clase llamada Vehículo de Carga, que contenga las variables de clase Número de Vehículo, Tipo
(Camioneta, Torton, Trailer, Otro), Placas, Capacidad Máxima Bruta (CapMax), Peso del producto (net), Peso
Tara (tara) y que mediante excepciones validar que el peso bruto no exceda la capacidad máxima bruta
(CapMax < (net + tara)) y que el Tipo sea Camioneta, Torton, Trailer u Otro. Tendrá dos constructores (por
defecto y alternativo). Incluya los métodos Set’s y Get’s, además redefina el método toString para que
despliegue el objeto de la siguiente forma:
Y crear una clase con seis métodos de clase sobrecargados llamado Volumen, que realizaran el cálculo del
volumen de tres figuras geométricas, bajo las siguientes bases:
𝑉𝑜𝑙𝑢𝑚𝑒𝑛 = 𝑎3 a 4
𝑉𝑜𝑙𝑢𝑚𝑒𝑛 = ∙ 𝜋 ∙ 𝑟1 ∙ 𝑟2 ∙ 𝑟3
3
a
Donde a es el lado del cubo
r2 r1
Con dos parámetros, un cilindro y el r3
volumen se calcula:
r
h Donde r1, r2 y r3 son las longitudes de los
𝑉𝑜𝑙𝑢𝑚𝑒𝑛 = 𝜋 ∙ 𝑟 2 ∙ ℎ semiejes.
Los primeros 3 métodos sobrecargados recibirán datos tipo float y los restantes 3, datos tipo double. El valor de
retorno de todos los métodos será double.
Desarrolle un proyecto que mediante un menú principal despliegue: Instanciar, Desplegar, Calcular o Salir. Si
selecciona Instanciar: Instancie dos objetos tipo Vehículo de Carga, el primero mediante el constructor por
defecto y el segundo mediante el constructor alternativo (capture los datos desde teclado). Si seleccionar
Desplegar, muestre en pantalla los objetos instanciados. Si selecciona Calcular, capture los datos para los
métodos sobrecargados y muestre los resultados en pantalla. Solo puede terminar el programa, cuando en el
menú principal seleccione Salir.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Indicador de Alcance . A.- Agregar una opción más al menú que sea Reportes, que
despliegue los objetos instanciados y el cálculo de cada
uno de los métodos. Solo se podrá seleccionar esta
opción si están instanciados y capturados los objetos.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Cumple
No. Exposición del proyecto y entrega del trabajo Valor Puntos Retroalimentación
Si No
Al Inicio de la sesión:
Realizan la presentación de cada integrante mencionando su
1 5
nombre completo. (AG)
Mencionan la unidad y la descripción del proyecto a resolver.
2 5
(AG)
Durante la sesión:
Demuestra, Describe y Explica el funcionamiento del
proyecto en cuanto a:
Excepciones
Clase principal
Clase Vehículo de Carga
3 o Constructores 30
o Set's
o Get's
o toString
Seis métodos sobrecargados
De una forma coherente y clara (CI).
Expresa y Maneja el sistema del proyecto de forma correcta.
4 15
(PI).
Aplican y Resuelven correctamente la resolución del
5 15
proyecto. (PG)
Interactúa con el grupo manteniendo contacto visual durante
6 5
la exposición. (AI)
Emplea un tono de voz adecuado durante la exposición y sin
7 5
emplear muletillas. (AI)
Organiza y planea su presentación de manera ordenada y
8 5
planificada. (AG)
Cierre de la sesión:
9 Responde a las preguntas de forma correcta.(CPAI) 10
Cumplen con el tiempo planeado para la sesión de 16 a 20
10 5
minutos. (AG)
Diseñar opciones adicionales al proyecto: Indicador de
11 El proyecto permite despliegue los objetos instanciados y el cálculo de Alcance A
cada uno de los métodos.
Puntuación Total
Cumple
No. Exposición del proyecto Valor Puntos Retroalimentación
Si No
La portada contiene:
Excepciones
Clase principal
Clase Vehículo de Carga
o Constructores
2 60
o Set's
o Get's
o toString
Seis métodos sobrecargados
Ejecución del programa mediante imágenes muestre el buen
funcionamiento del programa 100%.
La conclusión, tiene con una opinión coherente con el trabajo por cada
3 15
integrante del equipo.
Puntuación Total
4. Herencia y polimorfismo
En otros lenguajes de programación, como C++ se refieren a la superclase como clase base
y a la subclase como clase derivada. Una vez creada, cada subclase se puede convertir en
superclase de futuras subclases. Una subclase generalmente agrega sus propias variables
y métodos, por lo tanto, una subclase es más específica que una superclase y representa
un grupo más concreto de objetos.
Superclase
Préstamo
Subclases
Empleado
A veces es difícil decidir cuál es la relación de herencia óptima entre el diseño de clases.
Consideremos por ejemplo el caso de empleados de una empresa, existen diferentes tipos
de clasificación según sea el criterio de discriminación, por ejemplo, por tipo de empleado:
Por tipo de percepción:
Empleado
Empleado
Empleado
Como se darán cuenta es difícil establecer cuál de estos modelos es el más adecuado, lo
mejor es decidirse hasta que tenga la aplicación real y el usuario le diga cuál es la mejor
forma de organización de su empresa y así trasladarla al diseño jerárquico de clases.
Declaración.
Una clase derivada (o subclase) es una clase que hereda los atributos y comportamiento
de una clase base (o superclase). Sintaxis:
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Ejercicio 4.1:
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
En el siguiente ejemplo tenemos la súper clase Préstamo, que contiene las variables
miembro Monto e Interés que son del tipo float con tipo de acceso privado (-), además
cuenta con los siguientes métodos los cuales todos son públicos (+):
tipo entera (int) que representa el valor de la prenda. Estas dos variables tienen el tipo de
acceso privado (por el signo negativo que las precede). Además, cuenta con los siguientes
métodos públicos (+):
Cuando pensamos en un tipo de clase, suponemos que los programas crearán objetos de
ese tipo, sin embargo, existen casos en los que es conveniente declarar clases para las
cuales el programador no pretende instanciar objetos. Dichas clases se denominan clases
abstractas, debido a que estas solo se utilizan como superclases en la jerarquía de
herencias, nos referiremos a ellas como superclases abstractas. Estas clases no pueden
utilizarse para instanciar objetos, porque las clases abstractas se declaran incompletas, las
subclases deben declarar las partes faltantes.
Una jerarquía de clases no necesita contener clases abstractas, sin embargo, comúnmente
se utilizan jerarquías de clases encabezadas por superclases abstractas para reducir las
dependencias de código cliente en un tipo de subclases específicas. Por ejemplos
considere la siguiente jerarquía de clases:
Figura
Bidimensional Tridimensional
Definición
Para que una clase sea abstracta se debe declarar con la palabra reservada abstract. Una
clase abstracta por lo general tiene uno o más métodos abstractos (los métodos static no
pueden ser abstractos). Un método abstracto es un método con la palabra reservada
abstract en su declaración.
Redefinición
Figura
Punto
Circulo
Cilindro
Ejercicio 4.2: Implemente en el lenguaje Java las clases Figura, Punto, Circulo, Cilindro y
Ejemplo_ClaseAbstracta.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
La clase Punto se extiende de Figura heredando todos los métodos públicos. Dentro de la
clase Punto se declaran dos variables miembro tipo int llamada x y y, las cuales tienen tipo
de acceso es privado, contiene dos constructores (uno por defecto y otro alternativo),
además tiene los métodos getX(), getY() que regresan el valor de su correspondiente
variable, setX(int x) y setY(int y) que cambian los valores de sus correspondientes variables,
también se redefine el método abstracto getNombre(), el cual regresa el nombre de la figura
“Punto”, con esto deja de ser abstracta y se vuelve concreta. Finalmente se redefina el
método toString().
La clase Circulo se extiende de Punto heredando todos los métodos públicos. Dentro de la
clase Circulo se declara la variable miembro radio del tipo double donde el tipo de acceso
es privado. Contiene dos constructores, uno por defecto y otro alternativo, los cuales al
utilizar el método super() el cual invocan al súper constructor de la súper clase Punto,
además tiene los métodos getRadio() y setRadio() que regresan y cambian el valor del
radio, en este último método se utiliza la selección simple lineal (?), en donde si la condición
es verdadera regresa el primer valor después del signo de interrogación, en caso de ser
falso regresa el valor que se encuentra después de los dos puntos, esto se realiza para
asegurarse que no existan radios negativos. El método getDiametro() devuelve el doble del
radio. Y Finalmente se redefine el método getNombre(), el cual regresa el nombre de la
figura “Círculo”, se redefine el método getArea() con su respectivo cálculo y así también se
redefine el método toString().
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
La clase Cilindro se extiende de Círculo heredando todos los métodos públicos. Dentro de
la clase Cilindro se declara la variable miembro altura del tipo double y tipo de acceso
privado. Contiene dos constructores, uno por defecto y otro alternativo, los cuales también
utilizan el método super(), que invocan al súper constructor de la súper clase Circulo,
además tiene los métodos getAltura() y setAltura() que regresan y cambian el valor de la
altura. Y se redefinen los métodos getNombre(), getArea(), getVolumen() y toString().
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
4.5. Interfaces.
4.5.1. Definición
El concepto de Interface lleva un paso más adelante la idea de las clases abstractas. En
Java una interface es una clase abstracta pura, es decir una clase donde todos los métodos
son abstractos (no se implementa ninguno). Permite al diseñador de clases establecer la
forma de una clase (nombres de métodos, listas de parámetros y tipos de retorno, pero no
el cuerpo del método). Una interface puede también contener datos miembro, pero estos
son siempre static y final (aunque no se declaren así, se considerarán static y final). Una
interface sirve para establecer un 'protocolo' entre clases.
Para crear una interface, se utiliza la palabra clave interface en lugar de class. La interface
puede definirse public o sin modificador de acceso, y tiene el mismo significado que para
las clases. Todos los métodos que declara una interface son siempre public.
Para indicar que una clase implementa los métodos de una interface se utiliza la palabra
clave implements. El compilador se encargará de verificar que la clase efectivamente
declare e implemente todos los métodos de la interface. Una clase puede implementar más
de una interface.
4.5.2. Implementación.
interface nombre_interface {
tipo_retorno nombre_metodo ( lista_parámetros ) ;
...
}
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Por ejemplo:
interface InstrumentoMusical {
void tocar();
void afinar();
String tipoInstrumento();
}
Es posible crear referencias a interfaces, pero las interfaces no pueden ser instanciadas.
Una referencia a una interface puede ser asignada a cualquier objeto que implemente la
interface. Por ejemplo:
Extensión de interfaces
Las interfaces pueden extender otras interfaces y, a diferencia de las clases, una interface
puede extender más de una interface. La sintaxis es:
Agrupaciones de constantes
Dado que, por definición, todos los datos miembros que se definen en una interface son
static y final, y debido a que las interfaces no pueden instanciarse resulta una buena
herramienta para implantar grupos de constantes.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Por ejemplo:
System.out.println(Meses.NOMBRES_MESES[ABRIL]);
Ejercicio 4.3: Modifique el ejercicio 4.2 declarando como interface clase Figura e
impleméntelas las clases Punto, Circulo y Cilindro, finalmente defina la clase principal
Ejemplo_Interface donde instancie tres objetos (Punto, Circulo y Cilindro) similar al
Ejemplo_ClaseAbstracta.
Definición:
Ejercicio 4.4: Diseñe una interfaz que realice las operaciones básicas de una calculadora
(suma (+), resta (-), multiplicación (*) y división (/)), capturando dos números desde el
teclado.
Analizando el diseño anterior, tendremos que, por cada elemento se emplearán los
siguientes componentes de Java:
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
En Java, las variables que contienen objetos son variables polimórficas. El término
polimórfico (literalmente: muchas formas) se refiere al hecho de que una misma variable
puede contener objetos de diferentes tipos (del tipo declarado o de cualquier subtipo del
tipo declarado). El polimorfismo aparece en los lenguajes orientados a objetos en
numerosos contextos, las variables polimórficas constituyen justamente un primer ejemplo.
public class CD {
private String titulo;
private String artista;
private String comentario;
public CD() {
titulo = "Sin Titulo";
artista = "Sin Artista";
comentario = "";
}
public DVD() {
titulo = "Sin Titulo";
director = "Sin Director";
comentario = "";
}
Object ObjetoX;
ObjetoX = ObjetoCD;
System.out.println(ObjetoX);
ObjetoX = ObjetoDVD;
System.out.println(ObjetoX);
}
}
import System.io.*;
Estamos importando todas las clases del paquete System.io. Ahora, si hacemos esto:
import javax.swing.JOptionPane;
Para definir un paquete solo tenemos que incluir antes que los paquetes a importar, la
definición del paquete al que pertenece la clase, de la forma siguiente:
package org.ruta.del.paquete;
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Empleado
- String Nombre
- String Domicilio
- byte Edad
- String Telelefono
- String Puesto
+ Personal()
+ Persona (String N, String D,
byte E, String T, String P)
Set’s
Get’s
+ String toString()
Elabore la clase Empleado en Java, así como una de las clases entre: Base, Anual o
Mensual. Posteriormente elabore una clase principal llamada Ejemplo_Empleado, donde
se instancian un objeto de cada clase (Empleado, Base, Anual y Mensual) y finalmente los
mande a imprimir a pantalla, cada objeto.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Cumple
No. Al Inicio de la sesión: Valor Puntos Retroalimentación
Si No
1 Realiza su presentación mencionando su 5
nombre completo.
2 Menciona el indicador de alcance y la 5
descripción del problema a resolver.
Durante la sesión:
3 Maneja términos, conceptos y 30
conocimientos en su exposición de forma
correcta.
4 Explica la resolución del problema de forma 30
coherente y clara.
5 Interactúa con el grupo manteniendo 5
contacto visual durante la exposición.
6 Emplea un tono de voz adecuado durante la 5
exposición y sin utilizar muletillas.
7 Organiza y planea su presentación de 5
manera ordenada y planificada.
Cierre de la sesión:
8 Responde a las preguntas de forma 5
coherente y clara.
9 Cumple con el tiempo planeado para la 10
sesión: 6 a 10 minutos.
Puntuación Total
1ª Oportunidad
2ª Oportunidad
Instrucciones: Indique con una “X” en la intersección fila - columna las características mínimas que cumple el
proyecto entregado como evidencia, anote los puntos en cada criterio y súmelos.
Criterios de
Excelente Notable Bueno Suficiente Insuficiente Retroalimentación
desempeño
Presenta una portada con: Presenta una portada con seis de Presenta una portada con cinco de Presenta una portada con cuatro Presenta una portada con menos
1. Logo del TecNM y del ITA en los conceptos del apartado los conceptos del apartado de los conceptos del apartado de cuatro de los conceptos
la parte superior. excelente y sin errores excelente y sin errores excelente y sin errores mostrados en el apartado
2. Nombre del Instituto. ortográficos. ortográficos. ortográficos. excelente o tiene errores
ortográficos o No presenta
3. Nombre de la carrera. portada.
4. Nombre de la materia y hora.
Portada 5. Número de Unidad,
descripción de la unidad y
redacción completa de la
Evidencia de Aprendizaje.
6. Nombre y número de control
del estudiante.
7. Fecha.
Y sin errores ortográficos.
Pts. 5 pts. 4.5 pts. 4 pts. 3.5 pts. 0 pts.
Presenta la resolución del Presenta la resolución del Presenta la resolución del Presenta la resolución del El programa que presenta es
problema con los siguientes problema con los siguientes problema con los siguientes problema con los siguientes menor al 70% o no presenta la
rubros: rubros: rubros: rubros: solución del problema.
Descripción del problema. Descripción del problema. Descripción del problema. Descripción del problema.
Código de las super clases Código de las super clases Código de las super clases Código de las super clases
Desarrollo Código de las subclases Código de las subclases Código de las subclases Código de las subclases
Código Clase principal Código Clase principal Código Clase principal Código Clase principal
Problema 1 Ejecución del programa Ejecución del programa Ejecución del programa Ejecución del programa
mediante imágenes que mediante imágenes que mediante imágenes que mediante imágenes que
muestre la instanciación de muestre la instanciación de muestre la instanciación de muestre la instanciación de
los tres objetos y el los tres objetos y el los tres objetos y el los tres objetos y el
programa funciona al 100%. programa funciona al 90%. programa funciona al 80%. programa funciona al 70%.
Pts. 35 pts. 31.5 pts. 28 pts. 24.5 pts. 0 pts.
Presenta la resolución del Presenta la resolución del Presenta la resolución del Presenta la resolución del El programa que presenta
problema con los siguientes problema con los siguientes problema con los siguientes problema con los siguientes
rubros: rubros: rubros: rubros:
tiene menos de cinco
Descripción del problema. Descripción del problema. Código con las Código con las operaciones: funciones implementadas o
Código con las Código con las operaciones: o Inv. Seno no presente solución del
operaciones: operaciones: o Inv. Seno o Inv. Coseno problema.
o Inv. Seno o Inv. Seno o Inv. Coseno o Inv. Tangente
o Inv. Coseno o Inv. Coseno o Inv. Tangente o log
Desarrollo o Inv. Tangente o Inv. Tangente o log o 𝑎𝑏/𝑐
o log o log o 𝑎𝑏/𝑐 o ln
Problema 2 o 𝑎𝑏/𝑐 o 𝑎𝑏/𝑐 o ln o random
o ln o ln o random o CE
o random o random o CE Ejecución del programa
o CE o CE Ejecución del programa mediante imágenes que
Ejecución del programa Ejecución del programa mediante imágenes que muestre el funcionamiento
mediante imágenes que mediante imágenes que muestre el funcionamiento de cinco funciones.
muestre el funcionamiento muestre el funcionamiento de seis funciones.
de las ocho funciones. de siete funciones.
Pts. 35 pts. 31.5 pts. 28 pts. 24.5 pts. 0 pts.
Presenta una opinión coherente Presenta una opinión coherente Presenta una opinión coherente Presenta una opinión coherente Presenta una opinión no
con el trabajo y sin errores con el trabajo y sin errores con el trabajo y sin errores con el trabajo y con a lo menos coherente con el trabajo o Con
Conclusiones ortográficos en más de media ortográficos en media cuartilla con ortográficos en menos de media dos errores ortográficos en menos más de dos errores ortográficos o
cuartilla con formato justificado. formato justificado. cuartilla. de media cuartilla. No presenta aportaciones
personales.
Pts. 25 pts. 22.5 pts. 20 pts. 17.5 pts. 0 pts.
Indicador de alcance E Entrega resolución de problemas adicionales en la práctica de programación
Indicador de alcance F Entrega la Práctica de programación en la fecha y hora señalada
Calificación
Calificación mínima aceptable: 70 pts.
En caso de obtener una calificación menor a 70, tendrá que presentar 2ª Oportunidad y solo
deberá de enviar los criterios donde obtuvo cero puntos. Si dentro de esos criterios se
encuentra los Problemas 1 o 2, deberá elaborar los problemas marcados como 2ª
oportunidad.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
La empresa Todo Para el Hogar S.A. tiene el siguiente diseño de jerarquía de clases:
Desarrolle en Java la Interface Gama y las clases Electrodoméstico, Lavadora, Refrigerador y Microondas con
su respectiva relación de herencia e implementación. Posteriormente elabore una clase principal llamada
Ejemplo_Electrodoméstico y demuestre el polimorfismo mediante una variable tipo Electrodoméstico e instancie
un objeto de cada subclase (por medio del constructor alternativo, capturando los datos desde teclado) y
utilizando la variable polimórfica, imprima los objetos en pantalla.
Cumple
No. Exposición del proyecto y entrega del trabajo Valor Puntos Retroalimentación
Si No
Al Inicio de la sesión:
Realizan la presentación de cada integrante mencionando su nombre
1 completo. (AG)
5
2 Mencionan la unidad y la descripción del proyecto a resolver. (AG) 5
Durante la sesión:
Demuestra, Describe y Explica el funcionamiento del
proyecto en cuanto a:
Interface Gama
Clases: Electrodoméstico, Lavadora, Refrigerador
3 30
y Microondas
Clase principal
Ejecución
De una forma coherente y clara (CI).
Expresa y Maneja el sistema del proyecto de forma correcta.
4 15
(PI).
Aplican y Resuelven correctamente la resolución del
5 15
proyecto. (PG)
Interactúa con el grupo manteniendo contacto visual durante
6 5
la exposición. (AI)
Emplea un tono de voz adecuado durante la exposición y sin
7 5
emplear muletillas. (AI)
Organiza y planea su presentación de manera ordenada y
8 5
planificada. (AG)
Cierre de la sesión:
9 Responde a las preguntas de forma correcta.(CPAI) 10
Cumplen con el tiempo planeado para la sesión de 16 a 20
10 5
minutos. (AG)
Diseñar opciones adicionales al proyecto: Indicador de
11 Alcance A
El proyecto tenga un menú que diga Instanciar y Desplegar.
Puntuación Total
Cumple
No. Exposición del proyecto Valor Puntos Retroalimentación
Si No
La portada contiene:
Interface Ingreso
2 Clases Electrodoméstico, Lavadora, Refrigerador y Microondas 60
Clase principal
Ejecución del programa mediante imágenes muestre el buen
funcionamiento del programa 100%.
La conclusión, tiene con una opinión coherente con el trabajo por cada
3 15
integrante del equipo.
Puntuación Total
5. Arreglos
Los arreglos se pueden definir como objetos en los que podemos guardar más de un valor,
es decir, al tener una estructura organizada en un arreglo se puede guardar múltiples
valores de acuerdo a su tamaño o capacidad, es importante recordar que los valores a
guardar deben ser del mismo tipo, por ejemplo: Si tenemos un arreglo de tipo Numérico que
puede almacenar 10 valores, solo podrá almacenar 10 números diferentes, no otros tipos
de valores como podrían ser datos tipo String, char, boolean, etc.
5.1. Unidimensional
Tipo [ ] identificador ;
Tipo identificador [ ] ;
,
Al igual que con cualquier variable en Java, los arreglos se deben declarar antes de ser
utilizados.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Donde el Tipo, corresponde al tipo de dato del arreglo, el cual pude ser cualquiera de los 8
básicos de Java o de alguna clase.
o Los corchetes colocados después del tipo de dato, esto indica que todos los
identificadores son arreglos.
o Los corchetes colocados después del identificador, indica que solo el
identificador que tenga los corchetes es un arreglo.
Ejemplo:
char [ ] letra1, letra2[ ], letra3; letra1 y letra3 son arreglos de una dimensión del tipo
char y mientras que letra2 es una arreglo de arreglos
de tipo char (es decir una matriz).
Esto solo está declarando el nombre del arreglo y el tipo de datos que se van a almacenar
(a esto se le llama también referencia), para declarar el número de elementos del arreglo,
se realiza por medio del operador new.
Ejemplo:
float [ ] CalificacionFinal;
CalificacionFinal = new float [45];
Otra forma de hacer la declaración del arreglo, así como de sus elementos es:
Para almacenar datos en un arreglo basta con poner el nombre del arreglo, el subíndice
(encerredo entre corchetes), el símbolo igual, la expresión que se quiere almacenar y
finalmente punto y coma.
CalificacionFinal[5] = 70;
System.out.println(“La Calificación Final 6 es: “ + CalificacionFinal[5]);
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Ejercicio 5.3: Elabore un programa que lea de teclado 10 calificaciones numéricas entre 0
a 100, posteriormente imprima cada calificación con su correspondiente Nota en base a la
siguiente tabla:
Límite
Nota
Inferior Superior
93 100 A+
90 92 A-
87 89 B+
83 86 B-
80 82 C+
77 79 C-
73 76 D+
70 72 D-
0 69 F
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Ejercicio 5.4: Elabore un programa que declare y cargue un arreglo de 100 elementos de
forma aleatoria (el rango de valores estará entre 100 a 999), imprima los números en 4
grupos de 25, calcule e imprime su media aritmética.
1 26 51 76
2 27 52 77
3 28 53 78
.. .. .. ..
.. .. .. ..
24 49 74 99
25 50 75 100
Media aritmética: 999
Ejercicio 5.5: Elabore un programa que declare y cargue un arreglo de 100 elementos de
forma aleatoria (el rango de valores estará entre 100 a 999), imprima los números en 4
grupos de 25 e imprima la mediana.
1 26 51 76
2 27 52 77
3 28 53 78
.. .. .. ..
.. .. .. ..
24 49 74 99
25 50 75 100
Mediana: 999
Ejercicio 5.6: Elabore un programa que declare y cargue un arreglo de 100 elementos de
forma aleatoria (el rango de valores estará entre 100 a 999), imprima los números en 4
grupos de 25 e imprima la moda.
1 26 51 76
2 27 52 77
3 28 53 78
.. .. .. ..
.. .. .. ..
24 49 74 99
25 50 75 100
Moda: 999
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Unidad: 5. Arreglos
Cumple
No. Al Inicio de la sesión: Valor Puntos Retroalimentación
Si No
1 Realiza su presentación mencionando su 5
nombre completo.
2 Menciona el indicador de alcance y la 5
descripción del problema a resolver.
Durante la sesión:
3 Maneja términos, conceptos y 30
conocimientos en su exposición de forma
correcta.
4 Explica la resolución del problema de forma 30
coherente y clara.
5 Interactúa con el grupo manteniendo 5
contacto visual durante la exposición.
6 Emplea un tono de voz adecuado durante la 5
exposición y sin utilizar muletillas.
7 Organiza y planea su presentación de 5
manera ordenada y planificada.
Cierre de la sesión:
8 Responde a las preguntas de forma 5
coherente y clara.
9 Cumple con el tiempo planeado para la 10
sesión: 6 a 10 minutos.
Puntuación Total
Java considera cada arreglo un objeto, debido a ello se pude conocer el número de
elementos de un arreglo por medio del campo length.
Ejercicio 5.8: Como se ha venido diciendo los arreglos son referencias, y podemos tener
dos variables apuntando a un mismo arreglo.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
En los ejemplos anteriores demostramos cómo las instrucciones for controladas por un
contador intera a través de los elementos del arreglo. Ahora veremos la instrucción for
mejorada, la cual itera a través de los elementos de un arreglo o colección sin utilizar un
contador.
for(parámetro: nombreArreglo)
Instrucción;
Donde parámetro tiene dos partes: un tipo y un identificador (por ejemplo, int valor), y
nombreArreglo es el arreglo a través del cual se iterará. El tipo del parámetro debe
concordar con el tipo de los elementos en el arreglo.
Algoritmo:
Realiza
Movimientos = 0
Para i=0; i < Arreglo.longitud – 1; i ++
Si Arreglo[i+1] < Arreglo[i]
Arreglo[i] <-> Arreglo[i+1] // Intercambiar
Movimientos++
Fin_Si
Fin_para
Mientras (Movimientos != 0)
Dónde:
Ejercicio 5.10: Elabore un programa en Java que genere 10 números aleatorios (entre 100
y 999), ordénelos en forma ascendente mediante el método de la burbuja y presente los
datos como se muestra en la siguiente figura.
Seleccionar el elemento más pequeño (o más grande) del arreglo. Colocarlo en la posición
más baja (o más alta) del arreglo. A diferencia del método de la burbuja, en este método el
elemento más pequeño (o más grande) es el que se coloca en la posición final que le
corresponde.
Algoritmo:
Ejercicio 5.11: Elabore un programa en Java que genere 10 números aleatorios (entre 100
y 999), ordénelos en forma ascendente mediante el método selección y presente los datos
como se muestra en la siguiente figura.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
5.2. Multidimensionales
Operaciones.
Tipo [ ] [ ] identificador ;
Tipo identificador [ ] [ ] ;
,
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Ejemplo:
float [ ][ ] cal1, cal2, cal3, prom; cal1, cal2, cal3 y prom son arreglos bidimensionales.
float [ ][ ] Calificaciones;
Calificaciones = new float [45][4];
La primera sentencia declara un arreglo Calificaciones que manejara tipos de datos float.
La segunda sentencia crea el arreglo e indica que manejara 45 filas (del 0 al 44) y 4
columnas (del 0 al 3). Otra forma de hacer la declaración y creación del arreglo es:
tabla1[ ][ ]
int tabla1[ ][ ] = { 0 1 2
{51, 24, 33},
{32, 23, 45} 0 51 24 33
};
1 32 23 45
tabla2[ ][ ]
int tabla2[ ][ ] = { 0 1 2 3
{ 1, 2, 3, 4},
{ 5, 6, 7, 8}, 0 1 2 3 4
{ 9, 10, 11, 12}
}; 1 5 6 7 8
2 9 10 11 12
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Java trata los arreglos de dos o más dimensiones como un arreglo de arreglos, por tanto,
puede crear arreglos no proporcionales.
Por ejemplo:
Se ha creado un arreglo con dos filas, la 1ª con dos columnas y la 2ª. con 3.
b) int [ ] a = { 1, 3, 5 }, b = { 2, 4, 6, 8, 10 };
int z[ ][ ] = { a, b };
Ejercicio 5.12: Para el siguiente ejemplo se declara una matriz f no proporcional, donde el
primer subíndice tiene 4 elementos, el segundo 2 y el último 6.
a
Columna 0 Columna 1 Columna 2 Columna 3
Fila 0 a[0][0] a[0][1] a[0][2] a[0][3]
Fila 1 a[1][0] a[1][1] a[1][2] a[1][3]
Fila 2 a[2][0] a[2][1] a[2][2] a[2][3]
Índice de la columna
Índice de la fila
Nombre del arreglo
Para almacenar datos en una matriz basta con poner el nombre del arreglo, el subíndice de
las filas y el subíndice de las columnas, el símbolo igual y la expresión que se quiere
almacenar y finalmente después punto y coma. Por ejemplo:
a[1][3] = Expresión;
Ejercicio 5.14: Elabore un programa que declare y cargue en forma aleatoria una matriz
de 5 por 5 y obtenga la suma los elementos de la diagonal principal e
imprime el resultado.
x
x
x
x
x
Ejercicio 5.15: Elabore un programa que declare y carga en forma aleatoria una matriz
de 6 por 6 y obtenga el producto de la diagonal invertida e imprime el
resultado.
O
O
O
O
O
O
Ejercicio 5.16: Elabore un programa que lea una matriz de n X m y la escriba poniendo
las columnas como renglones y los renglones como columnas.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
4 7 1 3 5
2 0 6 9 7
3 1 2 6 4
4 2 3
7 0 1
1 6 2
3 9 6
5 7 4
Multidimensionales.
Operaciones.
Tipo [ ] [ ] [ ] identificador ;
Tipo identificador [ ] [ ] [ ] ;
Ejemplo:
Ejemplo:
int cubo [ ][ ][ ];
cubo = new int [4][5][3];
La primera sentencia declara la referencia al arreglo cubo (de tres dimensiones) que
manejara datos tipos int. La segunda sentencia crea el arreglo e indica que manejara 4 filas,
con 5 columnas y 3 de profundidad.
Otra forma de hacer la declaración y creación del arreglo es:
Al igual que en los anteriores arreglos, se deben poner los subíndices al cual se quiere
acceder y posteriormente la expresión a asignar.
cubo[2][3][2] = 15;
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
La clase Arrays proporciona métodos estáticos para manipular arreglos. Esta clase maneja
arreglos a alto nivel, como los métodos: sort para ordenar arreglos, binarySearch para
buscar en un arreglo ordenado, equals para comparar arreglos y fill guardar valores en
todos los elementos de un arreglo.
Métodos Descripción
1ª Oportunidad
El mejor método de ordenación fue XXXXXX debido a que tuvo menor número de
movimientos con 9999.
2. Elabore un programa que lea los nombres y las calificaciones de tres materias de
los alumnos de la carrera de Ing. en TIC (el número de alumnos máximo serán 20).
Calcule los promedios por: Alumno, Materia y el General. Finalmente, despliegue
en pantalla los datos, como se muestra a continuación:
Promedios: 99 99 99 44
3. Elabore un programa para controlar los asientos de un teatro el cual consta de tres
niveles (Luneta, 1er Balcón y 2º Balcón). El nivel de Luneta tiene etiquetadas las
filas de la: “A” a la “Z” (27 filas), cada fila tiene 35 butacas, mientras que el 1er
Balcón las etiquetas de las filas van desde la “A” hasta la “J” (10 filas) y 32 butacas
por fila y en el 2º. Balcón las etiquetas de las filas van desde la “A” hasta las “H” (8
filas) y cada fila tiene 30 butacas. El programa debe de capturar nivel (Luneta, 1er
Balcón y 2º. Balcón) y el número de butaca, si está disponible marcarla como
ocupada, en caso de estar ocupada, solicitar nuevamente la información. Realizar
este proceso hasta seleccionar la opción salir.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
2ª Oportunidad
El mejor método de ordenación fue XXXXXX debido a que tuvo menor tiempo que
fue 9999 milisegundos.
2. Elabore un programa que lea los nombres y tres calificaciones de los alumnos de
la materia Programación Orientada a Objetos (20 Alumnos). Para cada alumno
calcule el promedio, determine la calificación máxima y la calificación mínima,
además calcule el porcentaje de aprobados y reprobados, así como el promedio
general de la materia e imprima en pantalla el nombre, calificaciones, promedio de
todos los alumnos, calificación máxima y mínima; y al final despliegue el porcentaje
que aprobaron y reprobaron, así como el promedio general.
Aprobados: 99%
Reprobados: 99%
Promedio general: 99
El “cuadro mágico”.
6 1 8
7 5 3
2 9 4
Note que los números de todos los renglones, columnas y diagonales suman 15.
Una técnica a través de la cual se puede generar un cuadrado mágico es la
siguiente:
Instrucciones: Indique con una “X” en la intersección fila - columna las características mínimas que cumple el
proyecto entregado como evidencia, anote los puntos en cada criterio y súmelos.
Criterios de
Excelente Notable Bueno Suficiente Insuficiente Retroalimentación
desempeño
Presenta una portada con: Presenta una portada con seis de Presenta una portada con cinco de Presenta una portada con cuatro Presenta una portada con menos
1. Logo del TecNM y del ITA en los conceptos del apartado los conceptos del apartado de los conceptos del apartado de cuatro de los conceptos
la parte superior. excelente y sin errores excelente y sin errores excelente y sin errores mostrados en el apartado
2. Nombre del Instituto. ortográficos. ortográficos. ortográficos. excelente o tiene errores
ortográficos o No presenta
3. Nombre de la carrera. portada.
4. Nombre de la materia y hora.
Portada 5. Número de Unidad,
descripción de la unidad y
redacción completa de la
Evidencia de Aprendizaje.
6. Nombre y número de control
del estudiante.
7. Fecha.
Y sin errores ortográficos.
Pts. 5 pts. 4.5 pts. 4 pts. 3.5 pts. 0 pts.
Presenta la resolución del Presenta la resolución del Presenta la resolución del Presenta la resolución del El programa que presenta es
problema con los siguientes problema con los siguientes problema con los siguientes problema con los siguientes menor al 70% o no presenta la
rubros: rubros: rubros: rubros: solución del problema.
Descripción del problema. Descripción del problema. Descripción del problema. Descripción del problema.
Código de los métodos de Código de los métodos de Código de los métodos de Código de los métodos de
ordenamiento (Burbuja, ordenamiento (Burbuja, ordenamiento (Burbuja, ordenamiento (Burbuja,
Desarrollo Burbuja Mejorado,
Selección y Selección
Burbuja Mejorado,
Selección y Selección
Burbuja Mejorado,
Selección y Selección
Burbuja Mejorado,
Selección y Selección
Problema 1 mejorado). mejorado). mejorado). mejorado).
Código Clase principal Código Clase principal Código Clase principal Código Clase principal
Ejecución del programa Ejecución del programa Ejecución del programa Ejecución del programa
mediante imágenes que mediante imágenes que mediante imágenes que mediante imágenes que
muestre el buen muestre el buen muestre el buen muestre el buen
funcionamiento del funcionamiento del funcionamiento del funcionamiento del
programa 100%. programa 90%. programa 80%. programa 70%.
Pts. 25 pts. 22.5 pts. 20 pts. 17.5 pts. 0 pts.
Presenta la resolución del Presenta la resolución del Presenta la resolución del Presenta la resolución del El programa que presenta es
problema con los siguientes problema con los siguientes problema con los siguientes problema con los siguientes menor al 70% o no presenta la
rubros: rubros: rubros: rubros: solución del problema.
Descripción del problema. Descripción del problema. Descripción del problema. Descripción del problema.
Desarrollo Todo el Código. Todo el Código. Todo el Código. Todo el Código.
Ejecución del programa Ejecución del programa Ejecución del programa Ejecución del programa
Problema 2 mediante imágenes que mediante imágenes que mediante imágenes que mediante imágenes que
muestre el buen muestre el buen muestre el buen muestre el buen
funcionamiento del funcionamiento del funcionamiento del funcionamiento del
programa 100%. programa 90%. programa 80%. programa 70%.
Pts. 25 pts. 22.5 pts. 20 pts. 17.5 pts. 0 pts.
Presenta la resolución del Presenta la resolución del Presenta la resolución del Presenta la resolución del El programa que presenta es
problema con los siguientes problema con los siguientes problema con los siguientes problema con los siguientes menor al 70% o no presenta la
rubros: rubros: rubros: rubros: solución del problema.
Descripción del problema. Descripción del problema. Descripción del problema. Descripción del problema.
Desarrollo Todo el Código. Todo el Código. Todo el Código. Todo el Código.
Problema 3 Ejecución del programa Ejecución del programa Ejecución del programa Ejecución del programa
mediante imágenes que mediante imágenes que mediante imágenes que mediante imágenes que
muestre el buen muestre el buen muestre el buen muestre el buen
funcionamiento del funcionamiento del funcionamiento del funcionamiento del
programa 100%. programa 90%. programa 80%. programa 70%.
Pts. 25 pts. 22.5 pts. 20 pts. 17.5 pts. 0 pts.
Presenta una opinión coherente Presenta una opinión coherente Presenta una opinión coherente Presenta una opinión coherente Presenta una opinión no
con el trabajo y sin errores con el trabajo y sin errores con el trabajo y sin errores con el trabajo y con a lo menos coherente con el trabajo o Con
Conclusiones ortográficos en más de media ortográficos en media cuartilla con ortográficos en menos de media dos errores ortográficos en menos más de dos errores ortográficos
cuartilla con formato justificado. formato justificado. cuartilla. de media cuartilla. o No presenta aportaciones
personales.
Pts. 20 pts. 18 pts. 16 pts. 14 pts. 0 pts.
Indicador de alcance E Entrega resolución de problemas adicionales en la práctica de programación
Indicador de alcance F Entrega la Práctica de programación en la fecha y hora señalada
Calificación
Calificación mínima aceptable: 70 pts.
En caso de obtener una calificación menor a 70, tendrá que presentar 2ª Oportunidad y solo
deberá de enviar los criterios donde obtuvo cero puntos. Si dentro de esos criterios se
encuentra los Problemas 1, 2 o 3, deberá elaborar los problemas marcados como 2ª
oportunidad.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
6. Archivos
El almacenar datos en variables o arreglos es temporal; los datos se pierden cuando una
variable local queda fuera de alance o cuando el programa termina su ejecución. Los
archivos son utilizados para la retención a largo plazo de grandes cantidades de datos. Los
datos almacenados en archivo existen más allá de la duración de un programa. Los archivos
se almacenan en memoria secundaria (discos magnéticos, discos ópticos, USB, etc.).
Un flujo (stream) es una abstracción que se refiere a un flujo o corriente de datos que fluye
entre un origen o fuente hacia un destino. Entre el origen y el destino debe de existir una
conexión o canal por donde circulen los datos. Al abrir un archivo se crean automáticamente
tres objetos flujo o canales. Estos objetos están definidos en la clase System y son:
InputStream OutputStream
FileInputStream FileOutputStream
ByteArrayInputStream ByteArrayOutputStream
PipeInputStream PipeOutputStream
SequenceInputStream FilterOutputStream
StringBufferInputStream
FilterInputStream
Julia Campo
1 Bit
Métodos Descripción
Métodos Descripción
import java.io.*;
import javax.swing.JOptionPane;
Abrir.
Métodos Descripción
Métodos Descripción
Métodos Descripción
import java.io.*;
import javax.swing.JOptionPane;
Cerrar.
Cada vez que habrá un archivo tendrá que cerrarlo por medio del método close() de la
siguiente forma:
nombreDeArchivo.close();
Lectura y escritura.
Ejercicio 6.3: Ahora modificaremos el Ejercicio 6.1 para que añada texto al final del archivo
y muestre su contenido.
import java.io.*;
import javax.swing.JOptionPane;
Ejercicio 6.4: Ahora utilizaremos la clase File para leer información de un archivo texto
llamado Alumnos.txt mediante un objeto tipo Scanner.
import java.io.File;
import java.util.Scanner;
import javax.swing.JOptionPane;
Ejercicio 6.5: Modificaremos el ejercicio 6.4 para que lea cada token que se encuentra
separado por una coma.
package archivostexto;
import java.io.File;
import java.util.Scanner;
import javax.swing.JOptionPane;
Archivo binario
Ejercicio 6.6: El siguiente programa creará un archivo binario, el cual almacenara registros
de Estudiantes, para ello se declara una clase llamada Registro la cual contiene los campos
de Número de control, Nombre del estudiante, tres calificaciones y el promedio. En la clase
principal solicita el nombre del archivo, instanciando una variable tipo FileOutputStream y
posteriormente instancia un objeto tipo DataOutputStream para crear un flujo de salida de
datos. Utiliza dos métodos uno para leer los datos y otro para escribir los datos en el archivo.
class Registro {
private String nControl;
private String nombre;
private byte cal1;
private byte cal2;
private byte cal3;
private byte promedio;
public Registro() {
this.nControl = "Sin No. de Control";
this.nombre = "Sin Nombre";
this.cal1 = 0;
this.cal2 = 0;
this.cal3 = 0;
this.promedio = 0;
}
public Registro(String nControl, String nombre, byte cal1, byte cal2, byte cal3) {
this.nControl = nControl;
this.nombre = nombre;
this.cal1 = cal1;
this.cal2 = cal2;
this.cal3 = cal3;
this.setPromedio();
}
@Override
public String toString() {
return nControl=" + nControl + "
+ " Nombre = " + nombre +
" Cal1 = " + cal1 +
" Cal2 = " + cal2 +
" Cal3 = " + cal3 +
" Promedio = " + promedio;
}
}
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
import java.io.*;
import javax.swing.JOptionPane;
try {
FileOutputStream archivo =
new FileOutputStream(nombreArchivo);
DataOutputStream salida = new DataOutputStream(archivo);
while (opcion == 0) {
leerDatos(reg);
escribirDatos(salida, reg);
opcion = JOptionPane.showOptionDialog(null,
"Dar de alta otro Alumno", "Otra alta",
JOptionPane.DEFAULT_OPTION,
JOptionPane.QUESTION_MESSAGE,
null, options, options[0]);
}
archivo.close();
}
catch (IOException e) {
JOptionPane.showMessageDialog( null,"Error en el flujo" + e );
}
}
static void leerDatos(Registro r) {
r.setnControl(JOptionPane.showInputDialog("No. de control:"));
r.setNombre(JOptionPane.showInputDialog("Nombre:"));
r.setCal1(Byte.parseByte(JOptionPane.showInputDialog("Calificación 1:")));
r.setCal2(Byte.parseByte(JOptionPane.showInputDialog("Calificación 2:")));
r.setCal3(Byte.parseByte(JOptionPane.showInputDialog("Calificación 3:")));
}
Recorrer.
Al recorrer un archivo tipo texto, la salida se establece cuando se lee un dato -1. En el caso
de los archivos binarios se establece por medio de una excepción, al ocurrir la excepción
se establece un falso para dejar de realizar el recorrido, como se muestra en el siguiente
ejercicio.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Ejercicio 6.7: El siguiente programa muestra el contenido del archivo binario creado por
medio del Ejercicio 6.6. Dado que el archivo es binario, se tiene que declarar la estructura
del Registro. En la clase principal solicita el nombre del archivo, instanciando una variable
tipo FileInputStream y posteriormente instancia un objeto tipo DataInputStream para crear
un flujo de entrada de datos.
import java.io.*;
import javax.swing.JOptionPane;
Ejercicio 6.8: Ahora modificaremos el programa del Ejercicio 6.6 para que almacene
objetos mediante la clase ObjectOutputStream.
import java.io.Serializable;
public Registro() {
this.nControl = "Sin No. de Control";
this.nombre = "Sin Nombre";
this.cal1 = 0;
this.cal2 = 0;
this.cal3 = 0;
this.promedio = 0;
}
public Registro(String nControl, String nombre, byte cal1, byte cal2, byte cal3, byte promedio) {
this.nControl = nControl;
this.nombre = nombre;
this.cal1 = cal1;
this.cal2 = cal2;
this.cal3 = cal3;
this.setPromedio();
}
@Override
public String toString() {
return "No. Control: " + nControl +
" Nombre: " + nombre +
" Cal1: " + cal1 +
" Cal2: " + cal2 +
" Cal3: " + cal3 +
" Promedio: " + promedio;
}
}
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
import java.io.*;
import javax.swing.JOptionPane;
String nombreArchivo;
nombreArchivo = JOptionPane.showInputDialog
("Dame el nombre del archivo:");
try {
FileOutputStream archivo =
new FileOutputStream(nombreArchivo);
ObjectOutputStream salida = new ObjectOutputStream(archivo);
while (opcion == 0) {
Registro reg = new Registro();
leerDatos(reg);
salida.writeObject(reg);
opcion = JOptionPane.showOptionDialog(null,
"Dar de alta otro Alumno", "Otra alta",
JOptionPane.DEFAULT_OPTION,
JOptionPane.QUESTION_MESSAGE,
null, options, options[0]);
}
archivo.close();
}
catch (IOException e) {
JOptionPane.showMessageDialog( null,"Error en el flujo" + e );
}
}
Ejercicio 6.9: Tendremos que hacer ahora el programa que lea el archivo binario de objetos
del Ejercicio 6.8, empleando la clase ObjectInputStream.
import java.io.*;
import javax.swing.JOptionPane;
try {
FileInputStream archivo =
new FileInputStream(nombreArchivo);
ObjectInputStream entrada = new ObjectInputStream(archivo);
while (otro) {
Registro reg = new Registro();
try {
reg = (Registro) entrada.readObject();
salida += reg + "\n";
}
catch (IOException io) {
JOptionPane.showMessageDialog( null,salida );
otro = false;
}
}
archivo.close();
}
catch (IOException e) {
JOptionPane.showMessageDialog( null,"Error al abrir el archivo: "
+ nombreArchivo );
}
}
}
Aplicaciones
Cifrado de sustitución
Por ejemplo: Existe un juego llamado encriptación del murciélago. La palabra murciélago
es una palabra que contiene las 5 vocales y la técnica de encriptación consiste en enumerar
las vocales de esta palabra por lo que la vocal “u” le corresponde el número 1, la vocal “i”
el 2, la vocal “e” el 3, la letra “a” el 4 y la vocal “o” el 5. Para encriptar el texto o archivo se
sustituye cada vocal por el valor numérico que le corresponde:
Otra técnica de encriptación se llama Sucesor, la cual consiste en cambiar cada letra del
texto o archivo por la letra que le sucede, es decir si se tiene la letra “a” se cambiará por la
letra “b” que es la que le sigue, así sucesivamente hasta que se termine el texto:
De estas dos últimas técnicas se puede hacer una combinación, la cual es llamada
sucesor/predecesor, la cual consiste en cambiar la primer letra en base a sucesor y la
siguiente cambiarle por su predecesor, así sucesivamente hasta que se termine el texto:
1. Elabore un programa que permita registrar una bitácora en un archivo texto, que cada
ves que se añada texto, agregue la fecha del sistema. El nombre del archivo será
Bitacora.txt.
Unidad: 6. Archivos
Cumple
No. Al Inicio de la sesión: Valor Puntos Retroalimentación
Si No
1 Realiza su presentación mencionando su 5
nombre completo.
2 Menciona el indicador de alcance y la 5
descripción del problema a resolver.
Durante la sesión:
3 Maneja términos, conceptos y 30
conocimientos en su exposición de forma
correcta.
4 Explica la resolución del problema de forma 30
coherente y clara.
5 Interactúa con el grupo manteniendo 5
contacto visual durante la exposición.
6 Emplea un tono de voz adecuado durante la 5
exposición y sin utilizar muletillas.
7 Organiza y planea su presentación de 5
manera ordenada y planificada.
Cierre de la sesión:
8 Responde a las preguntas de forma 5
coherente y clara.
9 Cumple con el tiempo planeado para la 10
sesión: 6 a 10 minutos.
Puntuación Total
1ª Oportunidad
Donde el primer campo es el Nombre del Vendedor, el segundo son las ventas mínimas y el
tercero son las ventas mensuales.
Elabore un programa en Java, que tome como entrada el archivo Vendedores.txt y muestre en
pantalla los nombres de los vendedores que las ventas mensuales sean mayores a las ventas
mínimas.
Donde el primer campo es el Nombre del Vendedor, el segundo son las ventas mínimas y el
tercero son las ventas mensuales.
Elabore un programa en Java, que tome como entrada el archivo Vendedores.txt y genere un
archivo texto con los nombres de vendedores, ventas mínimas, ventas mensuales e Incremento
(Ventas mensuales menos ventas mínimas) de aquellos vendedores que sus ventas mensuales
es mayor a las ventas mínimas.
Ejemplo:
3. Elabore un programa que se le manden dos nombres de archivo tipo texto y el contenido del
primero archivo lo agregue al final del segundo archivo.
2ª Oportunidad
3. Elabore un programa que dado dos archivos tipo texto, genere otro archivo tipo
texto con el intercalamiento de los registros del primer archivo con el segundo
archivo. Por ejemplo, se tiene el archivo Números.txt y Nombres.txt y mediante el
programa se genera Combinación.txt, con intercalamiento de cada registro, como
se muestra a continuación:
Tomando el archivo que se generó en el Ejercicio 6.8, elabore un programa en java que
solicite el No de Control y busque el registro en el archivo indicado y si lo encuentra
despliegue la información en caso contrario mostrar “Registro no localizado”.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Criterios de
Excelente Notable Bueno Suficiente Insuficiente Retroalimentación
desempeño
Presenta una portada con: Presenta una portada con seis Presenta una portada con Presenta una portada con Presenta una portada con
1. Logo del TecNM y del ITA de los conceptos del apartado cinco de los conceptos del cuatro de los conceptos del menos de cuatro de los
en la parte superior. excelente y sin errores apartado excelente y sin apartado excelente y sin conceptos mostrados en el
2. Nombre del Instituto. ortográficos. errores ortográficos. errores ortográficos. apartado excelente o tiene
3. Nombre de la carrera. errores ortográficos o No
4. Nombre de la materia y presenta portada.
hora.
Portada 5. Número de Unidad,
descripción de la unidad y
redacción completa de la
Evidencia de Aprendizaje.
6. Nombre y número de
control del estudiante.
7. Fecha.
Y sin errores ortográficos.
Pts. 5 pts. 4.5 pts. 4 pts. 3.5 pts. 0 pts.
Presenta la resolución del Presenta la resolución del Presenta la resolución del Presenta la resolución del El programa que presenta es
problema con los siguientes problema con los siguientes problema con los siguientes problema con los siguientes menor al 70% o no presenta la
rubros: rubros: rubros: rubros: solución del problema.
Descripción del Descripción del Descripción del Descripción del
Desarrollo problema. problema. problema. problema.
Todo el código. Todo el código. Todo el código. Todo el código.
Problema 1 Ejecución del programa Ejecución del programa Ejecución del programa Ejecución del programa
mediante imágenes que mediante imágenes que mediante imágenes que mediante imágenes que
muestre el buen muestre el buen muestre el buen muestre el buen
funcionamiento del funcionamiento del funcionamiento del funcionamiento del
programa al 100%. programa al 90%. programa al 80%. programa al 70%.
Pts. 25 pts. 22.5 pts. 20 pts. 17.5 pts. 0 pts.
Presenta la resolución del Presenta la resolución del Presenta la resolución del Presenta la resolución del El programa que presenta es
problema con los siguientes problema con los siguientes problema con los siguientes problema con los siguientes menor al 70% o no presenta la
rubros: rubros: rubros: rubros: solución del problema.
Descripción del Descripción del Descripción del Descripción del
problema. problema. problema. problema.
Desarrollo Todo el código. Todo el código. Todo el código. Todo el código.
Problema 2 Ejecución del programa Ejecución del programa Ejecución del programa Ejecución del programa
mediante imágenes que mediante imágenes que mediante imágenes que mediante imágenes que
muestre el buen muestre el buen muestre el buen muestre el buen
funcionamiento del funcionamiento del funcionamiento del funcionamiento del
programa al 100%. programa al 90%. programa al 80%. programa al 70%.
Pts. 25 pts. 22.5 pts. 20 pts. 17.5 pts. 0 pts.
Presenta la resolución del Presenta la resolución del Presenta la resolución del Presenta la resolución del El programa que presenta es
problema con los siguientes problema con los siguientes problema con los siguientes problema con los siguientes menor al 70% o no presenta la
rubros: rubros: rubros: rubros: solución del problema.
Descripción del Descripción del Descripción del Descripción del
Desarrollo problema. problema. problema. problema.
Todo el código. Todo el código. Todo el código. Todo el código.
Problema 3 Ejecución del programa Ejecución del programa Ejecución del programa Ejecución del programa
mediante imágenes que mediante imágenes que mediante imágenes que mediante imágenes que
muestre el buen muestre el buen muestre el buen muestre el buen
funcionamiento del funcionamiento del funcionamiento del funcionamiento del
programa al 100%. programa al 90%. programa al 80%. programa al 70%.
Pts. 25 pts. 22.5 pts. 20 pts. 17.5 pts. 0 pts.
Presenta una opinión Presenta una opinión Presenta una opinión Presenta una opinión Presenta una opinión no
coherente con el trabajo y sin coherente con el trabajo y sin coherente con el trabajo y sin coherente con el trabajo y con coherente con el trabajo o Con
Conclusiones errores ortográficos en más de errores ortográficos en media errores ortográficos en menos a lo menos dos errores más de dos errores
media cuartilla con formato cuartilla con formato de media cuartilla. ortográficos en menos de ortográficos o No presenta
justificado. justificado. media cuartilla. aportaciones personales.
Pts. 20 pts. 18 pts. 16 pts. 14 pts. 0 pts.
Indicador de alcance E Entrega resolución de problemas adicionales en la práctica de programación
Indicador de alcance F Entrega la Práctica de programación en la fecha y hora señalada
Calificación
Calificación mínima aceptable: 70 pts.
En caso de obtener una calificación menor a 70, tendrá que presentar 2ª Oportunidad y solo
deberá de enviar los criterios donde obtuvo cero puntos. Si dentro de esos criterios se
encuentra los Problemas 1, 2 o 3, deberá elaborar los problemas marcados como 2ª
oportunidad.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Materia Promedio
Calculo
99
Diferencial
Fundamentos de
99
Programación
Matemáticas
99
Discretas I
Introducción a
99
las TIC's
Taller de Ética 99
Fundamentos de
99
Investigación
Promedio
99
General
Información adicional:
Indicador de Alcance . A.- Agregar una opción más al menú que sea Reportes, que
despliegue todos los resultados de las opciones
anteriores. Solo se podrá seleccionar esta opción si las
anteriores fueron activadas.
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
Cumple
No. Exposición del proyecto y entrega del trabajo Valor Puntos Retroalimentación
Si No
Al Inicio de la sesión:
Realizan la presentación de cada integrante mencionando su
1 5
nombre completo. (AG)
Mencionan la unidad y la descripción del proyecto a resolver.
2 5
(AG)
Durante la sesión:
Demuestra, Describe y Explica el funcionamiento del
proyecto en cuanto a:
Cargar
Calcular
3 Estadísticas 30
Guardar
Mostrar
Excelencia
De una forma coherente y clara (CI).
Expresa y Maneja el sistema del proyecto de forma correcta.
4 15
(PI).
Aplican y Resuelven correctamente la resolución del
5 15
proyecto. (PG)
Interactúa con el grupo manteniendo contacto visual durante
6 5
la exposición. (AI)
Emplea un tono de voz adecuado durante la exposición y sin
7 5
emplear muletillas. (AI)
Organiza y planea su presentación de manera ordenada y
8 5
planificada. (AG)
Cierre de la sesión:
9 Responde a las preguntas de forma correcta. (CPAI) 10
Cumplen con el tiempo planeado para la sesión de 16 a 20
10 5
minutos. (AG)
Diseñar opciones adicionales al proyecto: Indicador de
11 Agregar una opción más al menú que sea Reportes, que despliegue Alcance A
todos los resultados de las opciones anteriores.
Puntuación Total
Cumple
No. Exposición del proyecto Valor Puntos Retroalimentación
Si No
La portada contiene:
Cargar
Calcular
Estadísticas
2 60
Guardar
Mostrar
Excelencia
Ejecución del programa mediante imágenes muestre el buen
funcionamiento del programa 100%.
La conclusión, tiene con una opinión coherente con el trabajo por cada
3 15
integrante del equipo.
Puntuación Total