Está en la página 1de 52

“MANUAL DE PRACTICAS:

TOPICOS AVANZADOS DE PROGRAMACION”

LABORATORIO:

PROGRAMACIÓN ORIENTADA A OBJETOS


AUTORIZO:

ING. IVÁN HERNÁNDEZ HERNÁNDEZ


PRESIDENTE DE LA ACADEMIA DE ISC
INDICE
UNIDAD 1:
Eventos
Datos Generales de la Practica

CARRERA Ingeniería en Sistemas Computacionales

PLAN DE
ESTUDIO 2010

CLAVE MATERIA SCD-1027

NOMBRE
MATERIA Tópicos Avanzados de Programación.

PRACTICA No 1

LABORATORIO DE Programación Orientada a Objetos

NOMBRE DE LA Manejo de eventos utilizando formularios, botones,


PRACTICA etiquetas y cajas de texto.

DURACIÓN 3
(HORAS)
PRACTICA 1:
Manejo de eventos utilizando formularios, botones, etiquetas
y cajas de texto.

Introducción En esta práctica aplicaremos lo aprendido durante la unidad I, en la cual


aprenderemos a manejar eventos.

Objetivos Aplicar los conceptos básicos vistos en la unidad sobre los tipos de eventos y
sobre la generación de los mismos y hacer un programa que contenga ejemplos
de la generación de eventos de manera clara y sencilla para su uso posterior.

Fundamento
(Teoría)

El alumno usara el manejo de eventos para resolver determinadas aplicaciones


como son los que se encargan de avisar que algo ha ocurrido y de manejarlo de
una forma o de otra. Un evento ocurre (se dispara) como resultado de la
interacción del usuario con el objeto. También puede dispararse debido a la
ejecución de código (sentencias) o como resultado de la interacción de otro
objeto con el objeto de poseedor del evento. Para un formulario tenemos por
ejemplo; el evento Load que se dispara cuando se carga el formulario; o el evento
Clic para un botón de comando, se dispara cuando se hace clic sobre él. En esta
práctica utilizaremos el evento clic que utilizaremos para ejecutar nuestro
programa.
Procedimiento
(Descripción) Equipo necesario Material de apoyo
 Equipo de cómputo
 Software Visual Basic 2010

Desarrollo de la práctica.
1.- Realizar un programa que incluyan el uso de formularios, botones,
etiquetas y cajas de texto.
2.- Abrir el programa Visual Basic.
3.- Crear un archivo nuevo, clic en windows forms application y clic en el botón
ok. En el cual dentro del formulario que nos aparece insertaremos los objetos
que utilizaremos en nuestro programa. Visual Basic contiene 2 formularios el
grafico y el de código.
4.- En el formulario para los objetos utilizaremos: 2 botones (button) uno será
para sumar y otro para borrar, 3 cajas de texto en las cuales se insertaran los
números que se vallan a sumar y para el resultado, 1 label este será para el signo
=.
5.-Insertamos nuestros objetos a utilizar ya mencionados anteriormente. Le
damos doble clic al botón sumar. Aquí nos encontramos en el formulario de
códigos en el cual agregaremos el código para poder efectuar la suma.
6.- También tenemos que programar el botón borrar para que podamos insertar
más datos si lo deseamos.

Resultados y
conclusiones

Anexos
Referencias
Datos Generales de la Practica

CARRERA Ingeniería en Sistemas Computacionales

PLAN DE
ESTUDIO 2010

CLAVE MATERIA SCD-1027

NOMBRE
MATERIA Topicos avanzados de progrmación

PRACTICA No 2

LABORATORIO DE Programación Orientada a Objetos

NOMBRE DE LA Controlador de eventos.


PRACTICA

DURACIÓN 3
(HORAS)
PRACTICA 2:
Controlar eventos

Introduccion En esta práctica seguiremos repasando lo aprendido durante la unidad I, en la


cual aprenderemos a manejar eventos y en esta práctica aprenderemos a
controlar los eventos.

Objetivo Aplicar los conceptos básicos vistos en la unidad sobre los tipos de eventos y
sobre la generación de los mismos y hacer un programa que permita controlar
los eventos de manera clara y sencilla para su uso posterior.

Fundamento El código relacionado con un procedimiento de control de eventos consistirá


(Teoría) simplemente en llamadas a procedimientos. En este caso los procedimientos
llamados contendrán el código real ejecutable. Una razón para diseñar un
programa de esta forma es que el mismo procedimiento puede ser llamado desde
diferentes controladores de eventos, simplificando así, abreviando y aclarando
la arquitectura del programa. Una técnica común es pasar a un procedimiento
llamado desde un controlador de eventos un parámetro que indique qué
controlador lo ha llamado. La ejecución en el procedimiento le ha llamado
(determinado por el parámetro).
Esta práctica podemos controlar los eventos, utilizando formularios

