Вы находитесь на странице: 1из 100

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 Vb.Net 6. Teora de archivos secuenciales e indexados en jackson 7. Laboratorios en Vb.Net 8. Anexo de teoria de Vb.Net 9. Anexos de laboratorios en Vb.net 10. Trabajos prcticos a presentar 11. Enunciados de ejercicios

pag 2 pag 8 pag 10 pag 13 pag 14 pag 48 pag 60 pag 101 pag 125 pag 145 pag 152

CATEDRA DE PROGRAMACION I

1-100

UNIVERSIDAD ABIERTA INTERAMERICANA

Programa de Asignatura
00 Cdigo:

F T

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 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 Basic.NET 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. 05 Cuatrimestre: 2 06 Hs. Semanales: 6 Director de rea: CARDACCI,Dario

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-100

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-100

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-100

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 Visual.NET

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 Basic.Net 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-100

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 Basic.NET .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 .ed.especial.Madrid: 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-100

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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

Cronograma de la materia programacin I


Clase nro 1 2 3 Teora de lgica Colas , pilas y listas Repaso de prog est Archivos secuenciales Corte de control Corte de control Apareo de archivos secuenciales Apareo Apareo parcial Archivos indexados Apareo Apareo Apareo Apareo Parcial Entrega de tp recuperatorio Teora de .Net Teora de objetos Framework , lenguaje IDE Tipos de datos lenguaje Lenguaje Lenguaje Lenguaje Practica en el laboratorio Lab nro 1 Lab nro 2 Lab nro 3 tp solicitado Tp nro 1 Tp nro 2 Tp nro 3 Tiempo de entrega Clase 7 Clase 4 Clase 7 Observaciones Bibliografa Tp en C Cuestionario manuscrito Cuestionario manuscrito Vb.net Lib 1 cap1 al cap 12 Lib 2 cap 1,2,3 y 8 Lib 2 cap 1,2,3,8 y 17 Apuntes 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 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

4 5 6 7 8 9 10 11 12 13 14 15 16

Anexo nro 1 Anexo nro 2 y 3 Lab nro 4 Lab nro 5 parcial Lab nro 6 Lab nro 7 Anexo nro 4 Anexo nro 5 Anexo nro 6 Parcial Entrega de tp recuperatorio

Tp nro 4

Clase 7

Lenguaje Lenguaje Lenguaje Lenguaje Lenguaje

Tp nro 5

Clase 15

Vb.net

CATEDRA DE PROGRAMACION I

8-100

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-100

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-100

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-100

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-100

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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

Que es Visual Studio .Net


VS.NET 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 ( vb.net , 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 System.Object CATEDRA DE PROGRAMACION I 14-100

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 System.Object, lo que significa que siempre podra asignar cualquier tipo a una variable System.Object y nunca obtendr un error de compilacin o en tiempo de ejecucin. Dim MiVar as System.Objetc = New OtraCalase() La nica cosa de .Net Framework que no deriva de System.Object son las Interfaces. El system.object 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 System.Object, todas ellas exponen los cinco mtodos que tambin expone
CATEDRA DE PROGRAMACION I

15-100

UNIVERSIDAD ABIERTA INTERAMERICANA System.Object, 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 System.Object 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-100

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 Basic.NET 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) Console.WriteLine (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-100

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 Console.Write. 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 String.Format 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-100

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 System.Convert 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 System.Randon; 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 System.Randon. El Tipo DateTime System.DateTime 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-100

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 System.TimeZone, que podr utilizar para recuperar informacin sobre la zona horaria definidas en las opciones regionales de Windows. El Tipo Guid El tipo System.Guid 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 System.Enums que, a su vez, hereda de System.ValueType. 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 System.Enums. 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-100

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 System.Collection.Stack. 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 System.Collections.Queue. 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-100

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 System.Collections.Specialized) 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 System.IO. 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-100

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-100

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-100

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 ASP.NET es una de las tantas tecnologas que forman parte del Framework. En este mdulo, usted aprender sobre .NET Framework y ASP.NET. 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 ASP.NET 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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

