UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO - Departamento de...
Transcript of UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO - Departamento de...
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
FACULTAD DE INGENIERÍA
MANUAL DE PRÁCTICAS DE
TÉCNICAS DE PROGRAMACIÓN
DEPARTAMENTO DE INGENIERÍA MECATRÓNICA
M.F. Gabriel Hurtado Chong Ing. Cynthia Nelly Peña Belmont
M.I. Jorge Armando Rodríguez Vera Ing. Jesús Esteban Pérez Ortega M.I. Gersaín Barrón Velázquez
Ing. Amaury Pérez Tirado Ing. Miguel Serrano Reyes
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
TABLA DE CONTENIDO
PRÁCTICA 0: Examen diagnóstico (programación estructurada) .................. 1
PRÁCTICA 1: Clases y objetos ....................................................................... 6
PRÁCTICA 2: Encapsulamiento y herencia .................................................. 10
PRÁCTICA 3: Polimorfismo ......................................................................... 14
PRÁCTICA 4: Sobrecarga de métodos y operadores .................................... 18
PRÁCTICA 5: Manejo de errores y de excepciones ..................................... 22
PRÁCTICA 6: Arreglos unidimensionales .................................................... 26
PRÁCTICA 7: Arreglos multidimensionales ................................................ 30
PRÁCTICA 8: Colecciones ........................................................................... 34
PRÁCTICA 9: Implementación de interfaces ............................................... 38
PRÁCTICA 10: Manejadores de eventos ...................................................... 42
PRÁCTICA 11: Construcción de bibliotecas y reutilización de código ....... 46
PRÁCTICA 12: Listas ................................................................................... 50
PRÁCTICA 13: Pilas ..................................................................................... 54
PRÁCTICA 14: Colas .................................................................................... 59
PRÁCTICA 15: Árboles ................................................................................ 63
PRÁCTICA 16: Algoritmos de ordenación y búsqueda ................................ 68
PRÁCTICA 17: Almacenamiento, actualización y eliminación de
información mediante estructuras ................................................................... 73
PRÁCTICA 18: Manejo de archivos (escritura, lectura, acceso secuencial,
acceso aleatorio) .............................................................................................. 77
PRÁCTICA 19: Comunicación serial ............................................................ 83
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
1
N° de práctica: 0
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
Ing. Amaury Pérez Tirado
Colegio de Programación
Colegio de Programación
21-Abr-16
Examen diagnóstico
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
2
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Demostrar las habilidades de interpretación y resolución
de problemas a través de la programación.
II. Objetivos específicos:
Demostrar las habilidades de comprensión de los problemas de ingeniería.
Demostrar las habilidades de programación estructurada.
Corroborar el aprendizaje para el uso adecuado de las estructuras de control.
3. Introducción
Un algoritmo, se puede definir como una secuencia de instrucciones que representan un
modelo de solución particular para un problema en específico. Los algoritmos son
independientes de los lenguajes de programación. En cada problema el algoritmo puede
escribirse y luego ejecutarse en cualquier lenguaje de programación.
Un diagrama de flujo representa la esquematización gráfica de un algoritmo. Muestra
gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. Estos
diagramas se dibujan generalmente antes de comenzar a programar el código en alguno de
los lenguajes, desempeñan un papel vital en la programación de un problema y facilitan la
comprensión del mismo.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
3
Inicio y fin del diagrama de flujo.
Introducir datos de entrada (Lectura).
Proceso.
Decisión.
Decisión múltiple.
Impresión de datos.
Las estructuras de control son la base para la realización de programas en cualquier
lenguaje de programación, entre las cuales podemos destacar las estructuras de selección y
las estructuras de repetición.
La estructura de selección especifica rutas alternativas para el flujo del programa, creando
de este modo un punto de unión en el programa (como un desvío en una carretera).
La estructura de selección única (if)
La estructura de selección doble (if...else)
La estructura de selección múltiple (switch)
La estructura de repetición especifica la iteración de una acción mientras se sigan
cumpliendo determinadas condiciones. Cuando las condiciones de la instrucción de control
se hayan cumplido (normalmente después de un número específico de repeticiones), el
control se transferirá a la siguiente instrucción externa a la estructura de repetición.
La expresión se prueba en la parte superior del bucle (while)
La expresión se prueba en la parte inferior del bucle (do...while)
Opera en las propiedades de un objeto o en los elementos de una matriz (for...in)
Repetición controlada mediante contador (for)
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
4
4. Equipo y material
5. Desarrollo
I. Actividad 1
Algoritmos
Con base en la Metodología de Programación de Osvaldo Cairó, deberá
elaborarse un algoritmos mediante un diagrama de flujo para realizar al menos
dos cálculos matemáticos, a partir de valores proporcionados por el usuario y
mostrando los resultados correspondientes en pantalla.
Una vez definidos los algoritmos, deberán programarse y probarse.
II. Actividad 2
Estructura de selección
Con base en los algoritmos programados en la actividad anterior, deberá
elaborarse un menú, para que el usuario seleccione la operación que desea
realizar. Una vez realizado el cálculo elegido, el programa terminará.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
5
III. Actividad 3
Estructura de iteración
Con base en el menú elaborado en la actividad anterior, deberán realizarse las
siguientes modificaciones:
Al seleccionarse una opción del menú, deberá seguirse realizando ese
mismo cálculo repetidamente, hasta que el usuario decida terminar, en
cuyo caso deberá regresarse al menú.
Deberá agregarse al menú una opción de “Salir”, para terminar el
programa.
6. Bibliografía
CAIRÓ BATTISTUTTI, Osvaldo. Metodología de la programación. Algoritmos, diagramas de flujo y programas. México, Alfaomega, 2006.
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a objetos. México, Alfaomega, 2007
CAIRÓ BATTISTUTTI, Osvaldo. Manual de Programación. México, Alfaomega, 2005
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
6
N° de práctica: 1
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
M.F. Gabriel Hurtado Chong
Ing. Cynthia Nelly Peña Belmont
M.F. Gabriel Hurtado Chong
Colegio de Programación
18-Feb-16
Clases y objetos
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
7
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Entender la diferencia entre clase y objeto.
II. Objetivos específicos:
Aprender a diseñar clases.
Entender el funcionamiento de los constructores.
Identificar los atributos y los métodos.
Aprender a crear objetos.
3. Introducción
Una clase es una construcción que permite crear tipos personalizados de datos mediante la
agrupación de diversas variables, métodos y eventos.
Una clase es como un plano. Define los datos y el comportamiento de un tipo de datos. Si la
clase no se declara como estática, el código de cliente puede utilizarla mediante la creación
de objetos o instancias que se asignan a una variable.
A través de una clase se define un tipo de objeto, pero no es propiamente un objeto. Un
objeto es una entidad concreta basada en una clase y, a veces, se denomina instancia de una
clase.
Las clases contienen atributos que son un tipo de datos que guarda información y también
son considerados como metadatos.
Las clases también incluyen métodos, que son bloques de código que contienen una serie
de instrucciones.
Cada vez que se crea un objeto, se llama al constructor de la clase. Una clase puede tener
varios constructores que toman argumentos diferentes. Los constructores permiten al
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
8
programador establecer valores predeterminados, limitar la creación de instancias y escribir
código flexible y fácil de leer.
4. Equipo y material
5. Desarrollo
I. Actividad 1
Diseño de una clase
A partir de un objeto real, elija al menos 3 características que lo identifiquen y
2 acciones que definan su comportamiento.
Posteriormente, realice una abstracción para definir una clase o plantilla para
ese tipo de objetos, que incluya un mínimo de 3 atributos de diferentes tipos
(enteros, flotantes, cadenas, booleanos, etc.) y al menos 6 métodos que sean
necesarios para escribir/leer los valores de los atributos y/o para interactuar con
los objetos. Incluya también al menos 2 constructores para la clase.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
9
II. Actividad 2
Creación de objetos
Mediante la creación de objetos, realice pruebas de escritorio para verificar el
funcionamiento correcto de su clase y, de ser necesario, realice los ajustes y
correcciones adecuados.
Las pruebas deben incluir, sin limitarse a ello, los siguientes puntos:
Verificación de todos los constructores implementados.
Comprobación de la correcta asignación de valores a cada uno de los
atributos definidos.
Verificación de todos los métodos programados.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a
objetos. México,Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
10
N° de práctica: 2
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
M.F. Gabriel Hurtado Chong
M.I. Jorge Armando
Rodríguez Vera
M.F. Gabriel Hurtado Chong
Colegio de Programación
18-Feb-16
Encapsulamiento y
herencia
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
11
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivo general: Entender la reutilización de código a partir de una clase
base, obviando la implementación de los métodos y propiedades, y ocultando al
usuario la estructura interna de programación.
II. Objetivos específicos:
Implementar una clase base.
Establecer restricciones de acceso al código.
Apreciar las ventajas que ofrece el uso de la herencia y el encapsulamiento.
3. Introducción
El paradigma de la programación orientada a objetos surge debido a la necesidad de realizar
programas que puedan ser reutilizados para evitar tener que iniciar cada proyecto nuevo
desde cero. En otras palabras, no reinventar la rueda. Por lo que las bases de dicho
paradigma son dos conceptos conocidos como la herencia y el encapsulamiento.
La herencia consiste en desarrollar una clase, denominada clase base, pensando en que se
cederán todos sus atributos, propiedades y métodos a otra nueva clase, conocida como clase
derivada, con la finalidad de que ésta última pueda reutilizar las características de la clase
base sin necesidad de reescribir todo el código nuevamente.
El encapsulamiento consiste en desarrollar métodos y propiedades dentro de un programa
que puedan ser utilizados sin la necesidad de analizar el código fuente original, de tal modo
que la estructura interna de programación queda oculta al usuario; es decir que el usuario
podrá utilizar el programa y sabrá cómo hacerlo, pero sin saber a ciencia cierta cómo se
implementó su funcionamiento. Esto sería análogo a cómo un usuario común puede utilizar
un televisor sin saber a ciencia cierta cómo se genera la imagen en la pantalla o qué se
requiere internamente para poder cambiar de canal, modificar el volumen, el brillo, etc.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
12
4. Equipo y material
5. Desarrollo
I. Actividad 1
Creación de una clase base
El alumno definirá y programará una clase que cuente con al menos tres
atributos y los métodos necesarios para la lectura y/o escritura de los valores de
cada atributo.
II. Actividad 2
Creación de una clase derivada
El alumno definirá una clase derivada a partir de la clase base que definió
previamente y deberá realizar un programa que demuestre que efectivamente
fueron heredados todos los atributos y métodos de la clase base, sin necesidad
de verificar ni de modificar el código fuente original.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
13
Una vez comprobado lo anterior, deberá añadirse al menos un atributo nuevo a
la clase derivada, así como los métodos de lectura/escritura de valores que sean
necesarios.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a
objetos. México,Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
14
N° de práctica: 3
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
M.F. Gabriel Hurtado Chong
Ing. Jesús Esteban Pérez
Ortega
M.F. Gabriel Hurtado Chong
Colegio de Programación
18-Feb-16
Polimorfismo
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
15
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Entender qué es y para qué sirve el polimorfismo.
II. Objetivos específicos:
Aprender qué es el polimorfismo.
Identificar cuándo puede utilizarse el polimorfismo.
Aprender a redefinir los métodos de una clase base en sus clases derivadas.
3. Introducción
El polimorfismo suele considerarse el tercer pilar de la programación orientada a objetos,
además del encapsulamiento y la herencia. Polimorfismo es una palabra que proviene del
griego, significa "con muchas formas" y tiene dos aspectos diferentes:
1. En tiempo de ejecución, los objetos de una clase derivada pueden ser tratados como
objetos de una clase base al utilizarse en lugares tales como parámetros de métodos,
colecciones o arreglos (matrices). Cuando esto ocurre, el tipo declarado del objeto ya no es
idéntico a su tipo en tiempo de ejecución. Por ejemplo: A partir de una clase base
denominada “Transporte” podrían crearse las clases derivadas: “Automóvil”, “Barco” y
“Avión”. Por lo tanto, un método definido para trabajar con objetos de tipo “Transporte”
será también capaz de manejar objetos de cualquiera de sus clases derivadas.
2. Las clases base pueden definir e implementar métodos virtuales, y las clases derivadas
pueden invalidarlos, lo que significa que pueden proporcionar su propia definición e
implementación. En tiempo de ejecución, cuando el código del cliente llama al método,
busca el tipo en tiempo de ejecución del objeto e invoca esa invalidación del método
virtual. Por lo tanto, en el código fuente puede llamarse a un método en una clase base y
hacer que se ejecute una versión del método de la clase derivada. Retomando el ejemplo
anterior, la clase “Transporte” podría incorporar un método virtual llamado “Mover”, de
esta manera cada una de sus clases derivadas (“Automóvil”, “Barco” y “Avión”) sería
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
16
capaz de implementar a su propia manera dicho método, dependiendo del medio en el cual
se desplace (tierra, agua o aire, respectivamente).
Los métodos virtuales permiten trabajar de manera uniforme con distintos grupos de
objetos relacionados.
4. Equipo y material
5. Desarrollo
I. Actividad 1
Definir una clase base
Programe una clase que incluya al menos un método que sea susceptible de
tener un comportamiento distinto al ser heredado a una clase derivada. Declare
este tipo de métodos como métodos virtuales.
Elabore las pruebas de escritorio necesarias para verificar el funcionamiento
correcto de toda la funcionalidad de la clase base.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
17
II. Actividad 2
Implementación del polimorfismo
A partir de la clase base previamente definida, mediante la herencia, genere al
menos una clase derivada que redefina apropiadamente el comportamiento
todos sus métodos virtuales.
Elabore las pruebas de escritorio necesarias para verificar el funcionamiento
correcto de toda la funcionalidad de la clase derivada.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a
objetos. México,Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
18
N° de práctica: 4
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
Ing. Jesús Esteban Pérez
Ortega
Colegio de Programación
Colegio de Programación
17-Mar-16
Sobrecarga de métodos y
operadores
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
19
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Entender el funcionamiento de las sobrecargas y su
aplicación en un programa.
II. Objetivos específicos:
Describir qué son las sobrecargas.
Realizar la sobrecarga de métodos.
Realizar la sobrecarga de operadores.
3. Introducción
Los métodos son bloques de código que contienen una serie de instrucciones. Un programa
hace que se ejecuten las instrucciones al llamar al método y especifica los parámetros
necesarios para su ejecución. Los parámetros de un método se definen dentro de paréntesis
y se separan por comas, los paréntesis vacíos indican que el método no requiere parámetros.
En programación orientada a objetos, la sobrecarga de métodos se refiere a la capacidad de
tener dos o más métodos con el mismo nombre, pero con diferente cantidad y/o tipo de
parámetros. Es decir, tener diferentes definiciones para un mismo método, y el compilador
usará una u otra definición dependiendo de los parámetros utilizados.
Por ejemplo, para el constructor de una clase con 3 atributos, podrían definirse cuatro
sobrecargas de la siguiente forma:
Un constructor sin argumentos.
Un constructor con un argumento, para asignarle valor al primer atributo.
Un constructor con dos argumentos, para asignarle valor a dos de los atributos.
Un constructor con tres argumentos, para asignarle valor a cada uno de los atributos.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
20
Estos constructores, al igual que los métodos, llevan el mismo nombre pero, dependiendo
de los parámetros utilizados en la llamada al constructor o al método, el compilador
seleccionará la definición adecuada. A esto se le llama sobrecarga de métodos.
De igual manera, también existe la sobrecarga de operadores, que al igual que con la
sobrecarga de métodos consiste en definir más de una implementación para un mismo
operador. Esto hace posible que al utilizar un tipo de datos (clase) definido por el usuario
parezca tan natural y lógico como utilizar un tipo de datos fundamental. Por ejemplo, el
usuario podría crear un nuevo tipo de datos (clase) denominado “NúmeroComplejo” para
representar un número complejo y proporcionar métodos que realicen operaciones
matemáticas en esos números mediante operadores aritméticos estándar, como utilizar el
operador “+” para sumar dos números complejos.
4. Equipo y material
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
21
5. Desarrollo
I. Actividad 1
Implementar sobrecarga de métodos
Programe una clase que incluya un método que sea susceptible de tener un
comportamiento distinto al proporcionar diferentes parámetros. Definir 3
sobrecargas para ese método.
Elabore un programa en donde se verifique el uso de las diferentes sobrecargas
del método.
II. Actividad 2
Implementar sobrecarga de operadores
Programe una clase que permita realizar operaciones entre los objetos
generados de ésta. Definir al menos dos métodos que utilicen los operadores
aritméticos y/o de comparación (+, -, *, >, etc.) para realizar una serie de
instrucciones y así crear un nuevo objeto con el resultado de la operación. El
funcionamiento debe parecer natural y acorde al operador utilizado.
Realizar un programa en donde se muestre, con 3 ejemplos, el uso de la
sobrecarga de operadores realizada.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a
objetos. México,Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
22
N° de práctica: 5
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
M.F. Gabriel Hurtado Chong
Ing. Cynthia Nelly Peña Belmont
M.F. Gabriel Hurtado Chong
Colegio de Programación
18-Feb-16
Manejo de errores y de
excepciones
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
23
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Entender qué son las excepciones y cómo manejarlas.
II. Objetivos específicos:
Identificar cuándo pueden ocurrir errores en tiempo de ejecución en un
programa.
Aprender qué es una excepción.
Aprender a utilizar los bloques para el manejo de excepciones.
3. Introducción
Los errores que se presentan durante la ejecución de un programa son conocidos como
excepciones.
Una excepción es un evento que interrumpe el flujo normal de las sentencias durante la
ejecución de un programa.
Para el manejo de excepciones, los lenguajes de programación proveen ciertas palabras
reservadas que nos permiten manejarlas y tomar acciones de recuperación para evitar la
interrupción definitiva del programa o, al menos, para realizar algunas acciones adicionales
antes de interrumpirlo.
Muchas clases de errores pueden generar excepciones: desde problemas de hardware, como
la avería de un disco duro, hasta los simples errores de programación, como tratar de
acceder a un elemento de un arreglo fuera de sus límites.
El manejo de excepciones se compone de tres tipos de bloques de código. En el primer
bloque para el manejo de errores se coloca todo el código que es susceptible de generar una
excepción.
En el segundo bloque es donde se trata a la excepción; por ejemplo, puede enviársele un
mensaje de alerta al usuario sobre el error. De este tipo de bloques puede tenerse más de
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
24
uno, ya que puede ponerse un bloque distinto para manejar cada tipo de excepción esperado
de forma particular, o bien pueden manejarse todas las excepciones en un solo bloque, de
manera general.
El tercer tipo de bloque es opcional y en él se escriben las líneas de código de finalización,
que prácticamente son acciones de limpieza o de término del uso de algún recurso. La
característica de este tipo de bloque es que se ejecuta siempre, haya surgido o no una
excepción.
4. Equipo y material
5. Desarrollo
I. Actividad 1
Manejo general de excepciones
Programe una clase que incluya al menos un método que sea susceptible de
producir diferentes tipos de excepciones.
En cada método que pueda generar excepciones, incluya un bloque de código
para el manejo de excepciones que, cuando menos, alerte al usuario sobre la
ocurrencia de un error.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
25
II. Actividad 2
Manejo individual de excepciones
Elabore una segunda versión mejorada del programa anterior, que pueda
distinguir al menos dos tipos de excepciones, dentro de un mismo bloque de
código para el manejo de excepciones, y que sea capaz de llevar a cabo
acciones correctivas y/o de proporcionar notificaciones adecuadas y específicas
para poder resolverlas.
Esta segunda versión deberá incorporar, al menos en uno de sus métodos, los
tres tipos de bloques que existen para el manejo de excepciones.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a
objetos. México,Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
26
N° de práctica: 6
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
M.I. Gersaín Barrón Velázquez
Colegio de Programación
Colegio de Programación
17-Mar-16
Arreglos unidimensionales
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
27
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Entender el uso, creación y manejo de los datos conocidos
como arreglos unidimensionales.
II. Objetivos específicos:
Entender el funcionamiento de un arreglo.
Aprender a crear un arreglo.
Aprender los métodos para trabajar con arreglos unidimensionales.
3. Introducción
Un arreglo es el conjunto de elementos finito y ordenado más simple soportado por un
lenguaje de programación. Se trata de una secuencia de objetos del mismo tipo a los cuales
se puede acceder por medio de un índice y todos están agrupados bajo un mismo nombre o
identificador.
Un arreglo de tamaño N contiene una serie de valores dispuestos en memoria de
forma consecutiva, el índice representa la posición relativa de los datos en la
memoria. La primer posición del arreglo puede corresponder al índice 0 o 1
(dependiendo del lenguaje de programación) y la última posición correspondería,
respectivamente, al índice N-1 o N.
Por ejemplo, si el identificador de un arreglo de cadenas de texto es “color”, el arreglo
inicia en la posición 0 y tiene 5 elementos, sus elementos son: color[0], color[1], ...,
color[4]. En la siguiente tabla se ilustran algunos valores.
color
Índice 0 1 2 3 4
Valor “rojo” “azul” “verde” “café” “amarillo”
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
28
4. Equipo y material
5. Desarrollo
I. Actividad 1
Implementación de un arreglo
El alumno utilizará una estructura de datos del tipo arreglo para generar un
registro de datos de algún tipo de objeto utilizando al menos 3 operaciones
fundamentales para el manejo de arreglos, incluyendo el manejo de al menos 2
excepciones.
II. Actividad 2
Operaciones con los datos de arreglos
El alumno realizará operaciones con los valores almacenados en al menos dos
arreglos, utilizando para ello las estructuras de control más adecuadas.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
29
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson,
2007 LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a
objetos. México,Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
30
N° de práctica: 7
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
M.F. Gabriel Hurtado Chong
M.I. Jorge Armando
Rodríguez Vera
M.F. Gabriel Hurtado Chong
Colegio de Programación
18-Feb-16
Arreglos
multidimensionales
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
31
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivo general: Entender el funcionamiento y el manejo de los arreglos
multidimensionales en un lenguaje orientado a objetos.
II. Objetivos específicos:
Implementar una matriz de algún tipo de datos básico.
Implementar una matriz de algún de tipo de objeto.
3. Introducción
Un arreglo multidimensional se define como una colección homogénea, finita y ordenada
de datos con N dimensiones. Para hacer referencia a cada componente de un arreglo
multidimensional se requieren N índices, uno para cada dimensión. Por ejemplo, un arreglo
de dos dimensiones se trata de un arreglo multidimensional que requiere de dos índices para
hacer referencia a cada uno de sus componentes, uno para especificar la columna y otro
para el renglón.
Los arreglos multidimensionales son ampliamente utilizados en la programación debido a
que comúnmente se tiene una gran cantidad de datos, que debido a su relación entre sí sería
mucho más complicado representarlos en una sola dimensión. Por ejemplo, las imágenes
pueden ser representadas en un arreglo de tres dimensiones debido a que una parte de los
datos puede expresar el color Rojo, otra para el color Azul y por último el Verde, que al ser
combinados todos entre sí nos dan el efecto del color real en una imagen.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
32
4. Equipo y material
5. Desarrollo
I. Actividad 1
Arreglos multidimensionales de datos básicos
El alumno definirá al menos dos arreglos de dos o más dimensiones para
almacenar diversos valores de datos básicos (enteros, flotantes, cadenas,
booleanos, etc.) con los cuales deberá realizar alguna operación (suma, resta,
multiplicación, concatenación, etc.).
Para el almacenamiento, consulta y modificación de los valores almacenados en
cada arreglo, así como para la visualización de los resultados generados, se
deberá implementar una interfaz gráfica de usuario que sea adecuada y fácil de
utilizar.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
33
II. Actividad 2
Arreglos multidimensionales de objetos
El alumno definirá al menos dos arreglos de dos o más dimensiones para el
almacenamiento de objetos que deberán tener cada uno al menos dos atributos,
y deberá realizarse al menos una operación entre objetos contenidos en
diferentes arreglos.
Para el almacenamiento, consulta y modificación de los valores de los atributos
de los objetos almacenados en cada arreglo, así como para la visualización de
los resultados generados, se deberá implementar una interfaz gráfica de usuario
que sea adecuada y fácil de utilizar.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a
objetos. México,Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
34
N° de práctica: 8
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
M.I. Gersaín Barrón Velázquez
Colegio de Programación
Colegio de Programación
21-Abr-16
Colecciones
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
35
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Entender el uso, creación y manejo de las colecciones
II. Objetivos específicos:
Entender el funcionamiento de las colecciones.
Aprender a crear colecciones.
Aprender los métodos para trabajar con colecciones.
3. Introducción
Una colección es un contenedor que alberga un grupo de objetos, que igualmente,
proporciona un conjunto de métodos estándar para enumerar, comparar y crear tales
objetos.
Los objetos que pueden guardarse en una colección deber pertenecer todos a una misma
clase o bien a una clase y sus subclases. Así, por ejemplo, podría tenerse una colección de
animales, que contenga perros, gatos, tigres, elefantes, siempre y cuando todos ellos sean
subclases de la clase Animal.
Las colecciones proporcionan una manera más flexible de trabajar con grupos de objetos. A
diferencia de las matrices, el grupo de objetos con el que trabaja puede aumentar y
reducirse de manera dinámica a medida que cambian las necesidades de la aplicación. Para
algunas colecciones, puede asignar una clave a cualquier objeto que incluya en la colección
para, de este modo, recuperar rápidamente el objeto con la clave.
A diferencia de los arreglos, en donde se asigna un tamaño inicial fijo al momento de
declararlos, en las colecciones se pueden agregar y eliminar dinámicamente elementos
durante la ejecución del programa, y se ajusta su tamaño.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
36
Al agregar cualquier elemento éste será asignado al último espacio de memoria reservado
para la colección.
Antes Elemento a agregar Después de inserción
Las colecciones tienen diferentes métodos para realizar tareas, de las más comunes son:
Agregar un elemento.
Insertar un elemento en determinada posición de la colección.
Eliminar un elemento en cierta posición.
Agregando a la versatilidad de poder modificar su tamaño y desplazar datos, las
colecciones pueden contener, enteros, flotantes, strings y objetos.
4. Equipo y material
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
37
5. Desarrollo
I. Actividad 1
Implementación de una colección
El alumno utilizará una estructura de colección para generar registros de algún
tipo de objeto utilizando al menos 3 operaciones fundamentales para el manejo
de la colección.
II. Actividad 2
Operaciones con los colecciones
El alumno realizará operaciones con objetos (clases creadas por ellos)
almacenados en al menos dos colecciones, utilizando para ello las estructuras
de control más adecuadas.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson,
2007 LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a
objetos. México,Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
38
N° de práctica: 9
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
M.I. Jorge Armando
Rodríguez Vera
Colegio de Programación
Colegio de Programación
17-Mar -16
Implementación de
interfaces
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
39
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivo general: Desarrollar programas que requieran la reutilización de
código a partir de dos o más clases que comparten algunas características en
común.
II. Objetivos específicos:
Desarrollar interfaces.
Implementar las interfaces.
Visualizar la ventaja de reutilizar código a partir de una interfaz,.
3. Introducción
La herencia es una herramienta muy poderosa del paradigma de programación orientada a
objetos y en ocasiones se requiere heredar de más de una clase para ahorrar desarrollo de
código. Sin embargo, algunos lenguajes de programación, como C# y Java, no soportan
este comportamiento, por lo cual hacen uso del concepto de interfaz para poder simular la
herencia de múltiples clases.
Una interfaz contiene las definiciones de un grupo de métodos y propiedades relacionadas
que una clase puede implementar. En otras palabras, una interfaz solamente contiene las
definiciones de los métodos pero no incluye ningún tipo de código dentro de ellos.
Un ejemplo donde se podría utilizar una interfaz, sería al diseñar una clase llamada Ropa
donde se implementan los atributos de marca, color y precio, así como el método de
compra y ésta a su vez hereda a las subclases Pantalón, Playera y PlayeraPersonalizada.
Por otro lado, se tiene a otra clase llamada Teléfono, con propiedades similares a las de la
clase Ropa, y que a su vez hereda a las subclases Smartphone y TeléfonoOficina. Si se
deseara implementar un método en común denominado Devolución( ) para las subclases de
Ropa y Teléfono, podríamos concluir que a la subclase PlayeraPersonalizada no se le puede
aplicar dicho método (por ser un producto hecho a la medida) así que convendría más
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
40
utilizar una interfaz para implementarlo solamente en aquellas subclases en las que se
puede llevar a cabo una devolución.
4. Equipo y material
5. Desarrollo
I. Actividad 1
Definición de interfaces
El alumno definirá una superclase con tres subclases, incluyendo dentro de la
superclase todos los métodos que las subclases contengan en común.
Posteriormente, deberán definirse al menos dos métodos que no puedan ser
compartidos por al menos una de las subclases. Deberá entonces definirse también
al menos una interfaz que incluya esos métodos.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
41
II. Actividad 2
Implementación de Interfaces
El alumno desarrollará un programa en donde se implementarán la o las
interfaces para cada una de las subclases donde son necesarias.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a objetos. México, Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
42
N° de práctica: 10
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
Ing. Jesús Esteban Pérez
Ortega
Colegio de Programación
Colegio de Programación
21-Abr-16
Manejadores de eventos
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
43
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Entender qué son los eventos, para qué sirven y cómo se
manejan.
II. Objetivos específicos:
Definir la creación e invocación de eventos en una clase.
Definir métodos en una clase para manejar eventos generados por otras
clases.
3. Introducción
Los eventos habilitan a una clase para notificar a otras cuando ocurre algo de interés. La
clase que produce el evento es llamada editor y las clases que manejan un evento son
llamadas suscriptores.
En una aplicación típica de interfaz gráfica de usuario, se puede suscribir a eventos
producidos por las clases que representan los controles (como botones, cajas de texto, etc.)
y manejarlos mediante métodos para realizar otra acción cuando el usuario hace algo con el
control. Por ejemplo, se puede tener el interés de saber cuándo hace clic el usuario sobre un
botón (evento), para poder realizar una acción (método que maneja el evento).
Los eventos tienen las siguientes características:
El editor determina cuándo se produce un evento, los suscriptores determinan qué
acción realizarán en respuesta al evento.
Un evento puede tener múltiples suscriptores. Un suscriptor puede manejar
múltiples eventos de múltiples editores.
Los eventos que no tienen suscriptores nunca se producen.
Los eventos son típicamente utilizados como señales de acciones del usuario como
clics en los botones o selecciones de menús en interfaces gráficas de usuario.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
44
Cuando un evento tiene múltiples suscriptores, los manejadores de eventos se
pueden invocar de manera síncrona o asíncrona cuando se produce el evento.
4. Equipo y material
5. Desarrollo
I. Actividad 1
Crear y manejar un evento
Realice una clase editor que contenga un evento que se produzca cuando, en un
atributo, se modifique alguna característica seleccionada (como su valor,
tamaño, etc.). Escriba el código para definir en qué situación o situaciones se
invocará el evento; es decir, los momentos cuando se produzca un cambio en la
característica seleccionada del atributo.
Elabore una clase suscriptora del evento creado en la clase editor. La clase
suscriptora debe tener definido un método que se ejecute cuando se produzca el
evento. Verifique el funcionamiento del evento en su programa.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
45
II. Actividad 2
Manejar eventos en interfaces gráficas de usuario
Cree una interfaz gráfica de usuario que contenga 3 diferentes controles (botón,
etiqueta, lista desplegable, etc.). Suscríbase a dos eventos de cada control
seleccionado, es decir, manejará 6 eventos en total.
Para manejar cada uno de los eventos, defina:
1. Un método para manejar uno de los eventos del primer control.
2. Un método para manejar uno de los eventos del segundo control.
3. Un método para manejar uno de los eventos del tercer control.
4. Un método para manejar los 3 eventos restantes.
En total, definirá 4 métodos para manejar 6 eventos.
Verifique el funcionamiento de cada uno de los eventos seleccionados.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a
objetos. México,Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
46
N° de práctica: 11
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
M.F. Gabriel Hurtado Chong
Ing. Cynthia Nelly Peña Belmont
M.F. Gabriel Hurtado Chong
Colegio de Programación
18-Feb-16
Construcción de
bibliotecas y reutilización
de código
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
47
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Aprender a crear una biblioteca y a reutilizar código.
II. Objetivos específicos:
Diseñar una biblioteca de clases.
Crear una biblioteca de clases.
3. Introducción
Una biblioteca es un conjunto de clases agrupadas, ya sea que estén preestablecidas o que
uno, como programador, las puede generar.
Básicamente, para hacer reutilización de código se debe diseñar y crear una biblioteca con
las clases y métodos que sean importantes para nosotros y que utilicemos con frecuencia,
para así ya no perder tiempo en escribir siempre un mismo bloque de instrucciones en todos
nuestros programas y optimizar nuestro código. Además de la reducción del tiempo de
desarrollo en nuevos programas, se obtiene el beneficio de la disminución de errores de
programación.
Para construir una biblioteca es muy importante generar un proyecto como biblioteca de
clases, lo que nos va a permitir generar dentro de ella todas las clases que queramos, es
muy importante que en nuestro código no tengamos errores para que se pueda generar
correctamente.
Una vez creada la biblioteca es importante agregarla primero al proyecto donde la
queramos utilizar. Posteriormente, sólo es necesario mandar a llamar a las clases o
métodos deseados.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
48
4. Equipo y material
5. Desarrollo
I. Actividad 1
Creación de una biblioteca
Diseñe una biblioteca, identificando al menos 5 métodos de propósito general,
que sean básicos o relevantes y de uso común para el desarrollo a futuro de
diversos programas. Por ejemplo: métodos para la entrada de diferentes tipos
de datos desde el teclado, que incorporen un manejo de excepciones completo,
robusto y adecuado, con un enfoque al usuario.
Agrupe los métodos identificados en al menos dos clases e impleméntelos
dentro de un proyecto de biblioteca de clases.
Haga las pruebas de escritorio necesarias para corroborar el buen
funcionamiento de todos los métodos. De ser necesario, realice todas las
correcciones y ajustes adecuados.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
49
II. Actividad 2
Uso de una biblioteca
Para llevar a cabo la reutilización de código, agregue su biblioteca a un nuevo
proyecto y compruebe el funcionamiento correcto de al menos un método de
cada una de las clases contenidas en su biblioteca.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a
objetos. México,Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
50
N° de práctica: 12
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
Ing. Miguel Serrano Reyes
Colegio de Programación
Colegio de Programación
17-Mar-16
Listas
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
51
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Entender el uso y funcionamiento de la estructura de
datos conocida como lista.
II. Objetivos específicos:
Entender el funcionamiento de una lista.
Crear una lista.
Conocer los métodos para trabajar con listas.
3. Introducción
Una estructura de datos es un grupo de elementos que se pueden procesar de manera
uniforme.
Las estructuras básicas suelen tener la limitación de no poder cambiar su tamaño durante la
ejecución. Las listas lineales permiten crear estructuras de datos dinámicas; es decir,
podemos almacenar en ellas tantos elementos como necesitemos, siempre y cuando haya
suficiente espacio en memoria.
Una lista es una estructura de datos que cumple con las siguientes características:
1. Todos sus componentes son del mismo tipo.
2. Cada elemento o nodo va seguido de otro del mismo tipo o de ninguno.
3. Sus componentes se almacenan según cierto orden.
El lenguaje C#, por ejemplo, tiene una clase llamada List que nos permite manipular datos
que cumplan las características antes mencionadas. Dicha clase proporciona los métodos
necesarios para llevar a cabo las siguientes operaciones:
1. Insertar elementos.
2. Eliminar elementos.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
52
3. Recorrer listas, mediante el uso de ciclos y sus índices.
4. Búsqueda de datos.
Uno de los beneficios de las listas radica en que podemos crearlas para guardar objetos de
cualquier clase deseada: cadenas de texto, botones o cualquier otra descrita por el
programador.
4. Equipo y material
5. Desarrollo
I. Actividad 1
Implementación de una lista
El alumno utilizará una estructura de datos del tipo lista para generar un
registro de datos de algún tipo de objeto, utilizando al menos 3 operaciones
fundamentales de las listas.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
53
II. Actividad 2
Implementación de una interfaz gráfica de usuario
El alumno hará uso del control de lista desplegable para generar una lista a la
que se le agregarán elementos uno por uno mediante un cuadro de texto y un
botón. Al hacer doble click sobre alguno de los elementos de la lista, éste
deberá ser eliminado, con la previa confirmación del usuario mediante un
cuadro de diálogo adecuado.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a
objetos. México,Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
54
N° de práctica: 13
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
M.F. Gabriel Hurtado Chong
Ing. Cynthia Nelly Peña Belmont
M.F. Gabriel Hurtado Chong
Colegio de Programación
18-Feb-16
Pilas
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
55
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Entender el uso y funcionamiento de la estructura de
datos conocida como pila.
II. Objetivos específicos:
Entender el funcionamiento de una pila.
Aprender a crear una pila.
Conocer los métodos para trabajar con pilas.
3. Introducción
Una pila es una lista lineal en la que sólo se pueden insertar y eliminar elementos o nodos
en un extremo de la lista. A éste tipo de lista tambien se les conoce como listas LIFO (last
in first out – último en entrar, primero en salir).
Las operaciones de inserción y de eliminación de elementos en una pila se conocen
respectivamente como "push" y "pop", esto es "empujar" y "tirar". Ademas, las escrituras
de datos siempre son inserciones de nodos, y las lecturas siempre eliminan el nodo leído.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
56
Push (Empujar)
Pop (Tirar)
De esta manera, el manejo de la información para agregar y extraer datos de la lista es
análoga a la forma en la que se acomodan los platos en una alacena o se estiban cajas en un
almacén. Lo usual, en ambos casos, es colocar cada nuevo elemento encima del elemento
anterior; es decir que se van encimando o apilando uno sobre otro, y de ahí toma su nombre
esta estructura de datos. De igual modo, quien requiera utilizar un plato o retirar una caja
tomaría normalmente el elemento que se encuentre en la parte superior de la pila; es decir,
el que se colocó más recientemente o, en otras palabras, el último que fue agregado a la
pila.
Hoy en día, los lenguajes orientados a objetos incorporan enormes bibliotecas de
elementos, funciones y herramientas para facilitar el trabajo de los desarrolladores de
software. De esta forma, es común encontrar, ya predefinidos, diversos tipos de listas
lineales de propósito general, para que el usuario pueda generar listas de cualquier tipo de
objetos, inclusive de aquellos objetos que él mismo defina. Este tipo de listas predefinidas
incorporan también diversos métodos para poder trabajar con ellas, incluyendo, entre
muchos otros, métodos que sirven para agregar y extraer elementos de las listas.
Elemento 3
Elemento 2
Elemento 1
Elemento 3
Elemento 2
Elemento 1
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
57
4. Equipo y material
5. Desarrollo
I. Actividad 1
Implementación de una pila
El alumno utilizará una estructura de datos del tipo pila, que ya venga
predefinida en el lenguaje de cómputo, para generar un registro de datos
mediante algún tipo de objeto que cuente con al menos 3 atributos.
II. Actividad 2
Implementación de una interfaz gráfica de usuario
Para consultar la información de cada uno de los objetos almacenados en la
pila, el alumno implementará una interfaz gráfica de usuario que sea adecuada
y fácil. Así mismo, ésta interfaz también deberá permitir agregar y eliminar
elementos, según se requiera.
El programa deberá incorporar un manejo adecuado de excepciones con
mensajes claros para orientar al usuario en el uso correcto del mismo.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
58
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a
objetos. México,Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
59
N° de práctica: 14
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
Ing. Miguel Serrano Reyes
Colegio de Programación
Colegio de Programación
21-Abril-16
Colas
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
60
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Entender el uso y funcionamiento de la estructura de
datos conocida como cola.
II. Objetivos específicos:
Entender el funcionamiento de una cola.
Crear una cola.
Conocer los métodos para trabajar con colas.
3. Introducción
Una estructura de datos es un grupo de elementos que se puede procesar de manera
uniforme.
Una cola es una estructura de datos, caracterizada por ser una secuencia de elementos en la
que la operación de inserción se realiza por un extremo y la operación de extracción por el
otro.
También se le llama estructura FIFO (del inglés First In First Out), debido a que el primer
elemento en entrar será también el primero en salir.
Las colas son útiles cuando se necesita almacenamiento temporal de información; es decir,
cuando es posible descartar un elemento después de recuperar su valor.
C# tiene una clase llamada Queue que nos permite manipular datos que cumplan las
características antes mencionadas. Dicha clase proporciona los métodos necesarios para
llevar a cabo las siguientes operaciones:
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
61
1. Añadir un elemento al final de la cola.
2. Devolver el elemento que se encuentra al principio de la cola y eliminarlo.
3. Devolver el elemento que se encuentra al principio de la cola pero sin eliminarlo.
Se utiliza una cola si es necesario acceder a la información en el mismo orden en que se
almacenó.
4. Equipo y material
5. Desarrollo
I. Actividad 1
Implementación de una cola
El alumno utilizará una estructura de datos del tipo cola para generar un
registro de datos de algún tipo de objeto, utilizando las operaciones
fundamentales de las colas.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
62
II. Actividad 2
Implementación de una interfaz gráfica de usuario
El alumno hará uso del control de lista desplegable para generar una cola a
la que se agregarán elementos uno por uno mediante un cuadro de texto y
un botón. Al hacer doble click sobre otro botón, se deberá eliminar el
primer elemento de la cola, con la previa confirmación del usuario
mediante un cuadro de diálogo adecuado.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a
objetos. México,Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
63
N° de práctica: 15
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
Ing. Miguel Serrano Reyes
Colegio de Programación
Colegio de Programación
10-Jun-16
Árboles
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
64
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Entender el uso y funcionamiento de la estructura de
datos conocida como árbol.
II. Objetivos específicos:
Entender el funcionamiento de un árbol.
Crear un árbol.
Conocer los métodos para trabajar con un árbol.
3. Introducción
Un árbol es una colección de objetos conectados llamados nodos.
Un nodo es la unidad sobre la que se construye el árbol y puede tener cero o más nodos
hijos conectados a él.
Un nodo es padre de otro si existe un enlace desde el primer nodo al segundo (en ese caso,
también decimos que el segundo nodo es hijo del primero). Por ejemplo, en la figura 1 el
nodo B es padre de E.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
65
Figura 1. Ejemplo de un árbol.
Al nodo que no tiene padres se le conoce como raíz. En la figura 1 el nodo A es la raíz.
A un nodo que no tiene hijos se le llama hoja, como los nodos E, I, G, J, K y L, de la figura
1.
A los demás nodos (aquellos que tienen padre y uno o varios hijos) se les conoce como
rama, tal como los nodos B, C, D, F y H, en la figura 1.
Dentro de las características que posee un árbol encontramos las siguientes:
El orden del árbol es el número potencial de hijos que puede tener cada elemento de
árbol.
El grado del árbol resulta ser el número de hijos que tiene el elemento con más hijos
dentro del árbol. En la figura 1, el grado del árbol es tres.
El nivel de un nodo se define como la distancia de ese nodo a la raíz, medida en
nodos. El nivel del nodo J en la figura 1 es cuatro, el del nodo B es dos.
La altura del árbol se define como el nivel del nodo de mayor nivel. La altura del
árbol es cuatro en la figura 1.
A
B
D
I
E F
J K
C
G H
L
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
66
Las operaciones básicas en árboles son:
1. Añadir o insertar elementos.
2. Buscar o localizar elementos.
3. Borrar elementos.
4. Moverse a través del árbol.
5. Recorrer el árbol completo.
Uno de los ejemplos más característicos del uso de árboles se encuentra en el manejo de
carpetas de archivos en un sistema operativo.
Con ayuda de los árboles podemos representar datos jerárquicos y facilitar las operaciones
de búsqueda en estos conjuntos de datos.
4. Equipo y material
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
67
5. Desarrollo
I. Actividad 1
Implementación de un árbol
El alumno implementará una clase que contenga una estructura de datos del
tipo árbol para su posterior utilización.
II. Actividad 2
Implementación de una interfaz gráfica de usuario
El alumno generará un árbol con la clase creada en la actividad 1 y lo
desplegará en pantalla indicando su orden, grado, altura y nivel de sus nodos (o
de algún nodo seleccionado), acorde al árbol creado.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a objetos. México, Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
68
N° de práctica: 16
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
Ing. Amaury Pérez Tirado
Colegio de Programación
Colegio de Programación
21-Abr-16
Algoritmos de ordenación
y búsqueda
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
69
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Conocer algunos de los algoritmos empleados en las
acciones de ordenación y de búsqueda.
II. Objetivos específicos:
Conocer el concepto de algoritmo de ordenación así como algunos de los
métodos existentes.
Conocer el concepto de algoritmo de búsqueda, así como algunos métodos
existentes.
3. Introducción
Ordenación
La ordenación o clasificación de datos (sort, en inglés) es una operación consistente en
disponer un conjunto —estructura— de datos en algún determinado orden con respecto a
uno de los campos de elementos del conjunto. Por ejemplo, cada elemento del conjunto de
datos de una guía telefónica tiene un campo nombre, un campo dirección y un campo
número de teléfono; la guía telefónica está dispuesta en orden alfabético de nombres; los
elementos numéricos se pueden ordenar en orden creciente o decreciente de acuerdo al
valor numérico del elemento.
Una colección de datos (estructura) puede ser almacenada en un archivo, un arreglo (vector
o tabla), un arreglo de registros, una lista enlazada o un árbol.
Cuando los datos están almacenados en un arreglo, una lista enlazada o un árbol, se
denomina ordenación interna. Si los datos están almacenados en un archivo, el proceso de
ordenación se llama ordenación externa.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
70
Los métodos de ordenación se suelen dividir en dos grandes grupos:
Directos: Intercambio, burbuja, selección, inserción.
Indirectos (avanzados): Shell, ordenación rápida, ordenación por mezcla,
Radixsort.
Búsqueda
La búsqueda es una operación que tiene por objeto la localización de un elemento dentro de
la estructura de datos. A menudo un programador estará trabajando con grandes cantidades
de datos almacenados y pudiera resultar necesario determinar si contiene un valor que
coincide con algún valor clave o buscado.
Existen dos métodos de acceso, para encontrar elementos dentro de una estructura de datos:
búsqueda secuencial y búsqueda binaria.
El algoritmo de búsqueda secuencial compara sucesivamente cada elemento con una clave
de búsqueda. Dado que el conjunto de datos no está en un orden prefijado, es probable que
el elemento a buscar pueda ser el primer elemento, el último elemento o cualquier otro. En
promedio, el programa tendrá que comparar la clave de búsqueda al menos con la mitad de
los elementos. El método de búsqueda secuencial funcionará bien con conjuntos pequeños
o no ordenados.
Si el conjunto está ordenado, la búsqueda binaria proporciona una técnica de búsqueda
mejorada. Por ejemplo, en un arreglo ordenado de menor a mayor, el proceso comienza
comparando el elemento central con el valor buscado. Si ambos valores son iguales finaliza
la búsqueda. Si el elemento buscado es mayor se procede a hacer una nueva búsqueda
binaria en el subarreglo de índice superior, si el elemento buscado es menor se debe buscar
en el otro subarreglo; éste es un proceso reiterativo hasta dar con el elemento buscado. Una
búsqueda binaria típica se asemeja a la búsqueda de una palabra en un diccionario.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
71
4. Equipo y material
5. Desarrollo
I. Actividad 1
Algoritmo de Ordenación
Partiendo de un conjunto de datos desordenado, generar un conjunto ordenado
mediante alguno de los métodos mencionados, conforme a dos criterios
distintos.
II. Actividad 2
Algoritmo de Búsqueda
Partiendo de un conjunto de datos, realizar diferentes búsquedas, mediante al
menos dos métodos, y evaluar la eficiencia de cada método.
6. Bibliografía
CAIRÓ BATTISTUTTI, Osvaldo. Metodología de la programación. Algoritmos, diagramas de flujo y programas. México, Alfaomega, 2006.
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
72
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a objetos. México, Alfaomega, 2007
CAIRÓ BATTISTUTTI, Osvaldo. Manual de Programación. México, Alfaomega, 2005
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
73
N° de práctica: 17
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
M.I. Jorge Armando
Rodríguez Vera
Colegio de Programación
Colegio de Programación
21-Abr-16
Almacenamiento, actualización y
eliminación de información mediante
estructuras
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
74
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivo general: Desarrollar programas que requieran optimizar el espacio de
almacenamiento así como resolver problemas que requieran utilizar estructuras.
II. Objetivos específicos:
Implementar las estructuras
Manipular variables haciendo uso de estructuras
3. Introducción
Las estructuras permiten agrupar datos y manipularlos independientemente del tipo con que
fueron declaradas desde un principio. La importancia de utilizar una estructura es que en
algunos problemas es muy complicado trabajar con datos de tipo primitivo y, por lo tanto,
se requieren trabajar en conjunto varios tipos de datos.
Comúnmente en un lenguaje de programación orientado a objetos se utilizan las clases para
agrupar los atributos, constructores y métodos para poder ser manipulados. Sin embargo,
hay ocasiones en que no es tan eficiente trabajar con clases, debido a que los datos no
varían en un muy alto intervalo de valores por lo que se prefiere implementar estructuras.
Las estructuras, a diferencia de las clases, realizan una asignación directa de los datos y, por
lo tanto, no se trabaja por referencia, lo que hace que la memoria sea aprovechada de una
mejor forma. Comúnmente se hacen combinaciones entre arreglos y estructuras, los cuales
se resumen en:
1. Arreglos de estructuras
2. Estructuras anidadas
3. Estructuras con arreglos
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
75
4. Equipo y material
5. Desarrollo
I. Actividad 1
Definición de estructuras
Declare al menos tres estructuras de datos diferentes en las cuales se requiera
implementar arreglos con estructuras, estructuras anidadas y estructuras con
arreglos.
II. Actividad 2
Implementación de Estructuras
El alumno desarrollará un programa donde se implementen las tres
combinaciones de estructuras con arreglos y se pueda observar su
funcionamiento.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
76
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a objetos. México, Alfaomega, 2007
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
77
N° de práctica: 18
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
Ing. Amaury Pérez Tirado
Colegio de Programación
Colegio de Programación
26-Mayo-16
Manejo de archivos
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
78
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivos generales: Conocer la forma en que se almacenan y se recuperan los
archivos.
II. Objetivos específicos:
Entender el concepto de archivo.
Conocer los métodos de almacenamiento: Secuencial y Aleatorio.
3. Introducción
El almacenamiento de datos en variables y arreglos es temporal; los datos se pierden
cuando una variable local "sale de su alcance" o cuando el programa termina, por ejemplo.
Se usan archivos para conservar a largo plazo grandes cantidades de datos, incluso después
de que el programa que creó los datos ha terminado. Los datos mantenidos en archivos se
conocen como datos persistentes. Las computadoras guardan los archivos en dispositivos de
almacenamiento secundario como discos magnéticos, de estado sólido, ópticos, cintas
magnéticas y otros.
Los archivos también denominados ficheros son una colección de información (datos
relacionados entre sí), localizada o almacenada como una unidad en alguna parte de la
computadora.
Los archivos sirven para la entrada y salida de datos de la computadora y a diferencia de los
arreglos y registros, no requieren de un tamaño predeterminado; esto significa que se
pueden hacer archivos de datos más grandes o pequeños, según se necesiten. Cada archivo
es referenciado por su identificador (su nombre).
Los archivos se pueden clasificar dependiendo del tipo de valores permitidos a cada byte.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
79
Archivos de texto. Sólo tienen permitidos ciertos rangos de valores para cada byte.
Algunos bytes tienen un significado especial, por ejemplo, el valor hexadecimal 0x1A
marca el fin de archivos. Si abrimos un archivo en modo texto, no será posible leer más
allá de un byte con ese valor, aunque el archivo sea más largo.
Archivos binarios. Tienen permitidos todos los valores para cada byte. En estos
archivos su final se detecta de otro modo, dependiendo del formato establecido y del
sistema operativo. La mayoría de las veces se hace guardando la longitud del archivo.
Cuando queramos almacenar valores enteros, o en punto flotante, o imágenes, etc.,
deberemos usar este tipo de archivos.
Según el tipo de acceso, podemos hablar de:
Archivos de acceso secuencial.
Archivos de acceso aleatorio.
Archivos de acceso secuencial
En un archivo organizado secuencialmente, los registros se graban consecutivamente
cuando el archivo se utiliza como entrada. En la mayoría de los casos, los registros de un
archivo secuencial quedan ordenados de acuerdo con el valor de algún campo de cada
registro, este valor se conoce como la llave del ordenamiento. Todos los registros tienen el
mismo tamaño, constan del mismo número de campos de tamaño fijo en un orden
particular. Como se conocen la longitud y la posición de cada campo, solamente los valores
de los campos necesitan almacenarse; el nombre y longitud de cada campo son atributos de
la estructura de archivos.
Ventajas:
Los archivos secuenciales proveen la mejor utilización de espacio y son rápidos cuando los
registros son accedidos secuencialmente.
Los archivos con poca volatilidad, gran actividad y tamaño variable son altamente
susceptibles de ser organizados secuencialmente.
La ventaja más importante de la técnica de organización secuencial de archivos es la
capacidad de acceso al "siguiente" registro rápidamente. Mientras que el patrón de
acceso a un archivo secuencial se apegue al ordenamiento de registros en el archivo,
los tiempos de acceso serán eficientes.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
80
Desventajas:
El acceso a un registro específico es deficiente si su localización no puede hacerse de
manera rápida; el acceso aleatorio es impráctico.
Además, en los archivos secuenciales la dirección de registro está implícita y están
vulnerables a fallas del sistema.
Escritura y lectura de archivos secuenciales
Los archivos secuenciales tienen algunas características que hay que tener en cuenta:
1. La escritura de nuevos datos siempre se hace al final del archivo.
2. Para leer un dato concreto del archivo hay que avanzar siempre hasta donde se encuentre
dicho dato. Si el dato requerido se encuentra antes del dato en que está posicionado el
archivo en un momento dado, será necesario regresar al comienzo del archivo y avanzar
hasta el dato necesario.
Archivos de acceso aleatorio
Los archivos de acceso aleatorio son más versátiles, permiten acceder a cualquier parte del
archivo en cualquier momento, como si fueran arreglos en memoria. Las operaciones de
lectura y/o escritura pueden hacerse en cualquier punto del archivo.
Recomendaciones para el manejo de archivos de acceso aleatorio:
Abrir el archivo en un modo que te permita leer y escribir. Esto no es
imprescindible, es posible usar archivos de acceso aleatorio sólo para lectura o sólo
para escritura.
Abrirlo en modo binario, ya que algunos o todos los campos de la estructura pueden
no ser caracteres.
Usar métodos que permitan leer y escribir registros de longitud constante desde y
hacia un archivo.
Usar un método para ubicar la posición de lectura/escritura en el lugar apropiado de
tu archivo.
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
81
4. Equipo y material
5. Desarrollo
I. Actividad 1
Archivos de Texto
Hacer un programa que guarde algunos datos ingresados, incluyendo números,
por el usuario en un archivo de texto y que permita recuperarlos y hacer alguna
búsqueda u operación específica.
II. Actividad 2
Archivos Binarios
Hacer un programa que guarde algunos datos ingresados, incluyendo números,
por el usuario en un archivo binario y que permita recuperarlos y hacer alguna
búsqueda u operación específica.
Computadora
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
82
III. Actividad 3
Comparación entre formatos de archivo
A partir de dos archivos que contengan exactamente la misma información,
pero uno en formato de texto y el otro en formato binario, compare los tamaños
respectivos de cada uno y elabore una conclusión al respecto (ventajas y
desventajas de cada formato).
6. Bibliografía
CAIRÓ BATTISTUTTI, Osvaldo. Metodología de la programación. Algoritmos, diagramas de flujo y programas. México, Alfaomega, 2006.
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a objetos. México, Alfaomega, 2007
CAIRÓ BATTISTUTTI, Osvaldo. Manual de Programación. México, Alfaomega, 2005
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
83
N° de práctica: 19
Nombre completo del alumno Firma
N° de brigada: Fecha de elaboración: Grupo:
Elaborado por: Revisado por: Autorizado por: Vigente desde:
M.I. Gersaín Barrón Velázquez
Colegio de Programación
Colegio de Programación
3-Jun-16
Comunicación serial
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
84
1. Seguridad en la ejecución
Peligro o Fuente de energía Riesgo asociado
1 Tensión alterna Electrocución
2. Objetivos de aprendizaje
I. Objetivo general: Realizar una comunicación serial entre dos dispositivos.
II. Objetivos específicos:
Implementar comunicación serial con cualquier cliente.
Manipular cadena de caracteres y adquisición de variables.
3. Introducción
Un puerto serial permite el envío de datos, uno detrás de otro, entre dos dispositivos
interconectados. Ejemplos de comunicación serial incluyen los protocolos: RS-232, USB
y Bluetooth, por mencionar algunos.
Típicamente, la comunicación serial se utiliza para transmitir datos en formato ASCII. Para
realizar la comunicación se utilizan 3 líneas de transmisión: (1) Tierra (o referencia), (2)
Transmitir, (3) Recibir. Debido a que la transmisión es asíncrona, es posible enviar datos
por una línea mientras se reciben datos por otra.
Las características más importantes de la comunicación serial son la velocidad de
transmisión, los bits de datos, los bits de parada, y la paridad. Para que dos puertos se
puedan comunicar, es necesario que dichas características sean iguales en ambos.
a) Bits de datos. Se refiere a la cantidad de bits en la transmisión. Cuando la
computadora envía un paquete de información, el tamaño de ese paquete no
necesariamente será de 8 bits. Las cantidades más comunes de bits por paquete son
5, 7 y 8 bits. El número de bits que se envía depende del tipo de información que se
transfiere. Por ejemplo, el ASCII estándar tiene un rango de 0 a 127, es decir,
utiliza 7 bits; para ASCII extendido es de 0 a 255, lo que utiliza 8 bits. Si el tipo de
datos que se está transfiriendo es texto simple (ASCII estándar), entonces es
suficiente con utilizar 7 bits por paquete para la comunicación. Un paquete se
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
85
refiere a una transferencia de byte, incluyendo los bits de inicio/parada, bits de
datos, y paridad. Debido a que el número actual de bits depende del protocolo que
se seleccione, el término paquete se puede usar para referirse a todos los casos.
b) Bits de parada. Usado para indicar el fin de la comunicación de un solo paquete.
Los valores típicos son 1 o 2 bits. Debido a la manera como se transfiere la
información a través de las líneas de comunicación y que cada dispositivo tiene su
propio reloj, es posible que los dos dispositivos no estén sincronizados. Por lo
tanto, los bits de parada no sólo indican el fin de la transmisión sino además dan un
margen de tolerancia para esa diferencia de los relojes. Mientras más bits de parada
se usen, mayor será la tolerancia a la sincronía de los relojes, sin embargo la
transmisión será más lenta.
c) Paridad. Es una forma sencilla de verificar si hay errores en la transmisión serial.
Existen cuatro tipos de paridad: par, impar, marcada y espaciada. La opción de no
usar paridad alguna también está disponible.
Ejemplo de envío de datos en comunicación serial
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
86
4. Equipo y material
Computadora
Dispositivo con capacidad de comunicación serial
Manual de Prácticas de Técnicas de Programación
Secretaría/División:DIMEI Área/Departamento: Mecatrónica
GABRIEL H., NELLY P., ARMANDO R., JESÚS P., GERSAÍN B., AMAURY P., MIGUEL S. TÉCNICAS DE PROGRAMACIÓN
87
5. Desarrollo
I. Actividad 1
Captura de secuencia de datos
Conectarse a un dispositivo mediante un puerto de comunicación serial y
capturar una secuencia de datos, desplegándolos en un programa con una caja
de texto.
II. Actividad 2
Manejo de Información
Desarrollar un programa que recoja una cadena de valores (al menos diez)
separados por uno o varios caracteres especiales. Realizar la separación de
valores y manipular con ellos algún control en una interfaz gráfica.
6. Bibliografía
CEBALLOS SIERRA, Francisco Javier. Microsoft C#. Curso de programación. México, Alfaomega, 2007
DEITEL, Harvey y Deitel, PAUL. C# Cómo programar. España, Pearson, 2007
LÓPEZ ROMÁN, Leobardo. Metodología de la programación orientada a objetos. México, Alfaomega, 2007