Procedimiento Equipo Necesario Material de Apoyo


(Descripción) Equipo de computo
Controlar eventos
Desarrollo de la práctica
1.- Desarrollar aplicaciones que incluyan la programación de eventos.
2.- Abrir el programa Visual Basic
3.- Crear un archivo nuevo, Asegúrese de que esté abierta la ventana de proyecto.
4.- Seleccione el formulario al que desee agregar código de eventos.
5.- Haga clic en el botón Ver código.
6.- En el cuadro de lista Objeto, seleccione el formulario o bien otro objeto al cual desee agregar
código de evento.
7.- A continuación, desde el cuadro de lista Procedimiento, seleccione el controlador del
procedimiento al que va a agregar código.
8.- Haga clic con el botón derecho en el formulario. Seleccione Ver código en el menú
emergente.
Resultados y
conclusiones

Anexos

Referencias
Unidad 2
Interfaz gráfica de
Usuario (GUI).
Datos Generales de la Practica

CARRERA Ingeniería en Sistemas Computacionales

PLAN DE
ESTUDIO 2010

CLAVE MATERIA SCD-1027

NOMBRE
MATERIA Topicos avanzados de Programación

PRACTICA No 1

LABORATORIO DE Programación Orientada a Objetos

NOMBRE DE LA Creación de una interfaz gráfica para usuario


PRACTICA

DURACIÓN 3
(HORAS)
Practica 1:

Creación de una interfaz gráfica para usuarios

Introducción La interfaz gráfica de usuario, conocida también como GUI (del inglés
graphical user interface) es un programa informático que actúa de interfaz de
usuario, utilizando un conjunto de imágenes y objetos gráficos para
representar la información y acciones disponibles en la interfaz. Su principal
uso, consiste en proporcionar un entorno visual sencillo para permitir la
comunicación con el sistema operativo de una máquina o computador

Objetivo Aplicar los conceptos básicos vistos en la unidad 2, para poder crear una
interfaz de usuario.

Fundamento Una interfaz es un dispositivo que permite comunicar dos sistemas que no
(Teoría) hablan el mismo lenguaje. Restringido a aspectos técnicos, se emplea el
término interfaz para definir el juego de conexiones y dispositivos interfazque
hacen posible la comunicación entre dos sistemas. Sin embargo, cuando aquí
hablamos de interfaz nos referimos a la cara visible de los programas tal y
como se presenta a los usuarios para que interactúen con la máquina. La
interfaz gráfica implica la presencia de un monitor de ordenador o pantalla
constituida por una serie de menús e iconos que representan las opciones que
el usuario puede tomar dentro del sistema.
Procedimiento Equipo Necesario Material de Apoyo
(Descripción) Equipo de computo

CREACION DE UNA INTERFAZ GRÁFICA

Desarrollo de la práctica

1.- Abrir Visual Basic, haz clic en "Archivo" y selecciona "Estándar EXE" para crear un nuevo
proyecto de Visual Basic. Un formulario de Visual Basic estándar se mostrará para que
puedas empezar a construir tu programa GUI.

2.-Haz clic en la esquina del formulario y arrástralo para cambiar el tamaño.


3.-Añade componentes al formulario en el programa. Haz clic en la "caja de herramientas."
Arrastra y agrega controles tales como botones, cuadros de texto, cuadros combinados,
etiquetas y texto en el control del formulario de Visual Basic. Cambia el tamaño de ellos en
el formulario de control principal y ajusta sus propiedades y atributos para que
correspondan con el programa.
4.-Haz doble clic en cada control y agrega código de programación Visual Basic para
modificar el control de la interacción con el usuario.

5.-Cambia la configuración y las propiedades del formulario mediante el uso de la ventana


de propiedades del mismo.

6.-Guarda el proyecto.
7.-Presiona la tecla "F5" para ejecutar y probar el programa.
8.-Haz un programa GUI ejecutable. Haz clic en "Archivo" y "Crear [nombre del proyecto]
EXE.exe". Busca el archivo ejecutable guardado en tu computador y haz doble clic en él.
Observarás tu programa como una GUI en la pantalla de tu computadora.

Resultados y
conclusiones

Anexos

Referencias
Unidad 3
Componentes y librerías
Datos Generales de la Practica

CARRERA Ingeniería en Sistemas Computacionales

PLAN DE
ESTUDIO 2010

CLAVE MATERIA SCD-1027

NOMBRE
MATERIA Topicos avanzados de programación

PRACTICA No 1

LABORATORIO DE Programación Orientada a Objetos

NOMBRE DE LA creación de componentes gráficos


PRACTICA

DURACIÓN 3
(HORAS)
Practica 1:

Creación de componentes gráficos en Visual Basic

Introducción Los componentes proporcionan código reutilizable en forma de objetos. Una