Q e l .N Fra e ork u se ET m w ?
H rra ie t s e m na d D sa e e rrollo Clie te n s

Ba s d D tos se e a

Ap cione lica s W bASP.N e ET

W bX L e M .N ET Fra e ork mw

Se rvicios

Ap cion s lica e d U rio e sua

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-100

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 Pre-.NET 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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

Com on n e e .N Fra e ork p e t sd l ET m w


V a isu l Ba sic C+ + C# Pe rl Py on th

Se rvicios W bX L e M In e ced Usu rio t Int rfa e sua a ASP.N ET AD .N y X L O ET M .N Fra e orkCla Lib ry ET m w ss ra Com onLa gua eRu im m nug a nt e
M ssa e e g Q e in uu g CO + M ( n ct s, Pa itio Tra ion rt ns, (Tra saction rtitio O je Po lin ) b ct Poo g o IIS WI M

W3 in 2

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 CE.NET 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-100

UNIVERSIDAD ABIERTA INTERAMERICANA


ADO.NET 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. ASP.NET 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 ASP.NET 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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

Be e n ficiosd u re .N Fra e ork e sa l ET m w


Ba d ne d re W by b e a r ica sa oe st n a s e u n sp ct s Lafu cion lid dd la n a a e scla s .N e n rsa se ET su ive l El cd oseorg n ig a izae e a e a s je rq icosy n nn m sp ce r u cla s se Es in e e d n ed l le g a d p n ie t e n u je
M FC/ATL W dow in ow ind s API
1 8 s 90

V l Ba isua sic ASP


1 9 s 90

.N ET Fra e ork mw
2 0 s 00

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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

V a St d .N Lah rra ie t ed sa isu l u io ET: e m n ad e rrollo


H rra ie ta e mn s p raW b a e Form s M ltip s u le Le ua s ng ge H rra ie ta a e m n sp ra W ow Form ind s s

V a St d .N isu l u io ET

Con d trol e e rrorre s

H rra ie a e m nt s p raW b a e Se rvice s

Acce soa dt a os

D ise o
Introduccin

D sa e rrollo

Db g eu

Dp e loy

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-100

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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

Sop eam lt le n u je ort ip sle g a s

El .N Fra e ork e ET m w std d a ise a op rasop a ort r m lt le le g a s ip s n u je


Actualm entem de 20 lenguajes s Microsoft preveeVisual Basic .NET, C# , Visual J #.NET, and J Script .NET Los m dulos de cdigoson reusables Todos los lenguajes tienenel m oaccesoa las API ism Cadalenguajees usadoparala tareacorrecta La perform ance entrelos lenguajes es m uysim ilar

Be e n ficios d l sop eam lt le n u je e ort ip sle g a s:


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 Microsoft JScript .NET Perl Haskell Mercury SmallTalk APL C# Oberon Python Pascal Eiffel CAML C Microsoft Visual J# .NET Scheme COBOL ML ADA Microsoft Visual C++

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-100

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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

El Com onLa g a eRu t e m nug n im


U m oru t ep rat os losle g a s.N n ism n im a od n u je ET M n jat re d y m m ae h as e oria Ga a ecolle ion rb g ct Re e fu rzalase u a e cd o g rid dd l ig Elim alosp le a d l ve in rob m s e rsion m n od la LL a ie t e sD

Diferentes versiones de unaDLL se ejecutan sim ultneam ente Las aplicaciones puedenespecificarcon queversin 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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

Com on n e e CLR p e t sd l
.N Fra e orkCla Lib ry Su p ET m w ss ra p ort Th a Su p rt re d p o Typ Ch cke e eck r e Se rit En in cu y g e M t Nt SIL o a ive Com ile p rs Cod e Mn g r aae Cla Loa e ss dr CO M rsh le M a a r Exce t M n g r p ion a a e D b gEn in eu g e Ga a e rb g Colle or ct

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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

Com ila p cinye cu je cin


d fa lt sp e u .a x Q le g a u n u je? C ig d oC# Co p d m ila orC# Cd oV a B sic ig isu l a .N ET Com ila orV a p d isu l Ba .N sic ET

L TM H

Com ila orJIT p d

M SIL

Cd o ig Nt o a iv

Run e tim

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, default.aspx, 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-100

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 System.Data.SqlCllient

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-100

UNIVERSIDAD ABIERTA INTERAMERICANA


Creacin de un componente Que son clases y componentes Creando una clase Usando componentes enASP.NET
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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

Q soncla sycom on n e u se p e t s?

La cla ssong p ecd osinin e ce s se ru osd ig t rfa Los com on n e p e t ssoncla scom ila a se p ds

Los com ponentes estncom pilados com oarchivos DLL

Los com on n e p e t sseu iliza a t np racom a ircd o p rt ig e t sa lica e n rela p cion s


Componente ponente Com

Aplica licacin Ap cin We eb Wb

Aplica licacin Ap cin We eb Wb

Aplica licacin Ap cin Wind s indow W ows

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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

Cre n ou acla ad n se

Cre ru p ct et oLib rad Cla s a n roje od ip re e se

Visual Studio .NET creaun nam espace pordefault

Cre rlosm t osd lacla a od e se

public class Shipping public class Shipping { { public Single ShippingCost(System.Single sngPrice) public Single ShippingCost(System.Single 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 VS.NET 2003. 2. Cree un nuevo proyecto del tipo Librera de clases. 3. Escriba el nombre de la clase en el cuadro Name. (VS.NET 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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

U n ocom on n e nASP.N sa d p e t se ET

Ag g rlare re ciaalaD re a fe n LL In a cia cla st n rla se


CompanyA.Shipping x = new CompanyA.Shipping(); CompanyA.Shipping x = new CompanyA.Shipping();

com on n ll p e t.d
n espace Com anyA { am p public class Sh ing{ ipp p ublic Sing Shipp le ingCost() {} } }

U re ob t sa l je o
sngShipping = x.ShippingCost(sngPrice); sngShipping = x.ShippingCost(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 VS.NET 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: NombreNamespace.NombreClase x = new NombreNamespace.NombreClase(); o tambin using NombreNamespace; NombreClase x = new NombreClase(); Para utilizar el objeto slo se debe indicar el mtodo o la propiedad correspondiente sngShipping = x.ShippingCost(sngPrice);

CATEDRA DE PROGRAMACION I

42-100

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

Re rsos.N cu ET

D m na ocu e t cind l .N Fra e ork e ET m w


Ejem de cdigo plos Tutoriales Quick Start

Com n a e e ln a u id d s n e Sit s W b io e

ww w .gotdotnet.com ww w .ibuyspy.com ww w .asp.net m sdn.m icrosoft.com ww w .google.com

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-100

UNIVERSIDAD ABIERTA INTERAMERICANA Controles en VB.NET Introduccin a los formularios: Un formulario de Visual Basic. NET no es otra cosa que una clase que hereda de la clase System. Windows.forms.form; no tiene nada de especial si las comparamos con otras clases .NET El diseador de formularios: El diseador de Visual Studio.NET es un sofisticado generador de cdigo: cuando defina una propiedad de un control en la ventana propiedades; estar creando una o mas 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 Studio.NET 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 System.Windows.Froms tienen una jerarqua realmente compleja, en la raz de la cual se encuentra la clase System.ComponentModel.Component, 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-100

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-100

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 System.Windows.Forms. 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 Mouse.Current 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-100

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-100

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-100

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 C/R

sin repetidos con repetidos ordenacin

Nrocta
N(5)

razonsocial
A( 25 )

fecha
F( 6 )

comentarios
memo( 200 )

C/R

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

nroinfraccio

tipoinfraccio

monto 49-100

CATEDRA DE PROGRAMACION I

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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

Archivos
Todo lo referido a E/S se maneja desde la clase System.IO 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 Veamos ejemplos Si el archivo ya existe y queremos leer o escribir Dim archivo as FileStream(a1.dat,Filemode.open) Si deseo abrir un archivo y no existe lo crea Dim archivo as FileStream(a1.dat,filemode.openorcreate) Si deseo abrir el archivo para leer ( debe existir el archivo) Dim archivo as Filestream(a1.dat,filemode.open,fileaccess.read) Si deseo crear un archivo y escribirlo ( si exista lo pisa ) Dim archivo as FileStream(a1.dat,filemode.create,fileaccess.write) 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

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-100

UNIVERSIDAD ABIERTA INTERAMERICANA Dim archivo as FileStream (a1.dat,FileMode.create,FileAccess.write,FileShare.ReadWrite)

Resumamos un poco Modos de apertura de un archivo Append Create createNew open openOrCreate Truncate FileMode.

si no existe lo crea.si 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 FileAccess.

Modos de acceso a un archivo Read Write ReadWrite

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(a1.dat,filemode.open) , creamos el filestream Dim reader as new streamreader(archivo) , creamos el streamreader para leerlo Podriamos abreviar mediante Dim archivo as new streamreader(a1.dat) Los mtodos principales d Este objeto StreamReader sern
CATEDRA DE PROGRAMACION I

52-100

UNIVERSIDAD ABIERTA INTERAMERICANA Read ReadBlock Readline ReadToEnd Peek Close lee el prximo carcter disponible a partir de la posicin actual y avanza lee un bloque de caracteres y lo almacena en un vector de chars lee una lnea del archivo lee el contenido de todo el archivo y lo guarda en un string obtiene el valor del prximo carcter disponible pero no avanza cierra el stream liberando recursos y referencias al archivo

Veamos un ejemplo de lectura por lnea de un archivo Dim archivo as New StreamReader (archi.dat) Dim lnea as string lnea = archivo.readline Do while not lnea is nothing lnea = archivo.readline Loop Archivo.close( ) Podriamos escribir lo mismo utilizando en el while Peek Dim archivo as New StreamReader (archi.dat) Dim lnea as string lnea = archivo.readline Do while not archivo.peek = -1 lnea = archivo.readline Loop Archivo.close( ) Si por ejemplo deseramos leer todo el archivo de una sola vez Dim archivo as New StreamReader (archi.dat) Dim contenido as string contenido = archivo.ReadToEnd Archivo.close( ) Para escribir un archivo de texto deberamos hacer lo siguiente siguiendo el mismo razonamiento Dim writer as New StreamWriter(a1.dat) 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-100

UNIVERSIDAD ABIERTA INTERAMERICANA Ejemplo de escribir 100 nmeros en un archivo Dim archivo as new streamwriter(a1.dat) Dim i as integer For i = 1 to 100 Archivo.writeLine ( i.tostring) recordar que hay que pasar de integer a string Next Archivo.Close

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 (a1.dat, filemode.Create) 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 (a1.dat, filemode.open) 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 CATEDRA DE PROGRAMACION I 54-100

Close

UNIVERSIDAD ABIERTA INTERAMERICANA cierra el BinaryWritery el Filestream

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 Archivo facultades, son 50 facultades Cdigo de facultad Archivo carreras son 100 registros Cdigo de carrera nombre nombre 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 Facultad de medicina Medicina Enfermera Kinesiologa Total medicina 2500 alumnos 200 alumnos 2800 alumnos 1200 alumnos 350 alumnos 80 alumnos 1630 alumnos 55-100

Total UAI CATEDRA DE PROGRAMACION I 4430 alumnos

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 Tambin se posee un archivo de clearing Banco emisor Banco receptor clearing saldo

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 . cta10

CATEDRA DE PROGRAMACION I

56-100

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 Se desea saber Modelo 1 2 stock Inicial 100 150 cantidad pedida 80 200 stock final 20 0 a fabricar 0 30 se adeudan 0 20 Nro de pieza Cantidad a usar

Pieza stock inicial stock final

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, PROGRAMACIONusadas por otros modelos ya que estas son I CATEDRA DE 57-100

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-100

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-100

UNIVERSIDAD ABIERTA INTERAMERICANA

CATEDRA DE PROGRAMACION I

60-100

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

61-100

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

62-100

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 i.

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

63-100

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.
ii.

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.
iii.

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

64-100

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.
iv.

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

65-100

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

66-100

UNIVERSIDAD ABIERTA INTERAMERICANA

CATEDRA DE PROGRAMACION I

67-100

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 VB.NET

CATEDRA DE PROGRAMACION I

68-100

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

69-100

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

70-100

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

71-100

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

72-100

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

73-100

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

74-100

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

75-100

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

76-100

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. Extensi Nombre n Solucin de Visual .sln Studio Opciones de usuario .suo de solucin Descripcin Organiza proyectos, elementos de proyecto y elementos de solucin en la solucin y proporciona al entorno referencias a sus ubicaciones en disco. Registra todas las opciones que podra asociar a la solucin para que, cada vez que la abra, incluya las 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 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 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 ASP.NET.

CATEDRA DE PROGRAMACION I

77-100

UNIVERSIDAD ABIERTA INTERAMERICANA


Clase COM Componente transaccional Archivo de texto Archivo XSLT Clase del instalador Crystal Report Archivo de mapa de bits Archivo de cursor Archivo de icono Archivo de recursos Archivo de informacin sobre el ensamblado Archivo de configuracin de la aplicacin Visualizador del depurador Diagrama de clase Informe Archivo JScript Archivo VBScript Windows Script Host .vb o .cs .vb o .cs .txt .xslt .vb o .cs o .jsl o .java .rpt .bmp .cur .ico .resx .vb o .cs o .jsl .config .vb o .cs o .jsl o .java .cd .rdlc .js .vbs .wsf Una clase que puede estar expuesta a COM. 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 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. Un archivo que contiene informacin general acerca del ensamblado. Un archivo utilizado para configurar los valores de la aplicacin. 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 Extensin de archivo Propsito del elemento de proyecto

Pgina principal Control de usuario .ascx Un control de servidor ASP.NET creado mediante un diseador visual. Web Pgina HTML .htm Una pgina HTML que puede incluir cdigos del lado del cliente. Dos archivos: .asmx y .vb Un componente que ofrece la posibilidad de intercambiar mensajes para Visual Basic, .cs para Servicio Web interoperables mediante el uso de protocolos estndar, como HTTP, Visual C# o .jsl para XML, XSD, SOAP y WSDL. Visual J# Clase .vb o .cs o .jsl Archivo de cdigo que contiene una declaracin de clase. Una hoja de estilos en cascada utilizada para definiciones de estilo Hoja de estilos .css HTML enriquecido. A veces conocido como archivo asax, permite escribir cdigo para Clase de aplicacin controlar eventos globales ASP.NET de nivel de aplicacin tales como .asax global Session_OnStart y Application_OnStart. El archivo tiene como nombre global.asax y no es posible cambiarlo. ASP.NET utiliza este archivo para configurar los valores Web de un Archivo de .config proyecto Web. El archivo tiene como nombre Web.config y no es posible configuracin Web cambiarlo. Archivo XML .xml Un archivo XML en blanco. Esquema XML .xsd Un archivo para crear un esquema para documentos XML. Archivo XSLT .xslt Un archivo utilizado para transformar documentos XML. Archivo de texto .txt Archivo de texto vaco. Archivo de recursos .resx Un archivo utilizado para editar y definir recursos de aplicaciones. de ensamblado

Dos archivos: .aspx y .vb para Visual Basic, .cs para Un formulario utilizado para crear aplicaciones Web. Visual C# o .jsl para Visual J# .master Una pgina principal para las aplicaciones Web.

CATEDRA DE PROGRAMACION I

78-100

UNIVERSIDAD ABIERTA INTERAMERICANA


Archivo de informacin sobre el ensamblado Base de datos SQL DataSet Controlador genrico Mapa del sitio Formulario Mobile Web Forms Control de usuario Web mvil Archivo de configuracin Web mvil Crystal Report .vb o .cs o .jsl .mdf .xsd .ashx .sitemap .aspx .ascx .config .rpt Un archivo que contiene informacin general acerca del ensamblado. Una base de datos SQL vaca para los datos locales. Un archivo para crear un esquema XML con clases DataSet. Una pgina para implementar un controlador genrico Un archivo utilizado para crear un mapa del sitio. Formulario utilizado para crear aplicaciones Web para dispositivos mviles. Control de servidor ASP.NET creado con el diseador visual y utilizado en una aplicacin Web para dispositivos mviles. ASP.NET utiliza este archivo para configurar los valores Web de un proyecto Web mvil. El archivo tiene como nombre Web.config y no es posible cambiarlo. 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 ASP.NET. Un archivo para las definiciones del explorador Un nuevo informe vaco. Archivo para el almacenamiento de grupos de funciones. Clase para crear componentes utilizando el diseador visual. Un formulario de datos para aplicaciones Web. Archivo HTML que aloja varias pginas HTML. Una clase para crear un control de servidores ASP.NET 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.

Archivo VBScript .vbs Archivo JScript .js Windows Script .wsf Host Archivo de mscara .skin Archivo de .browser explorador Informe .rdlc Mdulo (slo Visual .vb Basic) Clase de .vb o .cs componentes Asistente para .aspx (.vb o .cs para formularios de proyectos locales) datos Conjunto de .htm marcos Control Web .vb o .cs o .jsl personalizado Archivo de cdigo .vb o .cs o .jsl Archivo de descubrimiento .disco esttico Clase del instalador .vb o .cs o .jsl Archivo de mapa de .bmp bits Archivo de cursor .cur Archivo de icono .ico

CATEDRA DE PROGRAMACION I

79-100

UNIVERSIDAD ABIERTA INTERAMERICANA GLOSARIO Algunos conceptos (clasificados alfabticamente) que usaremos con bastante frecuencia en
las entregas del curso de .NET:

Palabra A

Descripcin

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. 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. 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.

Array (matriz)

Assenbly (ensamblado)

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 System.Object Son clases que exponen un interface el cual hay que usar en las clases que se hereden de dicha clase abstracta. Serie de datos que estn guardados en una lista, array (o matriz) o una CATEDRA DE PROGRAMACION I

Clases abstractas Colecciones

80-100

UNIVERSIDAD ABIERTA INTERAMERICANA


coleccin propiamente dicha y que permite interactuar con los elementos de las mismas, pudiendo aadir, recuperar, eliminar uno o todos, saber 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. 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.

Constante

E
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. 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. 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. 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. 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)

Encapsulacin

Enumeraciones (Enum)

Evento

Expresiones

Expresiones Lgicas

F
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. 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. CATEDRA DE PROGRAMACION I

Formulario (forma/ventana)

Function (Funcin)

81-100

UNIVERSIDAD ABIERTA INTERAMERICANA


A las funciones no se les puede asignar valores, a diferencia de las Propiedades.

H
En VB.NET 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 Objeto.Evento 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.

Handles

Herencia

I
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 Se dice que las propiedades y mtodos expuestos por una clase (tipo) forman el interface de la misma. 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.

Instancia

Interface

Interface / Implements

M
Me (this) La palabra clave (o instruccin) Me hace referencia a la clase actual. Por ejemplo Me.Width se refiere a la propiedad Width de la clase actual. En C# en lugar de Me es this. Un procedimiento (Sub, Function -funcin) que se usa para realizar una tarea especfica en la clase o mdulo. 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. 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#). Son miembros de una clase que slo pueden ser accedidos al crear una instancia (objeto) de la clase en la memoria.

Mtodo

Miembros

Miembros compartidos

Miembros de instancia

CATEDRA DE PROGRAMACION I

82-100

UNIVERSIDAD ABIERTA INTERAMERICANA


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. 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.

Mdulo

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. 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. 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. Un mtodo, funcin o propiedad de una clase o mdulo.

Parmetro

Parmetros opcionales

Polimorfismo

Procedimiento

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 CATEDRA DE PROGRAMACION I

Property (Propiedad)

83-100

UNIVERSIDAD ABIERTA INTERAMERICANA


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).

S
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.

Sobrecarga (Overload)

Sub

V
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.

Variable

Variables estticas

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. Cuntos empleados hay por categora B. Total de sueldos pagados por categora C. Sueldo promedio general
CATEDRA DE PROGRAMACION I

84-100

UNIVERSIDAD ABIERTA INTERAMERICANA D. Sueldo mximo y a quin pertenece E. 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

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
CATEDRA DE PROGRAMACION I

85-100

UNIVERSIDAD ABIERTA INTERAMERICANA A. cantidad de pasajes vendidos por aeropuerto B. cantidad de pasajes vendidos por cada empleado C. monto total vendido por empleado D. boleto de mayor valor E. porcentual que representa lo vendido por cada aeropuerto en dinero sobre el total F. cantidad de ventas que excedieron los $ 1000 G. 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. B. C. D. E. F. G. H. I. cantidad de personas atendidas por cada mozo 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
CATEDRA DE PROGRAMACION I

86-100

A. B. C. D. E. F. G. H. I.

UNIVERSIDAD ABIERTA INTERAMERICANA 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 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
CATEDRA DE PROGRAMACION I

87-100

UNIVERSIDAD ABIERTA INTERAMERICANA 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 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. cantidad total de boletos vendidos 2. promedio del valor de boleto vendido en dinero
CATEDRA DE PROGRAMACION I

88-100

3. 4. 5. 6.

UNIVERSIDAD ABIERTA INTERAMERICANA 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

11- Una empresa comercializa 20 libros contenidos en 5 gneros.cada 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
CATEDRA DE PROGRAMACION I

89-100

UNIVERSIDAD ABIERTA INTERAMERICANA . 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. cunto recaud en concepto de depsitos cada sucursal 2. cunto entreg cada sucursal en concepto de extraccin 3. de qu sucursal se extrajo ms que lo que se deposit 4. si se cobra el impuesto a los depositos del 2,1% cuanto recauda cada sucursal 5. 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 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 Calcular e imprimir a. b. c. d. 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
CATEDRA DE PROGRAMACION I

nro de corredor nro de artculo cantidad descuento

90-100

UNIVERSIDAD ABIERTA INTERAMERICANA e. promedio del valor vendido por cada corredor f. nro de corredor que vendi ms g. 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 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. b. c. d. e. f. g. h. sueldo total a pagar por departamento sueldo total a pagar por categora 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 determinada 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 91-100

CATEDRA DE PROGRAMACION I

UNIVERSIDAD ABIERTA INTERAMERICANA - nmero de camin - tipo de valor - cantidad

Se desea saber: a. cantidad de viajes realizados por camin b. total transportado por camin del valor 1 c. recaudacin de cada valor d. recaudacin de cada camin nombre del valor ms transportado en total e. cliente que transport menos en un viaje f. porcentual que representa lo recaudado por cada camin sobre el total g. 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 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 total de litros vendidos por cada tipo de combustible d. la estacin 1 fue la que ms recaud? e. nmero de boleta con mayor importe f. 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
CATEDRA DE PROGRAMACION I

92-100

UNIVERSIDAD ABIERTA INTERAMERICANA 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. 6. 7. 8. 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 salta fue el destino ms solicitado ? si debe pagar el 21% de IVA, cul es el monto a pagar 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
CATEDRA DE PROGRAMACION I

93-100

UNIVERSIDAD ABIERTA INTERAMERICANA 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 valor hora Se desea saber: a. sueldo anual de cada empleado b. total de sueldos pagados cada mes mximo sueldo pagado cada mes y a quin pertenece c. porcentaje que representa cada sueldo anual sobre el total d. nombre del empleado que cobr ms en el primer semestre e. cantidad de meses en que el total de sueldos super los $100000 f. 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
CATEDRA DE PROGRAMACION I

94-100

UNIVERSIDAD ABIERTA INTERAMERICANA o o o 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 nmero de analista nmero de proyecto cantidad de hs trabajadas

21- Una acopiadora de cereales tiene 20 silos donde almacena 4 tipos de cereal En un archivo secuencial se tiene cdigo de cereal 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
CATEDRA DE PROGRAMACION I

95-100

UNIVERSIDAD ABIERTA INTERAMERICANA 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 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. cantidad envasada por centro
CATEDRA DE PROGRAMACION I

96-100

b. c. d. e. f. g. h. i. j.

UNIVERSIDAD ABIERTA INTERAMERICANA 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 si de esa recaudacin se paga un 30 % de impuestos, que valor es este nombre de la gaseosa de mayor facturacin para cada centro 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 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
CATEDRA DE PROGRAMACION I

97-100

UNIVERSIDAD ABIERTA INTERAMERICANA -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. recaudacin del laboratorio b. recaudacin por cada remedio c. valor de cada remedio d. porcentaje que representa lo vendido por cada remedio sobre el total e. precio promedio f. cul remedio usa ms de la droga 8 g. droga menos usada droga ms cara h. remedio ms barato i. imprimir ordenado por valor de cada remedio, valor de cada remedio cantidad de remedios vendidas en unidades recaudacin de cada remedio 0 26- Una empresa desea analizar los sueldos de sus 80 empleados, para ello cuenta con los siguientes archivos secuenciales categoria personal nmero de legajo categora cantidad de horas extras trabajadas mes CATEDRA DE PROGRAMACION I 98-100 cdigo de categoria (del 1 al 6 ) descripcin sueldo bsico valor hora extra

UNIVERSIDAD ABIERTA INTERAMERICANA En julio y diciembre hay que abonarle el medio aguinaldo Se desea saber: a. sueldo anual de cada profesional b. total pagado por mes c. para cada legajo cuntos sueldos superan el promedio de cada uno d. mximo sueldo pagado en un mes y a quin pertenece e. porcentaje que representa el sueldo anual de cada legajo sobre el total f. legajo que cobr menos en el segundo semestre g. quien cobr ms en diciembre quien trabaj menos en el primer trimestre del ao h. imprimir ordenado por sueldo anual del profesional 1. sueldo anual del profesional 2. legajo 3. cantidad total de horas extras trabajadas por cada legajo 1 27- Un taller de computacin arma 4 modelos de equipos en 5 puntos del interior del pais,se tienen los siguientes archivos secuenciales modelos lugares lugar de armado costo del flete nmero de modelo costo

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 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 99-100 nmero de modelo lugar de armado cantidad

CATEDRA DE PROGRAMACION I

UNIVERSIDAD ABIERTA INTERAMERICANA 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 Archivo secuencial viajes 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 Nmero de puerto de salida Nmero de puerto de llegada Cantidad de pasajeros Nmero de puerto Nombre

CATEDRA DE PROGRAMACION I

100-100

Вам также может понравиться