UNIVERSIDAD ABIERTA INTERAMERICANA
Indice Del Libro De Programacin I
1. Programa de la materia
2. Cronograma de la cursada
3. Teora de paradigmas de programacin
4. Teoria de programacin orientada a objetos
5. Teoria de [Link]
6. Teora de archivos secuenciales e indexados en jackson
7. Laboratorios en [Link]
8. Anexo de teoria de [Link]
9. Anexos de laboratorios en [Link]
10. Trabajos prcticos a presentar
11. Enunciados de ejercicios
CATEDRA DE PROGRAMACION I
pag 2
pag 8
pag 10
pag 13
pag 14
pag 48
pag 60
pag 101
pag 125
pag 145
pag 152
1-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Programa de Asignatura
00 Cdigo:
01 Facultad: Tecnologa Informtica / Carrera: Ingeniera en Sistemas
02. Asignatura: PROGRAMACIN I.
03 Ao lectivo: 2008 04 Ao de Cursada: 1
07 Profesor: Titular: BRIZUELA, Rafael
05 Cuatrimestre: 2 06 Hs. Semanales: 6
Director de rea: CARDACCI,Dario
08 tems del perfil que se desarrollarn:
Desarrollar habilidades, conocimientos y destrezas en la aplicacin de tcnicas de manejo de archivos
mediante la programacin estructurada, apoyado en lenguaje C.
Desarrollar habilidades, conocimientos y destrezas en la aplicacin de tcnicas en la programacin
orientada a objetos, apoyada en el lenguaje Visual [Link]
Desarrollar destrezas en el desarrollo de ejercitacin en grupos, la interrelacin personal , aplicando
enfoques mltiples a un mismo problema.
Capacitarse para la implementacin de estas soluciones dentro de la problemtica del hombre y la
sociedad, comprendiendo los avances tecnolgicos.
09 Correlativas previas:
Programacin Estructurada.
Posteriores: Programacin Orientada a Objetos.
10 Articulacin con materias del mismo ao:
Sistemas de Computacin Sistemas de Computacin II- Laboratorio de Calculo Problemtica del Mundo
Actual Ingles I y II - Clculo infinitesimal I Historia de la Ciencia y la Tcnica Programacin
Estructurada.
11 Objetivos:
Incorporar los conocimientos para identificar las diferencias entre las metodologas de programacin
estructurada, la orientada a objetos y orientadas a eventos.
Dominar el manejo de punteros y archivos desde ambas metodologas.
CATEDRA DE PROGRAMACION I
2-169
F
T
UNIVERSIDAD ABIERTA INTERAMERICANA
Incorporar los elementos brindados por la interfaz de los lenguajes orientados a eventos con el objeto de
poder aplicarlos en la construccin de software.
Dominar los aspectos lgicos y algortmicos de la programacin orientada a eventos con el objeto de
poder aplicarlos en la construccin de software.
Desarrollar la idea fundamental de objeto, las propiedades que la definen y los eventos que lo controlan.
Comprender las tcnicas de acceso a archivos, su administracin y las ventajas y las desventajas que
cada una representa.
12 Unidades de desarrollo de los contenidos:
Unidad de repaso y conocimientos necesarios:
a) Evaluacin Diagnstica.
b) Repaso:
Vectores y matrices.
Funciones y procedimientos.
c) Conocimientos necesarios:
Estructuras de control.
Estructuras de repeticin.
Estructuras de decisin.
Diagramacin lgica.
Tiempo: 6 Hs.
Unidad 1: Cmo optimizar el manejo de informacin dentro de la memoria?
ESTRUCTURAS DE DATOS DINAMICAS.
Introduccin. Punteros. Listas. Listas contiguas. Listas enlazadas. Listas circulares. Pilas. Colas.
rboles. Arrays de registros.
Tiempo: 12 Hs.
Unidad 2: Cules son los beneficios de seleccionar el modelo ptimo?
ESTILOS DE PROGRAMACIN
Paradigma lgico. Caractersticas principales de este tipo de metodologa.
Paradigma estructurado. Caractersticas de este tipo de metodologa
Paradigma orientado a objetos. Definicin de objetos, clases, instancias. Caractersticas principales de este
tipo de metodologa.
Paradigma orientado a eventos. Definicin de eventos. Caractersticas principales de este tipo de
metodologa.
Inteligencia artificial. Caractersticas principales y aspectos distintivos.
Modularidad. Recursividad.
Anlisis comparativo y combinacin entre los distintos estilos.
CATEDRA DE PROGRAMACION I
3-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Tiempo: 6 Hs.
Unidad 3: Cmo mejorar el aspecto de las aplicaciones y desarrollarlas en menor tiempo?
INTRODUCCION A LA PROGRAMACION VISUAL I.
Tipo System Object, mtodos pblicos y protegidos , tipos de valor y por referencia , Boxing y Unboxing, ;
tipo String, propiedades y mtodos , optimizacin de la cadena, mtodos compartidos, la clase auxiliar
Cultureinfo , formato de valores fecha y numricos, interfaz Iformattable,Iformatprovider y Icustomformatter ;
Char , Stringbuilder, Tipo Numricos , propiedades y mtodos, formato , conversin , clase Convert y
generacin de nmeros aleatorios ;Date time , como sumar y restar fechas, formatos, anlisis y manejo de
zonas horarias ; Guid, Enums
La clase array , creacin de matrices y sus operaciones , System Collections , interfaces , clase Bitarray, Snack,
Queue, Arraylist, Hashtable, Sortedlist, Stringcollection y String dictionary, clases personalizadas de
colecciones y diccionarios
Clase Directory y File ,Directoryinfo y Fileinfo, Path y Stream , operaciones con secuencias
Lectura y escritura de secuencias, archivos de texto , binarios, secuencias de memoria, cadenas de memoria y
secuencias personalizadas Control de flujo, Instrucciones condicionales y de bucle. El bucle While, Emd While
GoTo y sus Variantes. La Instruccin Declare . Instruccin Try...Catch...Finally
Tiempo: 24 Hs.
Unidad 4: Cmo acceder a guardar la informacin en forma permanente?
ARCHIVOS
Introduccin al sistema de objetos de archivos. Modelo FSO. Creacin y administracin del objeto
FSO. Trabajar con unidades, archivos carpetas.
Acceso de archivo. Crear archivos. Grabar y leer archivos. Agregar y modificar datos en un archivo.
Tcnicas de acceso. Acceso secuencial. Acceso aleatorio. Acceso Binario. Corte de control. Corte de control de
1 nivel. Corte de control de n niveles. Diagramacin de las distintas tcnicas y mtodos de corte de control a
un archivo.
Apareo de Archivos. Archivo indexados. Apareo de archivos. Diagramacin de las distintas tcnicas y
mtodos para el apareamiento y manejo de archivos.
Diagramacin de ejercicios combinados de apareo y corte de control.
Tiempo: 18 Hs.
Unidad 5: Qu otros beneficios se pueden obtener de la programacin visual?
INTRODUCCION A LA PROGRAMACION VISUAL II.
Introduccin a los Formularios , Diseador de Formularios , Jerarqua de Clases de Windows Form ,
Tareas Comunes
Objeto Form , Propiedades , Mtodos y Suceso, Menues , Form MDI
CATEDRA DE PROGRAMACION I
4-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Herencia de Formularios , Ventajas , como atrapar y reemplazar sucesos , Tcnicas Avanzadas de
Formularios , Subclasificacin de Ventanas , Efecto de Transparencia, Formularios Localizados, Propiedades
de Control Dinmico
Objeto Clipboard , Application, Cursor, Sendkeys, Help
Controles Windows Forms , Textbox, Label, Linklabel, Checkbox, Radiobutton, Button, Listbox,
Checkedlistbox, Combobox.
Proveedores de Controles , Control Splitter
Controles de Cuadros De Dialogo Communes, Imagelist , Treeview,Listview
Tiempo: 30
13 Metodologa de trabajo:
Las clases se dividen en teora y prctica. La ejercitacin deber reflejar los conceptos transmitidos en
la clase terica, ms los conocimientos de las clases anteriores, aplicados a situaciones problemticas segn el
nivel alcanzado.
Para obtener una medida de lo aprendido por parte del alumno se deber fomentar la participacin del mismo en
la formulacin de soluciones a los problemas propuestos.
Herramientas:
Diagramacin Lgica.
Lenguaje C
Lenguaje de programacin [Link]
14 Trabajos prcticos:
Un trabajo domiciliario de investigacin
Realizacin de los problemas presentados en clase.
Entrega de la carpeta de ejercicios prcticos de la materia.
Todos los trabajos prcticos se acompaaran con el software ejecutable.
15 Bibliografa:
Obligatoria:
Balena Francisco, programacin avanzada con Microsoft Visual [Link] Ed Mac Graw Hill
Romn Martnez, Elda Quiroga ,ESTRUCTURAS DE DATOS , referencia practica con orientacin a
objetos. 1ed. Ed Thomson Learning Internacional. 2002.
Burnham, PROLOG, PROGRAMACIN Y APLICACIONES. 1ed. Ed Limusa.
Nils J. Nilson. INTELIGENCIA ARTIFICIAL. UNA NUEVA SNTESIS. 1ed. Ed Mc Graw Hill. 2001
Giarratano Riley. Sistemas Expertos. Principios y Programacin. 3ed. Ed Thompson Learning. 2001
Catalinas, Enrique Quero -Herranz, Jos Lpez. Programacin en Lenguajes Estructurados. 1ed. Ed.
Paraninfo. 1997
CATEDRA DE PROGRAMACION I
5-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Ampliatoria:
E. Balagurusamy. PROGRAMACIN ORIENTADA A OBJETOS CON C++. 3era. Ed. Mc Graw Hill.
R.C.T. Lee S.S. Tseng Y Otros. INTRODUCCIN AL DISEO Y ANLISIS DE ALGORITMOS. UN
ENFOQUE ESTRATGICO. Mc. Graw Hill
Ceballos Sierra,Francisco Javier. El lenguaje de programacin Visual [Link] .Mxico, F: Alfaomega
Grupo Editor 2003. 442 pginas
Franklin,Keith. Visual Basic. NET para desarrolladores .Madrid: Pearson Educacin 2002. 320 pginas
Siler,Brian;Spotts,Jeff. Visual Basic .NET .[Link]: Pearson Educacin,2002. 984 pginas
Ruiz, Francisco Escolano, Cazorla Quevedo, Miguel Angel y otros. INTELIGENCIA ARTIFICIAL.
MODELOS, TCNICAS Y REAS DE APLICACIN. 1ed. Ed Thompson Learning. 2003
James Martn y James J. Odell: METODOS ORIENTADOS A OBJETOS. 1ed. Ed. Prentice Hall.
James Martn y James J. Odell: ANALISIS Y DISEO ORIENTADO A OBJETOS. 1ed. Ed. Prentice Hall.
1992
Herranz, Jes Lpez - Catalinas Quero, Enrique. FUNDAMENTOS DE PROGRAMACIN. 1ed. Ed
Paraninfo. 1998
Romn, Leobardo Lopez. PROGRAMACIN ESTRUCTURADA - UN ENFOQUE ALGORTMICO. 2ed.
Ed. Alfaomega. 2003
Cair,Osvaldo. METODOLOGA DE LA PROGRAMACIN. 2ed. Ed. Alfaomega. 2003
16 Procedimiento de evaluacin y criterio de promocin:
Dos exmenes parciales obligatorios individuales divididos en una parte terica de lgica y otra
practica de aplicacin del lenguaje evaluado en el momento, con un recuperatorio por parcial.
Para aprobar el examen parcial deber estar aprobada la parte terica y la prctica en un 50%
respectivamente.
Un trabajo prctico de investigacin obligatorio referido a temas de la materia. El trabajo prctico
deber ser expuesto por los alumnos. (Se recomienda que el trabajo y exposicin sea grupal y la
evaluacin del mismo individual).
Una nota conceptual basada en la participacin en clase, el inters demostrado en la materia
y el empeo puesto de manifiesto por parte del alumno en el estudio.
Para aprobar la materia y acceder al examen final o coloquial el alumno deber tener sus dos exmenes
parciales y el TP aprobado, ms la entrega de la carpeta con la resolucin de los ejercicios de
programacin.
El alumno deber tener como mnimo cuatro notas para poder promediar sin contar los recuperatorios de
parciales.
Los alumnos con promedio entre 10 y 6 estarn capacitados para presentarse a coloquio , donde
CATEDRA DE PROGRAMACION I
6-169
UNIVERSIDAD ABIERTA INTERAMERICANA
expondrn un tema previamente asignado a tal fin.
Loa alumnos con notas promedio entre 5,99 y 4 estarn capacitados para presentarse a rendir examen
final , donde se los interrogara sobre todos los temas de la materia.
Los alumnos con nota menor a 4 debern rendir un examen recuperatorio de lgica y algoritmos , como
as tambin del lenguaje que se este dictando y luego de aprobarlo quedaran habilitados para rendir
examen final.
CATEDRA DE PROGRAMACION I
7-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Cronograma de la materia programacin I
Clase
nro
Teora de
lgica
Teora de
.Net
Practica en el
laboratorio
tp
solicitado
Observaciones Bibliografa
Tp nro 1
Tiempo
de
entrega
Clase 7
Colas , pilas y
listas
Repaso de
prog est
Teora de
objetos
Framework
,
lenguaje
IDE
Tipos de
datos
Lab nro 1
Lab nro 2
Tp nro 2
Clase 4
Cuestionario
manuscrito
Lab nro 3
Tp nro 3
Clase 7
Cuestionario
manuscrito
Lib 2 cap
1,2,3,8 y 17
Apuntes
lenguaje
Anexo nro 1
Tp nro 4
Clase 7
[Link]
Lenguaje
Anexo nro 2 y
3
Apareo de
archivos
secuenciales
Apareo
Lenguaje
Lab nro 4
Apareo
Lenguaje
Lab nro 5
Lib 2 cap 9
y 17
Apuntes
Lib 2 Cap
8,9,10 y 17
Apuntes
Lib 2 Cap
8,9,10 y 17
Apuntes
Lib 2 Cap
8,9,10 y 17
Apuntes
8
9
parcial
Archivos
indexados
Lenguaje
parcial
Lab nro 6
Tp nro 5
Clase 15
[Link]
10
Apareo
Lenguaje
Lab nro 7
11
Apareo
Lenguaje
Anexo nro 4
12
Apareo
Lenguaje
Anexo nro 5
13
Apareo
Lenguaje
Anexo nro 6
Lib 2 Cap
8,9,10 y 17
Apuntes
Lib 2 Cap
8,9,10 y 17
Apuntes
Lib 2 Cap
8,9,10 y 17
Apuntes
Lib 2 Cap
8,9,10 y 17
Apuntes
Lib 2 Cap
16 y 17
Apuntes
14
15
16
Parcial
Entrega de tp
recuperatorio
Archivos
secuenciales
Corte de
control
Corte de
control
Tp en C
Lib 1 cap1
al cap 12
Lib 2 cap
1,2,3 y 8
Parcial
Entrega de tp
recuperatorio
CATEDRA DE PROGRAMACION I
8-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Referencias bibliogrficas :
Lib1:
Lib2:
Apuntes:
Estructuras de Datos , Roman Martinez ,Elda Quiroga, Editorial Thompson
Programacin Avanzada con Microsoft Visual Basic .Net Balena , Editorial Mcgraw-Hill
Apuntes De Catedra, Brizuela, UAI
CATEDRA DE PROGRAMACION I
9-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Estudio y caractersticas de los distintos tipos de paradigmas mas conocidos
Qu es un paradigma de programacin?
Un paradigma de programacin provee (y determina) la visin y mtodos de un programador en la construccin
de un programa o subprograma. Diferentes paradigmas resultan en diferentes estilos de programacin y en
diferentes formas de pensar la solucin de problemas (con la solucin de mltiples problemas se construye
una aplicacin).
Paradigma Lgico
La Programacin Lgica es un Paradigma de Programacin basado en la Lgica. Los programas construidos en
un lenguaje lgico estn construidos nicamente por expresiones lgicas, es decir, que son ciertas o falsas, en
oposicin a una expresin interrogativa (una pregunta) o expresiones imperativas (una orden).
Paradigma Estructurado: la programacin se divide en bloques (procedimientos y funciones) que pueden o
no comunicarse entre s. Adems la programacin se controla con secuencia, seleccin e iteracin. Permite
reutilizar cdigo programado y otorga una mejor compresin de la programacin. Es contrario al paradigma
inestructurado, de poco uso, que no tiene ninguna estructura, es simplemente un bloque, como por ejemplo,
los archivos batch (.bat).
Paradigma Orientado a Objetos: est basado en la idea de encapsular estado y operaciones en objetos. En
general, la programacin se resuelve comunicando dichos objetos a travs de mensajes (programacin orientada
a mensajes). Se incluye dentro de este paradigma, los pilares basicos de herencia, encapsulamiento,
polimorfismo y abstraccin. Los lenguajes que responden a este paradigma son Simula, Smalltalk, C++, Java,
Visual Basic .NET, etc.
Su principal ventaja es la reutilizacin de cdigos y su facilidad para pensar soluciones a determinados
problemas.
Objetos
Un objeto es cualquier cosa real o abstracta que posee una estructura que lo define y acciones que lo controlan.
Un objeto presenta una identidad, un estado y un comportamiento en un momento dado.
La Identidad de un objeto le permite ser distinguido de entre otros y esto se da gracias a la direccin de
memoria, son distintos si ocupan distintas direcciones de memoria. El estado de un objeto es el conjunto de
valores concretos que lo caracterizan en un momento dado, como peso, color, precio, etc.
Clase
Una clase es una construccin esttica que describe comportamientos comunes y atributos incluyendo en ella
datos y mtodos o funciones.
Los mtodos por defectos son el constructor que inicializa valores y el destructor que libera recursos al finalizar
la vida til de una instancia de una clase creada en memoria.
A esta instancia de una clase se la llama Objeto, quien posee identidad , comportamiento y estado fijo o
variable especificas a ese objeto.
O sea que un objeto es la instancia de una clase
CATEDRA DE PROGRAMACION I
10-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Instanciacin
Accin por la cual se crean instancias de una clase. Los objetos creados corresponden al tipo de la clase que lo
origina
Inteligencia Artificial
Es una de las reas de las ciencias computacionales encargadas de la creacin de hardware y software que tenga
comportamientos inteligentes
La Inteligencia Artificial es el resultado de implementar en un objeto inanimado las facultades humanas que
configuran la inteligencia.
Todo aquello que persiga ostentar la etiqueta de Inteligencia Artificial debe ser capaz de comunicarse de forma
lgica en un lenguaje comprensible y humano. Esto implica un perfecto dominio de la expresin escrita y una
completa capacidad de entendimiento y sntesis de voz
Existen dos opiniones referentes a la Inteligencia Artificial:
Fuerte (Strong), la cual piensa que se podrn crear ordenadores inteligentes y con razn;
Dbil (weak), quienes piensan que pueden simular muy bien el cerebro humano, pero slo simular.
El paradigma que se acerca a este tipo de pensamiento es el lgico con su lenguaje mas conocido el Prolog
Paradigma Orientado a Eventos
Paradigma de programacin en el que la estructura y ejecucin del programa dependen de los sucesos (eventos)
que ocurran en el sistema o que ellos mismos provoquen.
El programador debe definir los eventos a los cuales el programa reaccionar y las acciones que seguir al
presentarse cada uno, esto se conoce como manejador de eventos.
Existen mltiples eventos y dependen del sistema operativo y del lenguaje de programacin utilizado.
Al ejecutarse un programa as programado, se iniciar con el cdigo correspondiente a su ejecucin y luego el
programa esperar a que ocurra un evento. Al ocurrir este, se ejecutar el cdigo correspondiente al evento que
se realiz.
Visual Basic es un buen ejemplo de programacin orientada a eventos.
Un Evento es: Suceso que ocurre en un sistema. Eventos pueden ser un clic, doble clic, minimizar una ventana,
etc.
CATEDRA DE PROGRAMACION I
11-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Modularidad
Es la descomposicin lgica de un sistema en entidades ms pequeas. En POO permiten descomponer el
problema en unidades discretas ms simples. De esta manera se logra reducir la complejidad de la construccin
de un sistema al dividirlo en unidades mas pequeas y manejables, a la vez que permite el intercambio de las
mismas. Dichas unidades o mdulos tienen entre s un grado de cohesin y de acoplamiento.
Recursividad
La recursividad significa aplicar una funcin como parte de la definicin de esa misma funcin.
El concepto de recursividad va ligado al de repeticin. Son recursivos aquellos algoritmos que, estando
encapsulados dentro de una funcin, son llamados desde ella misma una y otra vez, en contraposicin a los
algoritmos iterativos, que hacen uso de bucles while, do-while, for, etc.
El caso tpico de recursividad es el calculo del factorial de un numero dado.
CATEDRA DE PROGRAMACION I
12-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Paradigma de la Programacin Orientada a Objetos
Aplicacin, implementacin y caractersticas en .Net
QUE ES LA PROGRAMACION ORIENTADA A OBJETOS
Es una serie de normas para mejorar la programacin , basndose en la idea natural de un mundo lleno de
objetos, siendo este objeto su elemento fundamental.
Se puso de moda en los 90 pero sus orgenes son de los aos 70 con lenguajes como el Smalltalk.
En estos objetos se encapsulan datos y cdigo que interactan para obtener resultados.
En este paradigma solo podemos acceder a los datos por medio del cdigo asociado al mismo.
Otras caractersticas de esta programacin son la herencia y el polimorfismo, que le dan como caracterstica
una mayor flexibilizacin y poder a la programacin
Clase
Una clase es una construccin esttica que describe comportamientos comunes y atributos incluyendo en ella
datos y mtodos o funciones.
Los mtodos por defectos son el constructor que inicializa valores y el destructor que libera recursos al finalizar
la vida til de una instancia de una clase creada en memoria.
A esta instancia de una clase se la llama Objeto, quien posee identidad, comportamiento y estado fijo o variable
especificas a ese objeto.
O sea que un objeto es la instancia de una clase
Abstraccin
Es el mtodo selectivo donde se decide de la visin de la realidad , que es importante y que no . Para reforzar
este mecanismo se utiliza el encapsulamiento que nos brinda dos cosas importantes , el control y el cambio.
En el encapsulamiento los mtodos son pblicos y accesibles desde afuera , mientras que los datos son privados
y solo accesibles desde adentro del objeto por sus propios mtodos.
Los datos del objeto describen al mismo en forma individual , pudiendo encontrarse datos estticos que son
comunes a los objetos de la misma clase
Los mtodos de tipo estticos solo acceden a los datos estticos y lo hacen desde la clase , no desde el objeto .
Herencia
Es un tipo de relacin ente clases
Va de la generalizacin a la especializacin , de la clase base a la clase derivada , heredando la implementacin
Existen distintos tipos de herencia , preferenciando la simple donde una clase hija hereda de una nica clase
padre , aunque puede darse el caso de herencia mltiple donde exista varias clases padres , no es soportada por
todos los lenguajes y puede ser confusa.
Polimorfismo
Literalmente la palabra significa tomar varias formas , es cuando un mtodo realiza tareas similares de acuerdo
a que objeto se lo aplique , como por ejemplo la suma , que puede sumar nmeros como concatenar strings.
La definicin del mtodo reside en la clase base , pero su implementacin reside en la clase derivada y se
produce en el momento de ejecucin.
CATEDRA DE PROGRAMACION I
13-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Que es Visual Studio .Net
[Link] simplifica el desarrollo de aplicaciones basadas en .NET proporcionando un entorno de desarrollo
simple y unificado.
Cuales son sus caractersticas :
1. Posee un solo IDE ( integrated development environment )
2. Soporta varios lenguajes .NET ( [Link] , c# )
3. Desarrollo de mltiples tipos de proyectos , los proyectos son contenedores que se ubican en una
solucin , para facilitar la administracin , compilacin y almacenado de los tems , mediante plantillas
de proyectos y archivos de definicin de proyectos donde se contiene megadata del proyecto.
Los archivos o tems relacionados se agrupan , a nivel lgico , en un proyecto.
Una solucin puede contener varios proyectos , pudindose abrir , cerrar y guardar todos al mismo
momento )
4. Explorador Web integrado
5. Interfase personalizable
6. Utilidades adicionales : acceso a datos SQL Server, Depurador, Intellisense ,Emuladores para mviles ,
etc.
Framework
El framework es un marco de trabajo y puede estar compuesto por
Libreras de clases
Documentacin
Ayuda
Ejemplos
Tutoriales , etc
El .NET Framework constituye las bases sobre las que , tanto aplicaciones como servicios , son ejecutadas y
construidas.
La naturaleza unificada del .NET Framework permite que cualquier tipo de aplicacin sea desarrollada
mediante herramientas comunes haciendo la integracin mucho ms simple.
El :net framework esta compuesto por :
CLR ..common language runtime
BCL...base class library
El CLR administra la memoria , brinda seguridad en el cdigo como la conversin de tipos , inicializacin de
variables, indexacin de arrays fuera de sus limites , versionamiento.
El Common Type System ( CTS ) define un conjunto de tipos orientado a objetos donde todo tipo hereda
directa o indirectamente del tipo OBJECT , existiendo dos tipos por valor y por referencia.
Todo en .NET es una clase , donde en la parte superior de la jerarqua de objetos se encuentra la clase
[Link]
CATEDRA DE PROGRAMACION I
14-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Lo nico que no deriva del .NET Framework son las interfases
Otra parte , el Microsoft Intermediate Language ( MSIL ) convierte cualquier cdigo soportado por .NET en un
lenguaje intermedio , es un conjunto de instrucciones independientes de la CPU , que se convierten al cdigo
nativo al ejecutarse , para hacer esto lo hace mediante compiladores llamados Just In Time ( JIT )
Como se entender el MSIL es independiente del lenguaje en que se desarrolla
Tipo System Object
Todas las clases hereden (directamente o indirectamente) de [Link], lo que significa que siempre podra
asignar cualquier tipo a una variable [Link] y nunca obtendr un error de compilacin o en tiempo de
ejecucin.
Dim MiVar as [Link] = New OtraCalase()
La nica cosa de .Net Framework que no deriva de [Link] son las Interfaces.
El [Link] tiene 5 mtodos en concreto
Equals : un mtodo reemplazable que verifica si el objeto actual tiene el mismo valor que el objeto que se ha
pasado como argumento
GetHashCode : mtodo reemplazable que devuelve el cdigo hash correspondiente al objeto. Este mtodo se
utiliza cuando emplee el objeto como una clave para las colecciones y las tablas hash. Idealmente , el cdigo
hash debe ser nico para cada instancia de objeto por lo que podra verificarse dos objetos son iguales 2 sin
mas que comparar su cdigo hash.
GetType : es un mtodo que devuelve un valor que identifica el tipo del objeto. El valor proporcionado se suele
utilizar normalmente en operaciones de reflexin.
ToString: es un mtodo reemplazable que devuelve el nombre completo de la clase.
ReferenceEquals : es un mtodo compartido que acepta dos argumentos de objeto y devuelve true si hacen
referencia a la misma instancia.
Posee tambin dos mtodos protegidos
MenberwiseClone : devuelve un objeto del mismo tipo y que inicializa sus campos y propiedades a fin de que
el nuevo objeto pueda ser considerado una copia
Finalize : es un mtodo reemplazable que se llama cuando un objeto ha sido recolectado por no haber sido
utilizado ( tiempo de vida de un objeto )
Mtodos Pblicos y Protegidos
Como todas las clases heredan de [Link], todas ellas exponen los cinco mtodos que tambin expone
CATEDRA DE PROGRAMACION I
15-169
UNIVERSIDAD ABIERTA INTERAMERICANA
[Link], estos son:
Equals: Un mtodo remplazable que verifica si el objeto actual tiene el mismo valor que el objeto que se ha
pasado como argumento, devuelve un boleano.
GetHashCode: Mtodo remplazable que devuelve el cdigo hash correspondiente al objeto, este ser nico para
cada instancia del objeto.
GetType: Es un mtodo que devuelve un valor que identifica el tipo de objeto.
ToString: Es un mtodo remplazable que devuelve el nombre completo de la clase.
ReferenceEquals: Es un mtodo compartido que acepta dos argumentos de objeto y devuelve trae si hcen
referencia a la misma instancia.
La clase [Link] tambin expone dos mtodos protegidos, estos son:
MenberwiseClone: Es un mtodo que devuelve un nuevo objeto del mismo tipo y que inicializa sus campos y
propiedades con el fin de que el nuevo objeto pueda ser considerado una copia del objeto actual.
Finalize: Es un mtodo remplazable que llama a . NET Framework cuando el objeto a sido recolectado por no
haber sido utilizado.
Tipos de valor y por referencia
Tipos por valor: los tipos por valor almacenan datos a los que se puede acceder de forma directa, a su vez
dentro de esta categora encontramos mas subcategoras como los tipos nativos de .NET, los tipos de datos
creados por el programador y los enumerados. Los tipos por valor no pueden tener valores nulos.
Tipos por referencia: Los tipos creados por referencia almacenan la direccin de memoria en la que se
encuentra un dato determinado de manera que usaremos esa direccin de memoria para acceder de forma
indirecta al dato. Los tipos por referencia se dividen en varios subgrupos como son las clases propias de la
plataforma, interfaces, clases creadas por el programador, etc.
Cuando ejecutamos una aplicacin es necesario que los datos se siten en la memoria del ordenador, la cual
esta divida en dos partes, una llamada Stack, de pequeo tamao pero de un acceso muy rpido y otra llamada
Heap que cuenta con un mayor tamao pero con una velocidad de acceso inferior.
Cuando creamos tipos por valor, el valor de la variable de este tipo se almacena en el Stack, si asignamos una
variable de estas caractersticas a otra, se crea una copia en el Stack. Al destruir un tipo por valor, se destruye
tambin el valor que se guardo en el Stack.
Cuando creamos un tipo por referencia, en realidad lo que guardamos en el Heap es una direccin de memoria
que apunta a un valor, pero no al valor en si mismo. Si asignamos una variable que contiene un tipo por
referencia a otra variable, se dice que ambas se refieren al mismo valor. Los tipos por referencia si pueden
contener valores nulos.
Boxining y Unboxining
CATEDRA DE PROGRAMACION I
16-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Boxing permite a cualquier tipo de dato por valor ser convertido de manera explicita a un valor de tipo objeto.
Boxing es el proceso en donde las instancias de un objeto son creadas y sus valores son copiados directamente a
la instancia.
Unboxing es lo contrario en donde un valor es copiado desde una instancia a un medio de almacenamiento en
particular. Es comn en el lenguaje Visual [Link] ya que por aos y aos a ofrecido a los programados esa
conversin interna y tratado de los tipos de datos cuando son intercambiados entre objetos.
Tipo String
La clase String expone numerosos mtodos constructores sobrecargados, con lo que podr crear sus cadenas de
diversas formas.
MiVar = New String(CChar(A), 10)
[Link] (MiVar) = `AAAAAAAAAA
Propiedades y Mtodos
Las nicas propiedades de la clase string son Length y Chars.
Length: Devuelve el numero de caracteres que forman la cadena.
Chars: Devuelve el carcter situado en un ndice determinado.
Optimizacin de la Cadena
Un importante detalle que deber recordar es que un objeto string es inmutable (una vez que cree un string no
podr cambiar su contenido).
Las aplicaciones .NET podrn optimizar la administracin de las cadenas sin mas que mantener un grupo
interno de valores de cadena conocido como grupo interno (o pool interno). Si el valor que se ha asignado a
una variable de cadena coincide con una de las cadenas contenida ya en el grupo interno, no se reservara
memoria adicional y la variable recibir la direccin del valor de la cadena en el grupo.
Sin embargo, este paso de optimizacin no se llevara a cabo en tiempo de ejecucin.
Mtodos Compartidos
La clase String expone otros mtodos compartidos (estticos) a los que podr llamar sin tener que generar en
primer lugar una instancia de un objeto String. Por ejemplo, el mtodo concat permite el empleo de un nmero
arbitrario de argumentos String y devuelve la cadena que resulta de la concatenacin de todos los argumentos.
La clase auxiliar Cultureinfo
La clase System. Globalization. Cultureinfo define un objeto que podr inspeccionar para determinar algunas
propiedades claves de los idiomas instalados. La clase expone una propiedad compartida que devuelve el objeto
CATEDRA DE PROGRAMACION I
17-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Cultureinfo para idioma actual.
El objeto Cultureinfo expone dos propiedades, estas son:
Number Format
Date Time Format
Estas proporcionan informacin sobre la forma en que se formatean numeros y fechas de acuerdo con
parmetros locales .
Formato de Valores Fecha y Numricos
Valores Numricos
El mtodo compartido Format de la clase String le permitir dar formato a una cadena e incluir en ella uno o
mas valores numricos o de fecha, en una forma similar a como lo hace la funcin printf del lenguaje C o el
mtodo [Link]. la cadena a formatear puede contener marcadores de posicin para los argumentos, en el
formato {N} siendo N un ndice que comienza en Cero.
Valores de Fecha
El mtodo [Link] tambin permite el empleo de valores de fecha y hora con formatos estndar y
personalizados.
Interface Iformattable
Esta interfaz solo expone un mtodo, format, cuyo primer parmetro debe ser la cadena personalizada pasada
tras el carcter dos puntos.
El Tipo Char
La clase char representa a los caracteres simples. No hay mucho que decir sobre esta clase de datos, salvo que
expone un cierto numero de tiles mtodos compartidos que le permitirn probar un carcter siguiendo ciertos
criterios. Todos estos mtodos se encuentran sobrecargados y pueden tomar bien un nico Char o una cadena
mas un ndice de cadena.
El Tipo StringBuilder
Se puede pensar que los objetos StrinBuilder son como un bfer que contiene una cadena y que tiene la
capacidad de crecer desde cero caracteres a la capacidad real del bufer. Hasta que exceda esta capacidad, la
cadena permanecer en el bfer y no se asignara ni liberara memoria. Si la cadena llega a superar la capacidad
real, el objeto StringBuilder crea, de forma transparente, un bfer de mayor tamao.
Tipo Numerico
Los tipos Short, integer y long son, simplemente, las clase int 16, int 32 e int 64 de .NET. Al reconocer que son
clases, podrn sacar un mayor partido a estos tipos, por ejemplo, utilizando sus mtodos y propiedades.
Propiedades y Metodos
Todos los tipos numricos exponen el mtodo ToString, que convierte su valor numrico a una cadena.
Todas las clases numricas exponen las propiedades compartidas Minvalue y Maxvalue que devuelve el menor
y mayor valor.
CATEDRA DE PROGRAMACION I
18-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Las clases numricas que permiten el empleo de valores en punto flotante exponen algunas propiedades
compartidas de solo lectura. Por ejemplo la propiedad Epsilon devuelve el menor nmero positivo (distinto de
cero) que se pueden almacenar en una variable determinada.
Las clases Single y Double tambin exponen algunos mtodos de instancia que le permiten comprobar si
contiene ciertos valores especiales: IsInfinity, IsNegativeInfinity, IsPositiveInfinity e isNaN.
Formato Numrico
Todas las cadenas numricas disponen de una forma sobrecargada del mtodo ToString. Este mtodo utiliza la
configuracin local para interpretar la cadena de formato.
La clase NumberFormatInfo expone numerosas propiedades que determinan la forma en que se va a dar
formato a un valor numrico.
Conversin de cadenas en nmeros
Todos los tipos numricos permiten el empleo del mtodo compartido Parse, que analiza la cadena pasada
como argumento y devuelve el valor numrico correspondiente. La forma ms sencilla del mtodo Parse acepta
un argumento de cadena.
Clase Convert
La clase [Link] expone varios mtodos compartidos que le ayudaran a convertir los distintos tipos de
datos disponibles en .Net. En su forma ms sencilla estos mtodos pueden convertir cualquier tipo base en otro
tipo.
La clase Convert expone numerosos mtodos Toxxxx, uno para cada tipo bsico: ToBoolean, ToByte, etc.
Generadores de Nmeros Aleatorios
Visual Basic .NET presenta la clase [Link]; igualmente permite el empleo de la instruccin
Randomize y de la funcin RND con el objeto de mantener la compatibilidad con versiones anteriores, pero los
diseadores profesionales de .NET debern utilizar la clase de [Link].
El Tipo DateTime
[Link] es la principal clase .NET para manejar valores de fecha y hora. No solo ofrece un lugar en el
que almacenar valores de datos tambin expone varios mtodos de utilidad que, virtualmente, sustituyen a todas
las funciones de fecha y hora de Visual Basic 6. Por motivos de compatibilidad con las versiones previas Visual
Basic .NET le permitir utilizar el Tipo Date como un sinnimo de Tipo DateTime.
Como Sumar y Restar Fechas
La clase Date expone varias mtodos de instancia que le permitirn agregar y restar un numero de ao, meses,
das, horas, minutos o segundos a un valor Date. Estos mtodos son: AddYears, AddMonths, AddDays,
AddHours, AddMinutes, AddSeconds, AddMillisecons, AddTickes.
Formato de Fechas
CATEDRA DE PROGRAMACION I
19-169
UNIVERSIDAD ABIERTA INTERAMERICANA
El tipo Date sustituye al mtodo Tostring para proporcionar una representacin compacta de los valores de
fecha y hora que contiene. Podr dar formato a un valor Date de otra forma sin mas que utilizar algunos
mtodos particulares que solo expone este tipo.
Anlisis de Fecha
La operacin complementaria al formato de fecha es el anlisis. La clase Date proporciona un mtodo Format
compartido para efectuar trabajos de anlisis de cualquier grado de complejidad.
La flexibilidad de este mtodo resultara totalmente aparente cuando le pase un objeto IFormatProvider como
segundo argumento. Este objeto es conceptualmente similar al objeto NumberFormatInfo. Sin embargo, este
objeto almacena informacin sobre separadores y formatos permitidos en valores de fecha y hora.
Manejo de Zonas Horarias
.NET FrameWork permite el empleo de informacin de la zona horaria gracias al objeto [Link], que
podr utilizar para recuperar informacin sobre la zona horaria definidas en las opciones regionales de
Windows.
El Tipo Guid
El tipo [Link] expone varios mtodos compartidos y de instancia que pueden ayudarle a trabajar con
GUID, es decir, aquellos nmeros de 128 bits que sirven para identificar unvocamente elementos y que se
encuentran por todas partes en la programacin de Windows. El mtodo compartido NewGuid resultara til
para generar un nuevo identificador nico.
ENUMS
Cualquier Enums que defina en su aplicacin derivara de [Link] que, a su vez, hereda de
[Link]. por tanto en ultima instancia los Enums definidos por el usuario son tipos de valor, pero
son especiales en el sentido de que no podr definir nuevas propiedades, mtodos o sucesos. Todos los mtodos
que expone habrn sido heredados de [Link].
De forma predeterminada el primer tipo enumerado tiene asignado el valor cero, podr modificar este valor si lo
desea, por no es aconsejable.
Array (Clase)
Proporciona mtodos para la creacin, manipulacin, bsqueda y ordenacin de matrices, por lo tanto, sirve
como clase base para todas las matrices de Common Language Runtime.
Carece de un constructor pblico, porque su procedimiento New tiene un mbito protegido.
System Collections
El espacio de nombre system collections expone un gran nuecero de clases que pueden trabajar como
contenedores genricos de datos, tales como colecciones y diccionarios.
Lo ms recomendable es conocer las interfaces subyacentes que estas clases ponen a su disposicin.
CATEDRA DE PROGRAMACION I
20-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Interfaces ICollection
Todas las clases de coleccin contenidas en .NET Framwork implementan la interfaz ICollection, esta define
un objeto que permite el empleo de la enumeracin mediante el bucle For Each. La interface ICollection
dispone de una propiedad Count de solo lectura y de un mtodo CopyTo que copia los elementos desde el
objeto coleccin a una matriz.
La interfaz ICollection define las caractersticas mnimas de un objeto del tipo coleccin debera tener.
.Net Framework expone otras dos interfaces cuyos mtodos agregan potencia y flexibilidad al objeto: IList e
iDictionary.
Clase BitArray
El Objeto BitArray puede almacenar un gran numero de valores Boolean en un formato compacto, utilizando
un nico bit para cada elemento. Esta clase implementa Innumerable, IColletion e iCloneable.
Clase Stack
Visual Basic .Net podr construir una estructura de pila sin mas que generar una instancia de un objeto
[Link].
Los tres mtodos bsicos del objeto stack son: Push, Pop y Peek; la propiedad Count proporcionan el numero
de elementos almacenados en la pila.
Clase Queue
En Visual Basic .Net para generar una cola podr utilizar el objeto [Link]. Los Objetos
Queue tienen una capacidad inicial, pero el bfer interno se amplia automticamente cuando surja la necesidad.
Podr crear un objeto Queue sin mas que especificar su capacidad inicial y un factor opcional de crecimiento.
Clase ArrayList
Puede pensar en la clase ArrayList como un hbrido de objetos Array y Collection, en el sentido de que
permitir trabajar con un conjunto de valores como si fuera, simultneamente, una matriz y una coleccin.
El objeto ArrayList tiene una capacidad inicial, pero no deber preocuparse porque el ArrayList se expandir
automticamente cuando sea necesario, como sucede con todas las Colecciones.
Clase HashTable
La clase HashTable utiliza una tabla interna Hash. Cuando se agrega un par (clave, valor) a un objeto
HashTable, la posicin de cualquier elemento en la matriz interna esta basada en el cdigo Hash numrico de la
clave. Cuando busque mas tarde dicha clave, se volver a utilizar el cdigo Hash de la misma para localizar el
valor asociado tan rpidamente como se posible, sin tener que recorrer de forma secuencial todos los elementos
contenidos en la tabla Hash.
Clase SortedList
El objeto SortedList es, probablemente, el objeto mas verstil de .Net Framework
CATEDRA DE PROGRAMACION I
21-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Este objeto mantiene ordenados sus elementos. El mismo Administra dos matrices internas, una para los valores
y otra para las claves asociadas. Esta matriz dispone de una capacidad inicial, pero crecer automticamente a
medida que crezca la necesidad. Las entradas se mantiene ordenadas atendiendo a su clave y podr
proporcionar incluso un objeto Icomparer para afectar a la forma en que se van a compara y ordenar los valores
complejos.
Clase StringCollection y StringDictionary
La clase StringCollection (contenida en el espacio de nombre [Link]) es una clase con
poca sobrecarga que administra una pequea coleccin de cadenas de una manera bastante eficaz.
En general es preferible utilizar los objetos StringCollection a otros objetos que consumen mas recurso, tales
como ArrayList, cuando se esta trabajando con pequeos conjuntos de elementos.
La clase StringDictionary, una versin menor del objeto Hashtable, acepta nicamente valores y claves de
cadena. Este objeto compara las claves sin hacer distincin entre maysculas y minsculas e inicia una
excepcin si aade dos elementos cuyas claves difieren nicamente en el empleo de maysculas y minsculas.
Clase Directory y File
.Net Framework ofrece un excelente soporte para trabajar con archivos y directorios a travs de las clases
contenidas en el espacio de nombre [Link].
La clase Directory y File contiene exclusivamente mtodos compartidos que definen o devuelven informacin
sobre las entradas contenidas en el sistema de archivos.
A travs de los metodos GetDirectories y GetFiles necesitara emplear muy pocas instrucciones para iterar por
todos los directorios y archivos de un rbol de directorio.
Clase DirectoryInfo y FileInfo
La clase DirectoryInfo y FileInfo representan archivos y directorios individuales. Ambas clases heredan de la
clase virtual FileSystemInfo y, por tanto cuentan con varias propiedades y mtodos en comn, tales como
Name, FullName y Atributos.
Podr obtener una referencia al objeto DirectoryInfo o FileInfo sin ms que utilizar su mtodo constructor, que
aceptara la ruta de acceso de un directorio o archivo especifico.
Clase Path
La clase Path expone campos compartidos y mtodos que pueden ayudarle a procesar archivos y rutas de
acceso a directorios. Los campos estticos devuelven informacin sobre separadores validos de unidad y de
nombres de archivo. Puede consultarlos con la nica finalidad de preparar sus programas para ejecutarlos en
otros sistemas operativos para el caso de que .NET Framework se traslade a otra plataforma que no sea
Windows.
Clase Stream
CATEDRA DE PROGRAMACION I
22-169
UNIVERSIDAD ABIERTA INTERAMERICANA
La clase abstracta Stream representa una secuencia de bytes que va o que viene de un medio de almacenamiento
(por ejemplo: Un archivo) o de un dispositivo virtual o fsico (por ejemplo: un puerto paralelo, una tubera de
comunicacin entre procesos o un socket TCP/IP). Las secuencias (stream) le permitir leer o escribir de/en un
almacn que puede corresponderse con uno de entre varios medios de almacenamiento.
Operaciones con secuencia
Las operaciones fundamentales que pueden ejecutar sobre las secuencias son: lectura, escritura y bsqueda.
No todos los tipos de secuencia permiten todas estas operaciones.
La mayora de los objetos de secuencia almacenan los datos en bferes de una forma transparente.
No hay que decir que el almacenamiento en bfer mejora el rendimiento de manera notable. Las secuencia de
archivo se almacena en bferes, mientras que las secuencia de memoria no lo son porque no existe un motivo
para almacenar en un bfer una secuencia asignada de memoria. Podra utilizar el objeto BufferedStream para
agregar capacidad de almacenamiento en bfer a un objeto Stream que no cuente con ella de forma nativa.
Lectura y escritura de secuencia
Cuando el objeto stream genrico solo puede leer y escribir bytes individuales o grupos de bytes, la mayor parte
de las veces deber utilizar objetos auxiliares lectores de secuencia y escritores de secuencia que le permitirn
trabajar con datos de forma mas estructura.
.Net Framework dispone de varios lectores y escritores de secuencia, como: Las clases BinaryReader,
BinaryWriter, Las Clases stremReader, streamWriter, entre otras.
Lectura y Escritura de Archivos de Texto
Normalmente utilizara el objeto StreamReader para leer desde un archivo de texto.
Despus de que tenga una referencia a un objeto StreamReader, podra utilizar uno de sus numerosos mtodos
para leer uno o mas caracteres e, incluso, lneas de texto completas.
Lectura y escritura de archivos binarios
Las clases BinaryReader y BinaryWriter resultan apropiadas para trabajar con secuencia binarias; una de estas
secuencias se pueden asociar con un archivo que contenga datos en formato nativo. En este contexto formato
nativo significa los bits reales utilizados para almacenar el valor en memoria.
Trabajar con el objeto BinaryWriter resulta especialmente sencillo porque su mtodo Write ha sido
sobrecargado para que acepte todos los tipos de .NET Framework.
Lectura y escritura de secuencia de memoria
Los lectores y escritores de secuencia no sirven exclusivamente para los archivos. Por ejemplo podr utilizarlos
en unin del objeto MemoryStream para trabajar con la memoria como si fuera un archivo temporal
(proporciona un mejor rendimiento que utilizar un archivo real)
Lectura y escritura de cadenas en memoria
Si los datos que desea leer se encuentran ya contenidos en una variable de cadena, tal vez desee utilizar un
objeto StringReader para recuperarlo.
Lectores y escritores de secuencias personalizados
CATEDRA DE PROGRAMACION I
23-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Podr crear con facilidad lectores y escritores de secuencias personalizados que trabajen con objetos
personalizados, gracias a la herencia.
Control de flujo
En Visual Basic .NET ha heredado la sintaxis de la mayora de las instrucciones que gobiernan el flujo de
ejecucin, tales como los bucles If, For, Do; sin embargo otras instrucciones del viejo estilo han desaparecido,
por ejemplo GoSub. La mayora de los cambios en la sintaxis estn relacionados con la forma en que se definen
y ejecutan los procedimientos.
Procedimientos
Visual Basic .Net permite el empleo de procedimientos Sub y Function, que pueden ser Private, Public o
Friend.
Instrucciones condicionales y de bucle
Visual Basic .Net permite el empleo de todas las instrucciones condicionales y de bucle utilizadas en sus
predecesores, es decir: los bloques condicionales Is y Select y las instrucciones de bucle For, Do y While. Sin
embargo, .Net Framework tambin ofrece nuevas posibilidades en esta rea.
El bucle While, Emd While
Visual Basic permite el empleo de bucles For y Do y estos siguen exactamente las mismas sintaxis utilizadas en
versiones anteriores del lenguaje. Visual Basic .Net tambien permite el empleo de la palabra While, pero este
tipo de bucle debe cerrarse con la palabra clave End While. Podra salir del bucle While utilizando la instruccin
Exit While.
GoTo y sus Variantes
En versiones anteriores a este lenguaje, permitan el empleo de cuatro tipos de instrucciones de salto
intraprocedimientos: GoTo, GoSub, OnGoTo y OnGoSub. Las ultimas tres instrucciones han dejado de ser
validas en .Net, solo GoTo sigue vigente pero con una sintaxis ligeramente distinta (Goto en lugar de GoTo).
La Instruccin Declare
Visual Basic .Net permitir el empleo de la instruccin Declare con la que podr llamar a procedimientos y
funciones contenidas en DLL externas. Se podr utilizar la instruccin declare en cualquier sitio dentro de su
aplicacin, incluyendo mdulos, formularios y bloques de clases.
CATEDRA DE PROGRAMACION I
24-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Introduccin al .NET
Vista general
Introduccin al .Net Framework
Vista general de los lenguajes .NET
Creacin de un Componente
Recursos
Introduccin
Microsoft .NET Framework representa un gran cambio en la forma por la cual las aplicaciones son escritas y se ejecutan.
Microsoft [Link] es una de las tantas tecnologas que forman parte del Framework. En este mdulo, usted aprender
sobre .NET Framework y [Link].
Objetivos
Luego de completar este mdulo, usted estar en condiciones de:
Explicar las ventajas de la utilizacin de .NET Framework
Entender los puntos clave de la utilizacin de [Link] cuando desarrolla aplicaciones Web.
Entender el funcionamiento bsico de un sitio Web
Introduccin al .NET Framework
Qu es el .Net Framework?
Qu problema resuelve .NET?
Componentes del .Net Framework
Beneficios de usar .Net Framework
Visual Studio .Net: La herramienta de desarrollo
Introduccin
En esta leccin, usted aprender acerca del Framework. Aprender sobre algunos problemas que los desarrolladores
confrontan cuando desarrollan aplicaciones Web y cmo el Framework resuelve estos problemas. Adems ser
introducido en el entorno de desarrollo Microsoft Visual Studio .NET 2003, que es la herramienta de desarrollo utilizada
para desarrollar aplicaciones para el .NET Framework.
Objetivos
Luego de completar esta leccin, usted ser capaz de:
Diferenciar entre Microsoft .NET y .NET Framework
Listar los beneficios de utilizar .NET
Identificar las caractersticas de Visual Studio .NET
CATEDRA DE PROGRAMACION I
25-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Qu es el .NET Framework?
Herramientas
de Desarrollo
Bases de Datos
Clientes
Aplicaciones
Web [Link]
Servicios
Web XML
.NET
Framework
Aplicaciones
de Usuario
Introduccin
.NET es el modelo de desarrollo en el cual el software es independiente de los dispositivos y de la plataforma, como as
tambin disponible a travs de Internet.
El .NET Framework es la implementacin de la infraestructura .NET
Qu es la plataforma .NET?
.NET est implementado en una arquitectura abierta. .NET es una plataforma que puede ser utilizada para desarrollar la
prxima generacin de aplicaciones. La clave de esta tecnologa es simplificar el desarrollo. Esta plataforma consiste en
las siguientes tecnologas clave:
El .NET Framework
.NET Enterprise Servers
Building Block Servers
Visual Studio .NET
La plataforma .NET consiste en:
Un modelo de programacin que permite a los desarrolladores escribir XML Web Services y aplicaciones.
Un conjunto de servicios centrados en el usuario. Por ejemplo, Microsoft Passport es un importante componente que
integra fcilmente varias aplicaciones y servicios.
Un conjunto de servicios empresariales, incluyendo Windows 2000, Microsoft SQL Server y Microsoft Biztalk Server, que
integran, ejecutan, operan y administran, XML Web Services y aplicaciones.
Software cliente, tales como Windows XP y Windows CE, que ayudan a los desarrolladores a transmitir experiencias de
usuario positivas a travs de toda una familia de dispositivos.
Herramientas, tales como Visual Studio .NET 2003, que puede ser usada para desarrollar XML Web Services,
aplicaciones Windows y aplicaciones Web.
Qu es el .NET Framework?
El .NET Framework es un conjunto de clases y unidades lgicas que permiten que las aplicaciones y servicios puedan
ser compilados y ejecutados. La naturaleza unificada del .NET Framework permite la existencia de varios tipos de
aplicaciones, como aplicaciones Web, servicios Web XML, aplicaciones Windows, todas desarrolladas usando un
CATEDRA DE PROGRAMACION I
26-169
UNIVERSIDAD ABIERTA INTERAMERICANA
conjunto de clases, herramientas y cdigo en comn fcilmente integrables entre ellas.
El .NET Framework consiste en:
Common language runtime:
Controla servicios en tiempo de ejecucin. Incluye integracin de lenguajes, seguridad y manejo de memoria. Durante el
desarrollo provee herramientas necesarias para simplificar el mismo.
Class library:
Las libreras de clase proveen cdigo recusable por la mayora de las tareas, incluido el acceso a datos, desarrollo de
Servicios Web XML, y aplicaciones Web y Windows.
Que problema resuelve :NET?
Desde Internet, muchas aplicaciones y dispositivos estn fuertemente comunicados entre si.
Los programadores escriban arquitecturas en lugar de aplicaciones.
Los programadores tenan conocimientos limitados o deban aprender nuevos lenguajes
Introduccin
El Framework fue desarrollado para terminar con varias limitaciones que los desarrolladores tenan en el pasado. Para
ello tiene una fuerte integracin con los estndares de Internet.
Caractersticas [Link]
Incluso en una red global fcil y accesible que utiliza informacin compartida, como lo es Internet, realmente pocas
aplicaciones trabajan en ms de un tipo de cliente y tienen la habilidad de interactuar con otras aplicaciones. Esta
limitacin trae dos grandes problemas:
Los desarrolladores tienen un alcance limitado.
Los desarrolladores consumen gran parte de su tiempo reescribiendo aplicaciones para que funcionen en cada una de
las plataformas y clientes, en lugar de utilizarlo para el diseo de nuevas aplicaciones.
El .NET Framework resuelve los dos anteriores problemas gracias a que provee un runtime que es independiente del
lenguaje y de la plataforma, y que utiliza estndares aceptados por la industria, como es el caso de XML, entre otros.
Este runtime controla adems gran parte de la arquitectura de la aplicacin y de esta forma, los desarrolladores pueden
concentrarse en la lgica especfica de la misma.
CATEDRA DE PROGRAMACION I
27-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Componentes del .NET Framework
Visual
Basic
C++
C#
Perl
Python
Servicios Web XML
Interface de Usuario
[Link]
[Link] y XML
.NET Framework Class Library
Common Language Runtime
Message
Queuing
COM+
(Transactions, Partitions,
Object Pooling)
IIS
WMI
Win32
Introduccin
El Framework provee la funcionalidad necesaria en tiempo de compilacin y ejecucin para desarrollar aplicaciones
basadas en .NET
El .NET Framework
El Framework consiste en diferentes componentes que ayudan a los desarrolladores a crear aplicaciones basadas en
.NET. Los componentes son:
Plataforma
El Framework debe ejecutarse en un sistema operativo. Actualmente, el Framework est hecho para ejecutarse sobre
Microsoft Win32, como por ejemplo, Windows 2000, XP, 98, Windows [Link]
Servicios de aplicacin
Cuando se ejecuta Windows 2000, servicios de aplicacin, tales como MSMQ, IIS, WMI, estn disponibles al
desarrollador. El Framework expone estos servicios de aplicacin a travs de clases dentro del Framework class library.
Class Library
Expone las caractersticas del runtime y simplifica el desarrollo de las aplicaciones. Adems, los desarrolladores lo
pueden extender creando sus propias libreras de clase.
El .NET Framework Class Library implementa el .NET Framework. Todas las aplicaciones acceden al mismo conjunto de
libreras, las cuales son mantenidas dentro de namespaces. Adems, todos los lenguajes .NET acceden al mismo
conjunto de libreras.
Common Language Runtime
Provee un entorno de ejecucin robusto y seguro, que soporta mltiples lenguajes, y simplifica el desarrollo y
administracin de las aplicaciones.
El CLR es llamado tambin managed environment, en el cual servicios comunes, tales como seguridad y manejo de
memoria, son automticamente provedos.
CATEDRA DE PROGRAMACION I
28-169
UNIVERSIDAD ABIERTA INTERAMERICANA
[Link]
Es la siguiente generacin de la tecnologa Microsoft ActiveX Data Objects. Cuenta con un mejorado soporte para el
modelo de programacin desconectado y adems provee soporte nativo a XML.
[Link]
Es un framework de programacin desarrollado dentro del CLR. Puede ser usado en el servidor para crear poderosas
aplicaciones Web. Se compone de Web Forms, los cuales proveen una herramienta fcil y poderosa para el desarrollo
de interfases de usuario.
XML Web Services
Son servicios programables utilizados para compartir aplicaciones a travs de Internet.
Interface de Usuario
Web Forms, a travs de [Link]
Windows Forms
Consola de comandos
Aplicaciones mviles
Lenguajes
Cualquier lenguaje que cumple con la especificacin del lenguaje comn (CLS) puede ejecutarse sobre el CLR.
Microsoft incluye Visual Basic .NET, C#, J# C++ y JScript .NET
CATEDRA DE PROGRAMACION I
29-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Beneficios de usar el .NET Framework
Basado en estndares Web y buenas prcticas
La funcionalidad de las clases .NET es universal
El cdigo se organiza en en namespaces jerrquicos y
clases
Es independiente del lenguaje
MFC/ATL
Windows
API
Visual Basic
.NET
Framework
ASP
1980s
1990s
2000s
Introduccin
Durante los primeros aos del desarrollo de aplicaciones Windows, todas las aplicaciones eran escritas utilizando las API
en C o C++
Cuando lleg Visual Basic, y entonces Internet, los desarrolladores se especializaron en desarrollo en C y C++
(MFC/ATL), Visual Basic o ASP. Con la llegada del Framework usted puede utilizar sus conocimientos para el desarrollo
de cualquier tipo de estas aplicaciones.
Beneficios
Los beneficios de utilizar el Framework para el desarrollo de aplicaciones incluye:
Est basado en estndares y buenas prcticas:
El Framework soporta totalmente las tecnologas existentes en Internet: HTTP, HTML, XML, SOAP, XSLT, XPath, entre
otros.
Est diseado utilizando un modelo unificado de aplicacin.
La funcionalidad de las clases est disponible para cualquier lenguaje .NET. De esta forma cualquier pieza de cdigo
puede ser utilizada en cualquier lenguaje y sobre cualquier plataforma, tales como Windows, Web y XML Web Services.
Es fcil de usar para los desarrolladores.
En el Framework, el cdigo est organizado en namespaces jerrquicos y clases. El Framework provee un sistema de
tipos comn que puede ser utilizado por cualquier lenguaje. En este sistema de tipos unificado todo los elementos son
objetos. Estos objetos pueden ser utilizados por cualquier aplicacin escrita en cualquier lenguaje .NET.
Clases extensibles.
La jerarqua del Framework no est oculta al desarrollador.
Usted puede extender las clases a travs de herencia. Incluso puede implementar la herencia a travs de diferentes
lenguajes.
CATEDRA DE PROGRAMACION I
30-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Visual Studio .NET: La herramienta de desarrollo
Herramientas
para Web
Forms
Multiples
Lenguages
Herramientas para
Windows Forms
Visual Studio .NET
Herramientas
para Web
Services
Diseo
Control de
errorres
Acceso a
datos
Desarrollo
Debug
Deploy
Introduccin
Visual Studio .NET 2003 es un entorno de desarrollo completo en el cual usted puede disear, desarrollar, testear e
instalar sus aplicaciones .NET
Visual Studio .NET provee:
Soporte a varios lenguajes de desarrollo.
Herramientas para el desarrollo de aplicaciones Web, Windows, Servicios Web XML, etctera. Herramientas de acceso
a datos.
Control de errores, debugging local y remoto, y tracing.
CATEDRA DE PROGRAMACION I
31-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Vista general de los lenguajes .NET
Soporte a mltiples lenguajes
El Common Language RunTime
Componentes CLR
Compilacin y Ejecucin
Que son los Namespaces?
Introduccin
En esta leccin, usted aprender sobre los lenguajes soportados por el Framework.
Aprender adems sobre los namespaces, los cuales son una herramienta fundamental en el Framework.
Objetivos.
Al completar esta leccin, usted estar en condiciones de:
Explicar el funcionamiento del CLR.
Ilustrar el proceso mediante el cual las aplicaciones son compiladas por el CLR.
Utilizar namespaces.
CATEDRA DE PROGRAMACION I
32-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Soporte a mltiples lenguajes
El .NET Framework est diseado para soportar
mltiples lenguajes
Actualmente ms de 20 lenguajes
Microsoft prevee Visual Basic .NET, C#,
Visual J# .NET, and JScript .NET
Beneficios del soporte a mltiples lenguajes:
Los mdulos de cdigo son reusables
Todos los lenguajes tienen el mismo acceso a las API
Cada lenguaje es usado para la tarea correcta
La performance entre los lenguajes es muy similar
Introduccin
El Framework fue desarrollado para soportar en teora un nmero infinito de lenguajes. Actualmente, son ms de veinte
los lenguajes que soportan al Framework.
Soporte a mltiples lenguajes
El diseo del Framework permite a los desarrolladores utilizar su lenguaje preferido. Algunos de los lenguajes existentes
son los siguientes:
Visual Basic .NET
C#
Microsoft Visual J# .NET
Microsoft JScript .NET
Oberon
Scheme
Perl
Python
COBOL
Haskell
Pascal
ML
Mercury
Eiffel
ADA
SmallTalk
CAML
Microsoft Visual C++
APL
Beneficios del soporte a mltiples lenguajes
Debido a que el Framework soporta mltiples lenguajes de programacin, usted gana una serie de beneficios en su
trabajo:
Los mdulos del cdigo son reusables. Un mdulo de cdigo escrito en un lenguaje puede ser utilizado por cualquier otro
lenguaje.
La librera de objetos es la misma para cualquier lenguaje. Todos los lenguajes utilizan el mismo modelo de objetos, que
es expuesto a travs de la librera de clases base.
CATEDRA DE PROGRAMACION I
33-169
UNIVERSIDAD ABIERTA INTERAMERICANA
La flexibilidad de lenguajes permite elegir el lenguaje justo para cada tarea. Por ejemplo, Perl es la mejor opcin para
expresiones regulares, mientras que COBOL fue la eleccin preferida para las aplicaciones comerciales durante muchos
aos.
Todos los lenguajes que soportan al Framework tienen esencialmente la misma performance. Todos los lenguajes son
compilados al Microsoft intermediate language (MSIL), y todo MSIL es compilado a cdigo nativo en tiempo de ejecucin
por un nico compilador.
CATEDRA DE PROGRAMACION I
34-169
UNIVERSIDAD ABIERTA INTERAMERICANA
El Common Language Runtime
Un mismo runtime para todos los lenguajes .NET
Maneja threads y memoria
Garbage collection
Refuerza la seguridad del cdigo
Elimina los problemas del versionamiento de las DLL
Diferentes versiones de una DLL se ejecutan
simultneamente
Las aplicaciones pueden especificar con que versin
trabajarn
Introduccin
El common language runtime (a veces nombrado como runtime) es el motor en tiempo de ejecucin del Framework. El
runtime provee adems otros servicios que incluyen asegurar la seguridad del cdigo y resolver problemas de
versionamiento de las DLL.
Manejo de hilos y de memoria
El runtime maneja los hilos de la aplicacin, gracias a que provee el aislamiento de memoria de la aplicacin. Cuando los
objetos no son ms usados por la aplicacin, el runtime ejecuta el proceso de "garbage collection", quien libera la
memoria que era utilizada por estos objetos. Esto resuelve el problema de memory leaks que tenan las aplicaciones que
no liberaban los recursos.
Seguridad del cdigo
El runtime asegura que las aplicaciones sean seguras y se ejecuten adecuadamente.
El runtime provee type safety, lo cual asegura:
No existen operaciones de casting no controladas.
No existen variables no inicializadas.
No existen ndices out-of-bounds.
El runtime adems provee control de errores para las aplicaciones.
Versionamiento de DLL
Anteriormente al Framework, las aplicaciones compartan DLL. Si una aplicacin necesitaba una nueva versin de una
DLL, seguramente actualizaba la DLL durante su instalacin. Y como resultado de esto la otra aplicacin dejaba de
funcionar. Este problema est resuelto por el Framework, el cual permite diferentes versiones de la misma DLL, y
asegura que la aplicacin trabaje con la versin correcta.
CATEDRA DE PROGRAMACION I
35-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Componentes del CLR
.NET Framework Class Library Support
Thread Support
COM Marshaler
Type Checker
Exception Manager
Security Engine
Debug Engine
MSIL to Native
Compilers
Code
Manager
Garbage
Collector
Class Loader
Introduccin
Debido a que el runtime forma parte del desarrollo de aplicaciones mediante Microsoft Visual Studio .NET 2003, es
importante estar familiarizado con los componentes internos.
Componentes del runtime
El runtime se conoce como un entorno manejado, en el cual los servicios tales como manejo de memoria y seguridad,
son automticamente provedos.
La siguiente tabla describe algunos de los servicios del runtime
Class loader: administra meta datos. Se encarga adems de cargar las clases en memoria.
MSIL to native compiler: convierte cdigo intermedio (MSIL) a nativo, mediante la compilacin just-in-time (JIT)
Code manager: administra la ejecucin del cdigo.
Garbage collector: provee una administracin automtica de la vida de los objetos. Es escalable y soporta mltiples
procesadores.
Security engine: administra la seguridad basndose en el origen del cdigo y en el usuario que lo ejecuta.
Debug engine: le permite a usted hacer el debug y el tracing de sus aplicaciones.
Type checker: no permite operaciones de casting invlidas, al tiempo que no permite variables no inicializadas. Verifica
adems el cdigo MSIL para garantizar que sea vlido.
Exception manager: provee un control de errores estructurado, el cual se integra con Windows (SEH)
Thread support: expone clases e interfaces para la programacin multi-hilos.
COM marchaler: provee una interface a COM.
.NET Framework class library: integra cdigo con el runtime.
CATEDRA DE PROGRAMACION I
36-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Compilacin y ejecucin
[Link]
Qu lenguaje?
Cdigo C#
Compilador C#
Cdigo Visual Basic
.NET
Compilador Visual
Basic .NET
M
HT
L
Compilador JIT
MSIL
Runtime
Cdigo
Nativo
Introduccin
Cada lenguaje tiene su propio compilador que compila el cdigo a cdigo intermedio MSIL. El runtime transforma el
cdigo intermedio en cdigo nativo y ejecuta la aplicacin.
Compilacin del lenguaje
En la anterior ilustracin, el navegador Web realiza un pedido de una pgina al servidor, el cual est ejecutando Internet
Information Services (IIS). La pgina devuelta, [Link], es compilada con el compilador del lenguaje apropiado,
segn el lenguaje utilizado para la creacin de la pgina. Independientemente del compilador y lenguaje utilizado, la
aplicacin es compilada al cdigo intermedio MSIL.
Compilacin JIT
El cdigo intermedio es compilado luego a travs del proceso just-in-time, a cdigo nativo. De esta forma no es
necesaria una nueva compilacin cuando se vuelva a ejecutar la pgina.
Ejecucin de la aplicacin
Luego de que la aplicacin es compilada, el runtime la ejecuta en el servidor Web y genera HTML y script, lo que
devuelve al cliente.
CATEDRA DE PROGRAMACION I
37-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Que son los Namespaces?
Grupos de clases relacionadas entre si
Agrupamiento lgico, no fsico.
Los Namespaces son jerrquicos
Using C#
Using en C#
Using [Link]
Introduccin
La librera de clases, es una librera orientada a objetos y est compuesta por namespaces. La librera es una coleccin
de tipos reusable (clases, estructuras, enumeraciones, delegates, interfaces) que reduce el tiempo de desarrollo e
incrementa el soporte a mltiple lenguajes.
Definicin
Los namespaces proveen una agrupacin lgica de clases que puede ser utilizada por todos los lenguajes. Cada grupo
contiene un conjunto de tipos que puede ser utilizado en su aplicacin. Adems estn ordenados jerrquicamente, lo
cual reduce la posibilidad de conflictos e incrementa la reutilizacin del cdigo.
Utilizando namespaces
Para poder utilizar un namespace, puede hacerlo a travs de la palabra Imports, o puede escribir el nombre completo de
la clase.
CATEDRA DE PROGRAMACION I
38-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Creacin de un componente
Que son clases y componentes
Creando una clase
Usando componentes [Link]
Introduccin
En esta leccin, se introducir el concepto de clases y componentes. Entonces usted podr crear un componente
utilizando C# y aprender cmo ese componente puede ser utilizado desde otras aplicaciones.
Objetivos
Luego de completar esta leccin, usted estar en condiciones de:
Distinguir la diferencia entre clase y componente.
Crear una clase.
Usar un componente desde otra aplicacin.
CATEDRA DE PROGRAMACION I
39-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Qu son clases y componentes?
Las clases son grupos de cdigo sin interface
Los componentes son clases compiladas
Los componentes estn compilados como archivos DLL
Los componentes se utilizan para compartir cdigo
entre las aplicaciones
Componente
Componente
Aplicacin
Aplicacin
Web
Web
Aplicacin
Aplicacin
Web
Web
Aplicacin
Aplicacin
Windows
Windows
Introduccin
Cuando se desarrolla utilizando un lenguaje orientado a un objeto, siempre existe el concepto de clases y componentes.
Por ejemplo, el Framework est compuesto por muchas clases.
Definicin de clase
Las clases son un grupo de cdigo que no tiene interfase de usuario. Proveen funcionalidad a la aplicacin y pueden ser
compartidas entre las diferentes partes de la aplicacin. Las clases pueden tener propiedades y mtodos. Mientras que
las propiedades son caractersticas de las clases, los mtodos representan una accin que la clase puede realizar. Los
objetos son las instancias de las clases.
Definicin de componente
Los componentes son clases que estn compiladas dentro de una DLL. Debido a que el componente es un archivo en s
mismo, puede ser compartido entre diferentes aplicaciones. Usted puede utilizar el componente de una aplicacin
referenciando a su namespace y su nombre.
CATEDRA DE PROGRAMACION I
40-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Creando una clase
Crear un projecto de tipo Librera de Clases
Visual Studio .NET crea un namespace por default
Crear los mtodos de la clase
public
public class
class Shipping
Shipping
{{
public
public Single
Single ShippingCost([Link]
ShippingCost([Link] sngPrice)
sngPrice)
{{
//
// ...
...
return;
return;
}}
}}
Introduccin
Una parte fundamental del desarrollo es la creacin y utilizacin de clases.
Definicin
Una clase es un template de un objeto, donde definimos atributos para almacenar datos y operaciones para manipular
esos datos.
Creando una nueva clase
Para crear una nueva clase
1. Inicie [Link] 2003.
2. Cree un nuevo proyecto del tipo Librera de clases.
3. Escriba el nombre de la clase en el cuadro Name. ([Link] crear el namespace por defecto con el mismo nombre del
proyecto para cada clase dentro del mismo)
4. Luego de haber creado la clase usted puede agregar mtodos y propiedades a la misma.
5. Compile el proyecto para crear un componente.
CATEDRA DE PROGRAMACION I
41-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Usando componentes en [Link]
Agregar la referencia a la DLL
Instanciar la clase
[Link]
[Link] xx == new
new [Link]();
[Link]();
[Link]
namespace CompanyA {
public class Shipping {
public Single ShippingCost()
{}
}
}
Usar el objeto
sngShipping
sngShipping == [Link](sngPrice);
[Link](sngPrice);
Introduccin
Las clases que son creadas dentro de un componente estn accesibles a otros programas. Para poder utilizarlas desde
estos programas primero se deber realizar una referencia al componente (DLL). Entonces, para acceder a los mtodos
dentro de una clase usted debe instanciar esa clase en un objeto, indicando el nombre del namespace y el de la clase.
Referenciando una DLL
1. Abra un proyecto del tipo Web Application desde [Link] 2003.
2. Haga click derecho sobre el Solution Explorer y elija Add Reference.
3. Seleccione un namespace de la solapa de clases .NET y haga click en OK.
Instanciando una clase
Luego de generar la referencia al componente, para instanciar la clase en un objeto, slo es necesario escribir una lnea
de cdigo:
[Link] x = new [Link]();
o tambin
using NombreNamespace;
NombreClase x = new NombreClase();
Para utilizar el objeto slo se debe indicar el mtodo o la propiedad correspondiente
sngShipping = [Link](sngPrice);
CATEDRA DE PROGRAMACION I
42-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Recursos
Recursos .NET
Introduccin
En esta leccin, aprender acerca de algunos recursos que estn disponibles sobre el desarrollo de aplicaciones con
Visual Studio .NET 2003 y .NET Framework
Objetivo
Luego de completar esta leccin, usted estar en condiciones de buscar informacin acerca del desarrollo de
aplicaciones .NET
Recursos .NET
Documentacin del .NET Framework
Ejemplos de cdigo
Tutoriales Quick Start
Comunidades en lnea
Sitios Web
[Link]
[Link]
[Link]
[Link]
[Link]
Recursos
Mientras desarrolla aplicaciones deber encontrar soluciones a sus problemas. La siguiente lista de recursos intenta
darle un punto de partida para que pueda encontrar esa informacin y de esta forma responder a sus preguntas:
La documentacin oficial del Framework, que se encuentra en la MSDN Library.
Comunidades en lnea
Sitios Web
CATEDRA DE PROGRAMACION I
43-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Controles en [Link]
Introduccin a los formularios:
Un formulario de Visual Basic. NET no es otra cosa que una clase que hereda de la clase System.
[Link]; no tiene nada de especial si las comparamos con otras clases .NET
El diseador de formularios:
El diseador de Visual [Link] es un sofisticado generador de cdigo: cuando defina una propiedad de un
control en la ventana propiedades; estar creando una o ms instrucciones en Visual Basic que asignaran un
valor a dicha propiedad una vez que se genere el formulario.
Nuevas caractersticas del diseador:
El diseador de formularios de Visual [Link] es prcticamente idntico al de Visual Basic 6 pero con
algunas interesantes caractersticas nuevas. Por ejemplo:
Puede bloquear cada control (para que no pueda moverlo o modificar su tamaote forma accidental con el
ratn) sin mas que asignar el valor trae a su propiedad locked en la ventana propiedades. Visual Basic 6 solo le
permita bloquear todos los controles o ninguno.
La jerarqua de clases de Windows Forms:
Las clases contenidas en el espacio de nombres [Link] tienen una jerarqua realmente
compleja, en la raz de la cual se encuentra la clase [Link], que representa un
objeto que se puede introducir en un contenedor.
(Pg. 529, Fig. 16-3 Vista parcial de la jerarqua de clases de Windows forms)
El objeto Form:
El objeto Form deriva del objeto ContainerControl que, a su vez, deriva de ScrollableControl y, en ltimo lugar,
de Control, por ella, trabajar con formularios resulta similar a trabajar con un control.
Naturalmente, los formularios son ms complicados y ricos en funcionalidad que los controles.
Mens:
El diseador de Windows Form permite ahora crear la estructura de mens de sus aplicaciones utilizando una
tcnica bastante ms directa y sencilla, mediante un editor WYSIWYG. Ahora podr incluso mover elementos
y submens completos
utilizando la tcnica arrastrar y soltar.
Formularios MDI
El espacio de nombres Windows Forms no dispone de una clase independiente para los formularios MDI: un
CATEDRA DE PROGRAMACION I
44-169
UNIVERSIDAD ABIERTA INTERAMERICANA
formulario MDI no es otra cosa mas que un objeto Form regular cuya propiedad IsMdiContainer se ha definido
como trae.
La nica limitacin reseable de los contenedores MDI es que su contenido no es desplazable. Si intenta
asignar el valor Trae a la propiedad IsMdiContainer, la propiedad AutoScroll se reconfigurara como False y
viceversa.
Herencia de Formularios:
Como los formularios, son, simplemente, objetos, no deber sorprenderse si le digo que podr heredar un
formulario de otro formulario. La herencia de formularios no es diferente de la herencia normal.
Ventajas de la herencia de formularios:
Heredar un nuevo formulario de un formulario base significa la reutilizacin de la interfaz de usuario, del
cdigo y de la funcionalidad existente en el formulario base.
Como atrapar y reemplazar sucesos:
Como las clases heredadas pueden acceder a todos los elementos Protected de la clase base al formulario
DialogInheritedForm podr atrapar secesos provocados por los controles definidos en la clase DialogBase.
Form utiliza sintaxis estndar.
Limitarse a atrapar un suceso emitido por un control contenido en el formulario base no suele ser suficiente en
la mayora de los casos.
Necesita reemplazar comportamiento predeterminado de la clase base.
Tcnicas avanzadas de formularios:
En esta describir algunas tcnicas avanzadas de formularios, tales como la subclasificacin, la localizacin y la
personalizacin de formularios.
Subclasificacin de ventana:
La subclasificacin permita interceptar y procesar mensajes que van desde Windows a su formulario o a sus
controles.
La clases de Windows forms son tan potentes que rara vez tendr que recurrir a la subclasificacin sea ahora
menos importante que en las versiones anteriores de Visual Basic.
La propiedad Opacity:
La propiedad Opacity le permitir aplicar un nivel de transparencia a todo el formulario, incluyendo su barra de
ttulos y bordes. Es un valor Double perteneciente al rango 0 a 1, por lo que podr modificar el nivel de
opacidad con una gran precisin.
CATEDRA DE PROGRAMACION I
45-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Formularios Localizados:
Los diseadores de Windows han utilizado tradicionalmente archivos de recursos para crear aplicaciones
multilenguajes. El problema relacionado con los archivos de recurso es que no se prestan demasiado bien al
Desarrollo Rpido de Aplicaciones (RAD).
Este problema se ha resuelto en el diseador de Visual Studio .NET de una forma simple, elegante y eficaz.
El objeto Clipboard:
El objeto Clipboard le permitir copiar datos en el porta papeles de Windows y, a continuacin, pegarlos en
cualquier otro lugar.
El objeto Clipboard permite el empleo de varios formatos, cada uno de ellos identificado por una constante de
cadena expuesta por la clase DataFormats.
Tambin existe un formato CommaSeparatedValue que le permitir importar datos en formato CSV desde hojas
de clculo y otras muchas aplicaciones.
El objeto Application:
El objeto [Link]. Application expone algunas propiedades, mtodos y sucesos de gran inters.
Todos los miembros de esta clase son compartidos y no pueden crear una instancia del objeto Application. Este
objeto sustituye al objeto App existente en Visual Basic 6, aunque el primero supera ampliamente al segundo en
posibilidad.
El objeto Cursor:
La clase cursor tiene un doble propsito: Sus propiedades y mtodos estticos le permitirn controlar varias
caractersticas del cursor del ratn. Su mtodo constructor le permitir crear un nuevo cursor del ratn, que
podr asignar posteriormente a la propiedad esttica [Link] o a la propiedad Cursor de cualquier
control.
La clase Sendkey:
Esta clase sustituye al comando del mismo nombre que se utilizaba en Visual Basic 6.
Con su mtodo compartido Send podr enviar una o ms pulsaciones de tecla a la aplicacin activa.
La clase Help:
Esta clase contiene el motor HTML Help 1.0 y le permitir mostrar el ndice, la pagina de bsqueda o un tema
especifico en un archivo HTML utilizando el formato de ayuda HTML, en un archivo de ayuda compilado
(.chm) generado con el HTML Help Workshop, o utilizando alguna herramienta de terceros
Proveedores de controles:
La arquitectura de Windows Forms es bastante extensible. Por ejemplo, puede crear los denominados
proveedores de controles, que agregan nuevas propiedades a todos lo controles contenidos en el formulario. El
espacio de nombres de Windows forms incluye 3 tipos: ToolTip, ErrorProvider y HelpProvider.
El Control ToolTip permite que cualquier control contenido en un formulario muestre un ToolTip (mensaje de
CATEDRA DE PROGRAMACION I
46-169
UNIVERSIDAD ABIERTA INTERAMERICANA
ayuda) cuando el usario pase por encima.
El control ErrorProvider le permitir desarrollar aplicaciones de Windows forms utilizando un mtodo de
validacin que ahora resulta familiar a todos los usuarios que pasan parte de su tiempo en internet.
Esta tcnica de validacin permite que los usuarios finales pasen de un campo a otro y los rellenen en el orden
que prefieran.
El control HelpProvider funciona como un puente entre su programa y la clase Help para que pueda mostrar
sencillos mensajes de ayuda o paginas de ayuda mas complejas cuando el usuario pulse la tecla F1 y el foco se
encuentre sobre el control contenido en su formulario.
El control Splitter:
El control Splitter facilita al mximo la creacin de barras de divisin, es decir, aquellos divisores que puede
utilizar para dividir el espacio contenido en el formulario entre los distintos controles.
El control EmageList:
Podr solicitar un control EmageList con cualquier control que permita la propiedad Image, no solo con
controles comunes de Windows tale como TreeView o ListView.
Una diferencia importante con las versiones anteriores en que no puede asignar una tecla a una imagen y que
solo puede hacer referencia a una imagen utilizando su ndice.
El control ListView:
El nuevo v expone la mayora de las propiedades y mtodos que ya tenia en Visual Basic 6 y solo deber tener
en cuenta algunos nombres que han cambiado. La ventana propiedades le permitir definir todos los objetos
ColumnHeader que desee definir. Otra gran mejora es la capacidad para modificarla anchura de las columnas
en tiempo de diseo.
CATEDRA DE PROGRAMACION I
47-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Introduccin a Archivos
2. Archivos
Un archivo se encuentra compuesto por un conjunto de registros y estos por un conjunto de campos que es a
donde se guardan los datos.
2.1 Campos de un registro
Los campos de un registro son las unidades lgicas donde se almacenan los datos de un registro. Sus
caractersticas son el nombre, tipo y tamao.
Los tipos de datos y su tamao se vern restringidos por el lenguaje que se utilice. No todo s los
lenguajes soportan los mismos tipos de datos y los rangos de los mismos pueden variar
Un conjunto de campos componen un registro, como por ejemplo la tabla anterior donde los 4 datos
tomados como una unidad componen el registro.
Un conjunto de registros componen un archivo.
.Existen bsicamente dos tipos de archivos:
Secuenciales
Indexados
Explicaremos a continuacin cada uno de ellos.
Archivos Secuenciales
Tienen como caracterstica principal que su organizacin es secuencial y su forma de acceso a los distintos
registros es nicamente secuencial. Es decir, para acceder al registro 50 debo haber pasado por los 49
anteriores.
CATEDRA DE PROGRAMACION I
48-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Estos archivos pueden o no estar ordenados y pueden o no tener registros repetidos o sea varios registros
para una misma cuenta.
Eso se vera en los ejercicios , si queres podemos poner una tablita ejemplo
Tomaremos como notacin la siguiente y colocaremos debajo de cada campo el tipo y tamao:
S/R
sin repetidos
C/R
con repetidos
ordenacin
Nrocta
C/R
razonsocial
N(5)
A( 25 )
fecha
F( 6 )
comentarios
memo( 200 )
El ordenamiento del archivo puede ser realizado por ms de un campo, por ejemplo podemos decir que el
archivo esta ordenado por nrocta y dentro de el por fecha.
Archivos Indexados
Los archivos indexados tienen como particularidad el acceso restringido, se necesita clave para acceder y
estn ordenados por ellas. Si bien la organizacin fsica de los registros es de acuerdo al orden de
grabacin su organizacin lgica esta dada por la clave.
La organizacin de un archivo indexado es indexada y segn el lenguaje las formas de acceso pueden ser
secuencial, random o al azar y dinmica.
Secuencial es la lectura de un registro a posteriori del anterior con la nica seguridad de que el archivo
se encuentra ordenado por la clave de acceso definida.
El acceso random es el que se realiza en forma directa y nica a un registro en particular debindose
conocer el valor completo de la clave de acceso. Si el registro est compuesto por mas de un campo se
debern conocer todos los valores de esos campos que componen la clave
Dinmica es la forma de acceso a un registro en particular y de all permite leer el archivo en forma
secuencial hasta una condicin dada. En este caso no es necesario conocer la clave completa. Si esta se
encuentra compuesta por mas de un campo y existe peso de orden entre ellos ser necesario que
conozcamos aquellos de mayor peso. No podemos conocer los de menor peso y desconocer los de mayor
peso dentro de la clave compuesta por mas de un campo , se encuentran ordenadas , por ejemplo el
archivo notas de un alumno estara ordenada por legajo y dentro de los legajos ordenados por materias ,
entonces yo no puedo querer ingresar a una materia si antes no se de que alumno se trata
Este ejemplo es una clave compuesta por dos campos que explica en parte lo anteriormente explicado
patent
e
nroinfraccio
n
tipoinfraccio
n
monto
CATEDRA DE PROGRAMACION I
49-169
UNIVERSIDAD ABIERTA INTERAMERICANA
En este caso de un archivo de infracciones, la clave esta compuesta por la patente del automvil y como
esta puede estar repetida por varias multas hay que agregarle el campo nroinfraccion para lograr que
ese valor sea nico.
Este archivo estar lgicamente ordenado por patente y dentro de ella por nro de infraccin.
Un archivo indexado puede tener varias claves de acceso definidas a la vez, eso depender del lenguaje a
utilizar.
Podemos decir que un archivo indexado esta compuesto por la tabla base que es donde se encuentran los
registros propiamente dichos y distintas tablas ndices asociadas para su ms rpido y fcil acceso.
CATEDRA DE PROGRAMACION I
50-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Archivos
Todo lo referido a E/S se maneja desde la clase [Link] del marco .NET y esta basado en el concepto de
streams
Un streams es un conjunto de bytes , en el cual podemos escribir,leer, situarnos dentro de una posicin
determinada y mucho mas siempre dependiendo de la capacidad del dispositivo en el que estemos trabajando.
Los archivos pertenecen a la clase FileStream y podemos reducir sus operaciones como
Crear un archivo o abrir uno ya existente
Leer o escribir datos en un archivo
Cerrar el archivo
Lo primero que debemos hacer es crear un objeto de tipo FileStream asociado a un archivo en particular , el
cdigo podra ser :
Dim archivo as FileStream (ruta , modo apertura)
Dim archivo as FileStream ( ruta . modo apertura , acceso )
Dim archivo as FileStream ( ruta . modo apertura , acceso , sharing )
Donde
Ruta
Modo apertura
Acceso
Sharing
directorio donde se desea guardar el archivo
crearse,abrirse,crearse si no existe, abrirse para agregar datos , etc
leer,escribir o ambas
modo de bloqueo de Windows
Veamos ejemplos
Si el archivo ya existe y queremos leer o escribir
Dim archivo as FileStream([Link],[Link])
Si deseo abrir un archivo y no existe lo crea
Dim archivo as FileStream([Link],[Link])
Si deseo abrir el archivo para leer ( debe existir el archivo)
Dim archivo as Filestream([Link],[Link],[Link])
Si deseo crear un archivo y escribirlo ( si exista lo pisa )
Dim archivo as FileStream([Link],[Link],[Link])
Si deseo crear un archivo y escribirlo ( si exista lo pisa ) y permite que potro proceso escriba y lea de el
CATEDRA DE PROGRAMACION I
51-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Dim archivo as FileStream ([Link],[Link],[Link],[Link])
Resumamos un poco
Modos de apertura de un archivo
Append
Create
createNew
open
openOrCreate
Truncate
si no existe lo [Link] existe lo abre y se sita al final del mismo
crea un archivo nuevo .si exista lo pisa
crea un archivo .si existe uno con igual nombre enva una
excepcin
abre un archivo existente,si no existe enva una excepcin
abre el archivo y si no existe lo crea
abre un archivo existente y lo deja en cero bytes
Modos de acceso a un archivo
Read
Write
ReadWrite
FileMode.
FileAccess.
permite leer datos de un archivo
permite escribir datos en un archivo
permite leer y escribir datos en un archivo
Archivos de texto
Podemos tener bsicamente tres tipos de archivos de texto
Archivos con texto , visible desde un editor de Windows
Archivos con datos binarios
Archivos con el estado de un objeto guardado
Para trabajar con archivo de texto puro utilizaremos Streamreader y StreamWriter
Hay dos formas de crear este objeto
Dim reader as new streanReader(stream base)
Dim reader as new streamreader(stream base, codificacion)
Entonces cuando queremos leer un archivo deberamos
Dim archivo as new FileStream([Link],[Link]) , creamos el filestream
Dim reader as new streamreader(archivo) , creamos el streamreader para leerlo
Podriamos abreviar mediante
Dim archivo as new streamreader([Link])
Los mtodos principales d Este objeto StreamReader sern
CATEDRA DE PROGRAMACION I
52-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Read
lee el prximo carcter disponible a partir de la posicin actual y avanza
ReadBlock lee un bloque de caracteres y lo almacena en un vector de chars
Readline
lee una lnea del archivo
ReadToEnd lee el contenido de todo el archivo y lo guarda en un string
Peek
obtiene el valor del prximo carcter disponible pero no avanza
Close
cierra el stream liberando recursos y referencias al archivo
Veamos un ejemplo de lectura por lnea de un archivo
Dim archivo as New StreamReader ([Link])
Dim lnea as string
lnea = [Link]
Do while not lnea is nothing
lnea = [Link]
Loop
[Link]( )
Podriamos escribir lo mismo utilizando en el while Peek
Dim archivo as New StreamReader ([Link])
Dim lnea as string
lnea = [Link]
Do while not [Link] = -1
lnea = [Link]
Loop
[Link]( )
Si por ejemplo deseramos leer todo el archivo de una sola vez
Dim archivo as New StreamReader ([Link])
Dim contenido as string
contenido = [Link]
[Link]( )
Para escribir un archivo de texto deberamos hacer lo siguiente siguiendo el mismo razonamiento
Dim writer as New StreamWriter([Link])
Recordar que si existe el archivo perderemos el contenido actual
Mtodos del StreamWriter
Write
Writeline
Flush
Close
escribe una cadena de texto en el archivo
escribe una cadena y le agrega un salto de fin de lnea
devuelve el contenido del buffer del stream al archivo
realiza cualquier escritura pendiente sobre el archivo (flush) y lo cierra
CATEDRA DE PROGRAMACION I
53-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Ejemplo de escribir 100 nmeros en un archivo
Dim archivo as new streamwriter([Link])
Dim i as integer
For i = 1 to 100
[Link] ( [Link]) recordar que hay que pasar de integer a string
Next
[Link]
Archivos binarios
Deberemos utilizar otras clases para estos tipos de archivos que no guardan texto plano legible , sino cdigo
binario.
Estas clases sern BinaryReader y BinaryWriter
Para escribir archivos binarios deberemos obligatoriamente crear previamente un FileStream
Dim archivo as New Filestream ([Link], [Link])
Dim writer as New BinaryWriter(archivo)
Los mtodos ms comunes de esta clase sern
Write
Flush
Seek
Close
guarda una variable en el archivo
vuelca en el archivo cualquiera escritura pendiente
se sita en una posicin particular dentro del archivo
cierra el binarywriter,el filestream y libera recursos
Para leer un archivo binario es similar y tiene las mismas restricciones
Dim archivo as New Filestream ([Link], [Link])
Dim reader as New BinaryReader(archivo)
Los mtodos ms comunes de esta clase sern
Peekchar
consulta el prximo carcter disponible pero no avanza el cursor
Read
lee un bloque de bytes del archivo
ReadBoolean
lee una variable booleana
ReadByte,ReadBytes
lee un byte o un bloque de bytes
ReadChar,ReadChars
lee un carcter o un bloque de carcter
ReadSingle
lee una variable single
ReadDecimal
lee una variable decimal
Close
cierra el BinaryWritery el Filestream
CATEDRA DE PROGRAMACION I
54-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Ejercicio de corte de control
Dado los siguientes archivos generar el listado deseado
Archivo inscriptos ordenado por universidad, facultad y carrera
Cdigo de universidad
Cdigo de facultad
Cdigo de carrera
legajo
Archivo universidades son 10 registros
Cdigo de universidad
nombre
Archivo facultades, son 50 facultades
Cdigo de facultad
nombre
Archivo carreras son 100 registros
Cdigo de carrera
nombre
Nota: el cdigo de universidad es de tipo string de 3 posiciones, el resto de los cdigos son numricos
Listado deseado
Universidad Abierta Interamericana
Facultad de tecnologa
Sistemas
Matemticas
Total tecnologa
2500 alumnos
200 alumnos
2800 alumnos
Facultad de medicina
Medicina
Enfermera
Kinesiologa
Total medicina
1200 alumnos
350 alumnos
80 alumnos
1630 alumnos
Total UAI
4430 alumnos
CATEDRA DE PROGRAMACION I
55-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Ejercicio de corte de control 2
Dados los siguientes archivos generar el siguiente listado
Una empresa desea realizar una proyeccin a futuro de sus saldos bancarios.
Para ello posee un archivo saldos con los 10 saldos bancarios a principio del mes a procesar
Archivo saldos, son 10 registros
Nro de cuenta bancaria
saldo
Tambin se posee un archivo de clearing
Banco emisor
Banco receptor
clearing
As mismo posee un archivo movimientos donde tiene todos los movimientos que tendr en el mes a procesar,
ordenado por da.
Este archivo posee 3 tipos de movimientos, cheques emitidos (CHE), cheques a recibir (CHR) y efectivo a
recibir (EFE) en este ultimo caso el campo emisor estar en blanco
da
Tipo de movimiento
Banco emisor
Monto
Se desea saber entonces el saldo diario de cada cuenta considerando que:
1. Los cheques emitidos se descontaran de la cuenta correspondiente
2. Los cheques a recibir se depositaran en la cuenta de menos saldo en ese momento y en caso de dos
saldos iguales en aquella que tenga menos tiempo de clearing ( la acreditacin se hace sobre el da de
deposito)
3. El efectivo a recibir se depositara en la cuenta de menor saldo en ese momento
De este ejercicio se harn dos versiones, una utilizando vectores y otra matrices
Cta1
1
2
3
4
.
.
.
31
cta2
cta3
CATEDRA DE PROGRAMACION I
cta10
56-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Ejercicio de corte de control nro 3
Una empresa automotriz recibe los pedidos de sus concesionarias de los distintos modelos que fabrica
Archivo pedidos, ordenado por nro de modelo viene varios registros para cada modelo
Nro de modelo
Nro de concesionaria
Cantidad pedida
La empresa tiene los siguientes archivos
Archivo stock de modelos, son 40 modelos
Nro de modelo
descripcin
Stock actual
Archivo stock de piezas son 200 tipos de pieza
Nro de pieza
descripcin
Stock actual
Archivo composicin, contiene la cantidad de cada pieza que utiliza cada modelo, algunas piezas pueden
ser compartidas por ms de un modelo
Nro de modelo
Nro de pieza
Cantidad a usar
Se desea saber
Modelo
1
2
stock
Inicial
100
150
cantidad
pedida
80
200
Pieza stock inicial stock final
stock
final
20
0
a fabricar
0
30
se adeudan
0
20
mnima cantidad a comprar para fabricar
La cantidad de piezas a comprar deber ser la mnima posible para poder fabricar los
modelos adeudados, sin stockearse de ms.
Un modelo se fabrica completo o se descarta, no se pueden dejar modelos por
terminar por falta de piezas, CATEDRA
ya que estas
son usadas por otros modelos
DE PROGRAMACION I
57-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Ejercicio de archivos indexados
Se esta realizando un torneo de football y se desean conocer ciertos datos de los equipos participantes
Para ello se cuenta con los siguintes archivos
Equipo , indexado por equipos
equipo
nombre
Partidos , indexado por equipo + nro de partido , donde condicion es L local o V visitante
equipo
Nro de partido
Contrario
referee
Condicion
Goles , indexado por equipo + nro de partido + minuto
equipo
Nro de partido
Minuto ( 0 a 90 )
Nro jugador
Jugadores , indexado por nro jugador
equipo
Nro jugador
Apellido y nombre
Nro de camiseta
Referee , indexado por referee
referee
Apellido y nombre
Equipo
Nombre
Partidos
Jugados
Ganados
Empatados
Perdidos
General
Local
Visitante
Puntos
Cantidad de goles de la delantera
Referee con el que perdi mas partidos
Mayor tiempo de valla invicta
CATEDRA DE PROGRAMACION I
58-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Ejercicio nro 2 de archivos indexados
Una administradora de consorcios tiene los siguientes archivos de los edificios que administra
Historico de expensas liquidadas , indexado por edificio unidad mes
edificio
unidad
mes
Monto liquidado
Historico de expensas cobradas , indexado por edificio unidad mes
edificio
unidad
mes
Monto cobrado
Gastos del mes actual , indexado por edificio proveedor nrofactura
edificio
proveedor
nrofactura
Monto
Composicin del consorcio , indexado por edificio - unidad
edificio
unidad
Porcentaje sobre los gastos
Se desea liquidar las expensas del mes actual a cada edificio , teniendo en cuenta que las mismas son el
resultado del total de gastos que tuvo el edificio en este mes multiplicado por el porcentaje que a cada unidad le
corresponde y se le agregara si tuviese la deuda correspondiente
Edificio
unidad
expensa del mes
deuda
total a pagar
Tambien se desea saber lo siguiente , teniendo en cuenta que los proveedores son los mismos para los distintos
edificios
Proveedor
monto total a pagarle
% sobre el gasto gral del mes
CATEDRA DE PROGRAMACION I
59-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO NRO 1
Objetivo:
Brindar al alumno un primer acercamiento al [Link] mediante temas conocidos como lo son
las operaciones matemticas
Ingresemos al visual Studio 2005
Elijamos crear proyecto
En la siguiente pantalla visual Basic , Windows y coloquemos un nombre al proyecto ,
indicando la ubicacin donde queremos guardar dicho proyecto .
Al dar aceptar entraremos en el IDE de .Net , donde debemos tener a la vista o en solapas a
cada lado de la pantalla lo siguiente , para poder trabajar
Cuadro de herramientas
Explorador de proyectos
Propiedades
De no estar las agregaremos desde el men Ver.
Tendremos tambin a la vista el primer Form donde trabajar , iremos al cuadro de
herramientas y seleccionaremos los siguientes objetos que colocaremos dentro de este
formulario 3 textbox, 3 label y 5 buttons
Para esto podemos seleccionarlo y arrastrarlo al form o hacer doble click sobre el y
automticamente se agregara en el form.
Realizaremos el diseo segn la pantalla siguiente y cambiaremos algunas propiedades de los
controles
CATEDRA DE PROGRAMACION I
60-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Las propiedades a modificar sern
controles
Form1
Label1
Label2
Label3
Textbox1
Textbox2
Textbox3
Button1
Button2
Button3
Button4
Button5
text
Calculadora
simple
1er operador
2do operador
Resultado
Suma
Resta
Producto
Cociente
salir
Nombre
frmcalculadora
Lblop1
Lblop2
Lblrta
Txtop1
Txtop2
Txtrta
Btnsuma
Btnresta
Btnprod
Btncoc
Btnsalir
Podremos modificar algunas otras propiedades como
Backcolor , size ( siempre y cuando locked sea false),autosize , etc.
( jueguen e investiguen , de paso les va a ir sirviendo para el TP nro 2)
Para igualar los tamaos de los controles los seleccionaremos , iremos a formato , igualar
tamaos y los dejara del tamao del primero seleccionado ( fjense que los puntos alrededor de
este objeto estn blancos mientras en los otros objetos seleccionados estn negros); all mismo
podemos alinear , dar espacios , centrar , etctera dichos controles.
Muy bien , pasemos al cdigo
CATEDRA DE PROGRAMACION I
61-169
UNIVERSIDAD ABIERTA INTERAMERICANA
en cada botn escribiremos
en resta
[Link] = [Link] - [Link]
en producto
[Link] = [Link] * [Link]
en cociente
[Link] = [Link] / [Link]
en suma
[Link] = CDbl([Link]) + CDbl([Link])
fjense que en esta opcin debimos colocar los conversores CDBL o CINT dado que sino en
lugar de sumar , concatenara los datos ingresados , ya que presupone que son dos strings, esto
es lo que en POO se conoce con el nombre de polimorfismo
existen otros conversores , los que quedan como tarea de investigacin
en el botn salir codificamos [Link]
Como hacer
Para modificar el tamao de algunos controles
Por defecto algunos controles solo tienen activados algunos de sus manejadores , mientras que los otros estan
atenuados.
Esto se debe a la propiedad autosize que esta por defecto en True.
Para modificar el tamao se debe modificar la propiedad size , width y height
Para modificar el texto dentro de un label
Se modifica la propiedad text
Como guardar el proyecto
Es conveniente guardar peridicamente el trabajo , para eso ir a archivos , guardar todo , si se agreo algo nuevo
VB pedira un nombre para esos elemntos nuevos y su ubicacin
Que es un evento y como funciona o se puede modificar
CATEDRA DE PROGRAMACION I
62-169
UNIVERSIDAD ABIERTA INTERAMERICANA
La mayora de los controles responden ante distintos eventos , cada uno de ellos tiene un evento predeterminado
, que es el que suele ocurrir mas frecuentemente , el programador puede modificar esto al programar
Para declarar dos variables del mismo tipo de una vez
[Link] posibilita la siguiente declaracion de dos variables de tipo entero
Dim intvar1 , intvar2 As integer
Para poner un comentario
A la izquierda de la linea a comentar se coloca rem o `
Que son las soluciones , proyectos , su diferencia
Las soluciones abarcan multiples proyectos y un proyecto contienen las partes que integran la aplicacin , como
los formularios o los modulos de codigo.
Un proyecto es como un archivo qe seala a un grupo de archivos , la solucion sabe que proyectos van juntos .
Fijar u ocultar ventanas del IDE
Para fijar u ocultar debera hacer clic sobre el pin correspondiente de esa ventana
Para buscar codigo escrito en mi proyecto
Ctrl. + F
F3
Ctrl. + H
inicia una busqueda
repite la busqueda
busca y reemplaza
Nombrar una variable
El nombre debe empezar por una letra
El resto del nombre puede contener letras, numeros o caracteres subrayados , no se permiten espacios
puntos u otros signos de puntuacin
El nombre debera ser unico dentro del alcance de la variable
El nombre no puede ser una palabra reservada de VB
Como regla conveniente podemos tener
Si la variable es de un tipo string el prefijo sera str como ejemplo strnombre
Integer
int
intnuemro
Long integer
lng
lngfortuna
Double
dbl
dblradio
Booleano
b
bflag
Normalmente el valor predeterminado para las variables es 0
CATEDRA DE PROGRAMACION I
63-169
UNIVERSIDAD ABIERTA INTERAMERICANA
El tipo de dato universal , es el object
Para cambiar en un formulario o form
Accion
Los bordes
Poner o sacar botones
tamao
posicion
Posicin inicial
colores
Propiedad
Formborderstyle
Maximizebox o minimizebox
Size
Location
Startposition
Backcolor
Ingresar una fecha tipo calendario
Pegue en el form un control datetimepicker
Pegue en el form un control monthcalendar
Cual es la diferencia ?
Para activar un control de tiempo
Pegue en el form un control timer , ojo , este control sera invisible durante la ejecucin
Sirve para tener un temporizador de una accion determinada pag 390
Para activar una barra de control de tiempo
Colocar un control progressbar en el form y deberan fijarse las propiedades maximum, minimum y value. Pag
395
Para colocar una barra de scroll o desplazamiento
Colocar un control Hscrollbar o Vscrollbar en el form y controlar las propiedades maximun, minimun y value
del mismo
Para ver en un label el valor de la posicin donde esta el scroll coloco en el codigo [Link] =
[Link]
Para ver mensajes de texto ante una situacin dada
[Link](mensaje,titulo del mensaje)
[Link](mensaje,titulo del mensaje,[Link])
[Link](mensaje,titulo del mensaje,[Link],asterik)
Que diferencia existe entre ellos ?
CATEDRA DE PROGRAMACION I
64-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO NRO 2
Objetivo:
Realizar ejercitacin en [Link] con elementos conocidos , como lo son los condicionales IF y
SELECT (switch en el lenguaje C ya visto).
Asi mismo se incorporaran los objetos radiobutton , groupbox y checkbox para la
implementacin de estos temas
Nota importante
En este laboratorio tendremos varios formularios , es por eso que para agregar un formulario a
nuestra solucin deberemos ir al explorador de proyecto , pararnos sobre el nombre del
proyecto , botn derecho , agregar, nuevo elemento, Windows form.
En el caso de la pantalla de bienvenida elegir a esta en lugar de Windows forms menu
Ingrese a [Link] , cree un proyecto y realice el siguiente formulario
Agregue los buttons y radiobuttons de acuerdo al siguiente diseo
CATEDRA DE PROGRAMACION I
65-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Las propiedades que modificaremos en los controles sern
control
Form
Button1
Button2
Button3
Label1
Label2
Label3
Textbox1
Textbox2
Textbox3
Radiobutton1
Radiobutton2
Radiobutton3
Radiobutton4
text
Calculadora con radioboton
Con if
Con select
Salir
1er operador
2do operador
Resultado
Suma
Resta
Producto
cociente
Name
frmradiobutton
btnif
btnselect
btnsalir
Lbl1
Lbl2
Lbl3
Txt1
Txt2
txtrta
Optsuma
Optresta
Optprod
optcoc
En el button con if colocaremos el siguiente cdigo
If [Link] = True Then
[Link] = [Link] - [Link]
End If
If [Link] = True Then
If [Link] <> 0 Then
[Link] = [Link] / [Link]
End If
End If
If [Link] = True Then
[Link] = [Link] * [Link]
End If
If [Link] = True Then
[Link] = CDbl([Link]) +
CDbl([Link])
End If
CATEDRA DE PROGRAMACION I
66-169
UNIVERSIDAD ABIERTA INTERAMERICANA
En el botn con select colocaremos el siguiente cdigo
Dim bandera As Integer
If [Link] = True Then
bandera = 2
End If
If [Link] = True Then
If [Link] <> 0 Then
bandera = 4
End If
End If
If [Link] = True Then
bandera = 3
End If
If [Link] = True Then
bandera = 1
End If
Select Case bandera
Case 1
[Link] = CDbl([Link]) +
CDbl([Link])
Case 2
[Link] = [Link] - [Link]
Case 3
[Link] = [Link] * [Link]
Case 4
[Link] = [Link] / [Link]
End Select
A partir de aqu el nombre de los objetos deberan ser deducidos por uds del codigo que sigue al
diseo de los mismos
Muy bien , finalizado este formulario , agregaremos otro a nuestro proyecto con el siguiente
diseo , donde los dos radiobutton se encuentran insertados dentro de respectivos
groupbox , asi podremos tenerlos simultanemente seleccionados y el resultado no lo
mostraremos en un textbox sino en un listbox
Atencion !!! El objeto lst1 no es un textbox agrandado , sino un objeto listbox seleccionado
del cuadro de herramientas
CATEDRA DE PROGRAMACION I
67-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Dentro del button mostrar codificaremos lo siguiente
[Link]()
If [Link] = True Then
[Link]([Link])
[Link] = False
End If
If [Link] = True Then
[Link]([Link])
[Link] = False
End If
por ultimo generaremos otro formulario donde trabajaremos con el control checkbox , este nos
permitira sin necesidad de tener los groupbox , seleccionar varias opciones a la vez
El diseo de este nuevo formulario sera el siguiente
CATEDRA DE PROGRAMACION I
68-169
UNIVERSIDAD ABIERTA INTERAMERICANA
En modo de diseo deben estar en
color ROJO
los controles y propiedades a modificar seran
control
Button1
Button2
Checkbox1
Checkbox2
Label1
Label2
Label3
text
Ejecutar
Salir
1ra eleccin
2da eleccin
name
btnejecutar
btnsalir
Chk1
Chk2
Lbl1
Lbl2
Lbl3
backcolor
Rojo
Rojo
rojo
Escribamos ahora en el botn ejecutar lo siguiente
If [Link] = True And [Link] = False Then
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
End If
If [Link] = False And [Link] = True Then
[Link] = [Link]
[Link] = [Link]
CATEDRA DE PROGRAMACION I
69-169
UNIVERSIDAD ABIERTA INTERAMERICANA
[Link]
End If
If [Link] = True And
[Link]
[Link]
[Link]
End If
= [Link]
[Link] = True
= [Link]
= [Link]
= [Link]
Then
Por ultimo veremos de unir todos estos formularios con un men
Para ellos incorporaremos un formulario de presentacin de tipo splashscreen ( pantalla de
bienvenida en la versin en espaol ) al que le agregaremos un control menustrip donde
codificaremos en cada uno de los tems del menustrip el nombre del formulario que se desea
mostrar
Por ejemplo [Link]
CATEDRA DE PROGRAMACION I
70-169
UNIVERSIDAD ABIERTA INTERAMERICANA
CATEDRA DE PROGRAMACION I
71-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO NRO 3
Objetivo
En esta clase veremos la forma de cargar y operar las estructuras en memoria de tipo arrays uni
y multidimensionales .
Ingresemos a [Link] y generemos un formulario con el siguiente diseo
Los controles a modificar seran
control
Button1
Button2
Listbox1
text
cargar
salir
Name
btnejecutar
btnsalir
Lst1
En el boton cargar codificaremos lo siguiente
Dim dato As Integer
Dim vector(10) As Integer
Dim i As Integer
For i = 1 To 10
dato = InputBox("ingrese un valor")
vector(i) = dato
Next
For i = 1 To 10
CATEDRA DE PROGRAMACION I
72-169
UNIVERSIDAD ABIERTA INTERAMERICANA
[Link](vector(i) & "posicion " & i)
Next
Luego de este formulario , agreguemos otro donde con iguales controles que el anterior que nos
permitira cargar una matriz y listarla
En el boton cargar
Dim mat(3, 4) As Integer
Dim i As Integer
Dim j As Integer
Dim dato As Integer
For i = 1 To 3
For j = 1 To 4
dato = InputBox("")
mat(i, j) = dato
Next
Next
For i = 1 To 3
For j = 1 To 4
[Link](mat(i, j))
Next
Next
Por ultimo genere el formulario splashscreen correspondiente
CATEDRA DE PROGRAMACION I
73-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Realice en este momento el trabajo practico nro 3
Una vez realizado este TP realice el siguiente formulario, en este momento seria conveniente
que ud haya ledo del libro de Balena la pagina 301 a 327 o hacerlo a medida que haga el
formulario para ver que es lo que hacen los mtodos utilizados en los arrays
Escribamos el siguiente cdigo en el botn correspondiente
Para que nuestro vector sea visible en todo nuestro form lo definiremos en el general de la class
Public class form1
Dim dato As Integer
Dim vector(10) As Integer
Dim i As Integer
A continuacin codificaremos los botones
Cargar
[Link]()
For i = 1 To 10
dato = InputBox("ingrese un valor")
vector(i) = dato
Next
For i = 1 To 10
[Link](vector(i) & " en la posicion
Next
" & i)
ordenar
[Link]()
[Link](vector)
For i = 1 To 10
[Link](vector(i) & "
en la posicion
CATEDRA DE PROGRAMACION I
" & i)
74-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Next
copiar
Dim vectordestino(20) As Integer
[Link](vector, 0, vectordestino, 0, 10)
For i = 1 To 10
[Link](vectordestino(i) & " en la posicion
Next
" & i)
Lmites
Dim inferior As Integer
Dim superior As Integer
[Link]()
inferior = LBound(vector)
superior = UBound(vector)
[Link]("el limite inferior es
superior)
" & inferior & "
y el superior es
" &
bsqueda binaria
dim posicion As Integer
posicion = [Link](vector, 9)
[Link]()
[Link]("en la posicin
" & posicion & "
se encuentra el nmero 9")
Como hacer
Form 1
CATEDRA DE PROGRAMACION I
75-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Public Class Form1
Dim dstart As DateTime
Private Sub cmdcomienzo_Click(ByVal sender As [Link], ByVal e As
[Link]) Handles [Link]
dstart = [Link]
[Link] = True
[Link] = False
[Link] = True
End Sub
Private Sub cmdtermino_Click(ByVal sender As [Link], ByVal e As
[Link]) Handles [Link]
[Link] = False
[Link] = True
[Link] = False
End Sub
Private Sub Timer1_Tick(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]
Dim horas As Long, minu As Long, seg As Long
seg = DateDiff([Link], dstart, [Link])
horas = Int(seg / 3600)
seg -= (horas * 3600)
minu = Int(seg / 60)
seg -= (minu * 60)
[Link] = Format(horas, "00") & ":" & Format(minu, "00") & ":" &
Format(seg, "00")
End Sub
End Class
Form 2
CATEDRA DE PROGRAMACION I
76-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Public Class Form2
Private Sub Button2_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]
End Sub
Private Sub Button1_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]
Dim contador As Long
[Link] = 0
[Link] = 100
Do While ([Link] < [Link])
[Link] += 1
'Bucle para simular el delay, esto es mejor hacerlo con hilos
For contador = 1 To 1000000
Next
Loop
End Sub
Private Sub ProgressBar1_Click(ByVal sender As [Link], ByVal e As
[Link]) Handles [Link]
End Sub
End Class
Form 3
CATEDRA DE PROGRAMACION I
77-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Public Class Form3
Private Sub HScrollBar1_Scroll(ByVal sender As [Link], ByVal e As
[Link]) Handles [Link]
[Link] = [Link]
End Sub
Private Sub VScrollBar1_Scroll(ByVal sender As [Link], ByVal e As
[Link]) Handles [Link]
[Link] = [Link]
End Sub
End Class
Form 4
CATEDRA DE PROGRAMACION I
78-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Public Class Form4
Private Sub Button1_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]
[Link]("mensaje", "titulo del mensaje")
End Sub
Private Sub Button2_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]
[Link]("mensaje", "titulo del mensaje", [Link])
End Sub
Private Sub Button3_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]
[Link]("mensaje", "titulo del mensaje", [Link],
[Link])
End Sub
End Class
CATEDRA DE PROGRAMACION I
79-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO NRO 4
Objetivo:
En esta clase veremos las formas de convertir y modificar formatos numricos, de tipo fecha y
cadenas
Hagamos un nuevo formulario , en un nuevo proyecto
realicemos el diseo segn el siguiente formulario
en este formulario veremos como dar formato y convertir valores numricos, para lo cual
codificaremos en el botn ejecutar lo siguiente
Aca definiremos por primera vez una variable del tipo double
Dim auxiliar As Double
Dim auxiliar1 As Double
Dim auxiliar2 As Double
auxiliar = CDbl([Link])
[Link] = [Link]("{0:c}", auxiliar)
auxiliar1 = auxiliar / 100
CATEDRA DE PROGRAMACION I
80-169
UNIVERSIDAD ABIERTA INTERAMERICANA
[Link] = [Link]("{0:N}", auxiliar)
[Link] = [Link]("{0:N4}", auxiliar)
[Link] = [Link]("{0:D8}", [Link](auxiliar))
[Link] = [Link]("{0:f3}", auxiliar)
[Link] = [Link]("{0:E3}", auxiliar)
[Link] = [Link]("{0:p}", auxiliar)
[Link] = [Link]("el valor es {0:c}", auxiliar)
auxiliar2 = auxiliar + 10
[Link] = [Link]("{0:c} {1:c}", auxiliar, auxiliar2)
terminado este formulario realizaremos un segundo formulario donde aprenderemos a tomar el
valor de la fecha y hora del sistema y darle distintos formatos segn sea necesario
En el botn ejecutar escribiremos
[Link] = Now()
[Link] = [Link]("{0:d}", Now())
[Link] = [Link]("{0:D}", Now())
[Link] = [Link]("{0:f}", Now())
[Link] = [Link]("{0:g}", Now())
[Link] = [Link]("{0:G}", Now())
CATEDRA DE PROGRAMACION I
81-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Realicemos un tercer formulario donde manejaremos los strings
Y en el boton ejecutar codificaremos
Dim ok As Boolean
Dim variable As String = [Link]
[Link] = [Link]
If [Link] > 0 Then
[Link] = [Link]([Link])
End If
[Link] = [Link](3, "12345")
[Link] = [Link]()
If [Link]("ABC") Then ok = True
If [Link] < 10 Then
'variable = variable & String.(10, Len(variable), "0")
'FORMA DE HACERLO ELEGANTE
[Link] = [Link](10, "0"c)
End If
[Link] = [Link]([Link], variable)
If ok Then
[Link] = "Si"
Else
[Link] = "No"
End If
Realizar el formulario men ( pantalla de bienvenida ) correspondiente
CATEDRA DE PROGRAMACION I
82-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO NRO 5
Objetivo
En esta clase seguiremos trabajando con el tipo de datos fecha y realizaremos tambien algunas
operaciones con ellas
En el boton ejecutar codificaremos
Dim fecha As DateTime = [Link]
[Link] = [Link]
[Link] = [Link]("{0:d}", fecha)
[Link] = [Link]("{0:D}", fecha)
[Link] = [Link]("{0:f}", fecha)
[Link] = [Link]("{0:g}", fecha)
[Link] = [Link]("{0:G}", fecha)
CATEDRA DE PROGRAMACION I
83-169
UNIVERSIDAD ABIERTA INTERAMERICANA
El codigo a colocar en el boton diferencia seria
'este pasaje se hace para que no tome la hora que entrega el
Datetimepicker
Dim
fecha1
As
DateTime
=
New
DateTime([Link],
[Link], [Link])
Dim
fecha2
As
DateTime
=
New
DateTime([Link],
[Link], [Link])
[Link] = [Link](fecha2).TotalDays
Agregaremos un nuevo formulario
CATEDRA DE PROGRAMACION I
84-169
UNIVERSIDAD ABIERTA INTERAMERICANA
el codigo a colocar en suma seria
'este pasaje se hace para que no tome la hora que entrega el
Datetimepicker
Dim
fecha1
As
DateTime
=
New
DateTime([Link],
[Link], [Link])
[Link]
=
[Link]([Link]).ToString("dd/MM/yyyy")
y el codigo a colocar en resta seria
'este pasaje se hace para que no tome la hora que entrega el
Datetimepicker
Dim
fecha1
As
DateTime
=
New
DateTime([Link],
[Link], [Link])
[Link] = [Link](-1 *
[Link]).ToString("dd/MM/yyyy")
CATEDRA DE PROGRAMACION I
85-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Laboratorio nro 6
Ingresemos a visual Basic .NET y generemos el siguiente formulario
Codificaremos ahora lo siguiente en cada control
atencin!!!!!!!!! No codificar el nro de linea , ques era utilizado a los solos
efectos de explicar que hacemos en cada una de ellas
btnalta
1. Dim archivo As New FileStream("d:\[Link]", [Link])
2. Dim EscritorArchivo As New StreamWriter(archivo)
3. Dim reg As String
4. 'reg = [Link] + ";" + [Link] + ";" + [Link]
5. 'ESTO NO SE PUEDE UTILIZAR PARA MAS DE 3 CAMPOS
6. reg = [Link]("{0};{1};{2}", [Link], [Link], [Link])
7. 'ESTA LINEA SE USARIA PARA CONCATENAR OTROS 3 CAMPOS AL REGISTRO
8. 'reg += [Link](";{0};{1};{2}", [Link], [Link], [Link])
9. [Link](reg)
[Link]()
[Link]()
[Link] = "" ' se puede usar [Link]
[Link] = ""
[Link] = ""
15.
16.
[Link]() ' [Link] = txtleg (Esto funciona en el LOAD)
Listar()
CATEDRA DE PROGRAMACION I
86-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Veamos que hace cada linea
1. Abrimos un archivo de tipo append o sea para agregarle registros
2. Abrimos un stream donde escribir nuestros campos
3. Defino una variable de tipo cadena donde concatenare los campos que ingresan en
cada textbox
6. Concateno los campos
9. Genero el registro con esta variable de tipo cadena
10. Cierro el stream
11. Cierro el archivo
12,13,14 . Limpio los textbox
15. Reubico el cursor en el textbosx que yo quiero
16. Llamo a la funcion listar
Btnbaja
1. Dim archivo As New FileStream("d:\[Link]", [Link])
2. Dim archivoAux As New FileStream("d:\[Link]", [Link])
3. Dim LectorArchivo As New StreamReader(archivo)
4. Dim EscritorArchivoAux As New StreamWriter(archivoAux)
5. Dim VectorRegAux() As String
6. Dim reg As String
7. Dim legajo As String
8. While Not [Link] = -1
9. '";"c <---- la c convierte el caracter entre comillas a tipo CHAR
[Link] = [Link]()
[Link] = [Link](";"c)
[Link] = VectorRegAux(0)
[Link] legajo <> [Link] Then
[Link](reg)
[Link] If
[Link] While
17.'CIERRO ARCHIVOS
[Link]()
[Link]()
[Link]()
[Link]()
22.'PISO EL ARCHIVO AORIGINAL CON EL AUX
[Link]("d:\[Link]")
[Link]("d:\[Link]", "d:\[Link]")
[Link] = "" ' se puede usar [Link]
[Link] = ""
[Link] = ""
[Link]() ' [Link] = txtleg (Esto funciona
en el LOAD)
29. Listar()
CATEDRA DE PROGRAMACION I
87-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Que es lo que estamos haciendo
1. Abrimos un archivo para leerlo
2. Abrimos un archivo para escribir ( recordar que create borra lo
que habia en el archivo
3. Genero el stream de lectura
4. Genero el stream de escritura
5. Defino un vector donde le aplicare la funcion split
6. Genero una variable de tipo cadena
7. Genero una variable de tipo cadena
8. Comienzo el ciclo hasta que la funcion peek me devuelva -1 o sea
EOF
[Link] la linea leida al string
[Link] aplico al string la funcion split
[Link] a la variable la primera posicion de la linea que me
devuelve el split
[Link] esa variable es distinta a la que ingrese en el textbox
[Link] la linea de escritura con los valores de la linea de
lectura
[Link] el si
[Link] el ciclo
[Link] el stream de lectura
[Link] el archivo
[Link] el stream de escritura
[Link] el archivo auxiliar
[Link] el archivo original
[Link] el archivo auxiliar como el original
25,26,27 Limpio las cajas de texto
[Link] posiciono en la caja de texto que yo deseo
[Link] a la funcion listar
Btnmodificar
Dim archivo As New FileStream("d:\[Link]", [Link])
Dim archivoAux As New FileStream("d:\[Link]",
[Link])
Dim LectorArchivo As New StreamReader(archivo)
Dim EscritorArchivoAux As New StreamWriter(archivoAux)
Dim VectorRegAux() As String
Dim reg As String
Dim legajo As String
While Not [Link] = -1
'";"c <---- la c convierte el caracter entre comillas a
tipo CHAR
reg = [Link]()
VectorRegAux = [Link](";"c)
legajo = VectorRegAux(0)
If legajo = [Link] Then
reg = [Link]("{0};{1};{2}", [Link],
[Link], [Link])
End If
[Link](reg)
End While
'CIERRO ARCHIVOS
[Link]()
[Link]()
CATEDRA DE PROGRAMACION I
88-169
UNIVERSIDAD ABIERTA INTERAMERICANA
[Link]()
[Link]()
'PISO EL ARCHIVO AORIGINAL CON EL AUX
[Link]("d:\[Link]")
[Link]("d:\[Link]", "d:\[Link]")
[Link] = "" ' se puede usar [Link]
[Link] = ""
[Link] = ""
[Link]() ' [Link] = txtleg (Esto funciona en
el LOAD)
Listar()
Si vemos estar rutina es muy similar a la de baja
Veamos cual fue la logica empleada
Los archivos secuenciales no se pueden sobre-escribir por lo que debemos crear un archivo
auxiliar
Entonces, en la baja buscaremos dentro de mi archivo el registro a eliminar y mientras no
sea este lo escribiremos en el nuevo archivo, quedando asi al igual [Link]
renombro ese archivo auxiliar como el original.
En la modificacion es algo similar pero lo que varia es que la escritura del nuevo
registro esta fuera del condicional y que cuando encuentro el registro buscado para
modificar dentro del condicional le cambio el contenido a los campos.
Btnsalir
[Link] ( )
listbox evento click
Por ultimo en el
colocaremos el siguiente codigo que me
permitira seleccionar una linea del mismo y que su contenido se ubique en las cajas de
texto correspondiente
If Not [Link] Is Nothing Then
Dim seleccionado As String = [Link]
Dim vectorLista() As String
vectorLista = [Link](","c)
[Link] = vectorLista(0)
[Link] = vectorLista(1)
[Link] = vectorLista(2)
End If
Veremos como leer un archivo, que tiene como campos legajo , apellido y nombre, categora y realizar la carga
de sus datos en un vector para dar el resultado solicitado en el formulario
CATEDRA DE PROGRAMACION I
89-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Codificaremos
Imports [Link]
Y en el botn ejecutar codificaremos
Public Class Form2
Private Sub Button1_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]
Dim archivo As New filestream("d:\[Link]", [Link])
Dim lectorarchivo As New StreamReader(archivo)
Dim vectorregaux() As String
Dim reg As String
Dim legajo As String
Dim apynom As String
Dim categoria As String
Dim vector(6) As Integer
Dim i As Integer
While Not [Link] = -1
reg = [Link]()
vectorregaux = [Link](";"c)
legajo = vectorregaux(0)
apynom = vectorregaux(1)
categoria = vectorregaux(2)
i = Convert.ToInt32(categoria)
vector(i) = vector(i) + 1
End While
'CIERRO ARCHIVO
[Link]()
[Link]()
For i = 1 To 5
[Link](" la categoria " + [Link](i) + " tiene " +
[Link](vector(i)) + " empleados ")
Next
End Sub
End Class
Veamos como hacer el login de un usuario al sistema
Pondremos una pantalla de bienvenida con el men necesario segn el ejercicio y le cambiaremos la propiedad
enabled de las distintas opciones del men a false
CATEDRA DE PROGRAMACION I
90-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Dejando solo la opcin logearse activada
Esta opcin llamara a un formulario de inicio de sesin mediante [Link] donde colocaremos el
usuario a que desea ingresar y su clave correspondiente
En el botn aceptar de este formulario codificaremos lo siguiente
Private Sub OK_Click(ByVal sender As [Link], ByVal e As [Link]) Handles
[Link]
If [Link] = "administrador" And [Link] = "1234" Then
[Link] = True
[Link] = True
End If
[Link]()
End Sub
Este cdigo hace que se activen las otras opciones del men que antes habiamos
desactivado cambiando la propiedad enabled de false a true si el usuario y la contrasea
son correctas
Nota , en este ejemplo se utiliz un solo usuario , esto debe aplicarse sobre un archivo
de posibles usuarios previamente cargado y el que tendr como mnimo inicialmente un
usuario administrador
CATEDRA DE PROGRAMACION I
91-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO NRO 7
Objetivo
Introduccin a algoritmo de corte de control.
Antes de Comenzar
Realice en un archivo un ABM (Altas, Bajas y modificaciones) con los siguientes datos
Carrera
Materia
Referencia: Laboratorio Numero 6
Ingrese en Visual Studio, cree un proyecto y un formulario como se muestra a continuacin.
Dados los siguientes datos que se encuentran en un archivo de texto se desea saber por cada carrera la cantidad
de materias relacionadas. El archivo se encuentra ordenado por carrera.
Carrera
Materia
INGENIERIA EN
SISTEMAS
Programacin I
INGENIERIA EN
Sistemas de
SISTEMAS
Computacin II
INGENIERIA EN
Historia de la Ciencia y
SISTEMAS
de la Tcnica
INGENIERIA EN
SISTEMAS
Clculo Infinitesimal I
INGENIERIA EN
SISTEMAS
Ingls II
INGENIERIA EN
Lenguajes de ltima
SISTEMAS
Generacin
INGENIERIA EN
SISTEMAS
Fsica
INGENIERIA EN
SISTEMAS
Ingls IV
INGENIERIA EN
Anlisis de Sistemas
SISTEMAS
Administrativos
INGENIERIA EN
Probabilidad y
SISTEMAS
Estadstica
LICENCIATURA
Anlisis Matemtico I
CATEDRA DE PROGRAMACION I
92-169
UNIVERSIDAD ABIERTA INTERAMERICANA
EN MATEMTICA
LICENCIATURA
EN MATEMTICA lgebra II
LICENCIATURA
EN MATEMTICA Taller de Informtica II
LICENCIATURA
Historia de la Ciencia y
EN MATEMTICA la Tcnica
LICENCIATURA
EN MATEMTICA Laboratorio de Clculo
LICENCIATURA
EN MATEMTICA Anlisis Matemtico II
LICENCIATURA
EN MATEMTICA Anlisis Matemtico III
LICENCIATURA
EN MATEMTICA Ecuaciones Diferenciales
LICENCIATURA
Metodologa de la
EN MATEMTICA Investigacin
Imports [Link]
Public Class Form1
Private Sub Button1_Click(ByVal sender As [Link], ByVal e As [Link]) Handles
[Link]
Dim reader As New StreamReader("C:\TEST\Clase8\Carrera_Materia.txt")
Dim v As String()
Dim carrera As String = [Link]
Dim cantidad_materias As Integer = 0
Dim salir As Boolean = False
v = [Link]().Split(";"c)
While Not salir
carrera = v(0)
cantidad_materias = 0
[Link]([Link]("Carrera {0}", carrera))
While Not salir AndAlso carrera = v(0)
cantidad_materias = cantidad_materias + 1
If [Link] Then
salir = True
Else
v = [Link]().Split(";"c)
End If
End While
[Link]([Link](" Cantidad de materias {0}", cantidad_materias))
End While
[Link]()
End Sub
End Class
CATEDRA DE PROGRAMACION I
93-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO NRO 8
Objetivo:
Este ejercicio pretende que el alumno se inicie en el desarrollo de aplicaciones WinForm utilizando objetos.
Paso a paso se lo guiar para construir una interfaz grfica que permita completar las propiedades de un objeto
y enviarle a ste algunos mensajes.
Inicio
Para crear una aplicacin WinForm debemos crear una Solucin, que incluir un nico Proyecto. Para ello
seleccionamos la opcion de men: File -> New -> Project.
Una vez que seleccionamos crear un nuevo Proyecto, deberemos elegir el lenguaje de desarrollo (en este caso
Visual [Link]) y el Tipo de proyecto (en este caso Windows Application). Para crearlo adems
deberemos indicar una ruta fsica adecuada.
Como se puede ver, ya contamos con un formulario en blanco. Y adems contamos con una barra de
herramientas (que contiene controles) y una ventana de propiedades para los controles (objetos) que iremos
CATEDRA DE PROGRAMACION I
94-169
UNIVERSIDAD ABIERTA INTERAMERICANA
agregando haciendo Drag & Drop.
Este ejemplo necesitar tener dos controles de tipo Label, dos controles de tipo TextBox y un botn de tipo
Button.
Barra de herramientas
Ventana de propiedades
El primer Label deber llamarse lblNombre y el segundo lblApellido. Los TextBox debern llamarse
txtNombre y txtApellido respectivamente. Los nombres de los controles se definen segn el valor de la
propiedad Name.
Adems, lblNombre deber tener en su propiedad Text el valor Nombre, y lblApellido el valor Apellido.
Finalmente, la apariencia de nuestro formulario deber asemejarse a la siguiente:
A continuacin agregaremos una clase al proyecto.
Esto lo podemos lograr, por ejemplo, haciendo botn derecho sobre el proyecto que creamos que se encuentra
en el Explorador de Soluciones.
Seleccionamos: Add -> Class y hacemos clic en Add.
CATEDRA DE PROGRAMACION I
95-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Ahora nuestra solucin cuenta con un proyecto llamado WindowsApplication1, que contiene una clase llamada
[Link] y un formulario llamado [Link] (si se mantienen los nombres por defecto)
Abrimos el archivo [Link] reemplazamos su contenido por el que se muestra a continuacin.
Luego en el formulario hacemos clic sobre el botn y tambin reemplazamos el contenido existente por el que
se muestra a continuacin.
[Link]
Public Class Persona
Public Property Id() As Guid
Get
Return _id
End Get
Set
_id = value
End Set
-Creo una clase publica llamada personas
-Defino las propiedades correspondientes a la clase persona
CATEDRA DE PROGRAMACION I
96-169
UNIVERSIDAD ABIERTA INTERAMERICANA
End Property
Private _id As Guid
Public Property Nombre() As String -Continuo defininiendo las propiedades correspondientes a la clase
persona
Get
Return _nombre
End Get
Set
_nombre = value
End Set
End Property
Private _nombre As String
Public Property Apellido() As String
Get
Return _apellido
End Get
Set
_apellido = value
End Set
End Property
Private _apellido As String
-Defino un metodo que recibe como argumento 3 variables
Public Sub New(ByVal idPersona As Guid, ByVal nombrePersona As String, ByVal apellidoPersona As String)
[Link] = idPersona
[Link] = nombrePersona
[Link] = apellidoPersona
End Sub
-Se contina definiendo metodos
Public Sub New()
Id = [Link]()
End Sub
Public Sub Guardar()
[Link]("HOLA MUNDO!")
End Sub
-Se define una funcion publica y se la establese como Overloads Overrides
Public Overloads Overrides Function ToString() As String
Return [Link]("{0} {1}", [Link], [Link])
End Function
End Class
Nota: Lo que esta escrito en cursiva son aclaraciones, no incluir en el compilador
Luego en el formulario
Public Class Form1
Private Sub Button1_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
Dim unaPersona As Persona = New Persona
[Link] = [Link]
[Link] = [Link]
[Link]([Link]())
CATEDRA DE PROGRAMACION I
97-169
UNIVERSIDAD ABIERTA INTERAMERICANA
[Link]()
End Sub
End Class
Ahora solo debemos hacer clic en el botn Run (
), o presionar F5.
CATEDRA DE PROGRAMACION I
98-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO NUMERO 9
Luego de este formulario de ABM de archivos de texto veremos un caso de manejo de
directorios
Generemos un formulario con el siguiente diseo
En el form load codifiquemos lo siguiente para que me indique los distintos dispositivos
logicos
Dim Unidades() As String = [Link]()
Dim i As Integer
For i = 1 To [Link] - 1
[Link](Unidades(i))
Next
En el btncontenido
[Link]()
Dim carpetas(), archivos() As String
Dim creacion As DateTime
Dim i As Integer
Dim Ruta As String = [Link]
If [Link](Ruta) Then
carpetas = [Link](Ruta)
'creacion = [Link](Ruta)
archivos = [Link](Ruta)
'IMPRIMO LAS CARPETAS
For i = 1 To [Link] - 1
[Link]("Carpeta: " +
[Link](carpetas(i)))
CATEDRA DE PROGRAMACION I
99-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Next
'IMPRIMO LOS ARCHIVOS
For i = 1 To [Link] - 1
[Link]("Archivo: " +
[Link](archivos(i)))
Next
End If
CATEDRA DE PROGRAMACION I
100-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Modelo de Clases
Introduccin
Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales
pueden ser asociativas, de herencia, de uso y de contenimiento.
Un diagrama de clases esta compuesto por los siguientes elementos:
Clase: atributos, mtodos y visibilidad.
Relaciones: Herencia, Composicin, Agregacin, Asociacin y Uso.
Elementos
Clase
Es la unidad bsica que encapsula toda la informacin de un Objeto (un objeto es una instancia de una
clase). A travs de ella podemos modelar el entorno en estudio (una Casa, un Auto, una Cuenta
Corriente, etc.).
En UML, una clase es representada por un rectngulo que posee tres divisiones:
En donde:
o
o
o
Superior: Contiene el nombre de la Clase
Intermedio: Contiene los atributos (o variables de instancia) que caracterizan a la Clase (pueden
ser private, protected o public).
Inferior: Contiene los mtodos u operaciones, los cuales son la forma como interacta el objeto
con su entorno (dependiendo de la visibilidad: private, protected o public).
Ejemplo:
Una Cuenta Corriente que posee como caracterstica:
CATEDRA DE PROGRAMACION I
101-169
UNIVERSIDAD ABIERTA INTERAMERICANA
o
Balance
Puede realizar las operaciones de:
o
o
o
Depositar
Girar
y Balance
El diseo asociado es:
Atributos y Mtodos:
o
Atributos:
Los atributos o caractersticas de una Clase pueden ser de tres tipos, los que definen el grado de
comunicacin y visibilidad de ellos con el entorno, estos son:
public (+,
): Indica que el atributo ser visible tanto dentro como fuera de la clase,
es decir, es accsesible desde todos lados.
private (-,
): Indica que el atributo slo ser accesible desde dentro de la clase (slo
sus mtodos lo pueden accesar).
protected (#,
): Indica que el atributo no ser accesible desde fuera de la clase, pero
si podr ser accesado por mtodos de la clase adems de las subclases que se deriven (ver
herencia).
Mtodos:
Los mtodos u operaciones de una clase son la forma en como sta interacta con su entorno,
stos pueden tener las caractersticas:
public (+, ): Indica que el mtodo ser visible tanto dentro como fuera de la clase, es
decir, es accsesible desde todos lados.
private (-,
): Indica que el mtodo slo ser accesible desde dentro de la clase (slo
otros mtodos de la clase lo pueden accesar).
CATEDRA DE PROGRAMACION I
102-169
UNIVERSIDAD ABIERTA INTERAMERICANA
protected (#,
): Indica que el mtodo no ser accesible desde fuera de la clase, pero
si podr ser accesado por mtodos de la clase adems de mtodos de las subclases que se
deriven (ver herencia).
Relaciones entre Clases:
Ahora ya definido el concepto de Clase, es necesario explicar como se pueden interrelacionar dos o ms
clases (cada uno con caractersticas y objetivos diferentes).
Antes es necesario explicar el concepto de cardinalidad de relaciones: En UML, la cardinalidad de las
relaciones indica el grado y nivel de dependencia, se anotan en cada extremo de la relacin y stas
pueden ser:
o
o
o
iv.
uno o muchos: 1..* (1..n)
0 o muchos: 0..* (0..n)
nmero fijo: m (m denota el nmero).
Herencia (Especializacin/Generalizacin):
Indica que una subclase hereda los mtodos y atributos especificados por una Super Clase, por
ende la Subclase adems de poseer sus propios mtodos y atributos, poseer las caractersticas y
atributos visibles de la Super Clase (public y protected), ejemplo:
En la figura se especifica que Auto y Camin heredan de Vehculo, es decir, Auto posee las
Caractersticas de Vehculo (Precio, VelMax, etc) adems posee algo particular que es
Descapotable, en cambio Camin tambin hereda las caractersticas de Vehiculo (Precio,
VelMax, etc) pero posee como particularidad propia Acoplado, Tara y Carga.
CATEDRA DE PROGRAMACION I
103-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Cabe destacar que fuera de este entorno, lo nico "visible" es el mtodo Caracteristicas aplicable
a instancias de Vehculo, Auto y Camin, pues tiene definicin publica, en cambio atributos
como Descapotable no son visibles por ser privados.
v.
Agregacin:
Para modelar objetos complejos, n bastan los tipos de datos bsicos que proveen los lenguajes:
enteros, reales y secuencias de caracteres. Cuando se requiere componer objetos que son
instancias de clases definidas por el desarrollador de la aplicacin, tenemos dos posibilidades:
Por Valor: Es un tipo de relacin esttica, en donde el tiempo de vida del objeto incluido
esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relacin es
comunmente llamada Composicin (el Objeto base se contruye a partir del objeto
incluido, es decir, es "parte/todo").
Por Referencia: Es un tipo de relacin dinmica, en donde el tiempo de vida del objeto
incluido es independiente del que lo incluye. Este tipo de relacin es comunmente
llamada Agregacin (el objeto base utiliza al incluido para su funcionamiento).
Un Ejemplo es el siguiente:
En donde se destaca que:
Un Almacen posee Clientes y Cuentas (los rombos van en el objeto que posee las
referencias).
Cuando se destruye el Objeto Almacen tambin son destruidos los objetos Cuenta
asociados, en cambio no son afectados los objetos Cliente asociados.
La composicin (por Valor) se destaca por un rombo relleno.
La agregacin (por Referencia) se destaca por un rombo transparente.
La flecha en este tipo de relacin indica la navegabilidad del objeto refereniado. Cuando no
existe este tipo de particularidad la flecha se elimina.
vi.
Asociacin:
La relacin entre clases conocida como Asociacin, permite asociar objetos que colaboran entre
si. Cabe destacar que no es una relacin fuerte, es decir, el tiempo de vida de un objeto no
depende del otro.
CATEDRA DE PROGRAMACION I
104-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Ejemplo:
Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de compra
solo puede tener asociado un cliente.
vii.
Dependencia o Instanciacin (uso):
Representa un tipo de relacin muy particular, en la que una clase es instanciada (su
instanciacin es dependiente de otro objeto/clase). Se denota por una flecha punteada.
El uso ms particular de este tipo de relacin es para denotar la dependencia que tiene una clase
de otra, como por ejemplo una aplicacin grafica que instancia una ventana (la creacin del
Objeto Ventana esta condicionado a la instanciacin proveniente desde el objeto Aplicacion):
Cabe destacar que el objeto creado (en este caso la Ventana grfica) no se almacena dentro del
objeto que lo crea (en este caso la Aplicacin).
Casos Particulares:
o
Clase Abstracta:
Una clase abstracta se denota con el nombre de la clase y de los mtodos con letra "itlica". Esto
indica que la clase definida no puede ser instanciada pues posee mtodos abstractos (an no han
sido definidos, es decir, sin implementacin). La nica forma de utilizarla es definiendo
subclases, que implementan los mtodos abstractos definidos.
o
Clase parametrizada:
CATEDRA DE PROGRAMACION I
105-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Una clase parametrizada se denota con un subcuadro en el extremo superior de la clase, en
donde se especifican los parmetros que deben ser pasados a la clase para que esta pueda ser
instanciada. El ejemplo ms tpico es el caso de un Diccionario en donde una llave o palabra
tiene asociado un significado, pero en este caso las llaves y elementos pueden ser genricos. La
genericidad puede venir dada de un Template (como en el caso de C++) o bien de alguna
estructura predefinida (especializacin a travs de clases).
En el ejemplo no se especificaron los atributos del Diccionario, pues ellos dependern
exclusivamente de la implementacin que se le quiera dar.
Ejemplo:
Supongamos que tenemos tenemos un el caso del Diccionario implementado mediante un rbol binario, en
donde cada nodo posee:
key: Variable por la cual se realiza la bsqueda, puede ser generica.
item: Contenido a almacenar en el diccionario asociado a "key", cuyo tipo tambin puede ser genrico.
Para este caso particular hemos definido un Diccionario para almacenar String y Personas, las cuales pueden
funcionar como llaves o como item, solo se mostrarn las relaciones para la implementacin del Diccionario:
CATEDRA DE PROGRAMACION I
106-169
UNIVERSIDAD ABIERTA INTERAMERICANA
CATEDRA DE PROGRAMACION I
107-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Componentes y pantallas del IDE
Veremos las distintas partes del IDE
Para ello vaya ud viendo en el VB:NET los distintos mens a medida que avance en el estudio del presente
apunte
Men Archivo
Nuevo
Abrir
Agregar
Cerrar
Cerrar proyecto
Guardar form1
Guardar form 1 como
Guardar todo
Configurar pagina
Imprimir
Proyectos recientes
Salir
genera un nuevo
abre un
permite incluir un formulario, clase u otro objeto al proyecto existente
cierra un
cierra un proyecto
guarda el forms que esta activo
guarda el form con otro nombre
guarda todos los forms
configurar la pgina (solo cuando esta codificando)
imprimir la pgina (solo cuando esta codificando)
muestra lo sproyectos recientes
sale de [Link]
CATEDRA DE PROGRAMACION I
108-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Men Editar
Deshacer
Rehacer
Cortar
Copiar
Pegar
Eliminar
Seleccionar todo
Buscar y reemplazar
Ir a
Marcadores
deshace el ultimo codigo escrito
rehace el ultimo codigo borrado
corta el codigo seleccionado
copia el codigo seleccionado
pega el codigo seleccionado
elimina lo seleccionado
selecciona el codigo activo
busca una palabra y la reemplaza en un determinado lugar
Posesionarse en
colocar un punto de inspeccion
CATEDRA DE PROGRAMACION I
109-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Men Ver
Codigo
ver el codigo
Diseador
ver el diseo del form
Abrir
abrir una pagina
Abrir con
abrir una pagina con
Explorador de servidores visualizar los servidores existentes
Explorador de soluciones ver las distintas partes de mi solucion
Ventana marcador
coloca una marcacin
Vista de clases
visualiza las clases
Ventana definicin de cdigo ventana para definir codigo de windows
Examinador de objetos
permite examinar los objetos existentes
Orden de tabulacin
permite definir el orden de las tabulaciones
Lista de errores
muestra los errores encontrados
CATEDRA DE PROGRAMACION I
110-169
Resultados
Ventana propiedades
Cuadro de herramientas
Resultado de la bsqueda
Otras ventanas
Barras de herramientas
Pantalla completa
UNIVERSIDAD ABIERTA INTERAMERICANA
examina los resultados
ver propiedades del control
ver los controles mas comunes
ver resultados
permiten visualizar otras ventanas
permite visualizar la barra de herramientas
visualiza la pantalla completa
Men Proyecto
Agregar Windows forms
agrega formulario
Agregar control de usuarios
agrega controles de usuario
Agregar componentes
agrega componentes
Agregar mdulos
agrega modulos
Agregar clase
agrega una clase
Agregar nuevo elemento
agrega un elemento determinado
Agregar elemento existente
agrega un elemento ya existente
Excluir del proyecto
excluye al proyecto a un objeto determinado
Mostrar todos los archivos
muestra todos los archivos del proyecto
Agregar referencia
agrega una referencia
Agregar referencia WEB
agrega una referencia web
Propiedades de Windows applications2 muestra propiedades
CATEDRA DE PROGRAMACION I
111-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Men Generar
Generar Windowsapplication2
Publicar Windowsapplication2
Men Depurar
Ventanas
muestra distintos tipos de ventana de inmediato
Iniciar depuracin
inicia depuracin del proyecto
Iniciar sin depurar
inicio sin depurar el proyecto
Asociar al proceso
asocia un proceso determinado
Paso a paso por procedimientos
ejecucin paso a paso
Alternar puntos de interrupcin
pasar al punto de interrupcion
Eliminar todos los puntos de interrupcin sacar las interrupciones quita los puntos de interrupcion
CATEDRA DE PROGRAMACION I
112-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Men Datos
Mostrar orgenes de datos
Vista previa de los datos
Agregar nuevo origen de datos
Agregar consulta..
permite generar una coneccion a datos
mustra los datos de la conecion establecida
agregra un origen de datos
Permite agregar una cunsulta
Men Formato
Alinear
Igualar tamao
Espaciado horizontal
Espaciado vertical
Centrar en el formulario
Bloques de controles
alinear los controles seleccionados
igualar tamao de los controles seleccionados
igualar espacio horinzotal
igualar espacio vertical
centrar lo seleccionado en el form
bloquea los controles
CATEDRA DE PROGRAMACION I
113-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Men Herramientas
Conectar con dispositivo
conecta con un dispositivo, por lo generar emulador
Conectar con base de datos
conecta con una base de datos
Conectar con el servidor
conecta con un servidor
Elegir elementos del cuadro de herramientas
permite elegir elementos
Administrador de complementos
permite administrar elementos
ActiveX control test container
activo los controles ActiveX
Crear guid
crea guid
Dotfuscator community edition
Protege el codigo fuente
Busqueda de errores
busca los errores encontrados
Spy++
para saber los mensajer que recibe cierta ventana
Herramientas externas
permite agregar herramientas de terceros
Administrador de emuladores de dispositivos administra los emuladores de dispositivos
Importar y exportar configuraciones
Importar y exportar la configuracion
Personalizar
permite personalizar el menu
Opciones
muestra las opciones de .Net
CATEDRA DE PROGRAMACION I
114-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Men Ventana
Nueva ventana
Acoplable
Organizacin por fichas
Ocultar automticamente
Ocultar
Ocultar todo automticamente
Nuevo grupo de fichas horizontal
Nuevo grupo de fichas vertical
Cerrar todos los documentos
Restablecer diseo de la ventana
abrir una nueva ventana
acoplar ventanas
organizar las ventanas por fichas
oculta todas las ventanas
oculta la ventana seleccionada
oculta automticamente las ventanas
genera una nueva ficha horizontal
genera una nueva ficha vertical
cierra todos los documentos
Restable el diseo de las ventanas
CATEDRA DE PROGRAMACION I
115-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Men Comunidad
Formular una pregunta
formular una pregunta a la comunidad .net
Comprobar estado de la pregunta
verificar el estado de la pregunta
Enviar comentarios
enviar comentarios a una pregunta
Centro para desarrolladores
conectarse con el centro de desarrolladores
Comunidad de Codezone
conectarse con la comunidad Codezona
Catalogo de productos asociados
Ver productos asociados
Busqueda de la comunidad
buscar informacin
Nota: Se necesita de una conexin a internet para poder utilizar estas opciones de ayuda.
Men ayuda
Archivos de solucin (.sln y .suo)
CATEDRA DE PROGRAMACION I
116-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Visual Studio utiliza dos tipos de archivo (.sln y .suo) para almacenar la configuracin especfica de las soluciones. Estos archivos, conocidos de
manera conjunta como archivos de solucin, proporcionan al Explorador de soluciones la informacin que necesita para mostrar una interfaz
grfica de administracin de archivos. Los archivos de solucin le permiten concentrarse en los proyectos y objetivos finales en lugar de en el
propio entorno cuando se dedica a las tareas de programacin.
Extensin Nombre
.sln
.suo
Descripcin
Organiza proyectos, elementos de proyecto y elementos de solucin en la solucin y proporciona al entorno
Solucin de Visual Studio
referencias a sus ubicaciones en disco.
Opciones de usuario de Registra todas las opciones que podra asociar a la solucin para que, cada vez que la abra, incluya las
solucin
personalizaciones que ha realizado.
Tipos de archivo y extensiones de archivo en Visual Basic, Visual C# y Visual J#
Elementos de proyecto local
Elemento de proyecto
Formulario Windows Forms
Formulario del explorador
Formulario primario MDI
Cuadro Acerca de
Formulario de inicio de sesin
Pantalla de bienvenida
Cuadros de dilogo
Clase
Interfaz
Mdulo (slo Visual Basic)
Clase de componentes
Control de usuario
Servicio de Windows
DataSet
Base de datos SQL
Archivo XML
Esquema XML
Archivo de configuracin
Archivo de cdigo
Control personalizado
Pgina HTML
Formulario heredado
Control de usuario heredado
Control Web personalizado
Clase COM
Extensin de
archivo
.vb o .cs o .jsl o
.java
.vb o .cs o .jsl o
.java
.vb o .cs o .jsl o
.java
.vb o .cs o .jsl o
.java
.vb o .cs o .jsl o
.java
.vb o .cs o .jsl o
.java
.vb o .cs o .jsl o
.java
.vb o .cs o .jsl o
.java
.vb o .cs o .jsl o
.java
.vb
.vb o .cs o .jsl o
.java
.vb o .cs o .jsl o
.java
.vb o .cs o .jsl o
.java
.xsd
.mdf
.xml
.xsd
.settings
.vb o .cs o .jsl o
.java
.vb o .cs o .jsl o
.java
.htm
.vb o .cs o .jsl o
.java
.vb o .cs o .jsl o
.java
.vb o .cs o .jsl o
.java
.vb o .cs
Propsito del elemento de proyecto
Un formulario utilizado para crear aplicaciones para Windows.
Un formulario del explorador con una vista de rbol y controles de exploracin.
Un formulario para una aplicacin de interfaz de mltiples documentos.
Un formulario de cuadro de dilogo Acerca de para aplicaciones para Windows.
Un formulario de inicio de sesin para recopilar un nombre de usuario y una
contrasea.
Un formulario preconfigurado para su uso como pantalla de bienvenida.
Un cuadro de dilogo para aplicaciones para Windows.
Archivo de cdigo que contiene una declaracin de clase.
Una nueva interfaz.
Archivo para el almacenamiento de grupos de funciones.
Clase para crear componentes utilizando el diseador visual.
Una clase para crear un control de formularios Windows Forms utilizando el
diseador visual.
Una clase para crear servicios de Windows.
Un archivo para crear un esquema XML con clases DataSet.
Una base de datos SQL vaca para los datos locales.
Un archivo XML en blanco.
Un archivo para crear un esquema para documentos XML.
Un archivo de configuracin del usuario en blanco.
Un archivo de cdigo en blanco.
Una clase para crear un control de formularios Windows Forms orientado al usuario.
Una pgina HTML que puede incluir cdigos del lado del cliente.
Un nuevo formulario basado en un formulario existente.
Un nuevo control basado en un control de formulario Windows Forms existente.
Una clase para crear un control de servidores [Link].
Una clase que puede estar expuesta a COM.
CATEDRA DE PROGRAMACION I
117-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Componente transaccional
Archivo de texto
Archivo XSLT
Crystal Report
.vb o .cs
.txt
.xslt
.vb o .cs o .jsl o
.java
.rpt
Archivo de mapa de bits
.bmp
Archivo de cursor
Archivo de icono
Archivo de recursos
Archivo de informacin sobre el
ensamblado
Archivo de configuracin de la
aplicacin
.cur
.ico
.resx
Un archivo de Crystal Report que publica datos en un formulario de Windows.
Un archivo de imagen de mapa de bits en blanco, que puede utilizarse para crear
imgenes simples.
Un archivo para crear cursores personalizados.
Un archivo de imagen para crear un icono personalizado.
Un archivo utilizado para editar y definir recursos de aplicaciones.
.vb o .cs o .jsl
Un archivo que contiene informacin general acerca del ensamblado.
.config
Un archivo utilizado para configurar los valores de la aplicacin.
Clase del instalador
Diagrama de clase
Informe
Archivo JScript
Archivo VBScript
.vb o .cs o .jsl o
.java
.cd
.rdlc
.js
.vbs
Windows Script Host
.wsf
Visualizador del depurador
Una clase que se utiliza con los componentes transaccionales.
Archivo de texto vaco.
Un archivo utilizado para transformar documentos XML.
Una clase que se va a invocar durante la configuracin.
Un visualizador del depurador sencillo
Un diagrama de clase.
Un nuevo informe vaco.
Un archivo de comandos que contiene cdigo JScript.
Un archivo de comandos que contiene cdigo VBScript.
Un archivo que contiene una secuencia de comandos que se ejecuta como un programa
de Windows.
Elementos de proyecto Web
Elemento de proyecto
Formulario Web
Forms
Pgina principal
Control de usuario
Web
Pgina HTML
Servicio Web
Clase
Hoja de estilos
Clase de aplicacin
global
Archivo de
configuracin Web
Archivo XML
Esquema XML
Archivo XSLT
Archivo de texto
Archivo de recursos de
ensamblado
Archivo de informacin
sobre el ensamblado
Base de datos SQL
DataSet
Extensin de archivo
Propsito del elemento de proyecto
Dos archivos: .aspx y .vb para
Visual Basic, .cs para Visual C# Un formulario utilizado para crear aplicaciones Web.
o .jsl para Visual J#
.master
Una pgina principal para las aplicaciones Web.
.ascx
Un control de servidor [Link] creado mediante un diseador visual.
.htm
Dos archivos: .asmx y .vb para
Visual Basic, .cs para Visual C#
o .jsl para Visual J#
.vb o .cs o .jsl
.css
Una pgina HTML que puede incluir cdigos del lado del cliente.
Un componente que ofrece la posibilidad de intercambiar mensajes interoperables
mediante el uso de protocolos estndar, como HTTP, XML, XSD, SOAP y WSDL.
.xml
.xsd
.xslt
.txt
Archivo de cdigo que contiene una declaracin de clase.
Una hoja de estilos en cascada utilizada para definiciones de estilo HTML enriquecido.
A veces conocido como archivo asax, permite escribir cdigo para controlar eventos
globales [Link] de nivel de aplicacin tales como Session_OnStart y
Application_OnStart. El archivo tiene como nombre [Link] y no es posible
cambiarlo.
[Link] utiliza este archivo para configurar los valores Web de un proyecto Web. El
archivo tiene como nombre [Link] y no es posible cambiarlo.
Un archivo XML en blanco.
Un archivo para crear un esquema para documentos XML.
Un archivo utilizado para transformar documentos XML.
Archivo de texto vaco.
.resx
Un archivo utilizado para editar y definir recursos de aplicaciones.
.vb o .cs o .jsl
Un archivo que contiene informacin general acerca del ensamblado.
.mdf
.xsd
Una base de datos SQL vaca para los datos locales.
Un archivo para crear un esquema XML con clases DataSet.
.asax
.config
CATEDRA DE PROGRAMACION I
118-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Controlador genrico
Mapa del sitio
Formulario Mobile
Web Forms
Control de usuario
Web mvil
Archivo de
configuracin Web
mvil
Crystal Report
Archivo VBScript
Archivo JScript
.ashx
.sitemap
Una pgina para implementar un controlador genrico
Un archivo utilizado para crear un mapa del sitio.
.aspx
Formulario utilizado para crear aplicaciones Web para dispositivos mviles.
.ascx
Control de servidor [Link] creado con el diseador visual y utilizado en una
aplicacin Web para dispositivos mviles.
.config
[Link] utiliza este archivo para configurar los valores Web de un proyecto Web
mvil. El archivo tiene como nombre [Link] y no es posible cambiarlo.
Windows Script Host
.wsf
Archivo de mscara
Archivo de explorador
Informe
Mdulo (slo Visual
Basic)
Clase de componentes
Asistente para
formularios de datos
Conjunto de marcos
Control Web
personalizado
Archivo de cdigo
Archivo de
descubrimiento esttico
Clase del instalador
.skin
.browser
.rdlc
Un archivo Crystal Report que publica datos en un formulario Web Forms.
Un archivo de comandos que contiene cdigo VBScript.
Un archivo de comandos que contiene cdigo JScript.
Un archivo de cdigo vaco que se utiliza para crear secuencias de comandos de
Windows.
Un archivo utilizado para definir un tema de [Link].
Un archivo para las definiciones del explorador
Un nuevo informe vaco.
.vb
Archivo para el almacenamiento de grupos de funciones.
.vb o .cs
.aspx (.vb o .cs para proyectos
locales)
.htm
Clase para crear componentes utilizando el diseador visual.
.vb o .cs o .jsl
Una clase para crear un control de servidores [Link]
.vb o .cs o .jsl
Un archivo de cdigo en blanco.
Un archivo opcional que acta como mecanismo de descubrimiento para el servicio Web
XML. El archivo .disco no se crea automticamente para un servicio Web XML.
Una clase que se va a invocar durante la configuracin.
Un archivo de imagen de mapa de bits en blanco, que puede utilizarse para crear
imgenes simples.
Un archivo para crear cursores personalizados.
Un archivo de imagen para crear un icono personalizado.
.rpt
.vbs
.js
.disco
.vb o .cs o .jsl
Archivo de mapa de bits .bmp
Archivo de cursor
Archivo de icono
.cur
.ico
Un formulario de datos para aplicaciones Web.
Archivo HTML que aloja varias pginas HTML.
CATEDRA DE PROGRAMACION I
119-169
UNIVERSIDAD ABIERTA INTERAMERICANA
GLOSARIO Algunos conceptos (clasificados alfabticamente) que usaremos con bastante frecuencia en
las entregas del curso de .NET:
Palabra
Descripcin
A
Aclaracin sobre
variables y mtodos
estticos o compartidos
Se dice que una variable o un mtodo es esttico (Shared en VB / static en
C#) cuando est compartido, es decir, no forma parte de ninguna instancia
de la clase.
Las variables y mtodos estticos pertenecen al tipo en el que se declara y
para usarlas simplemente hay que indicar la clase (o tipo) seguida (por un
punto) del nombre de la variable o mtodo.
En el caso de VB todos los miembros de un mdulo (Module) son estticos
(estn compartidos) y no es necesario indicar el nombre del mdulo para
acceder a ellos.
El mbito es lo que indica el nivel de visibilidad (o accesibilidad) de un
elemento, ya sea una variable, procedimiento o clase.
Los niveles de accesibilidad pueden ser Private, Public, Friend, Protected o
Protected Friend.
mbito / Accesibilidad
En la documentacin de Visual Studio .NET, mbito es el nivel de visibilidad
que puede tener, ya sea a nivel de bloque, procedimiento, mdulo o
espacio de nombres.
Y la accesibilidad es la "visibilidad" de dicho elemento, si es pblico,
privado, etc.
Array
(matriz)
Los arrays (o matrices) son un tipo de variable que permiten tener ms de
un elemento, (o valor en su interior), a los que se pueden acceder
mediante un ndice.
Un array tambin es el tipo en el que se basan todas las matrices o arrays.
Assenbly (ensamblado)
Bsicamente un ensamblado es un programa (EXE) o un componente
(DLL), en el que adems del cdigo compilado tiene un manifiesto o
definicin de que es lo que contiene dicho ensamblado: tipos de datos,
dependencias, versin, etc.
C
Clases / Objetos
(tipos)
Prcticamente todo lo que manejemos en el entorno .NET es una clase u
objeto, de hecho todas las clases derivan de una clase u objeto bsico: la
clase [Link]
Clases abstractas
Son clases que exponen un interface el cual hay que usar en las clases que
se hereden de dicha clase abstracta.
Colecciones
Serie de datos que estn guardados en una lista, array (o matriz) o una
coleccin propiamente dicha y que permite interactuar con los elementos
de las mismas, pudiendo aadir, recuperar, eliminar uno o todos, saber
CATEDRA DE PROGRAMACION I
120-169
UNIVERSIDAD ABIERTA INTERAMERICANA
cuantos elementos hay, etc.
Common Language
Runtime
(CLR)
El CLR (Common Language Runtime) es el motor en tiempo de ejecucin
del .NET Framework, es decir la parte del "entorno" que se encarga de
ejecutar el cdigo de los lenguajes del .NET Framework.
Constante
Valores numricos o de cadena que permanecen constantes, sin posibilidad
de cambiar el valor que tienen.
En caso de que necesitemos cambiar el valor, usaremos las variables.
E
Encapsulacin
La posibilidad de ocultar el cdigo usado para implementar un mtodo o
cualquier otro procedimiento o funcin de forma que lo nico que interese
sea el interface expuesto por la clase u objeto.
Enumeraciones
(Enum)
Las enumeraciones son una serie de valores constantes (de tipo numrico),
que de alguna forma estn relacionadas entre s.
A diferencia de las constantes normales, una variable declarada como una
enumeracin, puede tomar cualquiera de los valores indicados en la
enumeracin.
Evento
Los eventos son procedimientos (SUB) que se ejecutan normalmente
cuando el sistema Windows los provoca, por ejemplo, al hacer click en una
ventana o en cualquier objeto de la ventana, cuando cambiamos el tamao
de una ventana, cuando escribimos en una caja de textos, etc.
Expresiones
Una expresin es una secuencia de operadores y operandos que describe
un clculo. Normalmente una expresin se evala en tiempo de ejecucin.
Existen expresiones numricas y alfanumricas o de caracteres.
Expresiones Lgicas
Las expresiones lgicas son expresiones pero cuyo resultado es un valor
"lgico" (verdadero o falso).
Este tipo de expresiones se usan normalmente con instrucciones que
normalmente necesitan un valor verdadero (true) o falso (false)
Formulario
(forma/ventana)
Un formulario es una ventana de Windows la cual usaremos para
interactuar con el usuario, ya que en dicha ventana o formulario, estarn
los controles y dems objetos grficos que mostraremos al usuario de
nuestra aplicacin.
Los formularios tambin son llamados "formas" o Forms en su nombre en
ingls.
Function
(Funcin)
Los procedimientos Function son como las funciones del VB .NET, es decir,
realizan una tarea, al igual que un Sub, pero siempre devuelven un valor,
como resultado del cdigo que se ha ejecutado en su interior.
A las funciones no se les puede asignar valores, a diferencia de las
Propiedades.
H
CATEDRA DE PROGRAMACION I
121-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Handles
En [Link] se usa Handles, seguido del nombre del evento, para indicar
qu evento es el que se maneja en el procedimiento indicado.
El formato suele ser:
Sub Nombre(parmetros) Handles [Link]
Herencia
La posibilidad de que una clase herede las propiedades y mtodos de otra
clase de forma que se puedan usar con la nueva clase de igual forma que
si se hubiesen escrito directamente en ella.
Instancia
Para poder usar una clase, hay que crear una instancia del mismo.
Es decir, debemos declarar una variable y a esa variable asignarle el objeto
o clase en cuestin para que podamos usarlo.
Es como si tuvisemos que darle vida al objeto par poder usarlo.
La instanciacin de las clases se hace usando New LaClase
Interface
Se dice que las propiedades y mtodos expuestos por una clase (tipo)
forman el interface de la misma.
Interface / Implements
Los interfaces a diferencia de las clases es que no hay que escribir cdigo
para los mtodos o propiedades que expone, simplemente se indica la
"declaracin".
Usando Implements, se pueden usar esas interfaces en las clases, aunque
hay que escribir el cdigo de cada mtodo o propiedad implementado.
M
Me
(this)
La palabra clave (o instruccin) Me hace referencia a la clase actual.
Por ejemplo [Link] se refiere a la propiedad Width de la clase actual.
En C# en lugar de Me es this.
Mtodo
Un procedimiento (Sub, Function -funcin) que se usa para realizar una
tarea especfica en la clase o mdulo.
Miembros
Los miembros de una clase (o tipo) son los mtodos (Sub o Fucntion, las
propiedades, enumeraciones, constantes, campos, etc. que se han
declarado en dicho tipo.
Miembros compartidos
Son miembros de una clase que pueden ser accedidos sin necesidad de
crear una instancia de la clase. Se declaran usando la instruccin Shared
(static en C#).
Miembros de instancia
Son miembros de una clase que slo pueden ser accedidos al crear una
instancia (objeto) de la clase en la memoria.
Mdulo
Los mdulos, al igual que las clases, son "espacios" en los cuales se
incluyen declaraciones de variables, procedimientos, funciones, etc.
Pero a diferencia de las clases, el cdigo contenido en un mdulo siempre
est disponible de forma directa, sin necesidad de crear una "instancia" de
dicho mdulo.
CATEDRA DE PROGRAMACION I
122-169
UNIVERSIDAD ABIERTA INTERAMERICANA
La palabra clave MyBase se comporta como la clase de la que ha derivado
la clase actual, es decir si una clase deriva de una (o hereda a otra) clase,
MyBase se referir a dicha clase base, de esta forma es posible acceder a
los mtodos, propiedades y eventos de la clase de la que se deriva (o
hereda) la clase actual.
MyBase
N
Namespace
(espacio de nombres)
Namespace es una forma de agrupar clases (tipos de datos),
enumeraciones, etc. que estn relacionadas entre s.
De forma que estn agrupados segn el tema que quieran abarcar los tipos
definidos en l.
O
P
Los mtodos o propiedades pueden tener parmetros, (uno o varios), los
cuales le indicarn los valores que deben usar para la tarea que debe
realizar.
Por ejemplo, un mtodo Contar podra recibir un parmetro con el valor de
las veces que tiene que contar.
Parmetro
Parmetros opcionales
Algunos procedimientos que aceptan parmetros, pueden tener tambin
parmetros opcionales, los cuales, como su nombre indica, pueden o no
ser incluidos en la llamada al procedimiento.
Los parmetros opcionales tienen unos valores por defecto, el cual se
usar en caso de que no se especifique.
Polimorfismo
La posibilidad de usar en clases diferentes propiedades o mtodos con el
mismo nombre de forma que cuando se usen no nos preocupe a que clase
pertenece.
Por ejemplo el objeto bsico del que derivan todas las clases de .NET tiene
una propiedad llamada ToString, sta propiedad estar implementada de
forma diferente en diferentes clases, pero nosotros la usaremos de la
misma forma, sin importarnos que objeto estemos usando.
Procedimiento
Un mtodo, funcin o propiedad de una clase o mdulo.
Programacin Orientada Una forma de programar basada en la reutilizacin de cdigo mediante
a Objetos (OOP / POO)
herencia, encapsulacin y polimorfismo.
A diferencia de los mtodos, las propiedades se usan para "configurar" la
forma que tendr la clase.
Algunas veces es difcil diferenciar un mtodo de una propiedad, pero por
convencin los mtodos realizan tareas. Por ejemplo, el ancho de un objeto
es una propiedad, mientras que mostrar el objeto se realizara con un
mtodo.
A las Propiedades se les puede asignar valores y pueden devolverlos,
(como las funciones). Aunque tambin pueden existir propiedades de solo
lectura, (solamente devuelven valores), o de solo escritura, (slo se les
puede asignar valores, pero no los devuelven).
Property
(Propiedad)
S
CATEDRA DE PROGRAMACION I
123-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Sobrecarga (Overload)
Se dice que un mtodo est sobrecargado cuando existen distintas
versiones de dicho mtodo en la clase.
Por ejemplo mtodos con el mismo nombre que reciban parmetros de
distintos tipos.
Un procedimiento SUB es como una instruccin, es decir, realiza una tarea
(ejecuta el cdigo que haya en su interior), pero no devuelve un resultado.
Sub
Variable
Variables estticas
Son "espacios" de memoria en la que se almacena un valor. Se usarn
para guardar en memoria los valores numricos o de cadena de caracteres
que nuestro programa necesite.
Usa este link para ver los distintos tipos de datos.
Son variables definidas en los procedimientos con la instruccin Static en
lugar de con Dim, que mantienen el valor entre llamadas a ese
procedimiento. A diferencia de las variables normales, las cuales pierden el
valor una vez que se termina el procedimiento.
CATEDRA DE PROGRAMACION I
124-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO ANEXO ARCHIVOS
Objetivo:
Manejo bsico de archivos de texto.
Inicio
Ingrese en Visual Studio, cree un proyecto y realice el siguiente formulario, similar al bloc de notas de
Windows.
El formulario deber contener al menos los siguientes controles:
TextBox
MenuStrip (en solapa Menus & Toolbars)
OpenFileDialog (en solapa Dialogs)
SaveFileDialog (en solapa Dialogs)
La opcin de men Abrir permitir seleccionar un archivo de texto y cargarlo en la casilla de texto.
La opcin de men Guardar como permitir guardar el contenido de la casilla de texto en un nuevo archivo.
La opcin de men Guardar permitir guardar un archivo previamente abierto. Si se complet la casilla de
texto sin haber abierto ningn archivo, deber realizar la misma funcionalidad que la opcin de men Guardar
como.
La opcin de men Salir permitir salir de la aplicacin.
Imports [Link]
Public Class Form1
CATEDRA DE PROGRAMACION I
125-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Private Sub Form1_Load(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
[Link] = [Link]
[Link] = True
[Link] = [Link]
[Link] = "DotNetPad [Link]"
[Link] = [Link]
[Link] = [Link]
[Link] = ".txt"
[Link] = ".txt"
End Sub
Private Sub SalirToolStripMenuItem_Click(ByVal sender As [Link], ByVal e As [Link]) Handles
[Link]
[Link]()
End Sub
Private Sub AbrirToolStripMenuItem_Click(ByVal sender As [Link], ByVal e As [Link]) Handles
[Link]
[Link]()
If ([Link] <> [Link]) Then
Dim s As StreamReader = New StreamReader([Link])
[Link] = [Link]()
[Link]()
[Link] = [Link]
End If
End Sub
Private Sub GuardarToolStripMenuItem_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]
If ([Link] <> [Link]) Then
Dim s As StreamWriter = New StreamWriter([Link])
[Link]([Link])
[Link]()
Else
GuardarComoToolStripMenuItem_Click(sender, e)
End If
End Sub
Private Sub GuardarComoToolStripMenuItem_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]
[Link]()
If ([Link] <> [Link]) Then
Dim s As StreamWriter = New StreamWriter([Link])
[Link]([Link])
[Link]()
[Link] = [Link]
End If
End Sub
End Class
CATEDRA DE PROGRAMACION I
126-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO ANEXO CALCULARDORA
Objetivo:
Este ejercicio pretende que el alumno se inicie en el desarrollo de aplicaciones WinForm utilizando objetos.
Paso a paso se lo guiar para construir una interfaz grfica que permita completar las propiedades de un objeto.
Inicio
Para el siguiente ejercicio se deber crear un proyecto Winform, el formulario principal se deber parecer al
siguiente:
Reemplazamos el cdigo fuente del formulario por el siguiente:
Public Class Form1
Dim numeros As Decimal() = New Decimal(2) {}
Dim operacion As String
Const separadorDecimal = "."
Private Sub Form1_Load(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
[Link] = "&7"
[Link] = "&8"
[Link] = "&9"
[Link] = "&4"
[Link] = "&5"
[Link] = "&6"
[Link] = "&1"
[Link] = "&2"
[Link] = "&3"
[Link] = "&0"
[Link] = "&."
[Link] = "+/-"
CATEDRA DE PROGRAMACION I
127-169
UNIVERSIDAD ABIERTA INTERAMERICANA
[Link] = "&/"
[Link] = "&*"
[Link] = "&-"
[Link] = "&+"
[Link] = "="
[Link] = 0
[Link] = "Borrar"
limpiarOperacion()
[Link] = [Link]
[Link] = [Link]
[Link] = False
End Sub
Private Sub Button1_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
[Link] += "7"
End Sub
Private Sub Button2_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
[Link] += "8"
End Sub
Private Sub Button3_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
[Link] += "9"
End Sub
Private Sub Button4_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
[Link] += "4"
End Sub
Private Sub Button5_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
[Link] += "5"
End Sub
Private Sub Button6_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
[Link] += "6"
End Sub
Private Sub Button7_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
[Link] += "1"
End Sub
Private Sub Button8_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
[Link] += "2"
End Sub
Private Sub Button9_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
[Link] += "3"
End Sub
CATEDRA DE PROGRAMACION I
128-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Private Sub Button10_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
[Link] += "0"
End Sub
Private Sub Button11_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
If Not [Link](separadorDecimal) Then
[Link] += separadorDecimal
End If
End Sub
Private Sub Button16_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
If [Link]("-") Then
[Link] = [Link]("-", "")
Else
[Link] = "-" + [Link]
End If
End Sub
Private Sub Button15_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
If validaOperacion() And numeros(0) = Nothing Then
prepararOperacion("Suma")
End If
End Sub
Private Sub Button14_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
If validaOperacion() And numeros(0) = Nothing Then
prepararOperacion("Resta")
End If
End Sub
Private Sub Button13_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
If validaOperacion() And numeros(0) = Nothing Then
prepararOperacion("Multiplicacion")
End If
End Sub
Private Sub Button12_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
If validaOperacion() And numeros(0) = Nothing Then
prepararOperacion("Division")
End If
End Sub
Private Sub Button17_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
If (numeros(0) <> Nothing) Then
numeros(1) = [Link]([Link])
[Link] = procesar().ToString
End If
End Sub
Private Sub Button18_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
limpiarOperacion()
CATEDRA DE PROGRAMACION I
129-169
UNIVERSIDAD ABIERTA INTERAMERICANA
[Link] = [Link]
End Sub
Private Sub limpiarOperacion()
numeros(0) = Nothing
numeros(1) = Nothing
operacion = "Ninguna"
End Sub
Private Sub prepararOperacion(ByVal op As String)
numeros(0) = [Link]([Link])
[Link] = [Link]
operacion = op
End Sub
Private Function validaOperacion() As Boolean
If operacion <> "Ninguna" Then
[Link]("Ya has seleccionado una operacion!")
Return False
End If
If [Link] = [Link] Then
[Link]("Debes escribir un numero")
Return False
End If
Return True
End Function
Private Function procesar() As Decimal
Dim valor As Decimal = 0
Select Case operacion
Case "Suma"
valor = numeros(0) + numeros(1)
Case "Resta"
valor = numeros(0) - numeros(1)
Case "Division"
Try
valor = numeros(0) / numeros(1)
Catch ex As DivideByZeroException
[Link]("Intentaste dividir por cero!")
valor = 0
Catch ex As Exception
[Link]("Error Generico:" + [Link])
End Try
Case "Multiplicacion"
valor = numeros(0) * numeros(1)
End Select
limpiarOperacion()
Return valor
End Function
End Class
CATEDRA DE PROGRAMACION I
130-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO ANEXO INTEGRADOR 1
Objetivo:
Manejo de estructuras en memoria de tipo array: vectores (unidimensionales) y matrices (multidimensionales)
Inicio
Ingrese en Visual Studio, cree un proyecto y realice el siguiente formulario:
El botn Cargar vector deber solicitar una serie de cadenas de texto que se irn almacenando dentro de un
vector. Finalizada la carga se deber limpiar el primer ListBox y efectuar un volcado de datos del vector hacia
el control.
El botn Cargar Matriz 2x2 deber solicitar una serie de cadenas de texto que se irn almacenando dentro
de una matriz cuadrada de 2 posiciones. Finalizada la carga se deber limpiar el segundo ListBox y efectuar un
volcado de datos de la matriz hacia el control.
El botn Cargar Vector Ordenado deber solicitar una serie de cadenas de texto que se irn almacenando
dentro de un vector. Finalizada la carga se deber ordenar el vector, limpiar el ltimo ListBox y efectuar un
volcado de datos del vector hacia el control.
El botn Cargar vector y mostrar nmero mnimo y mximo ingresados deber solicitar una serie de
nmeros enteros que se irn almacenando dentro de un vector. Finalizada la carga se deber buscar el valor
mnimo y mximo y se mostrarn en pantalla.
Public Class Form1
Private Sub Button1_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
Dim vector(2) As String
CATEDRA DE PROGRAMACION I
131-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Dim i As Integer
For i = [Link](0) To [Link](0)
vector(i) = InputBox("ingrese vector(" + [Link]() + ")", "Titulo de InputBox")
Next
[Link]()
For i = [Link](0) To [Link](0)
[Link]("vector(" + [Link]() + ") = " + vector(i))
Next
End Sub
Private Sub Button2_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
Dim matriz(1, 1) As String
Dim i As Integer
Dim j As Integer
For i = [Link](0) To [Link](0)
For j = [Link](1) To [Link](1)
matriz(i, j) = InputBox([Link]("Ingrese matriz({0},{1})", i, j), "Titulo de InputBox")
Next
Next
[Link]()
For i = [Link](0) To [Link](0)
For j = [Link](1) To [Link](1)
[Link]([Link]("matriz({0},{1}) = {2} ", i, j, matriz(i, j)))
Next
Next
End Sub
Private Sub Button3_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
Dim vector(2) As String
Dim i As Integer
For i = [Link](0) To [Link](0)
vector(i) = InputBox("ingrese valor", "Titulo de InputBox")
Next
[Link](vector)
[Link]()
For i = [Link](0) To [Link](0)
[Link]("vector(" + [Link]() + ") = " + vector(i))
Next
End Sub
Private Sub Button4_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
Dim vector(2) As Integer
Dim i As Integer
For i = [Link](0) To [Link](0)
vector(i) = Convert.ToInt32(InputBox("ingrese valor", "Titulo de InputBox"))
Next
[Link]("El nmero mnimo es: " + Minimo(vector))
[Link]("El nmero mximo es: " + Maximo(vector))
End Sub
Function Minimo(ByVal vector() As Integer) As String
Dim valor As Integer = 99999
CATEDRA DE PROGRAMACION I
132-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Dim i As Integer
For i = [Link](0) To [Link](0)
If (vector(i) < valor) Then
valor = vector(i)
End If
Next
Return valor
End Function
Function Maximo(ByVal vector() As Integer) As String
Dim valor As Integer = -1
Dim i As Integer
For i = [Link](0) To [Link](0)
If (vector(i) > valor) Then
valor = vector(i)
End If
Next
Return valor
End Function
End Class
CATEDRA DE PROGRAMACION I
133-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO ANEXO INTEGRADOR 2
Objetivo:
Integrar los conceptos ms relevantes vistos hasta el momento.
Inicio
Ingrese en Visual Studio, cree un proyecto y un formulario que contenga 9 casillas de texto y 7 botones.
Las casillas de texto van a representar una matriz. Sobre esta se podrn realizar distintas operaciones. Las ms
sencillas sern el clculo del valor mnimo, mximo y la suma entre los elementos de la matriz que se debern
mostrar en un MessageBox.
La operacin Trasponer calcular la traspuesta de dicha matriz y actualizar las casillas de texto con los
valores respectivos.
La operacin Ordenar, como se indica, ordenar todos los valores de la matriz y actualizar las casillas de
texto con los valores que le corresponden.
Las operaciones Guardar en archivo y Cargar de Archivo se encargarn de persistir en un archivo de texto
y recuperar los valores cuando sean solicitados.
Imports [Link]
Public Class Form1
' variable miembro interna para gestionar mas facil
' las operaciones relacionadas.
Dim matrix(2, 2) As Integer
Private Sub Form1_Load(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
' inicializa las casillas de texto con el valor inicial de cada
CATEDRA DE PROGRAMACION I
134-169
UNIVERSIDAD ABIERTA INTERAMERICANA
' posicion de la matriz, que inicialmente son ceros.
CargarFormularioConMatriz()
End Sub
' Actualiza mi matriz en base a los textbox del formulario
Private Sub CargarMatrizDeFormulario()
matrix(0, 0) = Convert.ToInt32([Link])
matrix(1, 0) = Convert.ToInt32([Link])
matrix(2, 0) = Convert.ToInt32([Link])
matrix(0, 1) = Convert.ToInt32([Link])
matrix(1, 1) = Convert.ToInt32([Link])
matrix(2, 1) = Convert.ToInt32([Link])
matrix(0, 2) = Convert.ToInt32([Link])
matrix(1, 2) = Convert.ToInt32([Link])
matrix(2, 2) = Convert.ToInt32([Link])
End Sub
' Actualiza los textbox en base al contenido de mi matriz
Private Sub CargarFormularioConMatriz()
[Link] = [Link](matrix(0, 0))
[Link] = [Link](matrix(1, 0))
[Link] = [Link](matrix(2, 0))
[Link] = [Link](matrix(0, 1))
[Link] = [Link](matrix(1, 1))
[Link] = [Link](matrix(2, 1))
[Link] = [Link](matrix(0, 2))
[Link] = [Link](matrix(1, 2))
[Link] = [Link](matrix(2, 2))
End Sub
' Intercambia los valores de dos posiciones de la matriz
Private Sub Intercambiar(ByVal i As Integer, ByVal j As Integer, ByVal k As Integer, ByVal l As Integer)
Dim auxiliar As Integer = matrix(i, j)
matrix(i, j) = matrix(k, l)
matrix(k, l) = auxiliar
End Sub
Private Sub Button1_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
Dim i As Integer
Dim j As Integer
' El maximo es un numero muy bajo!, de esta forma cualquier
' valor que encuentre inicialmente va a ser el maximo.
Dim maximo As Integer = -1
CargarMatrizDeFormulario()
For i = 0 To 2
For j = 0 To 2
If (matrix(i, j) > maximo) Then
maximo = matrix(i, j)
End If
Next
CATEDRA DE PROGRAMACION I
135-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Next
[Link](maximo)
End Sub
Private Sub Button2_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
Dim i As Integer
Dim j As Integer
' El minimo es un numero muy grande!, de esta forma cualquier
' valor que encuentre inicialmente va a ser el minimo.
Dim minimo As Integer = 99999
CargarMatrizDeFormulario()
For i = 0 To 2
For j = 0 To 2
If (matrix(i, j) < minimo) Then
minimo = matrix(i, j)
End If
Next
Next
[Link](minimo)
End Sub
Private Sub Button3_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
CargarMatrizDeFormulario()
Intercambiar(0, 0, 2, 2)
Intercambiar(1, 0, 2, 1)
Intercambiar(0, 1, 1, 2)
CargarFormularioConMatriz()
End Sub
Private Sub Button4_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
Dim i As Integer
Dim j As Integer
Dim suma As Integer = 0
CargarMatrizDeFormulario()
For i = 0 To 2
For j = 0 To 2
suma = suma + matrix(i, j)
Next
Next
[Link](suma)
End Sub
Private Sub Button5_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
Dim vector(8) As Integer
CATEDRA DE PROGRAMACION I
136-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Dim i As Integer
Dim j As Integer
Dim auxiliar As Integer
CargarMatrizDeFormulario()
' para hacer las cosas mas sencillas, primero cargo la matriz en un vector
' luego ordeno el vector y lo vuelco ordenado en la matriz
vector(0) = matrix(0, 0) ' notar que se podra hacer utilizando un ciclo for
vector(1) = matrix(1, 0)
vector(2) = matrix(2, 0)
vector(3) = matrix(0, 1)
vector(4) = matrix(1, 1)
vector(5) = matrix(2, 1)
vector(6) = matrix(0, 2)
vector(7) = matrix(1, 2)
vector(8) = matrix(2, 2)
' algoritmo para ordenar un vector
For i = 0 To 8
For j = i + 1 To 8
If (vector(i) > vector(j)) Then
auxiliar = vector(i)
vector(i) = vector(j)
vector(j) = auxiliar
End If
Next
Next
matrix(0, 0) = vector(0) ' notar que se podra hacer utilizando un ciclo for
matrix(1, 0) = vector(1)
matrix(2, 0) = vector(2)
matrix(0, 1) = vector(3)
matrix(1, 1) = vector(4)
matrix(2, 1) = vector(5)
matrix(0, 2) = vector(6)
matrix(1, 2) = vector(7)
matrix(2, 2) = vector(8)
CargarFormularioConMatriz()
End Sub
Private Sub Button6_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
' cada cadena del vector "linea" contiene una linea de texto.
' para distinguir cada uno de los numeros utilizo un separador.
' en este caso va a ser el punto y coma.
Dim linea(2) As String
Dim writer As StreamWriter = New StreamWriter("c:\[Link]")
Dim i As Integer
CargarMatrizDeFormulario()
CATEDRA DE PROGRAMACION I
137-169
UNIVERSIDAD ABIERTA INTERAMERICANA
linea(0) = [Link]("{0};{1};{2}", matrix(0, 0), matrix(1, 0), matrix(2, 0))
linea(1) = [Link]("{0};{1};{2}", matrix(0, 1), matrix(1, 1), matrix(2, 1))
linea(2) = [Link]("{0};{1};{2}", matrix(0, 2), matrix(1, 2), matrix(2, 2))
For i = 0 To 2
[Link](linea(i))
Next
[Link]()
End Sub
Private Sub Button7_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link]
Dim linea(2) As String
Dim reader As StreamReader = New StreamReader("c:\[Link]")
Dim i As Integer
' para ser mas claros y mantener la logica del "guardar"
' primero cargo todas las lineas de texto que guarde en el archivo
For i = 0 To 2
linea(i) = [Link]()
Next
' completo los valores de la matriz correspondientes
For i = 0 To 2
matrix(0, i) = linea(i).Split(";")(0)
matrix(1, i) = linea(i).Split(";")(1)
matrix(2, i) = linea(i).Split(";")(2)
Next
[Link]()
CargarFormularioConMatriz()
End Sub
End Class
CATEDRA DE PROGRAMACION I
138-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO ANEXO CORTE DE CONTROL
Objetivo
Utilizacin del algoritmo de corte de control de dos niveles.
Antes de Comenzar
Realice en un archivo un ABM (Altas, Bajas y modificaciones) con los siguientes datos
Carrera
Materia
Profesor
Referencia: Laboratorio Numero 6 - Laboratorio Numero 7
Ingrese en Visual Studio, cree un proyecto y un formulario como se muestra a continuacin.
Dados los siguientes datos que se encuentran en un archivo de texto se desea saber por cada carrera y por cada
materia la cantidad de profesores asignados. El archivo deber estar ordenado por carrera y materia.
Carrera
INGENIERIA EN
SISTEMAS
INGENIERIA EN
SISTEMAS
INGENIERIA EN
SISTEMAS
INGENIERIA EN
SISTEMAS
INGENIERIA EN
SISTEMAS
INGENIERIA EN
SISTEMAS
INGENIERIA EN
SISTEMAS
LICENCIATURA
EN MATEMTICA
LICENCIATURA
EN MATEMTICA
LICENCIATURA
Materia
Profesor
Programacin I
Rafael Perez
Programacin I
Sistemas de
Computacin II
Sistemas de
Computacin II
Sistemas de
Computacin II
Historia de la Ciencia y
de la Tcnica
Historia de la Ciencia y
de la Tcnica
Julio Garcia
Maria
Sanchez
Anlisis Matemtico I
Carlos Nain
Ramon
Vargas
Luis perati
lgebra II
Taller de Informtica II
CATEDRA DE PROGRAMACION I
Martin Perez
Flavio
Gomez
Ramon Diaz
Juan Lopez
139-169
UNIVERSIDAD ABIERTA INTERAMERICANA
EN MATEMTICA
LICENCIATURA
EN MATEMTICA Taller de Informtica II Diego Bega
LICENCIATURA
Florencia
EN MATEMTICA Taller de Informtica II Bes
LICENCIATURA
Historia de la Ciencia y
EN MATEMTICA la Tcnica
Pablo Polca
LICENCIATURA
Vanina
EN MATEMTICA Laboratorio de Clculo
Dolfhi
LICENCIATURA
Alejandro
EN MATEMTICA Laboratorio de Clculo
Larnt
LICENCIATURA
EN MATEMTICA Anlisis Matemtico II
Juan Prot
LICENCIATURA
Gaston
EN MATEMTICA Anlisis Matemtico III Muchin
LICENCIATURA
Ecuaciones
Maria Ines
EN MATEMTICA Diferenciales
Jontes
LICENCIATURA
Metodologa de la
Alberto
EN MATEMTICA Investigacin
Garcia
LICENCIATURA
Metodologa de la
Pablo
EN MATEMTICA Investigacin
Basquez
LICENCIATURA
Metodologa de la
Susana
EN MATEMTICA Investigacin
Gimenez
Imports [Link]
Public Class Form1
Private Sub Button1_Click(ByVal sender As [Link], ByVal e As [Link]) Handles
[Link]
Dim reader As New StreamReader("C:\TEST\Clase8\Carrera_Materia_Profesor.txt")
Dim v As String()
Dim carrera As String = [Link]
Dim materia As String = [Link]
Dim cantidad_profesores As Integer = 0
Dim salir As Boolean = False
v = [Link]().Split(";"c)
While Not salir
carrera = v(0)
[Link]([Link]("Carrera {0}", carrera))
While Not salir AndAlso carrera = v(0)
materia = v(1)
[Link]([Link](" Materia {0}", materia))
cantidad_profesores = 0
While Not salir AndAlso carrera = v(0) AndAlso materia = v(1)
cantidad_profesores = cantidad_profesores + 1
If [Link] Then
salir = True
Else
CATEDRA DE PROGRAMACION I
140-169
UNIVERSIDAD ABIERTA INTERAMERICANA
v = [Link]().Split(";"c)
End If
End While
[Link]([Link]("
Cantidad de profesores {0}", cantidad_profesores))
End While
End While
[Link]()
End Sub
End Class
CATEDRA DE PROGRAMACION I
141-169
UNIVERSIDAD ABIERTA INTERAMERICANA
LABORATORIO ANEXO CORTE DE CONTROL
Objetivo
Utilizacin del algoritmo de corte de control de tres niveles realizando sumarizaciones y clculos bsicos.
Antes de Comenzar
Realice en un archivo un ABM (Altas, Bajas y modificaciones) con los siguientes datos
Carrera
Materia
Profesor
Nota
Referencia: Laboratorio Numero 6 - Laboratorio Numero 7
Ingrese en Visual Studio, cree un proyecto y un formulario como se muestra a continuacin.
Dados los siguientes datos que se encuentran en un archivo de texto se desea saber por cada ciclo electivo,
carrera y materia lo siguiente:
La nota mayor.
La nota menor.
El promedio de notas por materia.
El promedio de notas por carrera.
El promedio de notas por ciclo.
Ciclo
Carrera
2006
ING. SISTEMAS
2006
ING. SISTEMAS
2006
ING. SISTEMAS
2006
ING. SISTEMAS
2006
ING. SISTEMAS
2006
2006
2006
ING. SISTEMAS
ING. SISTEMAS
ING. SISTEMAS
Materia
PROGRAMACION
I
PROGRAMACION
I
PROGRAMACION
I
BASE DE DATOS
I
BASE DE DATOS
I
BASE DE DATOS
I
SEGURIDAD INF.
SEGURIDAD INF.
CATEDRA DE PROGRAMACION I
Nota
3
6
4
7
9
8
2
6
142-169
UNIVERSIDAD ABIERTA INTERAMERICANA
2006
LIC.
MATEMTICA
LIC.
MATEMTICA
LIC.
MATEMTICA
LIC.
MATEMTICA
LIC.
MATEMTICA
LIC.
MATEMTICA
LIC.
MATEMTICA
2007
ING. SISTEMAS
2007
ING. SISTEMAS
2007
ING. SISTEMAS
2007
ING. SISTEMAS
2007
ING. SISTEMAS
2007
ING. SISTEMAS
LIC.
MATEMTICA
LIC.
MATEMTICA
LIC.
MATEMTICA
LIC.
MATEMTICA
2006
2006
2006
2006
2006
2006
2007
2007
2007
2007
ALGEBRA II
ALGEBRA II
ALGEBRA II
ALGEBRA II
ANALISIS I
ANALISIS I
ANALISIS I
PROGRAMACION
I
PROGRAMACION
I
PROGRAMACION
I
BASE DE DATOS
I
BASE DE DATOS
I
BASE DE DATOS
I
ALGEBRA II
ALGEBRA II
ALGEBRA II
ALGEBRA II
5
6
7
8
9
6
El resultado esperado es el siguiente:
Ciclo 2006
Carrera ING. SISTEMAS
Materia PROGRAMACION I
Promedio de Materia 4.33333333333333
Materia BASE DE DATOS I
Promedio de Materia 8
Materia SEGURIDAD INF.
Promedio de Materia 4
Promedio de Carrera 5.44444444444444
Carrera LIC. MATEMATICA
Materia ALGEBRA II
Promedio de Materia 7.5
Materia ANALISIS I
Promedio de Materia 3
Promedio de Carrera 5.25
Promedio de Ciclo 5.34722222222222
CATEDRA DE PROGRAMACION I
143-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Ciclo 2007
Carrera ING. SISTEMAS
Materia PROGRAMACION I
Promedio de Materia 6
Materia BASE DE DATOS I
Promedio de Materia 7.66666666666667
Promedio de Carrera 6.83333333333333
Carrera LIC. MATEMATICA
Materia ALGEBRA II
Promedio de Materia 5.25
Promedio de Carrera 5.25
Promedio de Ciclo 6.04166666666667
Nota mayor 9
Nota menor 2
[Link]
Imports [Link]
Public Class Form2
Private Sub Button1_Click(ByVal sender As [Link], ByVal e As [Link]) Handles
[Link]
Dim reader As New StreamReader("C:\Ciclo_Carrera_Materia_Nota.txt")
Dim v As String()
Dim ciclo As String = [Link]
Dim carrera As String = [Link]
Dim materia As String = [Link]
Dim cuenta_carrera As Integer
Dim cuenta_materia As Integer
Dim cuenta_ciclo As Integer
Dim suma_ciclo As Double
Dim suma_carrera As Double
Dim suma_materia As Double
Dim max_nota_materia As Integer = -1
Dim min_nota_materia As Integer = 999
Dim nota As Integer
Dim salir As Boolean = False
v = [Link]().Split(";"c)
While Not salir
ciclo = v(0)
[Link]([Link]("Ciclo {0}", ciclo))
cuenta_ciclo = 0
suma_ciclo = 0
While Not salir AndAlso ciclo = v(0)
carrera = v(1)
[Link]([Link](" Carrera {0}", carrera))
CATEDRA DE PROGRAMACION I
144-169
UNIVERSIDAD ABIERTA INTERAMERICANA
cuenta_carrera = 0
suma_carrera = 0
While Not salir AndAlso ciclo = v(0) AndAlso carrera = v(1)
materia = v(2)
[Link]([Link]("
Materia {0}", materia))
cuenta_materia = 0
suma_materia = 0
While Not salir AndAlso ciclo = v(0) AndAlso carrera = v(1) AndAlso materia = v(2)
nota = Convert.ToInt32(v(3))
cuenta_materia = cuenta_materia + 1
suma_materia = suma_materia + nota
If nota > max_nota_materia Then
max_nota_materia = nota
End If
If nota < min_nota_materia Then
min_nota_materia = nota
End If
If [Link] Then
salir = True
Else
v = [Link]().Split(";"c)
End If
End While
[Link]([Link]("
Promedio de Materia {0}", suma_materia /
cuenta_materia))
cuenta_carrera = cuenta_carrera + 1
suma_carrera = suma_carrera + (suma_materia / cuenta_materia)
End While
[Link]([Link](" Promedio de Carrera {0}", suma_carrera / cuenta_carrera))
cuenta_ciclo = cuenta_ciclo + 1
suma_ciclo = suma_ciclo + (suma_carrera / cuenta_carrera)
End While
[Link]([Link]("Promedio de Ciclo {0}", suma_ciclo / cuenta_ciclo))
End While
[Link](" ")
[Link]([Link]("Nota mayor {0}", max_nota_materia))
[Link]([Link]("Nota menor {0}", min_nota_materia))
[Link]()
End Sub
End Class
CATEDRA DE PROGRAMACION I
145-169
UNIVERSIDAD ABIERTA INTERAMERICANA
TRABAJOS PRACTICOS
TP NRO 1
Tema:
estructuras de datos
Objetivo:
tomar conocimiento de su manejo
Tipo de trabajo: grupal
Lenguaje:
C 3.0 de Borland
Consigna:
Generar el cdigo necesario para el manejo de
la estructura que le haya sido asignada
una cola
de una pila
de una listas
Debe sastifacer bsicamente las operaciones de
creacin de una estructura
ingreso de un dato
egreso de un dato
control de estructura llena
control de estructura vaca
tamao de la estructura
CATEDRA DE PROGRAMACION I
146-169
UNIVERSIDAD ABIERTA INTERAMERICANA
TP NRO 2
Tema :
propiedades de los objetos ms usados en [Link]
Objetivo:
brindar el conocimiento de las distintas propiedades y mtodos que
poseen los objetos y su uso
Tipo de trabajo:
individual
Forma de entrega:
en un documento de Word
Consigna:
Generar una matriz en Word donde figuren los
distintos controles a estudiar en [Link] , con las
propiedades y mtodos que contienen
A continuacin deber realizarse una descripcin de
estas propiedades y mtodos
ejemplo de propiedades
label
textbox
radiobutton
form
checkbox
datetimepicker
progressbar
groupbox
menustrip
listbox
combobox
otros utilizados
name
autosize
backcolor
enabled
font
locked
size
otros
otros
otros
button
controles
propiedades
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
descripcin
name: indica el nombre en el codigo para identificar al objeto
autosize: indica si un control cambiara automticamente de tamao segn su
contenido
backcolor: color de fondo del componente
enabled: indica si el control esta habilitado
CATEDRA DE PROGRAMACION I
147-169
UNIVERSIDAD ABIERTA INTERAMERICANA
TP NRO 3
Tema :
teora de objetos
Objetivo :
teora de objetos
que el alumno investigue , lea y asimile las distintas definiciones de la
Tipo de trabajo :
individual
Forma de entrega:
manuscrito
Consigna:
Responda a las siguientes preguntas
1. Que es un objeto
2. Que es un mtodo
3. Que son sus propiedades
4. Que es polimorfismo
5. Que es herencia
6. Que es encapsulamiento
7. Que se entiende por un mensaje entre objetos
8. Que es una clase
9. Que es instanciar
10. A quien se instancia , a una clase o a un objeto
11. rboles
12. rboles B
13. rboles binarios
14. hashing
15. formas de recorrer un rbol
16. enuncie 3 caracteristicas que debe tener un lenguaje en .net
17. que son las especicificaciones CLS
18. que significa que .net origina codigo administrado
19. que es el runtime
20. como es la velocidad entre los distintos lenguajes
21. que es la interoperabilidad y que implica
22. que es el MSIL
23. que hace el compilador just in time
24. que tipos de aplicaciones permite crear el .net framework
CATEDRA DE PROGRAMACION I
148-169
UNIVERSIDAD ABIERTA INTERAMERICANA
25. enumere las distintas ventanas de [Link] con una breve descripcin
26. que es un modulo, para que sirve y como se codifica . nuevas carcteristicas
27. que es el procedimiento sub new
28. que es el procedimiento sub main
29. que es una clase , como se codifica , caracteristicas
30. que es formulario , como se codifica , caracteristicas
31. que es un namespaces , como se codifica , caracteristicas
32. que es la instruccion Imports , como se codifica , caracteristicas
33. que es una variable , como se codifica , caracteristicas
34. que es option explicit y option compare , como se codifica , caracteristicas
35. ambito de las variables
36. tipos de datos , asignaciones
37. que es option strict , como se codifica , caracteristicas
CATEDRA DE PROGRAMACION I
149-169
UNIVERSIDAD ABIERTA INTERAMERICANA
TP NRO 4
Tema :
vectores y matrices
Objetivos : que el alumno conozca y desarrolle en [Link] la carga y
Manipuleo de arrays , como el manejo del ciclo for
Lenguaje: [Link] sin utilizar mtodos provistos por el lenguaje
Consignas: Generar un proyecto de dos forms donde en cada uno se maneje un vector y una
matriz respectivamente
En ellos por medio de un ciclo for y de un Inputbox se cargaran estas estructuras para luego
En los vectores
Calcular su mximo y en que posicin se encuentran los mximos repetidos
Calcular su mnimo y cuantas veces se repite
Ordenar el vector de mayor a menor
Sumar sus componentes
Obtener el promedio de los valores del vector
En la matriz
Calcular su mximo por fila y cuantas veces se repite en ellas
Calcular su mnimo por columnas y si se repite , en que posicin de la columna
Calcular su mximo general y en que posiciones se encuentran los iguales a el
Sumar sus componentes
Obtener el valor promedio general
Obtener el valor promedio por filas
CATEDRA DE PROGRAMACION I
150-169
UNIVERSIDAD ABIERTA INTERAMERICANA
TP NRO 5
Tema :
archivos secuenciales
Objetivo :
brindar el conocimiento sobre el manejo de los archivos Secuenciales
Tipo de trabajo:
individual
Forma de entrega:
cdigo en [Link]
Consignas:
Generar un programa para dar respuesta a los
distintos puntos que se le pidan en el ejercicio
asignado a cada alumno .
Los programas deben tener
Formulario de splashscreem con su correspondiente menustripe
Formulario de inicio de sesin para el usuario y contrasea
Debe ser multiusuario , para lo cual se generara un archivo usuario
El diseo de los forms quedan a inspiracin de los alumnos
Se deben utilizar la mayor cantidad de controles estudiados , radiobutton, checkbox ,
button , combobox , listbox , etc .
En forma genrica se muestra como deberia ser el form men donde cada archivo debe
contener en su form botones para la realizacin de Alta , Baja y Modificacin de los
registros
Se debe especificar el nombre del archivo y el contenido del punto que se esta
respondiendo en cada form
Todas las opciones del men deben estar desactivadas hasta que el usuario ingrese la
clave correcta
Se puede tener un control de ingresos de clave o usuarios incorrecta
Dentro del diseo de los form se pueden colocar imgenes alusivas al tema adjudicado
Si el tema da , realizar un corte de control
En cada form para pasar de un textbox a otro se deber poder hacerlo oprimiendo
ENTER
Si se selecciona un elemento del listbox se debe reflejar en los textbox correspondientes
de los ABM
ARCHIVOS
Archivo 1
Archivo2
REPUESTAS
Punto 1
Punto 2
SALIR
CATEDRA DE PROGRAMACION I
151-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Enunciados para realizar el TP de programacion I
1. En una empresa los empleados cobran un sueldo segn la categoria, son 50
empleados y 3 categoras
archivo secuencial de categorias
categoria
valor del sueldo
Al sueldo se le suman $ 100 por cada ao trabajado.
Luego se tiene un archivo personal con los siguientes campos
Nombre
Categora
antigedad
calcular
A.
B.
C.
D.
E.
Cuntos empleados hay por categora
Total de sueldos pagados por categora
Sueldo promedio general
Sueldo mximo y a quin pertenece
Qu porcentuel sobre el total de sueldos representa cada total de sueldos de las categoras
2. con los mismos archivos del ejercico numero 1
Se desea saber
A.
B.
C.
D.
E.
F.
G.
Cantidad de empleados por categora
Cantidad de empleados que cobran mas de $ 2000
Cantidad de empleados de la categora 1 con sueldo mayor a $ 1000
Sueldo mximo y a qu empleado pertenece
Sueldo mnimo y a que empleado pertenece
Categora con ms empleados
Porcentual en cantidad de empleados de cada categora sobre el total de la empresa
3. Una empresa desea procesar las ventas que tiene en el siguiente archivo secuencial
nmero de factura
cdigo de articulo
cantidad vendida
en otro archivo se tiene el precio de los 10 articulos
codigo de articulo
precio unitario
en cada factura slo se vende un tipo de artculo, los artculos son 6 tura = 0
CATEDRA DE PROGRAMACION I
152-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Se pide :
A.
B.
C.
D.
E.
F.
G.
H.
cantidad de facturas emitidas
monto de cada factura
suma de las facturas (caja diaria)
cantidad total de artculos vendidos
cantidad vendida de cada artculo
cantidad de facturas emitidas para cada artculo
promedio de importe de las facturas
porcentual que representa el monto total de cada artculo sobre el total
4. Una compana area vende boletos en 3 aeropuertos mediante 6 empleados, cada vez que realiza
una venta tiene los siguientes datosen un archivo secuencial
nmero de aeropuerto
nmero de empleado
destino
cantidad de pasajes
a la vez en otro archivo se tienen los siguientes datos de los 10 destinos
destino
valor del pasaje
Se desea saber
A.
B.
C.
D.
E.
F.
G.
cantidad de pasajes vendidos por aeropuerto
cantidad de pasajes vendidos por cada empleado
monto total vendido por empleado
boleto de mayor valor
porcentual que representa lo vendido por cada aeropuerto en dinero sobre el total
cantidad de ventas que excedieron los $ 1000
si cada boleto ya tiene incorporado el 10,5% de iva sobre el valor del boleto,
cunto hay que pagarle al fisco
H. si sobre el total hay que pagar el 3% de ingresos brutos, cul es ese monto
5. Un restaurant tiene 6 mozos y 12 mesas, cada vez que cobran una mesa se anotan los siguientes datos,
que se almacenan en un archivo secuencial
nmero de factura
nmero de mozo
nmero de mesa
cantidad de personas que comieron
monto de la cuenta
Se desea saber lo siguiente
A. cantidad de personas atendidas por cada mozo
CATEDRA DE PROGRAMACION I
153-169
B.
C.
D.
E.
F.
G.
H.
I.
UNIVERSIDAD ABIERTA INTERAMERICANA
cantidad de facturas realizadas
caja diaria realizada
monto facturado por cada mesa en total
porcentual facturado por cada mozo sobre el total
si a cada mozo se le da el 5% de su venta cunto le corresponde a cada uno
cul mozo atendi ms personas en total
cuntas facturas superaron $ 45
mesa a la que se factur ms veces, o sea que ms recambio de clientes tuvo
6. Un supermercado realiza un estudio sobre sus ventas, para ello cuenta con seis secciones y 10
cajas. cada vez que realiza una cuenta se genera el siguiente archivo secuencial
nmero de caja
nmero de seccion
importe de la venta
tiempo en caja
cantidad de productos comprados
nro de ticket
si la compra supera los $50, se le realiza un 2% de descuento, Se desea saber
A.
B.
C.
D.
E.
F.
G.
H.
I.
cantidad de tickets emitidos
cantidad de tickets emitidos por caja
ticket de mayor tiempo en caja
monto recaudado por seccin
que porcentaje representa el monto recaudado por caja sobre el total
cantidad de comprobantes con monto mayor a $ 100
monto total descontado
porcentual que representa el monto total descontado sobre el total vendido
si cada cajero gana el 20 % de su recaudacin cunto cobra cada uno
7. Una cartelera de cine tiene 5 sucursales en 3 turnos, si compran mas de 8 asientos en un solo ticket
se le har un 10% de descuento.
En este momento se estan exhibiendo las siguientes pelculas
numero de pelicula
nombre
precio
Cada vez que compran, le dan un ticket donde figuran
Nmero de sucursal
Nmero de pelcula
Cantidad de asientos comprados
Turno
CATEDRA DE PROGRAMACION I
154-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Se desea saber
a.
b.
c.
d.
e.
f.
g.
h.
Cantidad de asientos vendidos en cada turno
Pelicula de mayor recaudacin
Sucursal que vendi menos en total en pesos
Si cada sucursal recibe un 20% de lo recaudado, cunto gan c/u
Porcentual que representa lo recaudado por pelicula sobre el total
Ticket de menor valor
Cantidad de asientos vendidos para la pelicula 2 en la sucursal 3 y turno Tarde
Cul fue el promedio de asientos solicitados por cada sucursal
8. Un noticiero de TV tiene 10 comentaristas para cubrir 5 mviles, al trmino de cada transmisin se
genera un archivo con los siguientes datos
cdigo de comentarista
nmero de movil
categora
cantidad de horas
localidad
se posee en un archivo secuencial los siguientes datos de las 4 categorias
codigo de categoria
descripcion
en otro archivo los datos del as 6 localidades
codigo de localidad
descripcion
Se desea saber
a.
b.
c.
d.
e.
f.
g.
h.
cantidad de hs trabajadas por cada comentarista
localidad desde donde se transmiti ms veces
porcentual que representa la totalidad en hs de cada categora sobre el total
promedio de hs trabajadas por cada comentarista
cantidad de veces que se transmiti poltica desde el exterior
que categora fue la menos transmitida en total
que transmisin fue la de mayor duracion en hs
el comentarista 1 en que localidad trabaj ms
9. Una empresa de micros vende boletos a 3 destinos
CATEDRA DE PROGRAMACION I
155-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Archivo secuencial destinos
Codigo de destino
Nombre
Tiene otro archivo secuencial con los valores de las 4 clases
Codigo de claseDescripcion
Precio
Cada vez que realiza una venta representa un asiento generandose el siguiente archivo secuencial
nmero de ticket
codigo de destino
codigo de clase
Se desea saber
1.
2.
3.
4.
5.
6.
cantidad total de boletos vendidos
promedio del valor de boleto vendido en dinero
porcentual que representa la cantidad vendida en cada clase sobre el total
cuntos boletos se vendieron a necochea en pullman
cul destino es el ms solicitado en total
cul clase en total es la menos solicitada
10- Una empresa procesa un archivo secuencial de facturas con los siguientes datos:
- nro de factura
- nro de vendedor
- articluo
- cantidad vendida
se posee ademas otro archivo secuencial con los datos de los 10 articulos
articulo
descripcion
valor unitario
Si existen 4 vendedores, calcular:
1.
2.
3.
4.
5.
6.
caja del da
porcentual que representa lo vendido por cada vendedor del total
valor promedio de las facturas
cantidad vendida por cada vendedor en unidades
articulo menos vendido en unidades
monto recaudado para cada articulo
CATEDRA DE PROGRAMACION I
156-169
UNIVERSIDAD ABIERTA INTERAMERICANA
11- Una empresa comercializa 20 libros contenidos en 5 [Link] vez que realiza una venta tiene
los siguientes datos
nro de libro
nro de gnero
cantidad vendida
se posee otro archivvo secuencial con los siguientes datos
nro de libro
precio unitario
Se desea saber:
- facturacin total
- facturacin por libro
- facturacin por genero
. precio promedio de factura
. cantidad de facturas de ms de $100.
12- Un banco realiza operaciones de depsito y extraccin.
En cada operacin se genera un archivo secuencial
- nro de operacin
- nro de sucursal
- tipo de transaccin
- monto
El banco tiene 10 sucursales
Se desea saber
1.
2.
3.
4.
5.
cunto recaud en concepto de depsitos cada sucursal
cunto entreg cada sucursal en concepto de extraccin
de qu sucursal se extrajo ms que lo que se deposit
si se cobra el impuesto a los depositos del 2,1% cuanto recauda cada sucursal
que porcentaje representa para cada sucursal las extracciones dentro de sus
operaciones
13- Una empresa textil maneja sus ventas por medio de corredores que cobran
comisiones sobre el total de las mismas.
tiene 4 artculos y son 10 corredores
posee un archivo secuencial de corredores
nro de corredor
CATEDRA DE PROGRAMACION I
157-169
UNIVERSIDAD ABIERTA INTERAMERICANA
comision a cobrar
en otro archivo secuencial se tiene
codigo de articulo
descripcion
precio unitario
cada vez que realiza una venta se graba un archivo secuencial
-
nro de corredor
nro de artculo
cantidad
descuento
Calcular e imprimir
a.
b.
c.
d.
e.
f.
g.
importe total vendido por cada corredor
porcentual que representa sobre la venta de la empresa
comisin a cobrar por cada corredor
cantidad de ventas realizadas por cada corredor
promedio del valor vendido por cada corredor
nro de corredor que vendi ms
imprimir ordenado por monto total vendido por cada corredor, el monto, la cantidad de
facturas hechas y la comisin recibida
14- Una empresa de informtica tiene 100 empleados que pertenece a una
distribuidos en 3 departamentos y 5 categorias
determinada categora
Se posee un archivo secuencial con
Nro de categora
Descripcin
Sueldo
en el archivo personal se tiene el siguiente archivo secuencial
legajo
nombre
categoria
departamento
Se desea saber:
a. sueldo total a pagar por departamento
b. sueldo total a pagar por categora
CATEDRA DE PROGRAMACION I
158-169
c.
d.
e.
f.
g.
h.
UNIVERSIDAD ABIERTA INTERAMERICANA
categora que ms cobra en total
departamento que menos cobra en total
cantidad de empleados por categora
sueldos totales a pagar por la empresa
categora con menos empleados
imprimir ordenados por sueldos por categora, los sueldos y la cantidad de
empleados por categora
15- Una empresa transportadora de caudales posee 8 camiones blindados para realizar sus viajes
En un archivo secuencial se tiene los siguientes datos de los 5 valores que transporta
cdigo del valor
descripcin
costo del transporte
Cada vez que realiza un viaje tiene la siguiente informacin que se graba en otro archivo secuencial
-
cdigo de cliente
nmero de camin
tipo de valor
cantidad
Se desea saber:
a.
b.
c.
d.
e.
f.
g.
h.
cantidad de viajes realizados por camin
total transportado por camin del valor 1
recaudacin de cada valor
recaudacin de cada camin
nombre del valor ms transportado en total
cliente que transport menos en un viaje
porcentual que representa lo recaudado por cada camin sobre el total
imprimir ordenado por la cantidad de viajes realizados por camin en forma
ascendente:
- cantidad de viajes realizados por camin
- recaudacin por camin
- nmero de camin
16- Una empresa de combustible tiene 20 estaciones de servicios, donde se expanden 3 tipos de
combustible
En nun archivo secuencial se tiene los siguientes datos
tipo
descripcin
CATEDRA DE PROGRAMACION I
159-169
UNIVERSIDAD ABIERTA INTERAMERICANA
precio
Al realizar una venta se tiene los siguientes datos, que se guardan en otro archivo secuencial
nmero de boleta
- nmero de estacin
- tipo de combustible
- cantidad
Se desea saber:
a. cantidad de litros vendidos en cada estacin
b. recaudacion de cada estacin
c. cantidad de boletas emitidas por estacin
d. total de litros vendidos por cada tipo de combustible
e. la estacin 1 fue la que ms recaud?
f. nmero de boleta con mayor importe
g. imprimir las tres primeras preguntas ordenadas por recaudacin por estacin en
forma ascendente
17- Una empresa de micros realiza viajes a 4 destinos y tiene 3 tipos de tarifa iguales para todos los
destinos
En un archivo secuencial tiene los destinos posibles
cdigo destino
descripcin
y en otro el valor de las tarifas segn el codigo de tarifa
cdigo de tarifa
valor
cada vez que se vende un boleto se tienen los siguientes datos que finalizan con nro de ticket = 0
numero de ticket
cdigo de destino
cdigo de tarifa
cantidad de boletos
si se compran ms de 10 boletos se le hace 10 % de rebaja
Se desea saber:
1.
2.
3.
4.
5.
cantidad de pasajes vendidos a cada destino
ticket de mayor valor
recaudacin por destino
porcentaje que representa lo recaudado por destino sobre el total
cantidad de pasajes vendidos por clase
CATEDRA DE PROGRAMACION I
160-169
UNIVERSIDAD ABIERTA INTERAMERICANA
6. salta fue el destino ms solicitado ?
7. si debe pagar el 21% de IVA, cul es el monto a pagar
8. imprimir ordenado descendentemente por recaudacin por destino:
- nombre del destino
- cdigo del destino
- recaudacin por destino
- cantidad de pasajes por destino
18- Una entidad de beneficiencia tiene autorizados 30 puestos de venta de alimentos en la va pblica
Se tiene un archivo con los datos de los 20 mercaderias
cdigo de mercadera
descripcin
precio
cada vez que se vende se emite un ticket con los siguientes datos
nmero de ticket
nmero de puesto
tipo de mercadera
cantidad
Se desea saber:
1.
2.
3.
4.
5.
6.
7.
8.
ticket de mayor valor
recaudacin de cada puesto
porcentual que representa lo recaudado por cada mercadera sobre el total
mercadera ms vendida
puesto menos rentable en dinero
si el 10% se destina a impuestos, cunto debe pagar cada puesto
cantidad de tickets vendidos en cada puesto
imprimir ordenado por nmero de puesto:
i. nmero de puesto
ii. recaudacin por puesto
iii. cantidad de mercadera vendida por puesto
19- Una empresa desea analizar los sueldos a sus 50 empleados durante el ao, para ello se tiene en un
archivo
-
legajo del empleado
cantidad de horas trabajadas
mes
en otro archivo secuencial se tiene
legajo
CATEDRA DE PROGRAMACION I
161-169
UNIVERSIDAD ABIERTA INTERAMERICANA
valor hora
Se desea saber:
a.
b.
c.
d.
e.
f.
g.
sueldo anual de cada empleado
total de sueldos pagados cada mes
mximo sueldo pagado cada mes y a quin pertenece
porcentaje que representa cada sueldo anual sobre el total
nombre del empleado que cobr ms en el primer semestre
cantidad de meses en que el total de sueldos super los $100000
imprimir ordenado en forma descendente por sueldo anual de cada empleado:
1. legajo
2. nombre
3. sueldo anual de cada empleado
20- Una consultora tiene 10 analistas y 15 proyectos en los que trabajan indistintamente, su actividad se
guarda en un archivo
o nmero de analista
o nmero de proyecto
o cantidad de hs trabajadas
en otro archivo se tiene
numero de analista
valor hora
Se desea saber:
a.
b.
c.
d.
e.
f.
g.
h.
cantidad de hs. trabajadas en total por cada analista.
total de horas trabajadas por cada analista en cada proyecto.
total de hs trabajadas sobre cada proyecto.
que analista trabaj menos en el proyecto 1.
sueldo de cada analista.
nombre del analista que cobr ms.
cantidad de analistas que hayan trabajado menos de 5 hs en alguno de los proyectos.
imprimir ordenado en forma descendente por sueldo de los analista:
-
nombre
valor de la hora
sueldo
21- Una acopiadora de cereales tiene 20 silos donde almacena 4 tipos de cereal
En un archivo secuencial se tiene
cdigo de cereal
CATEDRA DE PROGRAMACION I
162-169
UNIVERSIDAD ABIERTA INTERAMERICANA
descripcin
valor
en otro archivo secuencial se tiene los almacenajes efectuados,
- nmero de silo
- tipo de cereal
- cantidad
Se desea saber:
a.
b.
c.
d.
e.
f.
g.
h.
total de kg almacenados de cada cereal
total de kg almacenados de cada cereal en cada silo
stock valorizado de cada silo
nombre del cereal de ms almacenaje para cada silo
de los silos cul o cules recaud ms
cantidad de silos con ms de 20000 kg almacenados en total
cantidad de silos con ms de 2000 kg almacenados para cada cereal
porcentaje que representa lo valorizado por cada silo sobre el total
22- Un instituto tiene 20 cursos que comercializa por medio de 5 vendedores,
Cada venta se guarda en un archivo secuencial
-
nmero de vendedor
nmero de curso
cantidad de inscriptos
ademas se conoce
numero de curso
valor del curso
porcentaje a pagar al vendedor
Se desea saber:
a.
b.
c.
d.
e.
f.
g.
h.
total de alumnos inscriptos por curso
total de alumnos inscriptos por vendedor
comisin a cobrar por cada vendedor
recaudacin por curso
en qu curso y de qu vendedor se dio la mayor inscripcin de alumnos
que vendedor inscribio ms alumnos en el curso 4
cantidad de cursos donde no se inscribi nadie
cantidad de cursos donde no inscribi a nadie el vendedor 5
23- Una empresa embotelladora comercializa 5 gaseosas. El costo de embotellamiento es de $ 0.10 de
mano de obra, $ 0.15 de lavado de botella, ms el valor del liquido a embotelar.
La empresa tiene 20 centros distribuidos a lo largo del pas y recarga un 10 % al costo si los
centros son el N. 3, 6, 8 y un descuento del 5% si el centro es el N. 1.
El flete a aplicar es de $ 0.01 por km
CATEDRA DE PROGRAMACION I
163-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Se tiene en un archivo secuencial
-
N de centro
nombre
distancia
en otro se lleva la produccion
- nmero de centro
- nmero de gaseosa
- cantidad embotellada
y por ultimo en un tercero se lleva
numero de gaseosa
valord del litro
Se desea saber:
a.
b.
c.
d.
e.
f.
g.
cantidad envasada por centro
cantidad envasada por gaseosa
cantidad de gaseosa que embotell cada centro
costo total de embotellamiento de cada centro
para cada gaseosa indicar en qu centro se embotell ms
porcentaje que representa el costo de embotellamiento de cada centro sobre el total
si se vende todo lo que se produce con una ganacia del 200% cunto se recauda por
cada centro
h. si de esa recaudacin se paga un 30 % de impuestos, que valor es este
i. nombre de la gaseosa de mayor facturacin para cada centro
j. nombre de la gaseosa de menor facturacin en total
24- Una universidad desea analizar los sueldos abonados a sus 60 docentes, para ello se tiene un archivo
secuencial con
-
Legajo del docente.
Mes.
Categora.
Cantidad de hs. trabajadas.
Se tiene un archivo secuencial categorias
Categoria
Descripcion
Valor hora
CATEDRA DE PROGRAMACION I
164-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Se desea saber:
a.
b.
c.
d.
e.
f.
g.
h.
sueldo anual de cada profesor
total de sueldos pagados por cada mes
para cada profesor cantidad de sueldos mayores a su sueldo promedio
mximo sueldo pagado cada mes
porcentaje que representa cada sueldo anual sobre el total pagado
profesor que cobr menos en el segundo semestre del ao
que profesor trabajo mas horas en diciembre
imprimir ordenado por sueldo anual de menor a mayor
1. sueldo anual
2. legajo del profesor
3. sueldo promedio
4. porcentaje (punto 5)
25-Un laboratorio fabrica remedios con distintas drogas, son 15 remedios que combinan 20 drogas. El
valor de cada remedio depende de las drogas a utilizarse, se tiene los siguientes archivos secuenciales
droga
-cdigo de droga
-valor por unidad
Composicion
-nmero de remedio
-cdigo de droga
-cantidad
Ventas
Nro de factura
Remedio
Cantidad vendida
Se desea saber:
a.
b.
c.
d.
e.
f.
g.
h.
i.
recaudacin del laboratorio
recaudacin por cada remedio
valor de cada remedio
porcentaje que representa lo vendido por cada remedio sobre el total
precio promedio
cul remedio usa ms de la droga 8
droga menos usada
droga ms cara
remedio ms barato
CATEDRA DE PROGRAMACION I
165-169
UNIVERSIDAD ABIERTA INTERAMERICANA
j. imprimir ordenado por valor de cada remedio,
valor de cada remedio
cantidad de remedios vendidas en unidades
recaudacin de cada remedio
26- Una empresa desea analizar los sueldos de sus 80 empleados, para ello cuenta con los siguientes
archivos secuenciales
categoria
-
cdigo de categoria (del 1 al 6 )
descripcin
sueldo bsico
valor hora extra
nmero de legajo
categora
cantidad de horas extras trabajadas
mes
personal
En julio y diciembre hay que abonarle el medio aguinaldo
Se desea saber:
a.
b.
c.
d.
e.
f.
g.
h.
i.
sueldo anual de cada profesional
total pagado por mes
para cada legajo cuntos sueldos superan el promedio de cada uno
mximo sueldo pagado en un mes y a quin pertenece
porcentaje que representa el sueldo anual de cada legajo sobre el total
legajo que cobr menos en el segundo semestre
quien cobr ms en diciembre
quien trabaj menos en el primer trimestre del ao
imprimir ordenado por sueldo anual del profesional
1. sueldo anual del profesional
2. legajo
3. cantidad total de horas extras trabajadas por cada legajo
27- Un taller de computacin arma 4 modelos de equipos en 5 puntos del interior del pais,se tienen los
siguientes archivos secuenciales
modelos
-
nmero de modelo
costo
lugar de armado
costo del flete
lugares
CATEDRA DE PROGRAMACION I
166-169
UNIVERSIDAD ABIERTA INTERAMERICANA
Si el lugar de armado es el 4 se le aplica un descuento del 15% al costo por incentivo zona
desfavorable
El precio de venta tendra un 150% de ganancia
Por ultimo posee otro archivo secuencial ventas
-
nmero de modelo
lugar de armado
cantidad
Se desea saber:
a.
b.
c.
d.
e.
f.
g.
h.
i.
cantidad armada en cada lugar
cantidad vendida de cada modelo
total facturado por cada modelo
porcentual que representa esa facturacin sobre el total
precio promedio
cul fue la ganancia de la empresa
cul fue el lugar de ms produccin de equipos en total
cul equipo y adonde se fabric menos
imprimir el punto 2 y 3 ordenado descendentemente por total facturado
28. Una empresa naviera tiene 10 destinos en el caribe y su barco realiza viajes circulares entre ellos, o
sea que sale de un puerto y retorna al mismo pasando por todos los puertos intermedios.
Los pasajeros pueden tomar este tipo de viaje o subir en uno y bajar en otro.
Se tiene un archivo secuencial de puertos
-
Nmero de puerto
Nombre
Archivo secuencial viajes
-
Nmero de puerto de salida
Nmero de puerto de llegada
Cantidad de pasajeros
Se desea saber:
a.
b.
c.
d.
e.
f.
Cantidad de pasajeros que salieron de un puerto
Cantidad de pasajeros que llegaron a un puerto
Cantidad de pasajeros que hicieron viajes circulares
Puerto donde arribaron ms pasajeros
Puerto de donde salieron menos pasajeros
Porcentual que representan los pasajeros que hicieron viajes circulares sobre el total
CATEDRA DE PROGRAMACION I
167-169
UNIVERSIDAD ABIERTA INTERAMERICANA
CATEDRA DE PROGRAMACION I
168-169
UNIVERSIDAD ABIERTA INTERAMERICANA
CATEDRA DE PROGRAMACION I
169-169