aplicación que utiliza el código de un componente para crear objetos y llamar
a sus métodos y propiedades se conoce como cliente. Un cliente puede estar o
no en el mismo ensamblado que el componente que utiliza.

Objetivo Aplicar los conceptos básicos vistos en la unidad 2, para poder crear
componentes que nos sirvan en otras prácticas.
Fundamento COMPONENTES
(Teoría) Un componente es una clase que se deriva directa o indirectamente de otra
clase. Un componente es un objeto que es reutilizable, puede interactuar con
otros objetos y proporciona control sobre recursos externos y compatibilidad
en tiempo de diseño.

Una característica importante de los componentes es que se pueden diseñar,


lo que significa que una clase que es un componente se puede utilizar en el
entorno de desarrollo integrado (IDE) de Visual Studio. Un componente se
puede agregar al cuadro de herramientas, se puede arrastrar y colocar en un
formulario y manipularse en una superficie de diseño.

CLASES DE COMPONENTES

El espacio de nombres System.ComponentModel proporciona clases que se


utilizan para implementar el comportamiento de componentes y controles en
tiempo de diseño y en tiempo de ejecución. Este espacio de nombres incluye
las clases e interfaces necesarias para implementar atributos, convertidores
de tipos, enlaces a orígenes de datos y componentes de licencia.
Las clases de componente básicas son:

 Component. Implementación base para la interfaz IComponent. Esta


clase habilita el uso compartido de objetos entre las aplicaciones.
 MarshalByValueComponent. Implementación base para la interfaz
IComponent.
 Container. Implementación base para la interfaz IContainer. Esta
clase encapsula cero o más componentes
Procedimiento Equipo Necesario Material de Apoyo
(Descripción) Equipo de computo

Creación de componentes gráficos en Visual Basic

Desarrollo de la Práctica.

1.- Abrir el programa, crear un nuevo proyecto


2.- Crear un componente
3.- Guarde su archivo.
4.- Para probar el componente, En el menú Archivo, seleccione Agregar y elija Nuevo
proyecto para abrir el cuadro de diálogo Agregar nuevo proyecto.
5.- crear un programa en el cual pueda utilizar el componente que ya creo.
6.- ejecute y guarde el programa.

Resultados y La creacion de components graficos que le sirvan en practicas posteriores.


conclusiones

Anexos

Referencias
Datos Generales de la Practica

CARRERA Ingeniería en Sistemas Computacionales

PLAN DE
ESTUDIO 2010

CLAVE MATERIA SCD-1027

NOMBRE
MATERIA Topicos avanzados de programación

PRACTICA No 2

LABORATORIO DE Programación Orientada a Objetos

NOMBRE DE LA Creación y uso de paquetes/librerías definidas por el


PRACTICA usuario.

DURACIÓN 3
(HORAS)
Practica 1:

Creación y uso de paquetes/librerías definidas por el


usuario.

Introducción
Los paquetes son grupos de clases relacionadas; ayudan a organizar su código
y proporcionan otra capa encapsulamiento.
En programación, los paquetes, con frecuencia son útiles para agrupar las
piezas relacionadas de un programa.

Objetivo Aplicar los conceptos básicos vistos en la unidad 2, para poder crear
componentes que nos sirvan en otras prácticas.
Fundamento Un paquete sirve para dos propósitos: primero, suministra un mecanismo por
(Teoría) el cual piezas relacionadas de un programa pueden ser organizadas como una
unidad. Se debe tener acceso a las clases definidas dentro de un paquete a
través de su nombre de paquete. Así, un paquete proporciona la manera de
nombrar una colección de clases.
Segundo, un paquete participa en los mecanismos de control de acceso en
java. Las clases definidas dentro de un paquete pueden hacerse privadas a ese
paquete y no accesibles por código fuera del paquete. De este modo, el paquete
suministra un medio por el cual las clases pueden ser encapsuladas.
Paquete: (package) es una unidad que agrupa un conjunto de entidades
relacionadas. Su aplicación más corriente es para realizar la declaración de un
tipo de datos junto con las operaciones primitivas para su manejo, de forma
que éstas puedan ser usadas desde el exterior pero se mantengan ocultos sus
detalles de funcionamiento. En otras palabras, un paquete es un mecanismo
de encapsulamiento y ocultación de información especialmente útil para
definir tipos abstractos de datos.
.

Procedimiento Equipo Necesario Material de Apoyo


(Descripción) Equipo de computo

Creación y uso de paquetes/librerías definidas por el


usuario.

Desarrollo de la Práctica.

1.- Abrir el programa Visual Studio 2005.


2.- Lo primero que debemos hacer es abrir el Visual Studio y crear un nuevo proyecto
(Archivo/Nuevo/Proyecto…).
3.- En el cuadro de dialogo que aparece elegiremos:
Tipo de proyecto: Windows.
Plantilla: Biblioteca de controles de Windows.
Nombre: Nombre de la aplicación.
Ubicación: Ruta donde guardaremos nuestro proyecto.
4.- Una vez creado el proyecto, éste nos crea una clase por default llamada UserControl1
la cual le cambiaremos el nombre, con el nombre que nosotros queramos darle.
5.- Una vez que tengamos el nombre de la clase accedemos al código de la clase (clic
derecho Ver código).
6.- Lo que esta clase se encargará de hacer, es imprimir un mensaje en pantalla, algo así
como “MessageBox.Show”. Para ello dentro de la clase, crearemos un método llamado
“mensaje” el cual recibirá como parámetro un cadena de tipo de String que será la que
imprimir’a el programa.
Con las etiquetas <summary> establecemos una descripción para el método, y con
<param name=”"> establecemos una descripción para el parámetro de nuestro método.
7.- Ya escrito nuestro código, lo que harémos es volver a generar nuestro proyecto. Clic
derecho sobre nuestra clase y seleccionamos Volver a generar. Y ya tenemos nuestra
libreria, dentro de la carpeta de nuestro proyecto, se habrá creado un archivo .dll con el
nombre de nuestra aplicación, la cual es portable.
8.- Ahora podemos hacer uso de ella, para lo cual haremos lo siguiente: necesitamos
agregar como referencia la librería a nuestro proyecto, para ello realizamos lo siguiente.
Clic derecho a nuestro proyecto y seleccionamos Agregar referencia… Seguido de esto se
nos muestra un cuadro de dialogo donde buscaremos nuestra librería. Nos ubicamos en la
pestaña Examinar y buscamos nuestra librería en el lugar que la tengamos guardada.
9.- Ya agregada la referencia, nos dirigimos al código donde utilizaremos nuestra librería
(en este caso utilizaré un formulario de prueba) e importaremos el name space de nuestra
libreria con el siguiente comando: Imports (nombre de la libreria)DLL
10.- Solo nos resta crear un objeto de tipo (nombre de la clase) que se encuentra en la
librería y mandar a llamar a nuestro método. Creamos el objeto de tipo (nombre de la
clase), Pasamos como parametro el mensaje a mostrar.
10.- Ejecutamos nuestra aplicación. Nos muestra nuestro mensaje en pantalla. Asi
podemos crear librerías

Resultados y
conclusiones

Anexos

Referencias
Unidad 4 Programacion concurrente
(MultiHilos)
Datos Generales de la Practica

CARRERA Ingeniería en Sistemas Computacionales

PLAN DE
ESTUDIO 2010

CLAVE MATERIA SCD-1027

NOMBRE
MATERIA Estructura de datos

PRACTICA No 1
LABORATORIO DE Programación Orientada a Objetos

NOMBRE DE LA El uso de un hilo


PRACTICA

DURACIÓN 3
(HORAS)
Practica 1:

El uso de un hilo

Introducción El manejo de hilos en si no es complicado, el problema se crea cuando quieres


actualizar componentes gráficos, ya que estos deben ser llamados de una
manera muy particular, mediante el comando INVOKE y por medio de
procesos delegados, para impedir que hilos diferentes o el usuario modifiquen
el componente gráfico, ya sea un TextBox, ListBox, etc.

Aplicar los conocimientos adquiridos en esta unidad sobre el uso de un hilo y


crear un programa que nos permita ver el uso de un hilo.
Objetivo
Fundamento  Un programa multihilo contiene dos o más partes que se pueden
(Teoría) ejecutar de manera concurrente o simultánea.

 A cada parte del programa se le denomina como hilo (thread).

 La programación multihilo es una forma especializada de multitarea.

 Existe multitarea basada en procesos y basada en hilos.

 Basada en procesos, permite que se puedan ejecutar dos o más


programas a la vez de manera concurrente.

 Multitarea basada en hilos es la unidad más pequeña de código que se


puede seleccionar, de tal forma que un mismo programa puede realizar
dos o más tareas de forma simultánea. (Por ejemplo un editor puede
dar formato y estar imprimiendo al mismo tiempo).

EL HILO PRINCIPAL
Cuando un programa java comienza su ejecución, ya hay un hilo
ejecutándose, a este hilo se le denomina normalmente hilo principal del
programa, porque es el único que se ejecuta al comenzar el programa. El
hilo principal es importante por dos razones:

Es el hilo a partir del cual se crean el resto de los hilos del programa.
Normalmente, debe ser el último que finaliza su ejecución, ya que
cuando el hilo principal finaliza, el programa termina.
Aunque el hilo principal se crea automáticamente cuando el programa
comienza, se puede controlar a través de un objeto Thread. Para ello se
debe de obtener una referencia al mismo llamando al método
currentThread( ), que es un miembro public static de Thread. Su forma
general es la siguiente:
currentThread( ) es miembro de Thread que permite obtener el hilo actual.

– Thread t = Thread.currentThread( );

Procedimiento Equipo Necesario Material de Apoyo


(Descripción) Equipo de computo Libro: Como programar en java de
Deitel y Deitel

Uso de un hilo

Desarrollo de la Práctica.

1.- Abrir el programa visual basic


2.- Creamos un archivo nuevo.
3.-Este programa debe llevar la librería Threading.
4.- posteriormente se declara el hilo.
5.- Deben poner en el formulario:
LixtBox1
TextBox1
3 Botones
5.-agrege el código para que el hilo pueda iniciarse
6.- ejecute y guarde el programa.

Resultados y
conclusiones

Anexos

Referencias

Datos Generales de la Practica

CARRERA Ingeniería en Sistemas Computacionales

PLAN DE
ESTUDIO 2010

CLAVE MATERIA SCD-1027

NOMBRE
MATERIA Estructura de datos

PRACTICA No 1

LABORATORIO DE Programación Orientada a Objetos


NOMBRE DE LA Crear una aplicación que utiliza múltiples hilos
PRACTICA (threads) en Visual Basic .NET

DURACIÓN 3
(HORAS)
Practica 1:

Crear una aplicación que utiliza múltiples hilos (threads) en


Visual Basic .NET

Introducción En este unidad se explica los conceptos básicos de Threads en VB.NET. y se


explica de manera detallada cada uno de los conceptos de ejecución
concurrente de hilos.

Aplicar los conocimientos adquiridos en esta unidad sobre el uso múltiples


hilos (threads) en Visual Basic .NET
Objetivo
Fundamento  Un programa multihilo contiene dos o más partes que se pueden
(Teoría) ejecutar de manera concurrente o simultánea.

 A cada parte del programa se le denomina como hilo (thread).

 La programación multihilo es una forma especializada de multitarea.

 Existe multitarea basada en procesos y basada en hilos.

 Basada en procesos, permite que se puedan ejecutar dos o más


programas a la vez de manera concurrente.

 Multitarea basada en hilos es la unidad más pequeña de código que se


puede seleccionar, de tal forma que un mismo programa puede realizar
dos o más tareas de forma simultánea. (Por ejemplo un editor puede
dar formato y estar imprimiendo al mismo tiempo).

Procedimiento Equipo Necesario Material de Apoyo


(Descripción) Equipo de computo Libro: Como programar en java de
Deitel y Deitel

Crear una aplicación que utiliza múltiples hilos (threads) en


Visual Basic .NET

Desarrollo de la Práctica.
1.- Abrir el programa visual basic.NET
2.- Creamos un archivo nuevo.
3.-Este programa debe Recorrer directorios en busca de ficheros con la extensión indicada
y extraer cada una de las palabras que contiene, acumular esas palabras en una colección,
de forma que al final nos muestre cada una de las palabras halladas y nos indique cuantas
veces se ha repetido.
5.- Para poder completarse este programa debe de llevar las siguientes clases, (el nombre
debe cambiar)

Clase Para que sirve

cPalabra Se deriva de cContenido, que a su vez se deriva


de cID, de forma que tenga las propiedades de
cada una de estas clases... esto no es realmente
necesario hacerlo así, ya que se podía haber
creado la clase directamente con esas
propiedades, pero...
De esta clase se utiliza el ID, el Contenido y el
total de veces que está esa palabra.

cPalabras Colección para almacenar objetos del tipo


cPalabra.
Internamente usa una colección del tipo
Hashtable.

cProcesarFicheroThread Una clase para procesar cada directorio y


desglosar cada una de las palabras de los
ficheros hallados que cumplan la especificación.
Internamente utiliza una colección compartida
del tipo cPalabras, para almacenar todas las
palabras halladas. Al estar compartida se usará
por todas las instancias de esta clase.
Tiene dos campos (cuasi-propiedades)
compartidos para almacenar el total de
directorios y ficheros procesados.
Tiene otros tres campos para indicar el directorio
a procesar, la extensión de los ficheros y el
thread asignado para procesar ese directorio.
El método ProcesarDir será usado por cada
hilo. Debido a que un procedimiento usado en un
thread no puede recibir parámetros, se utilizan
las propiedades sDir y sExt para saber "qué"
buscar.
Esta clase produce dos eventos que nos
informará de cada directorio y fichero que se
está procesando.

cBuscarPalabrasEnFicheros Esta clase es la que se encarga de hacer todo el


trabajo.
Tiene un método público: Procesar que será el
que se encargue de crear los objetos del tipo
cProcesarFicheroThread y asignar los threads
que se usarán.
Realmente utiliza un array del tipo
cProcesarFicheroThread, cada elemento de dicho
array se encargará de procesar un directorio
diferente. En la versión de C#, en lugar de usar
un array, utilizo una colección del tipo ArrayList.
Es posible que en el código definitivo incluido en
el fichero zip se use también una colección.
Esta clase produce tres eventos para
informarnos de lo que va sucediendo.

fBuscarPalabras Es el formulario usado para que el usuario


indique qué es lo que hay que buscar y dónde
buscarlo... Una vez procesados, se mostrarán en
un ListView las palabras halladas.
5.- Desde el formulario llamamos al método Procesar de la clase
cBuscarPalabrasEnFicheros, ésta clase produce tres eventos para informarnos de lo que va
sucediendo:
ProcesandoDirectorio, se produce cada vez que se empieza a procesar un nuevo directorio.
ProcesandoFichero, idem pero para cada fichero procesado.
FicherosProcesados, se produce cuando se ha terminado de procesar todo lo que había que
procesar. El método Procesar se encarga de crear una (o varias) nueva instancia de la clase
cProcesarFicheroThread que será la encargada de procesar cada uno de los directorios
indicados. Si se procesa sólo un directorio, se usa sólo una clase del tipo
cProcesarFicheroThread.
6.- La variable nThread tendrá el total de hilos que se están ejecutando, inicialmente valdrá
cero. Realmente nos servirá para poder crear un nuevo elemento del array de la clase que
procesará cada directorio.
Después de crear una nueva instancia de la clase, la añadimos al array y le asignamos los
procedimientos que se usarán para los dos eventos que dicha clase producirá. Y creamos
un nuevo hilo al que le indicamos qué método debe usar e iniciamos dicho hilo.
Nota: “En la asignación/creación del nuevo hilo he usado New ThreadStart que es el
delegado usado por el constructor de la clase Thread. En Visual Basic .NET realmente no
hace falta hacerlo así, ya que al usar AddessOf el compilador "sabe" que nuestra intención
es usar un delegado, por tanto dicha asignación se podría hacer de esta otra forma:
New Thread(AddressOf mProcesarFic(nThread - 1).ProcesarDir)”
7.- El método ProcesarDir de la clase cProcesarFicheroThread se encargará de recorrer
todos los ficheros del directorio indicado, (que tengan la extensión especificada), leerá el
contenido de cada uno de ellos y desglosará dicho contenido en palabras, (o números). Para
ese desglose se utiliza el método Split de la clase String, de forma que se le pase como
parámetro un array de los caracteres que queremos usar como separador. Realmente lo que
hacemos es crear un array con cada una de las palabras que contenga el fichero y usamos
dicho array para comprobar si la palabra está o no en la colección.
Para crear ese array, se usa la cadena sSep, la cual una vez convertida a un array de tipo
Char, podemos usar con el método Split. Esto se hace en el método desglosar.
Este es el procedimiento que será usado por cada hilo. Desde aquí se llamará al método
desglosar para que compruebe cada una de las palabras que hay en el fichero examinado.
6.- Para terminar, veamos cómo controlar que cada hilo ha terminado, ya que de alguna
forma tenemos que saber cuándo ha terminado todo para poder seguir con la ejecución
normal, dependiendo de que se procese uno o varios directorios, se usará un código u otro,
pero en ambos casos, usaremos el método Procesar de la clase cBuscarPalabrasEnFicheros.
Desde aquí se decidirá si procesar un directorio o varios.
En caso de que sean varios los directorios a procesar (se habrá marcado la opción
conSubDirs del formulario), se llamará al método "recursivo" procesarSubDir, en el cual se
examina un directorio y si contiene más directorios, se llamará nuevamente a este mismo
método.

Resultados y  Abrir y guardar datos en un fichero usando la codificación "estándar"


conclusiones de Windows.
 Crear las columnas de un ListView en tiempo de ejecución.
 Añadir elementos a un ListView.
 Clasificar los elementos de un ListView dependiendo de la columna
pulsada (para ello se utiliza mi clase ListViewColumnSort).
 Saber el directorio desde el que se ha ejecutado el ejecutable.
 Averiguar el nombre y directorio de un fichero.
 Usar un controlador genérico de errores.

Anexos Public Function Procesar(ByVal sDir As String, _


Optional ByVal sExt As String =
"*.*", _
Optional ByVal conSubDir As
Boolean = False _
) As String
'-----------------------------------------------------
-------------
' Procesar los directorios del path indicado en sDir,
' buscando ficheros con la extensión sExt,
' y si se deben procesar los subdirectorios.
'
' Si se quieren usar varias extensiones se podría
hacer,
' pero hay que tener en cuenta que Directory.GetFiles
' no procesará varias extensiones separadas por ;
' Por tanto, habrá que hacer un bucle para cada
extensión,
' pero eso se hará en el método ProcesarDir de la
clase
' cProcesarFicheroThread.
'-----------------------------------------------------
-------------
'
nThread = 0
ReDim mProcesarFic(0)
'
' Comprobar si se van a procesar los subdirectorios
If conSubDir Then
procesarSubDir(sDir, sExt)
Else
' redimensionamos el array
nThread += 1
ReDim Preserve mProcesarFic(nThread - 1)
' creamos una nueva instancia de la clase
' a la que le pasamos la colección "compartida" de
palabras
mProcesarFic(nThread - 1) = New
Guille.Clases.cProcesarFicheroThread(lasPalabras)
' asignamos los "manejadores" de eventos
AddHandler mProcesarFic(nThread -
1).ProcesandoFichero, AddressOf Me.OnProcesandoFichero
AddHandler mProcesarFic(nThread -
1).ProcesandoDirectorio, AddressOf
Me.OnProcesandoDirectorio
' asignamos el directorio y la extensión a procesar
mProcesarFic(nThread - 1).sDir = sDir
mProcesarFic(nThread - 1).sExt = sExt
' creamos un nuevo thread
'mProcesarFic(nThread - 1).esteThread = New
Thread(New ThreadStart(AddressOf mProcesarFic(nThread -
1).ProcesarDir))
mProcesarFic(nThread - 1).esteThread = New
Thread(AddressOf mProcesarFic(nThread - 1).ProcesarDir)
' iniciamos el nuevo thread
mProcesarFic(nThread - 1).esteThread.Start()
End If
'
' Aquí llegará incluso antes de terminar todos los
threads
'Debug.WriteLine("Fin de Procesar todos los ficheros")
'
' Comprobar si han terminado los threads
Dim i, j As Integer
Do
j = 0
For i = 0 To nThread - 1
' Comprobar si alguno de los Threads está
"vivo"
' si es así, indicarlo para que continúe el
bucle
If mProcesarFic(i).esteThread.IsAlive Then
j = 1
Exit For
End If
Next
' Esto es necesario, para que todo siga
funcionando
System.Windows.Forms.Application.DoEvents()
Loop While j = 1
'
'Debug.WriteLine("Han finalizado los threads")
'
' Ahora podemos asignar el número de ficheros
procesados
i = cProcesarFicheroThread.TotalDirectorios
j = cProcesarFicheroThread.TotalFicheros
Dim sb As New System.Text.StringBuilder
'
sb.AppendFormat("Procesado: {0} dir., ", i)
If j = 1 Then
sb.AppendFormat("{0} fichero.", j)
Else
sb.AppendFormat("{0} ficheros.", j)
End If
RaiseEvent FicherosProcesados(sb.ToString)
'
' Asignamos a cero el valor de total ficheros
' por si se vuelve a usar, para que no siga
acumulando.
cProcesarFicheroThread.TotalFicheros = 0
cProcesarFicheroThread.TotalDirectorios = 0
'
Return sb.ToString
End Function
Para saber si han terminado todos los hilos de hacer su trabajo,
recorremos el contenido del array y comprobamos si hay algún hilo
"vivo", en cuyo caso... seguimos esperando.
Esto lo comprobamos mediante los bucles anidados:
' Comprobar si han terminado los threads
Dim i, j As Integer
Do
j = 0
For i = 0 To nThread - 1
' Comprobar si alguno de los Threads está "vivo"
' si es así, indicarlo para que continúe el bucle
If mProcesarFic(i).esteThread.IsAlive Then
j = 1
Exit For
End If
Next
' Esto es necesario, para que todo siga funcionando
System.Windows.Forms.Application.DoEvents()
Loop While j = 1

Referencias
Unidad 5 Programacion de
Dispositivos moviles
Datos Generales de la Practica

CARRERA Ingeniería en Sistemas Computacionales

PLAN DE
ESTUDIO 2010

CLAVE MATERIA SCD-1027

NOMBRE
MATERIA Topicos avanzados de programación

PRACTICA No 1

LABORATORIO DE Programación Orientada a Objetos

NOMBRE DE LA Aplicación móvil en Android


PRACTICA

DURACIÓN 3
(HORAS)
Practica 1:

Aplicación móvil en Android

Android es una plataforma móvil, que incluye un sistema operativo móvil


basado en Linux, junto con un conjunto de aplicaciones middleware y
aplicaciones nativas. Está enfocado para ser utilizado en dispositivos móviles
como teléfonos inteligentes, tabletas, Google TV y otros dispositivos. Es
desarrollado por la Open Handset Alliance, la cual es liderada por Google. Este
sistema por lo general maneja aplicaciones descargadas desde Google Play,
aunque pueden ser instaladas por otros medios.
Introducción

Objetivo  Conocer las herramientas disponibles para desarrollar.


 Identificar que contiene unSDK de desarrollo Android.
 Configurar el IDE Eclipse.
 Análisis de las principales herramientas del SDK.
 Conocer la estructura de un proyecto Android.
 Crear una primera aplicación Android.
Fundamento Utilidades principales:
(Teoría) Eclipse: Menor esfuerzo y tiempo de desarrollo.
Presentación visual de componentes
SDK Android:
Kit de desarrollo software en Android.
Incluye herramientas (tools) & Add-ons.
API para todas las versiones.
Configuración
Descarga e instalar eclipse
Descargar y instalar Android SDK: (recomendado 1.6)
Descargar y instalar Android ADT plugin para Eclipse (Siglas de Android
Debug Bridge)

ARQUITECTURA

Los componentes principales del sistema operativo de Android (cada sección se


describe en detalle):
Aplicaciones: las aplicaciones base incluyen un cliente de correo electrónico,
programa de SMS, calendario, mapas, navegador, contactos y otros. Todas las
aplicaciones están escritas en lenguaje de programación Java.

Marco de trabajo de aplicaciones: los desarrolladores tienen acceso completo


a los mismos APIs del framework usados por las aplicaciones base. La
arquitectura está diseñada para simplificar la reutilización de componentes;
cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación
puede luego hacer uso de esas capacidades (sujeto a reglas de seguridad del
framework). Este mismo mecanismo permite que los componentes sean
reemplazados por el usuario.
Bibliotecas: Android incluye un conjunto de bibliotecas de C/C++ usadas por
varios componentes del sistema. Estas características se exponen a los
desarrolladores a través del marco de trabajo de aplicaciones de Android;
algunas son: System C library (implementación biblioteca C estándar),
bibliotecas de medios, bibliotecas de gráficos, 3D y SQLite, entre otras.

Runtime de Android: Android incluye un set de bibliotecas base que


proporcionan la mayor parte de las funciones disponibles en las bibliotecas base
del lenguaje Java. Cada aplicación Android corre su propio proceso, con su
propia instancia de la máquina virtual Dalvik. Dalvik ha sido escrito de forma
que un dispositivo puede correr múltiples máquinas virtuales de forma eficiente.
Dalvik ejecuta archivos en el formato Dalvik Executable (.dex), el cual está
optimizado para memoria mínima. La Máquina Virtual está basada en registros
y corre clases compiladas por el compilador de Java que han sido transformadas
al formato.dex por la herramienta incluida "dx".

Núcleo Linux: Android depende de Linux para los servicios base del sistema
como seguridad, gestión de memoria, gestión de procesos, pila de red y modelo
de controladores. El núcleo también actúa como una capa de abstracción entre
el hardware y el resto de la pila de software.

Procedimiento
Equipo Necesario Material de Apoyo
(Descripción)
Equipo de computo
Aplicación móvil en Android
Desarrollo de la Práctica.
1.- Para el desarrollo de esta práctica deberas tener entorno de desarrollo, recomendando Eclipse.
Y Kit de desarrollo de aplicaciones android. Esta aplicación desarrollar aplicaciones con Java,
necesitaremos el JDK (Java development kit)
2.- Debemos que tener el paquete de android sdk.

3.-Ya podemos proceder a la integración de Android con nuestro entorno de desarrollo. Para ello,
brimos nuestro Eclipse, y seguiremos los siguientes pasos:
Pulsamos arriba, en ayuda, y ahí en Instalar nuevo software.
4.-En la nueva ventana de dialogo que se abre, pulsamos en la parte superior, en Añadir.
5.-Se abre un formulario que nos pide, nombre y dirección. Como nombre le daremos ADT Plugin
y en la dirección le pondremos los repositorios de google:
5.-Le damos a OK, y cuando acabe de pensar, marcamos en el cuadro de software disponible el
checkbox de Developer Tools.
6.- Cuando le damos a siguiente nos dirá todo lo que va a bajar, seleccionamos todo, le damos a
siguiente, aceptando todas las licencias, y al cabo de un rato de espera, ya tendremos todo instalado.
7.- Una vez ha terminado de instalarlo, reiniciamos nuestro Eclipse, y ya solo nos queda decirle
donde hemos instalado nuestro SDK de Android.
8.- Seleccionamos arriba Ventana → Preferencias.
9.- En la barra izquierda seleccionamos Android.
10.- Donde nos pregunta por el SDK Location
11.- Aplicamos los cambios, y hemos terminado. En este punto, ya tenemos un entorno de
desarrollo funcional para nuestras aplicaciones Android. Podemos pasar a crear un nuevo
dispositivo virtual en el que probaremos nuestros programas. Esto será un teléfono Android
perfectamente funcional ejecutándose en nuestro ordenador.
Vamos a la carpeta de nuestro SDK de Android, en tools, y arrancamos el ejecutable android.exe.

Resultados y
conclusiones

Anexos

Referencias

También podría gustarte