Programacion I UAI

135
UNIVERSIDAD ABIERTA INTERAMERICANA Indice Del Libro De Programación I 1. Programa de la materia pag 2 2. Cronograma de la cursada pag 8 3. Teoría de paradigmas de programación pag 10 4. Teoria de programación orientada a objetos pag 13 5. Teoria de Vb.Net pag 14 6. Teoría de archivos secuenciales e indexados en jackson pag 48 7. Laboratorios en Vb.Net pag 60 8. Anexo de teoria de Vb.Net pag 101 9. Anexos de laboratorios en Vb.net pag 125 10. Trabajos prácticos a presentar pag 145 11. Enunciados de ejercicios pag 152 CATEDRA DE PROGRAMACION I 1-135

description

Documento para iniciarse en la programacion

Transcript of Programacion I UAI

Page 1: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Indice Del Libro De Programación I

1. Programa de la materia pag 22. Cronograma de la cursada pag 83. Teoría de paradigmas de programación pag 104. Teoria de programación orientada a objetos pag 135. Teoria de Vb.Net pag 146. Teoría de archivos secuenciales e indexados en jackson pag 487. Laboratorios en Vb.Net pag 608. Anexo de teoria de Vb.Net pag 1019. Anexos de laboratorios en Vb.net pag 12510.Trabajos prácticos a presentar pag 14511.Enunciados de ejercicios pag 152

CATEDRA DE PROGRAMACION I 1-101

Page 2: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Programa de Asignatura

00 Código: FT

01 Facultad: Tecnología Informática / Carrera: Ingeniería en Sistemas

02. Asignatura: PROGRAMACIÓN I.

03 Año lectivo: 2008 04 Año de Cursada: 1º 05 Cuatrimestre: 2º 06 Hs. Semanales: 6

07 Profesor: Titular: BRIZUELA, Rafael Director de Área: CARDACCI,Dario

08 Ítems del perfil que se desarrollarán:

Desarrollar habilidades, conocimientos y destrezas en la aplicación de técnicas de manejo de archivos mediante la programación estructurada, apoyado en lenguaje C.

Desarrollar habilidades, conocimientos y destrezas en la aplicación de técnicas en la programación orientada a objetos, apoyada en el lenguaje Visual Basic.NET

Desarrollar destrezas en el desarrollo de ejercitación en grupos, la interrelación personal , aplicando enfoques múltiples a un mismo problema.

Capacitarse para la implementación de estas soluciones dentro de la problemática del hombre y la sociedad, comprendiendo los avances tecnológicos.

09 Correlativas previas: Programación Estructurada. Posteriores: Programación Orientada a Objetos.

10 Articulación con materias del mismo año: Sistemas de Computación – Sistemas de Computación II- Laboratorio de Calculo – Problemática del Mundo Actual – Ingles I y II - Cálculo infinitesimal I – Historia de la Ciencia y la Técnica – Programación Estructurada.

11 Objetivos:

Incorporar los conocimientos para identificar las diferencias entre las metodologías de programación estructurada, la orientada a objetos y orientadas a eventos.

Dominar el manejo de punteros y archivos desde ambas metodologías.

CATEDRA DE PROGRAMACION I 2-101

Page 3: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA Incorporar los elementos brindados por la interfaz de los lenguajes orientados a eventos con el objeto de

poder aplicarlos en la construcción de software. Dominar los aspectos lógicos y algorítmicos de la programación orientada a eventos con el objeto de

poder aplicarlos en la construcción de software. Desarrollar la idea fundamental de objeto, las propiedades que la definen y los eventos que lo controlan. Comprender las técnicas de acceso a archivos, su administración y las ventajas y las desventajas que

cada una representa.

12 Unidades de desarrollo de los contenidos:

Unidad de repaso y conocimientos necesarios:a) Evaluación Diagnóstica.b) Repaso:

Vectores y matrices.Funciones y procedimientos.

c) Conocimientos necesarios:Estructuras de control.

Estructuras de repetición.Estructuras de decisión.Diagramación lógica.

Tiempo: 6 Hs.

Unidad 1: ¿Cómo optimizar el manejo de información dentro de la memoria?ESTRUCTURAS DE DATOS DINAMICAS.

Introducción. Punteros. Listas. Listas contiguas. Listas enlazadas. Listas circulares. Pilas. Colas. Árboles. Arrays de registros.

Tiempo: 12 Hs.

Unidad 2: ¿Cuáles son los beneficios de seleccionar el modelo óptimo?

ESTILOS DE PROGRAMACIÓN

Paradigma lógico. Características principales de este tipo de metodología. Paradigma estructurado. Características de este tipo de metodologíaParadigma orientado a objetos. Definición de objetos, clases, instancias. Características principales de este

tipo de metodología. Paradigma orientado a eventos. Definición de eventos. Características principales de este tipo de

metodología. Inteligencia artificial. Características principales y aspectos distintivos.Modularidad. Recursividad.Análisis comparativo y combinación entre los distintos estilos.

CATEDRA DE PROGRAMACION I 3-101

Page 4: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANATiempo: 6 Hs.

Unidad 3: ¿Cómo mejorar el aspecto de las aplicaciones y desarrollarlas en menor tiempo?

INTRODUCCION A LA PROGRAMACION VISUAL I.

Tipo System Object, métodos públicos y protegidos , tipos de valor y por referencia , Boxing y Unboxing, ; tipo String, propiedades y métodos , optimización de la cadena, métodos compartidos, la clase auxiliar Cultureinfo , formato de valores fecha y numéricos, interfaz Iformattable,Iformatprovider y Icustomformatter ; Char , Stringbuilder, Tipo Numéricos , propiedades y métodos, formato , conversión , clase Convert y generación de números aleatorios ;Date time , como sumar y restar fechas, formatos, análisis y manejo de zonas horarias ; Guid, EnumsLa clase array , creación 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 Instrucción Declare . Instrucción Try...Catch...Finally

Tiempo: 24 Hs.

Unidad 4: ¿Cómo acceder a guardar la información en forma permanente?

ARCHIVOS

Introducción al sistema de objetos de archivos. Modelo FSO. Creación y administración del objeto FSO. Trabajar con unidades, archivos carpetas.

Acceso de archivo. Crear archivos. Grabar y leer archivos. Agregar y modificar datos en un archivo. Técnicas de acceso. Acceso secuencial. Acceso aleatorio. Acceso Binario. Corte de control. Corte de control de 1 nivel. Corte de control de ‘n’ niveles. Diagramación de las distintas técnicas y métodos de corte de control a un archivo.

Apareo de Archivos. Archivo indexados. Apareo de archivos. Diagramación de las distintas técnicas y métodos para el apareamiento y manejo de archivos.

Diagramación de ejercicios combinados de apareo y corte de control.

Tiempo: 18 Hs.

Unidad 5: ¿Qué otros beneficios se pueden obtener de la programación visual?

INTRODUCCION A LA PROGRAMACION VISUAL II.

Introducción a los Formularios , Diseñador de Formularios , Jerarquía de Clases de Windows Form , Tareas Comunes

Objeto Form , Propiedades , Métodos y Suceso, Menues , Form MDI

CATEDRA DE PROGRAMACION I 4-101

Page 5: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAHerencia de Formularios , Ventajas , como atrapar y reemplazar sucesos , Técnicas Avanzadas de

Formularios , Subclasificación de Ventanas , Efecto de Transparencia, Formularios Localizados, Propiedades de Control Dinámico

Objeto Clipboard , Application, Cursor, Sendkeys, HelpControles Windows Forms , Textbox, Label, Linklabel, Checkbox, Radiobutton, Button, Listbox,

Checkedlistbox, Combobox.Proveedores de Controles , Control SplitterControles de Cuadros De Dialogo Communes, Imagelist , Treeview,Listview

Tiempo: 30

13 Metodología de trabajo:

Las clases se dividen en teoría y práctica. La ejercitación deberá reflejar los conceptos transmitidos en la clase teórica, más los conocimientos de las clases anteriores, aplicados a situaciones problemáticas según el nivel alcanzado.Para obtener una medida de lo aprendido por parte del alumno se deberá fomentar la participación del mismo en la formulación de soluciones a los problemas propuestos.

Herramientas: Diagramación Lógica.Lenguaje C Lenguaje de programación Visual.NET

14 Trabajos prácticos: Un trabajo domiciliario de investigación Realización de los problemas presentados en clase.Entrega de la carpeta de ejercicios prácticos de la materia.Todos los trabajos prácticos se acompañaran con el software ejecutable.

15 Bibliografía:

Obligatoria:Balena Francisco, “programación avanzada con Microsoft Visual Basic.Net” Ed Mac Graw Hill

Román Martínez, Elda Quiroga ,”ESTRUCTURAS DE DATOS” , referencia practica con orientación a objetos. 1ed. Ed Thomson Learning Internacional. 2002.Burnham, “PROLOG, PROGRAMACIÓN Y APLICACIONES”. 1ed. Ed Limusa. Nils J. Nilson. “INTELIGENCIA ARTIFICIAL. UNA NUEVA SÍNTESIS”. 1ed. Ed Mc Graw Hill. 2001Giarratano – Riley. “Sistemas Expertos. Principios y Programación”. 3ed. Ed Thompson Learning. 2001Catalinas, Enrique Quero -Herranz, José López. “Programación en Lenguajes Estructurados”. 1ed. Ed. Paraninfo. 1997

CATEDRA DE PROGRAMACION I 5-101

Page 6: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Ampliatoria:

E. Balagurusamy. “PROGRAMACIÓN ORIENTADA A OBJETOS CON C++”. 3era. Ed. Mc Graw Hill. R.C.T. Lee S.S. Tseng Y Otros. “INTRODUCCIÓN AL DISEÑO Y ANÁLISIS DE ALGORITMOS. UN ENFOQUE ESTRATÉGICO.” Mc.  Graw Hill

Ceballos Sierra,Francisco Javier. “El lenguaje de programación Visual Basic.NET ” .México, F: Alfaomega Grupo Editor 2003. 442 páginas

Franklin,Keith.” Visual Basic. NET para desarrolladores” .Madrid: Pearson Educación 2002. 320 páginas

Siler,Brian;Spotts,Jeff. “ Visual Basic .NET “ .ed.especial.Madrid: Pearson Educación,2002. 984 páginas

Ruiz, Francisco Escolano, Cazorla Quevedo, Miguel Angel y otros. “INTELIGENCIA ARTIFICIAL. MODELOS, TÉCNICAS Y ÁREAS DE APLICACIÓN”. 1ed. Ed Thompson Learning. 2003James Martín y James J. Odell: “METODOS ORIENTADOS A OBJETOS”. 1ed. Ed. Prentice Hall. James Martín y James J. Odell: “ANALISIS Y DISEÑO ORIENTADO A OBJETOS”. 1ed. Ed. Prentice Hall. 1992Herranz, Jesé López - Catalinas Quero, Enrique. “FUNDAMENTOS DE PROGRAMACIÓN”. 1ed. Ed Paraninfo. 1998Román, Leobardo Lopez. “PROGRAMACIÓN ESTRUCTURADA - UN ENFOQUE ALGORÍTMICO”. 2ed. Ed. Alfaomega. 2003Cairí,Osvaldo. “METODOLOGÍA DE LA PROGRAMACIÓN”. 2ed. Ed. Alfaomega. 2003

16 Procedimiento de evaluación y criterio de promoción:

Dos exámenes parciales obligatorios individuales divididos en una parte teórica de lógica y otra practica de aplicación del lenguaje evaluado en el momento, con un recuperatorio por parcial.

Para aprobar el examen parcial deberá estar aprobada la parte teórica y la práctica en un 50% respectivamente.

Un trabajo práctico de investigación obligatorio referido a temas de la materia. El trabajo práctico deberá ser expuesto por los alumnos. (Se recomienda que el trabajo y exposición sea grupal y la evaluación del mismo individual).

Una nota conceptual basada en la participación en clase, el interés demostrado en la materia y el empeño 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 exámenes parciales y el TP aprobado, más la entrega de la carpeta con la resolución de los ejercicios de programación.

El alumno deberá tener como mínimo cuatro notas para poder promediar sin contar los recuperatorios de parciales.

Los alumnos con promedio entre 10 y 6 estarán capacitados para presentarse a coloquio , donde expondrán un tema previamente asignado a tal fin.

Loa alumnos con notas promedio entre 5,99 y 4 estarán capacitados para presentarse a rendir examen CATEDRA DE PROGRAMACION I 6-101

Page 7: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAfinal , donde se los interrogara sobre todos los temas de la materia.

Los alumnos con nota menor a 4 deberán rendir un examen recuperatorio de lógica y algoritmos , como así también del lenguaje que se este dictando y luego de aprobarlo quedaran habilitados para rendir examen final.

CATEDRA DE PROGRAMACION I 7-101

Page 8: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Cronograma de la materia programación I

Clase nro

Teoría de lógica

Teoría de .Net

Practica en el laboratorio

tp solicitado

Tiempo de entrega

Observaciones Bibliografía

1 Colas , pilas y listas

Teoría de objetos

Lab nro 1 Tp nro 1 Clase 7 Tp en C Lib 1 cap1 al cap 12

2 Repaso de prog est

Framework ,lenguaje

Lab nro 2 Tp nro 2 Clase 4 Cuestionario manuscrito

Lib 2 cap 1,2,3 y 8

3 Archivos secuenciales Corte de control

IDETipos de datos

Lab nro 3 Tp nro 3 Clase 7 Cuestionario manuscrito

Lib 2 cap 1,2,3,8 y 17 Apuntes

4 Corte de control

lenguaje Anexo nro 1 Tp nro 4 Clase 7 Vb.net Lib 2 cap 9 y 17 Apuntes

5 Apareo de archivos secuenciales

Lenguaje Anexo nro 2 y 3

Lib 2 Cap 8,9,10 y 17Apuntes

6 Apareo Lenguaje Lab nro 4 Lib 2 Cap 8,9,10 y 17Apuntes

7 Apareo Lenguaje Lab nro 5 Lib 2 Cap 8,9,10 y 17Apuntes

8 parcial parcial9 Archivos

indexadosLenguaje Lab nro 6 Tp nro 5 Clase 15 Vb.net Lib 2 Cap

8,9,10 y 17Apuntes

10 Apareo Lenguaje Lab nro 7 Lib 2 Cap 8,9,10 y 17Apuntes

11 Apareo Lenguaje Anexo nro 4 Lib 2 Cap 8,9,10 y 17Apuntes

12 Apareo Lenguaje Anexo nro 5 Lib 2 Cap 8,9,10 y 17Apuntes

13 Apareo Lenguaje Anexo nro 6 Lib 2 Cap 16 y 17Apuntes

14 Parcial Parcial15 Entrega de tp Entrega de tp16 recuperatorio recuperatorio

CATEDRA DE PROGRAMACION I 8-101

Page 9: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Referencias bibliográficas :

Lib1: “Estructuras de Datos “, Roman Martinez ,Elda Quiroga, Editorial ThompsonLib2: “Programación Avanzada con Microsoft Visual Basic .Net” Balena , Editorial Mcgraw-HillApuntes: “Apuntes De Catedra”, Brizuela, UAI

CATEDRA DE PROGRAMACION I 9-101

Page 10: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAEstudio y características de los distintos tipos de paradigmas mas conocidos

¿Qué es un paradigma de programación?

Un paradigma de programación provee (y determina) la visión y métodos de un programador en la construcción de un programa o subprograma. Diferentes paradigmas resultan en diferentes estilos de programación y en diferentes formas de pensar la solución de problemas (con la solución de múltiples “problemas” se construye una aplicación).

Paradigma Lógico

La Programación Lógica es un Paradigma de Programación basado en la Lógica. Los programas construidos en un lenguaje lógico están construidos únicamente por expresiones lógicas, es decir, que son ciertas o falsas, en oposición a una expresión interrogativa (una pregunta) o expresiones imperativas (una orden).

Paradigma Estructurado: la programación se divide en bloques (procedimientos y funciones) que pueden o no comunicarse entre sí. Además la programación se controla con secuencia, selección e iteración. Permite reutilizar código programado y otorga una mejor compresión de la programación. 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 programación se resuelve comunicando dichos objetos a través de mensajes (programación orientada a mensajes). Se incluye dentro de este paradigma, los pilares basicos de herencia, encapsulamiento, polimorfismo y abstracción. Los lenguajes que responden a este paradigma son Simula, Smalltalk, C++, Java, Visual Basic .NET, etc.Su principal ventaja es la reutilización de códigos y su facilidad para pensar soluciones a determinados problemas.

ObjetosUn 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 dirección 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 construcción estática que describe comportamientos comunes y atributos incluyendo en ella datos y métodos o funciones.Los métodos 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-101

Page 11: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Instanciación Acción 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 creación 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 lógica en un lenguaje comprensible y humano. Esto implica un perfecto dominio de la expresión escrita y una completa capacidad de entendimiento y síntesis de voz

Existen dos opiniones referentes a la Inteligencia Artificial:Fuerte (Strong), la cual piensa que se podrán crear ordenadores inteligentes y con razón;Débil (weak), quienes piensan que pueden simular muy bien el cerebro humano, pero sólo simular.El paradigma que se acerca a este tipo de pensamiento es el lógico con su lenguaje mas conocido el Prolog

Paradigma Orientado a Eventos

Paradigma de programación en el que la estructura y ejecución 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 múltiples eventos y dependen del sistema operativo y del lenguaje de programación utilizado.

Al ejecutarse un programa así programado, se iniciará con el código correspondiente a su ejecución y luego el programa esperará a que ocurra un evento. Al ocurrir este, se ejecutará el código correspondiente al evento que se realizó.

Visual Basic es un buen ejemplo de programación 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-101

Page 12: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Modularidad

Es la descomposición lógica de un sistema en entidades más pequeñas. En POO permiten descomponer el problema en unidades discretas más simples. De esta manera se logra reducir la complejidad de la construcción de un sistema al dividirlo en unidades mas pequeñas y manejables, a la vez que permite el intercambio de las mismas. Dichas unidades o módulos tienen entre sí un grado de cohesión y de acoplamiento.

Recursividad

La recursividad significa aplicar una función como parte de la definición de esa misma función.

El concepto de recursividad va ligado al de repetición. Son recursivos aquellos algoritmos que, estando encapsulados dentro de una función, son llamados desde ella misma una y otra vez, en contraposición a los algoritmos iterativos, que hacen uso de bucles while, do-while, for, etc.

El caso típico de recursividad es el calculo del factorial de un numero dado.

CATEDRA DE PROGRAMACION I 12-101

Page 13: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAParadigma de la Programación Orientada a Objetos

Aplicación, implementación y características en .Net

QUE ES LA PROGRAMACION ORIENTADA A OBJETOS

Es una serie de normas para mejorar la programación , basándose 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 orígenes son de los años 70 con lenguajes como el Smalltalk.En estos objetos se encapsulan datos y código que interactúan para obtener resultados.En este paradigma solo podemos acceder a los datos por medio del código asociado al mismo.Otras características de esta programación son la herencia y el polimorfismo, que le dan como característica una mayor flexibilización y poder a la programación

Clase

Una clase es una construcción estática que describe comportamientos comunes y atributos incluyendo en ella datos y métodos o funciones.Los métodos 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

Abstracción

Es el método selectivo donde se decide de la visión 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 métodos son públicos y accesibles desde afuera , mientras que los datos son privados y solo accesibles desde adentro del objeto por sus propios métodos.Los datos del objeto describen al mismo en forma individual , pudiendo encontrarse datos estáticos que son comunes a los objetos de la misma claseLos métodos de tipo estáticos solo acceden a los datos estáticos y lo hacen desde la clase , no desde el objeto .

Herencia

Es un tipo de relación ente clasesVa de la generalización a la especialización , de la clase base a la clase derivada , heredando la implementaciónExisten distintos tipos de herencia , preferenciando la simple donde una clase hija hereda de una única clase padre , aunque puede darse el caso de herencia múltiple 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 método realiza tareas similares de acuerdo a que objeto se lo aplique , como por ejemplo la suma , que puede sumar números como concatenar strings.La definición del método reside en la clase base , pero su implementación reside en la clase derivada y se produce en el momento de ejecución.

CATEDRA DE PROGRAMACION I 13-101

Page 14: Programacion I UAI

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 características :

1. Posee un solo IDE ( integrated development environment )2. Soporta varios lenguajes .NET ( vb.net , c# )3. Desarrollo de múltiples tipos de proyectos , los proyectos son contenedores que se ubican en una

solución , para facilitar la administración , compilación y almacenado de los ítems , mediante plantillas de proyectos y archivos de definición de proyectos donde se contiene megadata del proyecto.Los archivos o ítems relacionados se agrupan , a nivel lógico , en un proyecto.Una solución puede contener varios proyectos , pudiéndose abrir , cerrar y guardar todos al mismo momento )

4. Explorador Web integrado5. Interfase personalizable6. Utilidades adicionales : acceso a datos SQL Server, Depurador, Intellisense ,Emuladores para móviles ,

etc. Framework

El framework es un marco de trabajo y puede estar compuesto por

Librerías de clasesDocumentaciónAyudaEjemplosTutoriales , 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 aplicación sea desarrollada mediante herramientas comunes haciendo la integración mucho más simple.El :net framework esta compuesto por :

CLR ……………..common language runtime…………………BCL……………...base class library …………………………

El CLR administra la memoria , brinda seguridad en el código como la conversión de tipos , inicialización de variables, indexación 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 jerarquía de objetos se encuentra la clase System.Object

CATEDRA DE PROGRAMACION I 14-101

Page 15: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Lo único que no deriva del .NET Framework son las interfases

Otra parte , el Microsoft Intermediate Language ( MSIL ) convierte cualquier código soportado por .NET en un lenguaje intermedio , es un conjunto de instrucciones independientes de la CPU , que se convierten al código 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 compilación o en tiempo de ejecución.

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 métodos en concreto

Equals : un método reemplazable que verifica si el objeto actual tiene el mismo valor que el objeto que se ha pasado como argumento

GetHashCode : método reemplazable que devuelve el código hash correspondiente al objeto. Este método se utiliza cuando emplee el objeto como una clave para las colecciones y las tablas hash. Idealmente , el código hash debe ser único para cada instancia de objeto por lo que podría verificarse dos objetos son “iguales 2 sin mas que comparar su código hash.

GetType : es un método que devuelve un valor que identifica el tipo del objeto. El valor proporcionado se suele utilizar normalmente en operaciones de reflexión.

ToString: es un método reemplazable que devuelve el nombre completo de la clase.

ReferenceEquals : es un método compartido que acepta dos argumentos de objeto y devuelve true si hacen referencia a la misma instancia.

Posee también dos métodos 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 método reemplazable que se llama cuando un objeto ha sido recolectado por no haber sido utilizado ( tiempo de vida de un objeto )

Métodos Públicos y Protegidos

CATEDRA DE PROGRAMACION I 15-101

Page 16: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAComo todas las clases heredan de System.Object, todas ellas exponen los cinco métodos que también expone System.Object, estos son:

Equals: Un método remplazable que verifica si el objeto actual tiene el mismo valor que el objeto que se ha pasado como argumento, devuelve un boleano.

GetHashCode: Método remplazable que devuelve el código hash correspondiente al objeto, este será único para cada instancia del objeto.

GetType: Es un método que devuelve un valor que identifica el tipo de objeto.

ToString: Es un método remplazable que devuelve el nombre completo de la clase.

ReferenceEquals: Es un método compartido que acepta dos argumentos de objeto y devuelve trae si hcen referencia a la misma instancia.

La clase System.Object también expone dos métodos protegidos, estos son:

MenberwiseClone: Es un método 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 método 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 categoría encontramos mas subcategorías 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 dirección de memoria en la que se encuentra un dato determinado de manera que usaremos esa dirección 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 aplicación es necesario que los datos se sitúen en la memoria del ordenador, la cual esta divida en dos partes, una llamada Stack, de pequeño tamaño pero de un acceso muy rápido y otra llamada Heap que cuenta con un mayor tamaño 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 características a otra, se crea una copia en el Stack. Al destruir un tipo por valor, se destruye también el valor que se guardo en el Stack. Cuando creamos un tipo por referencia, en realidad lo que guardamos en el Heap es una dirección 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-101

Page 17: Programacion I UAI

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 común en el lenguaje Visual Basic.NET ya que por años y años a ofrecido a los programados esa conversión interna y tratado de los tipos de datos cuando son intercambiados entre objetos.

Tipo String

La clase String expone numerosos métodos constructores sobrecargados, con lo que podrá crear sus cadenas de diversas formas.

MiVar = New String(CChar(“A”), 10)Console.WriteLine (MiVar) = `AAAAAAAAAA

Propiedades y Métodos

Las únicas propiedades de la clase string son Length y Chars.Length: Devuelve el numero de caracteres que forman la cadena.Chars: Devuelve el carácter situado en un índice determinado.

Optimización 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 podrán optimizar la administración 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 dirección del valor de la cadena en el grupo. Sin embargo, este paso de optimización no se llevara a cabo en tiempo de ejecución.

Métodos Compartidos

La clase String expone otros métodos compartidos (estáticos) a los que podrá llamar sin tener que generar en primer lugar una instancia de un objeto String. Por ejemplo, el método concat permite el empleo de un número arbitrario de argumentos String y devuelve la cadena que resulta de la concatenación de todos los argumentos.

La clase auxiliar Cultureinfo

CATEDRA DE PROGRAMACION I 17-101

Page 18: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANALa 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 Cultureinfo para idioma actual.El objeto Cultureinfo expone dos propiedades, estas son: Number FormatDate Time FormatEstas proporcionan información sobre la forma en que se formatean numeros y fechas de acuerdo con parámetros locales .

Formato de Valores Fecha y Numéricos

Valores NuméricosEl método compartido Format de la clase String le permitirá dar formato a una cadena e incluir en ella uno o mas valores numéricos o de fecha, en una forma similar a como lo hace la función printf del lenguaje C o el método Console.Write. la cadena a formatear puede contener marcadores de posición para los argumentos, en el formato {N} siendo N un índice que comienza en Cero.

Valores de FechaEl método String.Format también permite el empleo de valores de fecha y hora con formatos estándar y personalizados.

Interface Iformattable

Esta interfaz solo expone un método, format, cuyo primer parámetro debe ser la cadena personalizada pasada tras el carácter dos puntos.

El Tipo CharLa 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 métodos compartidos que le permitirán probar un carácter siguiendo ciertos criterios. Todos estos métodos 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 búfer 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 búfer y no se asignara ni liberara memoria. Si la cadena llega a superar la capacidad real, el objeto StringBuilder crea, de forma transparente, un búfer de mayor tamaño.

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, podrán sacar un mayor partido a estos tipos, por ejemplo, utilizando sus métodos y propiedades.

Propiedades y Metodos

Todos los tipos numéricos exponen el método ToString, que convierte su valor numérico a una cadena.

CATEDRA DE PROGRAMACION I 18-101

Page 19: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANATodas las clases numéricas exponen las propiedades compartidas Minvalue y Maxvalue que devuelve el menor y mayor valor. Las clases numéricas que permiten el empleo de valores en punto flotante exponen algunas propiedades compartidas de solo lectura. Por ejemplo la propiedad Epsilon devuelve el menor número positivo (distinto de cero) que se pueden almacenar en una variable determinada.Las clases Single y Double también exponen algunos métodos de instancia que le permiten comprobar si contiene ciertos valores especiales: IsInfinity, IsNegativeInfinity, IsPositiveInfinity e isNaN.

Formato Numérico

Todas las cadenas numéricas disponen de una forma sobrecargada del método ToString. Este método utiliza la configuración 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 numérico.

Conversión de cadenas en números

Todos los tipos numéricos permiten el empleo del método compartido Parse, que analiza la cadena pasada como argumento y devuelve el valor numérico correspondiente. La forma más sencilla del método Parse acepta un argumento de cadena.

Clase Convert

La clase System.Convert expone varios métodos compartidos que le ayudaran a convertir los distintos tipos de datos disponibles en .Net. En su forma más sencilla estos métodos pueden convertir cualquier tipo base en otro tipo. La clase Convert expone numerosos métodos Toxxxx, uno para cada tipo básico: ToBoolean, ToByte, etc.

Generadores de Números Aleatorios

Visual Basic .NET presenta la clase System.Randon; igualmente permite el empleo de la instrucción Randomize y de la función RND con el objeto de mantener la compatibilidad con versiones anteriores, pero los diseñadores profesionales de .NET deberán 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 también expone varios métodos 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 sinónimo de Tipo DateTime.

Como Sumar y Restar Fechas

La clase Date expone varias métodos de instancia que le permitirán agregar y restar un numero de año, meses, días, horas, minutos o segundos a un valor Date. Estos métodos son: AddYears, AddMonths, AddDays, AddHours, AddMinutes, AddSeconds, AddMillisecons, AddTickes.

CATEDRA DE PROGRAMACION I 19-101

Page 20: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAFormato de Fechas

El tipo Date sustituye al método Tostring para proporcionar una representación 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 métodos particulares que solo expone este tipo.

Análisis de Fecha

La operación complementaria al formato de fecha es el análisis. La clase Date proporciona un método Format compartido para efectuar trabajos de análisis de cualquier grado de complejidad.La flexibilidad de este método 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 información sobre separadores y formatos permitidos en valores de fecha y hora.

Manejo de Zonas Horarias

.NET FrameWork permite el empleo de información de la zona horaria gracias al objeto System.TimeZone, que podrá utilizar para recuperar información sobre la zona horaria definidas en las opciones regionales de Windows.

El Tipo Guid

El tipo System.Guid expone varios métodos compartidos y de instancia que pueden ayudarle a trabajar con GUID, es decir, aquellos números de 128 bits que sirven para identificar unívocamente elementos y que se encuentran por todas partes en la programación de Windows. El método compartido NewGuid resultara útil para generar un nuevo identificador único.

ENUMS

Cualquier Enums que defina en su aplicación 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, métodos o sucesos. Todos los métodos que expone habrán 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 métodos para la creación, manipulación, búsqueda y ordenación de matrices, por lo tanto, sirve como clase base para todas las matrices de Common Language Runtime.

Carece de un constructor público, porque su procedimiento New tiene un ámbito protegido.

System Collections

CATEDRA DE PROGRAMACION I 20-101

Page 21: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAEl espacio de nombre system collections expone un gran nuecero de clases que pueden trabajar como contenedores genéricos de datos, tales como colecciones y diccionarios. Lo más recomendable es conocer las interfaces subyacentes que estas clases ponen a su disposición.

Interfaces ICollection

Todas las clases de colección contenidas en .NET Framwork implementan la interfaz ICollection, esta define un objeto que permite el empleo de la enumeración mediante el bucle For Each. La interface ICollection dispone de una propiedad Count de solo lectura y de un método CopyTo que copia los elementos desde el objeto colección a una matriz.La interfaz ICollection define las características mínimas de un objeto del tipo colección debera tener..Net Framework expone otras dos interfaces cuyos métodos 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 métodos básicos 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 búfer interno se amplia automáticamente cuando surja la necesidad. Podrá crear un objeto Queue sin mas que especificar su capacidad inicial y un factor opcional de crecimiento.

Clase ArrayListPuede pensar en la clase ArrayList como un híbrido de objetos Array y Collection, en el sentido de que permitirá trabajar con un conjunto de valores como si fuera, simultáneamente, una matriz y una colección.El objeto ArrayList tiene una capacidad inicial, pero no deberá preocuparse porque el ArrayList se expandirá automáticamente 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 posición de cualquier elemento en la matriz interna esta basada en el código Hash numérico de la clave. Cuando busque mas tarde dicha clave, se volverá a utilizar el código Hash de la misma para localizar el valor asociado tan rápidamente como se posible, sin tener que recorrer de forma secuencial todos los elementos contenidos en la tabla Hash.

CATEDRA DE PROGRAMACION I 21-101

Page 22: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAClase SortedList

El objeto SortedList es, probablemente, el objeto mas versátil de .Net Framework 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á automáticamente 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 pequeña colección 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 pequeños conjuntos de elementos.La clase StringDictionary, una versión menor del objeto Hashtable, acepta únicamente valores y claves de cadena. Este objeto compara las claves sin hacer distinción entre mayúsculas y minúsculas e inicia una excepción si añade dos elementos cuyas claves difieren únicamente en el empleo de mayúsculas y minúsculas. Clase Directory y File

.Net Framework ofrece un excelente soporte para trabajar con archivos y directorios a través de las clases contenidas en el espacio de nombre System.IO. La clase Directory y File contiene exclusivamente métodos compartidos que definen o devuelven información sobre las entradas contenidas en el sistema de archivos.A través 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 métodos en común, tales como Name, FullName y Atributos.Podrá obtener una referencia al objeto DirectoryInfo o FileInfo sin más que utilizar su método constructor, que aceptara la ruta de acceso de un directorio o archivo especifico.

Clase Path

La clase Path expone campos compartidos y métodos que pueden ayudarle a procesar archivos y rutas de acceso a directorios. Los campos estáticos devuelven información 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.

CATEDRA DE PROGRAMACION I 22-101

Page 23: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA Clase Stream

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 físico (por ejemplo: un puerto paralelo, una tubería de comunicación entre procesos o un socket TCP/IP). Las secuencias (stream) le permitirá leer o escribir de/en un almacén 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 búsqueda.No todos los tipos de secuencia permiten todas estas operaciones.La mayoría de los objetos de secuencia almacenan los datos en búferes de una forma transparente.No hay que decir que el almacenamiento en búfer mejora el rendimiento de manera notable. Las secuencia de archivo se almacena en búferes, mientras que las secuencia de memoria no lo son porque no existe un motivo para almacenar en un búfer una secuencia asignada de memoria. Podría utilizar el objeto BufferedStream para agregar capacidad de almacenamiento en búfer a un objeto Stream que no cuente con ella de forma nativa.

Lectura y escritura de secuencia

Cuando el objeto stream genérico 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 permitirán 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.Después de que tenga una referencia a un objeto StreamReader, podra utilizar uno de sus numerosos métodos para leer uno o mas caracteres e, incluso, líneas 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 método 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 unión 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

CATEDRA DE PROGRAMACION I 23-101

Page 24: Programacion I UAI

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

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 mayoría de las instrucciones que gobiernan el flujo de ejecución, tales como los bucles If, For, Do; sin embargo otras instrucciones del viejo estilo han desaparecido, por ejemplo GoSub. La mayoría de los cambios en la sintaxis están 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 también 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 instrucción Exit While.

GoTo y sus Variantes

En versiones anteriores a este lenguaje, permitían el empleo de cuatro tipos de instrucciones de salto intraprocedimientos: GoTo, GoSub, On…GoTo y On…GoSub. 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 Instrucción Declare

Visual Basic .Net permitirá el empleo de la instrucción Declare con la que podrá llamar a procedimientos y funciones contenidas en DLL externas. Se podrá utilizar la instrucción declare en cualquier sitio dentro de su aplicación, incluyendo módulos, formularios y bloques de clases.

CATEDRA DE PROGRAMACION I 24-101

Page 25: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Introducción al .NET

Vista general

Introducción al .Net Framework Vista general de los lenguajes .NET Creación de un Componente Recursos

Introducción

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 tecnologías que forman parte del Framework. En este módulo, usted aprenderá sobre .NET Framework y ASP.NET.

Objetivos

Luego de completar este módulo, usted estará en condiciones de:

Explicar las ventajas de la utilización de .NET Framework Entender los puntos clave de la utilización de ASP.NET cuando desarrolla aplicaciones Web. Entender el funcionamiento básico de un sitio Web

Introducción 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

Introducción

En esta lección, usted aprenderá acerca del Framework. Aprenderá sobre algunos problemas que los desarrolladores confrontan cuando desarrollan aplicaciones Web y cómo el Framework resuelve estos problemas. Además 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 lección, usted será capaz de:

Diferenciar entre Microsoft .NET y .NET Framework Listar los beneficios de utilizar .NET Identificar las características de Visual Studio .NET

CATEDRA DE PROGRAMACION I 25-101

Page 26: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Qué es el .NET Framework?

Herramientasde Desarrollo

Clientes

Aplicacionesde Usuario

AplicacionesWeb ASP.NET

ServiciosWeb XML

Bases de Datos

.NET Framework

Introducción

.NET es el modelo de desarrollo en el cual el software es independiente de los dispositivos y de la plataforma, como así también disponible a través de Internet.El .NET Framework es la implementación 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 próxima generación de aplicaciones. La clave de esta tecnología es simplificar el desarrollo. Esta plataforma consiste en las siguientes tecnologías clave:

El .NET Framework.NET Enterprise ServersBuilding Block ServersVisual Studio .NET

La plataforma .NET consiste en:

Un modelo de programación 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 fácilmente 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 través 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 lógicas 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-101

Page 27: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAconjunto de clases, herramientas y código en común fácilmente integrables entre ellas.

El .NET Framework consiste en:

Common language runtime:Controla servicios en tiempo de ejecución. Incluye integración de lenguajes, seguridad y manejo de memoria. Durante el desarrollo provee herramientas necesarias para simplificar el mismo.

Class library:Las librerías de clase proveen código recusable por la mayoría 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 están fuertemente comunicados entre si. Los programadores escribían arquitecturas en lugar de aplicaciones. Los programadores tenían conocimientos limitados o debían aprender nuevos lenguajes

Introducción

El Framework fue desarrollado para terminar con varias limitaciones que los desarrolladores tenían en el pasado. Para ello tiene una fuerte integración con los estándares de Internet.

Características Pre-.NET

Incluso en una red global fácil y accesible que utiliza información compartida, como lo es Internet, realmente pocas aplicaciones trabajan en más de un tipo de cliente y tienen la habilidad de interactuar con otras aplicaciones. Esta limitación 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 diseño 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 estándares aceptados por la industria, como es el caso de XML, entre otros.Este runtime controla además gran parte de la arquitectura de la aplicación y de esta forma, los desarrolladores pueden concentrarse en la lógica específica de la misma.

CATEDRA DE PROGRAMACION I 27-101

Page 28: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Componentes del .NET Framework

Win32Win32

MessageMessageQueuingQueuing

COM+COM+(Transactions, Partitions, (Transactions, Partitions,

Object Pooling)Object Pooling)IISIIS WMIWMI

Common Language RuntimeCommon Language Runtime

.NET Framework Class Library.NET Framework Class Library

ADO.NET y XMLADO.NET y XML

ServiciosServicios Web XMLWeb XML Interface de Interface de UsuarioUsuario

VisualBasic C++ C#

ASP.NETASP.NET

Perl Python …

Introducción

El Framework provee la funcionalidad necesaria en tiempo de compilación y ejecución 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 aplicación

Cuando se ejecuta Windows 2000, servicios de aplicación, tales como MSMQ, IIS, WMI, están disponibles al desarrollador. El Framework expone estos servicios de aplicación a través de clases dentro del Framework class library.

Class Library

Expone las características del runtime y simplifica el desarrollo de las aplicaciones. Además, los desarrolladores lo pueden extender creando sus propias librerías de clase.El .NET Framework Class Library implementa el .NET Framework. Todas las aplicaciones acceden al mismo conjunto de librerías, las cuales son mantenidas dentro de namespaces. Además, todos los lenguajes .NET acceden al mismo conjunto de librerías.

Common Language Runtime

Provee un entorno de ejecución robusto y seguro, que soporta múltiples lenguajes, y simplifica el desarrollo y administración de las aplicaciones.El CLR es llamado también managed environment, en el cual servicios comunes, tales como seguridad y manejo de memoria, son automáticamente proveídos.

CATEDRA DE PROGRAMACION I 28-101

Page 29: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

ADO.NET

Es la siguiente generación de la tecnología Microsoft ActiveX Data Objects. Cuenta con un mejorado soporte para el modelo de programación desconectado y además provee soporte nativo a XML.

ASP.NET

Es un framework de programación 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 fácil y poderosa para el desarrollo de interfases de usuario.

XML Web Services

Son servicios programables utilizados para compartir aplicaciones a través de Internet.

Interface de Usuario

Web Forms, a través de ASP.NETWindows FormsConsola de comandosAplicaciones móviles

Lenguajes

Cualquier lenguaje que cumple con la especificación del lenguaje común (CLS) puede ejecutarse sobre el CLR. Microsoft incluye Visual Basic .NET, C#, J# C++ y JScript .NET

CATEDRA DE PROGRAMACION I 29-101

Page 30: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Beneficios de usar el .NET Framework

Basado en estándares Web y buenas prácticas

La funcionalidad de las clases .NET es universal

El código se organiza en en namespaces jerárquicos y clases

Es independiente del lenguaje

Windows Windows APIAPI

ASPASP

.NET .NET FrameworkFramework

1980’s 1990’s 2000’s

Visual BasicVisual Basic

MFC/ATLMFC/ATL

Introducción

Durante los primeros años 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 estándares y buenas prácticas:El Framework soporta totalmente las tecnologías existentes en Internet: HTTP, HTML, XML, SOAP, XSLT, XPath, entre otros.

Está diseñado utilizando un modelo unificado de aplicación.La funcionalidad de las clases está disponible para cualquier lenguaje .NET. De esta forma cualquier pieza de código puede ser utilizada en cualquier lenguaje y sobre cualquier plataforma, tales como Windows, Web y XML Web Services.

Es fácil de usar para los desarrolladores.En el Framework, el código está organizado en namespaces jerárquicos y clases. El Framework provee un sistema de tipos común 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 aplicación escrita en cualquier lenguaje .NET.

Clases extensibles.La jerarquía del Framework no está oculta al desarrollador.Usted puede extender las clases a través de herencia. Incluso puede implementar la herencia a través de diferentes lenguajes.

CATEDRA DE PROGRAMACION I 30-101

Page 31: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Visual Studio .NET: La herramienta de desarrollo

Visual Studio .NET

Herramientas paraWindows Forms

Herramientaspara Web

Forms

Control de errorres

Acceso a datos

Multiples Lenguages

Herramientaspara Web Services

Desarrollo Debug DeployDiseño

Introducción

Visual Studio .NET 2003 es un entorno de desarrollo completo en el cual usted puede diseñar, 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, etcétera. Herramientas de acceso a datos.Control de errores, debugging local y remoto, y tracing.

CATEDRA DE PROGRAMACION I 31-101

Page 32: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Vista general de los lenguajes .NET

Soporte a múltiples lenguajes El Common Language RunTime Componentes CLR Compilación y Ejecución Que son los Namespaces?

Introducción

En esta lección, usted aprenderá sobre los lenguajes soportados por el Framework.Aprenderá además sobre los namespaces, los cuales son una herramienta fundamental en el Framework.

Objetivos.

Al completar esta lección, 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-101

Page 33: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Soporte a múltiples lenguajes

El .NET Framework está diseñado para soportarmúltiples lenguajes

Actualmente más de 20 lenguajes

Microsoft prevee Visual Basic .NET, C#, Visual J# .NET, and JScript .NET

Beneficios del soporte a múltiples lenguajes:

Los módulos de código son reusables

Todos los lenguajes tienen el mismo acceso a las API

Cada lenguaje es usado para la tarea correcta

La performance entre los lenguajes es muy similar

Introducción

El Framework fue desarrollado para soportar en teoría un número infinito de lenguajes. Actualmente, son más de veinte los lenguajes que soportan al Framework.

Soporte a múltiples lenguajes

El diseño del Framework permite a los desarrolladores utilizar su lenguaje preferido. Algunos de los lenguajes existentes son los siguientes:

Visual Basic .NET C# Microsoft Visual J# .NET

Microsoft JScript .NET Oberon Scheme

Perl Python COBOL

Haskell Pascal ML

Mercury Eiffel ADA

SmallTalk CAML Microsoft Visual C++

APL C

Beneficios del soporte a múltiples lenguajes

Debido a que el Framework soporta múltiples lenguajes de programación, usted gana una serie de beneficios en su trabajo:

Los módulos del código son reusables. Un módulo de código escrito en un lenguaje puede ser utilizado por cualquier otro lenguaje.La librería de objetos es la misma para cualquier lenguaje. Todos los lenguajes utilizan el mismo modelo de objetos, que es expuesto a través de la librería de clases base.

CATEDRA DE PROGRAMACION I 33-101

Page 34: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANALa flexibilidad de lenguajes permite elegir el lenguaje justo para cada tarea. Por ejemplo, Perl es la mejor opción para expresiones regulares, mientras que COBOL fue la elección preferida para las aplicaciones comerciales durante muchos años.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 código nativo en tiempo de ejecución por un único compilador.

CATEDRA DE PROGRAMACION I 34-101

Page 35: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

El Common Language Runtime

Un mismo runtime para todos los lenguajes .NET

Maneja threads y memoria

Garbage collection

Refuerza la seguridad del código

Elimina los problemas del versionamiento de las DLL

Diferentes versiones de una DLL se ejecutansimultáneamente

Las aplicaciones pueden especificar con que versióntrabajarán

Introducción

El common language runtime (a veces nombrado como runtime) es el motor en tiempo de ejecución del Framework. El runtime provee además otros servicios que incluyen asegurar la seguridad del código y resolver problemas de versionamiento de las DLL.

Manejo de hilos y de memoria

El runtime maneja los hilos de la aplicación, gracias a que provee el aislamiento de memoria de la aplicación. Cuando los objetos no son más usados por la aplicación, 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 tenían las aplicaciones que no liberaban los recursos.

Seguridad del código

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 además provee control de errores para las aplicaciones.

Versionamiento de DLL

Anteriormente al Framework, las aplicaciones compartían DLL. Si una aplicación necesitaba una nueva versión de una DLL, seguramente actualizaba la DLL durante su instalación. Y como resultado de esto la otra aplicación dejaba de funcionar. Este problema está resuelto por el Framework, el cual permite diferentes versiones de la misma DLL, y asegura que la aplicación trabaje con la versión correcta.

CATEDRA DE PROGRAMACION I 35-101

Page 36: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Componentes del CLR

.NET Framework Class Library Support.NET Framework Class Library Support

Thread SupportThread Support COM COM MarshalerMarshaler

Type CheckerType Checker Exception ManagerException Manager

MSIL to NativeMSIL to NativeCompilersCompilers

CodeCodeManagerManager

GarbageGarbageCollectorCollector

Security EngineSecurity Engine Debug EngineDebug Engine

Class LoaderClass Loader

Introducción

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 automáticamente proveídos.La siguiente tabla describe algunos de los servicios del runtime

Class loader: administra meta datos. Se encarga además de cargar las clases en memoria.

MSIL to native compiler: convierte código intermedio (MSIL) a nativo, mediante la compilación just-in-time (JIT)

Code manager: administra la ejecución del código.

Garbage collector: provee una administración automática de la vida de los objetos. Es escalable y soporta múltiples procesadores.

Security engine: administra la seguridad basándose en el origen del código 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 inválidas, al tiempo que no permite variables no inicializadas. Verifica además el código MSIL para garantizar que sea válido.

Exception manager: provee un control de errores estructurado, el cual se integra con Windows (SEH)

Thread support: expone clases e interfaces para la programación multi-hilos.

COM marchaler: provee una interface a COM.

.NET Framework class library: integra código con el runtime.

CATEDRA DE PROGRAMACION I 36-101

Page 37: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Compilación y ejecución

CódigoNativo

Código C# Código Visual Basic .NET

Qué lenguaje?

Compilador Visual Basic .NET

Compilador C#

MSILCompilador JIT

default.aspx

Runtime

HTML

Introducción

Cada lenguaje tiene su propio compilador que compila el código a código intermedio MSIL. El runtime transforma el código intermedio en código nativo y ejecuta la aplicación.

Compilación del lenguaje

En la anterior ilustración, el navegador Web realiza un pedido de una página al servidor, el cual está ejecutando Internet Information Services (IIS). La página devuelta, default.aspx, es compilada con el compilador del lenguaje apropiado, según el lenguaje utilizado para la creación de la página. Independientemente del compilador y lenguaje utilizado, la aplicación es compilada al código intermedio MSIL.

Compilación JIT

El código intermedio es compilado luego a través del proceso just-in-time, a código nativo. De esta forma no es necesaria una nueva compilación cuando se vuelva a ejecutar la página.

Ejecución de la aplicación

Luego de que la aplicación 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-101

Page 38: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Que son los Namespaces?

Grupos de clases relacionadas entre si Agrupamiento lógico, no físico. Los Namespaces son jerárquicos Using C#

Using en C#Using System.Data.SqlCllient

Introducción

La librería de clases, es una librería orientada a objetos y está compuesta por namespaces. La librería es una colección de tipos reusable (clases, estructuras, enumeraciones, delegates, interfaces) que reduce el tiempo de desarrollo e incrementa el soporte a múltiple lenguajes.

Definición

Los namespaces proveen una agrupación lógica de clases que puede ser utilizada por todos los lenguajes. Cada grupo contiene un conjunto de tipos que puede ser utilizado en su aplicación. Además están ordenados jerárquicamente, lo cual reduce la posibilidad de conflictos e incrementa la reutilización del código.

Utilizando namespaces

Para poder utilizar un namespace, puede hacerlo a través de la palabra Imports, o puede escribir el nombre completo de la clase.

CATEDRA DE PROGRAMACION I 38-101

Page 39: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Creación de un componente Que son clases y componentes Creando una clase Usando componentes enASP.NET

Introducción

En esta lección, se introducirá el concepto de clases y componentes. Entonces usted podrá crear un componente utilizando C# y aprenderá cómo ese componente puede ser utilizado desde otras aplicaciones.

Objetivos

Luego de completar esta lección, usted estará en condiciones de:

Distinguir la diferencia entre clase y componente. Crear una clase. Usar un componente desde otra aplicación.

CATEDRA DE PROGRAMACION I 39-101

Page 40: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Qué son clases y componentes?

Las clases son grupos de código sin interface

Los componentes son clases compiladas

Los componentes están compilados como archivos DLL

Los componentes se utilizan para compartir códigoentre las aplicaciones

ComponenteComponente

AplicaciónWeb

AplicaciónWeb

AplicaciónWindows

AplicaciónWindows

AplicaciónWeb

AplicaciónWeb

Introducción

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.

Definición de clase

Las clases son un grupo de código que no tiene interfase de usuario. Proveen funcionalidad a la aplicación y pueden ser compartidas entre las diferentes partes de la aplicación. Las clases pueden tener propiedades y métodos. Mientras que las propiedades son características de las clases, los métodos representan una acción que la clase puede realizar. Los objetos son las instancias de las clases.

Definición de componente

Los componentes son clases que están 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 aplicación referenciando a su namespace y su nombre.

CATEDRA DE PROGRAMACION I 40-101

Page 41: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Crear un projecto de tipo Librería de Clases

Visual Studio .NET crea un namespace por default

Crear los métodos de la clase

Creando una clase

public class Shipping{public Single ShippingCost(System.Single sngPrice){// ...return;

}}

public class Shipping{public Single ShippingCost(System.Single sngPrice){// ...return;

}}

Introducción

Una parte fundamental del desarrollo es la creación y utilización de clases.

Definición

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 Librería 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 métodos y propiedades a la misma.5. Compile el proyecto para crear un componente.

CATEDRA DE PROGRAMACION I 41-101

Page 42: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Usando componentes en ASP.NET

Agregar la referencia a la DLL

Instanciar la clase

Usar el objeto

sngShipping = x.ShippingCost(sngPrice);sngShipping = x.ShippingCost(sngPrice);

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

namespace CompanyA {public class Shipping {

public Single ShippingCost(…) { }

}}

component.dll

Introducción

Las clases que son creadas dentro de un componente están accesibles a otros programas. Para poder utilizarlas desde estos programas primero se deberá realizar una referencia al componente (DLL). Entonces, para acceder a los métodos 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, sólo es necesario escribir una línea de código:

NombreNamespace.NombreClase x = new NombreNamespace.NombreClase();

o también

using NombreNamespace;NombreClase x = new NombreClase();

Para utilizar el objeto sólo se debe indicar el método o la propiedad correspondiente

sngShipping = x.ShippingCost(sngPrice);

CATEDRA DE PROGRAMACION I 42-101

Page 43: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Recursos Recursos .NET

Introducción

En esta lección, aprenderá acerca de algunos recursos que están disponibles sobre el desarrollo de aplicaciones con Visual Studio .NET 2003 y .NET Framework

Objetivo

Luego de completar esta lección, usted estará en condiciones de buscar información acerca del desarrollo de aplicaciones .NET

Recursos .NET

Documentación del .NET Framework

Ejemplos de código

Tutoriales “Quick Start”

Comunidades en línea

Sitios Web

www.gotdotnet.com

www.ibuyspy.com

www.asp.net

msdn.microsoft.com

www.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 información y de esta forma responder a sus preguntas:

La documentación oficial del Framework, que se encuentra en la MSDN Library.Comunidades en líneaSitios Web

CATEDRA DE PROGRAMACION I 43-101

Page 44: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAControles en VB.NET

Introducción 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 diseñador de formularios:El diseñador de Visual Studio.NET es un sofisticado generador de código: 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 características del diseñador:El diseñador de formularios de Visual Studio.NET es prácticamente idéntico al de Visual Basic 6 pero con algunas interesantes características nuevas. Por ejemplo:Puede bloquear cada control (para que no pueda moverlo o modificar su tamañote forma accidental con el ratón) sin mas que asignar el valor trae a su propiedad locked en la ventana propiedades. Visual Basic 6 solo le permitía bloquear todos los controles o ninguno.

La jerarquía de clases de Windows Forms:Las clases contenidas en el espacio de nombres System.Windows.Froms tienen una jerarquía realmente compleja, en la raíz de la cual se encuentra la clase System.ComponentModel.Component, que representa un objeto que se puede introducir en un contenedor.

(Pág. 529, Fig. 16-3 Vista parcial de la jerarquía 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 más complicados y ricos en funcionalidad que los controles.

Menús:El diseñador de Windows Form permite ahora crear la estructura de menús de sus aplicaciones utilizando una técnica bastante más directa y sencilla, mediante un editor WYSIWYG. Ahora podrá incluso mover elementos y submenús completosutilizando la técnica “arrastrar y soltar”.

Formularios MDIEl espacio de nombres Windows Forms no dispone de una clase independiente para los formularios MDI: un

CATEDRA DE PROGRAMACION I 44-101

Page 45: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAformulario MDI no es otra cosa mas que un objeto Form regular cuya propiedad IsMdiContainer se ha definido como trae.La única limitación reseñable 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 reutilización de la interfaz de usuario, del código 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 estándar.Limitarse a atrapar un suceso emitido por un control contenido en el formulario base no suele ser suficiente en la mayoría de los casos.Necesita reemplazar comportamiento predeterminado de la clase base.

Técnicas avanzadas de formularios:En esta describiré algunas técnicas avanzadas de formularios, tales como la subclasificación, la localización y la personalización de formularios.

Subclasificación de ventana:La subclasificación permitía 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 subclasificación 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 títulos y bordes. Es un valor Double perteneciente al rango 0 a 1, por lo que podrá modificar el nivel de opacidad con una gran precisión.

CATEDRA DE PROGRAMACION I 45-101

Page 46: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAFormularios Localizados:

Los diseñadores 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 Rápido de Aplicaciones (RAD).Este problema se ha resuelto en el diseñador 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 continuación, 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.También existe un formato CommaSeparatedValue que le permitirá importar datos en formato CSV desde hojas de cálculo y otras muchas aplicaciones.

El objeto Application:El objeto System.Windows.Forms. Application expone algunas propiedades, métodos y sucesos de gran interés. 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 propósito: Sus propiedades y métodos estáticos le permitirán controlar varias características del cursor del ratón. Su método constructor le permitirá crear un nuevo cursor del ratón, que podrá asignar posteriormente a la propiedad estática 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 método compartido Send podrá enviar una o más pulsaciones de tecla a la aplicación activa.

La clase Help:Esta clase contiene el motor HTML Help 1.0 y le permitirá mostrar el índice, la pagina de búsqueda 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-101

Page 47: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAayuda) cuando el usario pase por encima.

El control ErrorProvider le permitirá desarrollar aplicaciones de Windows forms utilizando un método de validación que ahora resulta familiar a todos los usuarios que pasan parte de su tiempo en internet. Esta técnica de validación 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 máximo la creación de barras de división, 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 mayoría de las propiedades y métodos 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 diseño.

CATEDRA DE PROGRAMACION I 47-101

Page 48: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Introducción 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 lógicas donde se almacenan los datos de un registro. Sus características son el nombre, tipo y tamaño.

Los tipos de datos y su tamaño se verán 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 básicamente dos tipos de archivos:

Secuenciales

Indexados

Explicaremos a continuación cada uno de ellos.

Archivos Secuenciales

Tienen como característica principal que su organización 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-101

Page 49: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAEstos 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 notación la siguiente y colocaremos debajo de cada campo el tipo y tamaño:

S/R sin repetidos

C/R con repetidos

ordenación

c

C/R N ( 5 ) A( 25 ) F( 6 ) memo( 200 )

El ordenamiento del archivo puede ser realizado por más 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 están ordenados por ellas. Si bien la organización física de los registros es de acuerdo al orden de grabación su organización lógica esta dada por la clave.

La organización de un archivo indexado es indexada y según el lenguaje las formas de acceso pueden ser secuencial, random o al azar y dinámica.

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 debiéndose conocer el valor completo de la clave de acceso. Si el registro está compuesto por mas de un campo se deberán conocer todos los valores de esos campos que componen la clave

Dinámica es la forma de acceso a un registro en particular y de allí permite leer el archivo en forma secuencial hasta una condición 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

CATEDRA DE PROGRAMACION I 49-101

Nrocta razonsocial fecha comentarios

patent nroinfraccio tipoinfraccio monto

Page 50: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

En este caso de un archivo de infracciones, la clave esta compuesta por la patente del automóvil 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á lógicamente ordenado por patente y dentro de ella por nro de infracción.

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 más rápido y fácil acceso.

CATEDRA DE PROGRAMACION I 50-101

Page 51: Programacion I UAI

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 streamsUn streams es un conjunto de bytes , en el cual podemos escribir,leer, situarnos dentro de una posición 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 código podría 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 directorio donde se desea guardar el archivoModo apertura crearse,abrirse,crearse si no existe, abrirse para agregar datos , etcAcceso leer,escribir o ambasSharing modo de bloqueo de Windows

Veamos ejemplos

Si el archivo ya existe y queremos leer o escribirDim archivo as FileStream(“a1.dat”,Filemode.open)

Si deseo abrir un archivo y no existe lo creaDim 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 existía lo pisa )Dim archivo as FileStream(“a1.dat,filemode.create,fileaccess.write”)

Si deseo crear un archivo y escribirlo ( si existía lo pisa ) y permite que potro proceso escriba y lea de el

CATEDRA DE PROGRAMACION I 51-101

Page 52: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANADim archivo as FileStream (“a1.dat”,FileMode.create,FileAccess.write,FileShare.ReadWrite)

Resumamos un poco

Modos de apertura de un archivo FileMode.

Append si no existe lo crea.si existe lo abre y se sitúa al final del mismoCreate crea un archivo nuevo .si existía lo pisacreateNew crea un archivo .si existe uno con igual nombre envía una

excepciónopen abre un archivo existente,si no existe envía una excepciónopenOrCreate abre el archivo y si no existe lo creaTruncate abre un archivo existente y lo deja en cero bytes

Modos de acceso a un archivo FileAccess.

Read permite leer datos de un archivoWrite permite escribir datos en un archivoReadWrite permite leer y escribir datos en un archivo

Archivos de texto

Podemos tener básicamente 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 deberíamos

Dim archivo as new FileStream(“a1.dat,filemode.open”) , creamos el filestreamDim reader as new streamreader(archivo) , creamos el streamreader para leerlo

Podriamos abreviar mediante

Dim archivo as new streamreader(“a1.dat”)Los métodos principales d Este objeto StreamReader serán

CATEDRA DE PROGRAMACION I 52-101

Page 53: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Read lee el próximo carácter disponible a partir de la posición actual y avanzaReadBlock lee un bloque de caracteres y lo almacena en un vector de charsReadline lee una línea del archivoReadToEnd lee el contenido de todo el archivo y lo guarda en un stringPeek obtiene el valor del próximo carácter disponible pero no avanzaClose cierra el stream liberando recursos y referencias al archivo

Veamos un ejemplo de lectura por línea de un archivo

Dim archivo as New StreamReader (“archi.dat”)Dim línea as stringlínea = archivo.readlineDo while not línea is nothing

línea = archivo.readlineLoopArchivo.close( )

Podriamos escribir lo mismo utilizando en el while Peek

Dim archivo as New StreamReader (“archi.dat”)Dim línea as stringlínea = archivo.readlineDo while not archivo.peek = -1

línea = archivo.readlineLoopArchivo.close( )

Si por ejemplo deseáramos leer todo el archivo de una sola vez

Dim archivo as New StreamReader (“archi.dat”)Dim contenido as stringcontenido = archivo.ReadToEndArchivo.close( )

Para escribir un archivo de texto deberíamos hacer lo siguiente siguiendo el mismo razonamiento

Dim writer as New StreamWriter(“a1.dat”)

Recordar que si existe el archivo perderemos el contenido actual

Métodos del StreamWriter

Write escribe una cadena de texto en el archivoWriteline escribe una cadena y le agrega un salto de fin de líneaFlush devuelve el contenido del buffer del stream al archivoClose realiza cualquier escritura pendiente sobre el archivo (flush) y lo cierra

CATEDRA DE PROGRAMACION I 53-101

Page 54: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Ejemplo de escribir 100 números en un archivo

Dim archivo as new streamwriter(“a1.dat”)Dim i as integerFor i = 1 to 100

Archivo.writeLine ( i.tostring) recordar que hay que pasar de integer a stringNextArchivo.Close

Archivos binarios

Deberemos utilizar otras clases para estos tipos de archivos que no guardan texto plano legible , sino código binario.Estas clases serán 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 métodos más comunes de esta clase serán

Write guarda una variable en el archivoFlush vuelca en el archivo cualquiera escritura pendienteSeek se sitúa en una posición particular dentro del archivoClose 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 métodos más comunes de esta clase serán

Peekchar consulta el próximo carácter disponible pero no avanza el cursorRead lee un bloque de bytes del archivoReadBoolean lee una variable booleana ReadByte,ReadBytes lee un byte o un bloque de bytesReadChar,ReadChars lee un carácter o un bloque de carácterReadSingle lee una variable single

CATEDRA DE PROGRAMACION I 54-101

Page 55: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAReadDecimal lee una variable decimalClose 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

Código de universidad Código de facultad Código de carrera legajo

Archivo universidades son 10 registros

Código de universidad nombre

Archivo facultades, son 50 facultades

Código de facultad nombre

Archivo carreras son 100 registros

Código de carrera nombre

Nota: el código de universidad es de tipo string de 3 posiciones, el resto de los códigos son numéricos

Listado deseado

CATEDRA DE PROGRAMACION I 55-101

Universidad Abierta Interamericana

Facultad de tecnologíaSistemas 2500 alumnosMatemáticas 200 alumnosTotal tecnología 2800 alumnos

Facultad de medicinaMedicina 1200 alumnosEnfermería 350 alumnosKinesiología 80 alumnosTotal medicina 1630 alumnos

Total UAI 4430 alumnos

Page 56: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Ejercicio de corte de control 2

Dados los siguientes archivos generar el siguiente listado

Una empresa desea realizar una proyección a futuro de sus saldos bancarios.Para ello posee un archivo saldos con los 10 saldos bancarios a principio del mes a procesar

Archivo saldos, son 10 registros

Nro de cuenta bancaria saldo

También se posee un archivo de clearing

Banco emisor Banco receptor clearing

Así mismo posee un archivo movimientos donde tiene todos los movimientos que tendrá en el mes a procesar, ordenado por día.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

día 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 correspondiente2. 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 acreditación se hace sobre el día de deposito)

3. El efectivo a recibir se depositara en la cuenta de menor saldo en ese momento

De este ejercicio se harán dos versiones, una utilizando vectores y otra matrices

CATEDRA DE PROGRAMACION I 56-101

Cta1 cta2 cta3 ………………………. cta101234...31

Page 57: Programacion I UAI

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 descripción Stock actual

Archivo stock de piezas son 200 tipos de pieza

Nro de pieza descripción Stock actual

Archivo composición, contiene la cantidad de cada pieza que utiliza cada modelo, algunas piezas pueden ser compartidas por más de un modelo

Nro de modelo Nro de pieza Cantidad a usar

Se desea saber

CATEDRA DE PROGRAMACION I 57-101

Pieza stock inicial stock final mínima cantidad a comprar para fabricar

Modelo stock cantidad stock a fabricar se adeudan Inicial pedida final

1 100 80 20 0 02 150 200 0 30 20

La cantidad de piezas a comprar deberá ser la mínima posible para poder fabricar los modelos adeudados, sin stockearse de más.Un modelo se fabrica completo o se descarta, no se pueden dejar modelos por terminar por falta de piezas, ya que estas son usadas por otros modelos

Page 58: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Ejercicio de archivos indexados

Se esta realizando un torneo de football y se desean conocer ciertos datos de los equipos participantesPara 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

CATEDRA DE PROGRAMACION I 58-101

EquipoNombre

Partidos General Local VisitanteJugadosGanadosEmpatadosPerdidos

PuntosCantidad de goles de la delanteraReferee con el que perdi mas partidosMayor tiempo de valla invicta

Page 59: Programacion I UAI

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

Composición 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

Tambien se desea saber lo siguiente , teniendo en cuenta que los proveedores son los mismos para los distintos edificios

CATEDRA DE PROGRAMACION I 59-101

Edificio unidad expensa del mes deuda total a pagar

Proveedor monto total a pagarle % sobre el gasto gral del mes

Page 60: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

CATEDRA DE PROGRAMACION I 60-101

Page 61: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Modelo de Clases

Introducción

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, métodos y visibilidad. Relaciones : Herencia, Composición, Agregación, Asociación y Uso.

Elementos

Clase

Es la unidad básica que encapsula toda la información de un Objeto (un objeto es una instancia de una clase). A través de ella podemos modelar el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.).

En UML, una clase es representada por un rectángulo que posee tres divisiones:

En donde:

o Superior: Contiene el nombre de la Clase o Intermedio: Contiene los atributos (o variables de instancia) que caracterizan a la Clase (pueden

ser private, protected o public). o Inferior: Contiene los métodos u operaciones, los cuales son la forma como interactúa el objeto

con su entorno (dependiendo de la visibilidad: private, protected o public).

Ejemplo:

Una Cuenta Corriente que posee como característica:

CATEDRA DE PROGRAMACION I 61-101

Page 62: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAo Balance

Puede realizar las operaciones de:

o Depositar o Girar o y Balance

El diseño asociado es:

Atributos y Métodos:

o Atributos:

Los atributos o características de una Clase pueden ser de tres tipos, los que definen el grado de comunicación y visibilidad de ellos con el entorno, estos son:

public (+, ): Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accsesible desde todos lados.

private (-, ): Indica que el atributo sólo será accesible desde dentro de la clase (sólo sus métodos lo pueden accesar).

protected (#, ): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de las subclases que se deriven (ver herencia).

o Métodos:

Los métodos u operaciones de una clase son la forma en como ésta interactúa con su entorno, éstos pueden tener las características:

public (+, ): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accsesible desde todos lados.

private (-, ): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la clase lo pueden accesar).

CATEDRA DE PROGRAMACION I 62-101

Page 63: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

protected (#, ): Indica que el método no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de métodos de las subclases que se deriven (ver herencia).

Relaciones entre Clases:

Ahora ya definido el concepto de Clase, es necesario explicar como se pueden interrelacionar dos o más clases (cada uno con características 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 relación y éstas pueden ser:

o uno o muchos: 1..* (1..n) o 0 o muchos: 0..* (0..n) o número fijo: m (m denota el número).

i. Herencia (Especialización/Generalización):

Indica que una subclase hereda los métodos y atributos especificados por una Super Clase, por ende la Subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Super Clase (public y protected), ejemplo:

En la figura se especifica que Auto y Camión heredan de Vehículo, es decir, Auto posee las Características de Vehículo (Precio, VelMax, etc) además posee algo particular que es Descapotable, en cambio Camión también hereda las características de Vehiculo (Precio, VelMax, etc) pero posee como particularidad propia Acoplado, Tara y Carga.

CATEDRA DE PROGRAMACION I 63-101

Page 64: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANACabe destacar que fuera de este entorno, lo único "visible" es el método Caracteristicas aplicable a instancias de Vehículo, Auto y Camión, pues tiene definición publica, en cambio atributos como Descapotable no son visibles por ser privados.

ii. Agregación:

Para modelar objetos complejos, n bastan los tipos de datos básicos 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 aplicación, tenemos dos posibilidades:

Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comunmente llamada Composición (el Objeto base se contruye a partir del objeto incluido, es decir, es "parte/todo").

Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comunmente llamada Agregación (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 también son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados.

La composición (por Valor) se destaca por un rombo relleno. La agregación (por Referencia) se destaca por un rombo transparente.

La flecha en este tipo de relación indica la navegabilidad del objeto refereniado. Cuando no existe este tipo de particularidad la flecha se elimina.

iii. Asociación:

La relación entre clases conocida como Asociación, permite asociar objetos que colaboran entre si. Cabe destacar que no es una relación fuerte, es decir, el tiempo de vida de un objeto no depende del otro.

CATEDRA DE PROGRAMACION I 64-101

Page 65: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAEjemplo:

Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de compra solo puede tener asociado un cliente.

iv. Dependencia o Instanciación (uso):

Representa un tipo de relación muy particular, en la que una clase es instanciada (su instanciación es dependiente de otro objeto/clase). Se denota por una flecha punteada.

El uso más particular de este tipo de relación es para denotar la dependencia que tiene una clase de otra, como por ejemplo una aplicación grafica que instancia una ventana (la creación del Objeto Ventana esta condicionado a la instanciación proveniente desde el objeto Aplicacion):

Cabe destacar que el objeto creado (en este caso la Ventana gráfica) no se almacena dentro del objeto que lo crea (en este caso la Aplicación).

Casos Particulares:

o Clase Abstracta:

Una clase abstracta se denota con el nombre de la clase y de los métodos con letra "itálica". Esto indica que la clase definida no puede ser instanciada pues posee métodos abstractos (aún no han sido definidos, es decir, sin implementación). La única forma de utilizarla es definiendo subclases, que implementan los métodos abstractos definidos.

o Clase parametrizada:

CATEDRA DE PROGRAMACION I 65-101

Page 66: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Una clase parametrizada se denota con un subcuadro en el extremo superior de la clase, en donde se especifican los parámetros que deben ser pasados a la clase para que esta pueda ser instanciada. El ejemplo más típico 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 genéricos. La genericidad puede venir dada de un Template (como en el caso de C++) o bien de alguna estructura predefinida (especialización a través de clases).

En el ejemplo no se especificaron los atributos del Diccionario, pues ellos dependerán exclusivamente de la implementación 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 búsqueda, puede ser generica. item: Contenido a almacenar en el diccionario asociado a "key", cuyo tipo también puede ser genérico.

Para este caso particular hemos definido un Diccionario para almacenar String y Personas, las cuales pueden funcionar como llaves o como item, solo se mostrarán las relaciones para la implementación del Diccionario:

CATEDRA DE PROGRAMACION I 66-101

Page 67: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

CATEDRA DE PROGRAMACION I 67-101

Page 68: Programacion I UAI

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 menús a medida que avance en el estudio del presente apunte

Menú Archivo

Nuevo genera un nuevoAbrir abre un Agregar permite incluir un formulario, clase u otro objeto al proyecto existenteCerrar cierra un Cerrar proyecto cierra un proyectoGuardar form1 guarda el forms que esta activoGuardar form 1 como guarda el form con otro nombreGuardar todo guarda todos los formsConfigurar pagina configurar la página (solo cuando esta codificando) Imprimir imprimir la página (solo cuando esta codificando)Proyectos recientes muestra lo sproyectos recientesSalir sale de VB.NET

CATEDRA DE PROGRAMACION I 68-101

Page 69: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Menú Editar

Deshacer deshace el ultimo codigo escritoRehacer rehace el ultimo codigo borradoCortar corta el codigo seleccionadoCopiar copia el codigo seleccionadoPegar pega el codigo seleccionadoEliminar elimina lo seleccionadoSeleccionar todo selecciona el codigo activoBuscar y reemplazar busca una palabra y la reemplaza en un determinado lugarIr a Posesionarse enMarcadores colocar un punto de inspeccion

CATEDRA DE PROGRAMACION I 69-101

Page 70: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Menú Ver

Codigo ver el codigoDiseñador ver el diseño del formAbrir abrir una pagina Abrir con abrir una pagina con Explorador de servidores visualizar los servidores existentesExplorador de soluciones ver las distintas partes de mi solucionVentana marcador coloca una marcación Vista de clases visualiza las clases Ventana definición de código ventana para definir codigo de windowsExaminador de objetos permite examinar los objetos existentesOrden de tabulación permite definir el orden de las tabulacionesLista de errores muestra los errores encontrados

CATEDRA DE PROGRAMACION I 70-101

Page 71: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAResultados examina los resultados Ventana propiedades ver propiedades del controlCuadro de herramientas ver los controles mas comunesResultado de la búsqueda ver resultados Otras ventanas permiten visualizar otras ventanasBarras de herramientas permite visualizar la barra de herramientasPantalla completa visualiza la pantalla completa

Menú Proyecto

Agregar Windows forms agrega formularioAgregar control de usuarios agrega controles de usuarioAgregar componentes agrega componentesAgregar módulos agrega modulosAgregar clase agrega una claseAgregar nuevo elemento agrega un elemento determinadoAgregar elemento existente agrega un elemento ya existenteExcluir del proyecto excluye al proyecto a un objeto determinadoMostrar todos los archivos muestra todos los archivos del proyectoAgregar referencia agrega una referencia Agregar referencia WEB agrega una referencia webPropiedades de Windows applications2 muestra propiedades

CATEDRA DE PROGRAMACION I 71-101

Page 72: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Menú Generar

Generar Windowsapplication2 Publicar Windowsapplication2

Menú Depurar

Ventanas muestra distintos tipos de ventana de inmediatoIniciar depuración inicia depuración del proyectoIniciar sin depurar inicio sin depurar el proyectoAsociar al proceso asocia un proceso determinadoPaso a paso por procedimientos ejecución paso a pasoAlternar puntos de interrupción pasar al punto de interrupcionEliminar todos los puntos de interrupción sacar las interrupciones quita los puntos de interrupcion

CATEDRA DE PROGRAMACION I 72-101

Page 73: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Menú Datos

Mostrar orígenes de datos permite generar una coneccion a datosVista previa de los datos mustra los datos de la conecion establecidaAgregar nuevo origen de datos agregra un origen de datosAgregar consulta….. Permite agregar una cunsulta

Menú Formato

Alinear alinear los controles seleccionadosIgualar tamaño igualar tamaño de los controles seleccionadosEspaciado horizontal igualar espacio horinzotalEspaciado vertical igualar espacio verticalCentrar en el formulario centrar lo seleccionado en el formBloques de controles bloquea los controles

CATEDRA DE PROGRAMACION I 73-101

Page 74: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Menú Herramientas

Conectar con dispositivo conecta con un dispositivo, por lo generar emuladorConectar con base de datos conecta con una base de datosConectar con el servidor conecta con un servidorElegir elementos del cuadro de herramientas permite elegir elementos Administrador de complementos permite administrar elementosActiveX control test container activo los controles ActiveXCrear guid crea guidDotfuscator community edition Protege el codigo fuente Busqueda de errores busca los errores encontradosSpy++ para saber los mensajer que recibe cierta ventanaHerramientas externas permite agregar herramientas de tercerosAdministrador de emuladores de dispositivos administra los emuladores de dispositivosImportar y exportar configuraciones Importar y exportar la configuracionPersonalizar permite personalizar el menuOpciones muestra las opciones de .Net

CATEDRA DE PROGRAMACION I 74-101

Page 75: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Menú Ventana

Nueva ventana abrir una nueva ventanaAcoplable acoplar ventanasOrganización por fichas organizar las ventanas por fichasOcultar automáticamente oculta todas las ventanas Ocultar oculta la ventana seleccionadaOcultar todo automáticamente oculta automáticamente las ventanasNuevo grupo de fichas horizontal genera una nueva ficha horizontalNuevo grupo de fichas vertical genera una nueva ficha verticalCerrar todos los documentos cierra todos los documentosRestablecer diseño de la ventana Restable el diseño de las ventanas

CATEDRA DE PROGRAMACION I 75-101

Page 76: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Menú Comunidad

Formular una pregunta formular una pregunta a la comunidad .netComprobar estado de la pregunta verificar el estado de la preguntaEnviar comentarios enviar comentarios a una pregunta Centro para desarrolladores conectarse con el centro de desarrolladoresComunidad de Codezone conectarse con la comunidad CodezonaCatalogo de productos asociados Ver productos asociadosBusqueda de la comunidad buscar informaciónNota: Se necesita de una conexión a internet para poder utilizar estas opciones de ayuda.

Menú ayuda

CATEDRA DE PROGRAMACION I 76-101

Page 77: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Archivos de solución (.sln y .suo)

Visual Studio utiliza dos tipos de archivo (.sln y .suo) para almacenar la configuración específica de las soluciones. Estos archivos, conocidos de manera conjunta como archivos de solución, proporcionan al Explorador de soluciones la información que necesita para mostrar una interfaz gráfica de administración de archivos. Los archivos de solución le permiten concentrarse en los proyectos y objetivos finales en lugar de en el propio entorno cuando se dedica a las tareas de programación.

Extensión

Nombre Descripción

.slnSolución de Visual Studio

Organiza proyectos, elementos de proyecto y elementos de solución en la solución y proporciona al entorno referencias a sus ubicaciones en disco.

.suoOpciones de usuario de solución

Registra todas las opciones que podría asociar a la solución 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 Extensión de archivo

Propósito del elemento de proyecto

Formulario Windows Forms.vb o .cs o .jsl o .java

Un formulario utilizado para crear aplicaciones para Windows.

Formulario del explorador.vb o .cs o .jsl o .java

Un formulario del explorador con una vista de árbol y controles de exploración.

Formulario primario MDI.vb o .cs o .jsl o .java

Un formulario para una aplicación de interfaz de múltiples documentos.

Cuadro Acerca de.vb o .cs o .jsl o .java

Un formulario de cuadro de diálogo Acerca de para aplicaciones para Windows.

Formulario de inicio de sesión.vb o .cs o .jsl o .java

Un formulario de inicio de sesión para recopilar un nombre de usuario y una contraseña.

Pantalla de bienvenida.vb o .cs o .jsl o .java

Un formulario preconfigurado para su uso como pantalla de bienvenida.

Cuadros de diálogo.vb o .cs o .jsl o .java

Un cuadro de diálogo para aplicaciones para Windows.

Clase   .vb o .cs o .jsl o .java

Archivo de código que contiene una declaración de clase.

CATEDRA DE PROGRAMACION I 77-101

Page 78: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Interfaz.vb o .cs o .jsl o .java

Una nueva interfaz.

Módulo (sólo Visual Basic) .vb Archivo para el almacenamiento de grupos de funciones.

Clase de componentes.vb o .cs o .jsl o .java

Clase para crear componentes utilizando el diseñador visual.

Control de usuario.vb o .cs o .jsl o .java

Una clase para crear un control de formularios Windows Forms utilizando el diseñador visual.

Servicio de Windows.vb o .cs o .jsl o .java

Una clase para crear servicios de Windows.

DataSet .xsd Un archivo para crear un esquema XML con clases DataSet. Base de datos SQL .mdf Una base de datos SQL vacía para los datos locales.Archivo XML .xml Un archivo XML en blanco. Esquema XML .xsd Un archivo para crear un esquema para documentos XML.Archivo de configuración .settings Un archivo de configuración del usuario en blanco.

Archivo de código.vb o .cs o .jsl o .java

Un archivo de código en blanco.

Control personalizado.vb o .cs o .jsl o .java

Una clase para crear un control de formularios Windows Forms orientado al usuario.

Página HTML .htm Una página HTML que puede incluir códigos del lado del cliente.

Formulario heredado.vb o .cs o .jsl o .java

Un nuevo formulario basado en un formulario existente.

Control de usuario heredado.vb o .cs o .jsl o .java

Un nuevo control basado en un control de formulario Windows Forms existente.

Control Web personalizado.vb o .cs o .jsl o .java

Una clase para crear un control de servidores ASP.NET.

Clase COM .vb o .cs Una clase que puede estar expuesta a COM. Componente transaccional .vb o .cs Una clase que se utiliza con los componentes transaccionales. Archivo de texto .txt Archivo de texto vacío.Archivo XSLT .xslt Un archivo utilizado para transformar documentos XML.

Clase del instalador.vb o .cs o .jsl o .java

Una clase que se va a invocar durante la configuración.

Crystal Report .rptUn archivo de Crystal Report que publica datos en un formulario de Windows.

Archivo de mapa de bits .bmpUn archivo de imagen de mapa de bits en blanco, que puede utilizarse para crear imágenes simples.

Archivo de cursor .cur Un archivo para crear cursores personalizados. Archivo de icono .ico Un archivo de imagen para crear un icono personalizado. Archivo de recursos .resx Un archivo utilizado para editar y definir recursos de aplicaciones. Archivo de información sobre el ensamblado

.vb o .cs o .jsl Un archivo que contiene información general acerca del ensamblado.

Archivo de configuración de la aplicación

.config Un archivo utilizado para configurar los valores de la aplicación.

Visualizador del depurador.vb o .cs o .jsl o .java

Un visualizador del depurador sencillo

Diagrama de clase .cd Un diagrama de clase.Informe .rdlc Un nuevo informe vacío.Archivo JScript .js Un archivo de comandos que contiene código JScript.Archivo VBScript .vbs Un archivo de comandos que contiene código VBScript.

Windows Script Host .wsfUn archivo que contiene una secuencia de comandos que se ejecuta como un programa de Windows.

Elementos de proyecto Web

Elemento de proyecto

Extensión de archivo Propósito del elemento de proyecto

Formulario Web Forms

Dos archivos: .aspx y .vb para Visual Basic, .cs

Un formulario utilizado para crear aplicaciones Web.

CATEDRA DE PROGRAMACION I 78-101

Page 79: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANApara Visual C# o .jsl para Visual J#

Página principal .master Una página principal para las aplicaciones Web.Control de usuario Web

.ascx Un control de servidor ASP.NET creado mediante un diseñador visual.

Página HTML .htm Una página HTML que puede incluir códigos del lado del cliente.

Servicio Web

Dos archivos: .asmx y .vb para Visual Basic, .cs para Visual C# o .jsl para Visual J#

Un componente que ofrece la posibilidad de intercambiar mensajes interoperables mediante el uso de protocolos estándar, como HTTP, XML, XSD, SOAP y WSDL.

Clase    .vb o .cs o .jsl Archivo de código que contiene una declaración de clase.

Hoja de estilos .cssUna hoja de estilos en cascada utilizada para definiciones de estilo HTML enriquecido.

Clase de aplicación global

.asax

A veces conocido como archivo asax, permite escribir código para controlar eventos globales ASP.NET de nivel de aplicación tales como Session_OnStart y Application_OnStart. El archivo tiene como nombre global.asax y no es posible cambiarlo.

Archivo de configuración Web

.configASP.NET utiliza este archivo para configurar los valores Web de un proyecto Web. El archivo tiene como nombre Web.config y no es posible 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 vacío.Archivo de recursos de ensamblado

.resx Un archivo utilizado para editar y definir recursos de aplicaciones.

Archivo de información sobre el ensamblado

.vb o .cs o .jsl Un archivo que contiene información general acerca del ensamblado.

Base de datos SQL .mdf Una base de datos SQL vacía para los datos locales.DataSet .xsd Un archivo para crear un esquema XML con clases DataSet. Controlador genérico

.ashx Una página para implementar un controlador genérico

Mapa del sitio .sitemap Un archivo utilizado para crear un mapa del sitio.Formulario Mobile Web Forms

.aspxFormulario utilizado para crear aplicaciones Web para dispositivos móviles.

Control de usuario Web móvil

.ascxControl de servidor ASP.NET creado con el diseñador visual y utilizado en una aplicación Web para dispositivos móviles.

Archivo de configuración Web móvil

.configASP.NET utiliza este archivo para configurar los valores Web de un proyecto Web móvil. El archivo tiene como nombre Web.config y no es posible cambiarlo.

Crystal Report .rptUn archivo Crystal Report que publica datos en un formulario Web Forms.

Archivo VBScript .vbs Un archivo de comandos que contiene código VBScript. Archivo JScript .js Un archivo de comandos que contiene código JScript. Windows Script Host

.wsfUn archivo de código vacío que se utiliza para crear secuencias de comandos de Windows.

Archivo de máscara .skin Un archivo utilizado para definir un tema de ASP.NET.Archivo de explorador

.browser Un archivo para las definiciones del explorador

Informe .rdlc Un nuevo informe vacío.Módulo (sólo Visual Basic)

.vb Archivo para el almacenamiento de grupos de funciones.

Clase de componentes

.vb o .cs Clase para crear componentes utilizando el diseñador visual.

Asistente para formularios de datos

.aspx (.vb o .cs para proyectos locales)

Un formulario de datos para aplicaciones Web.

Conjunto de .htm Archivo HTML que aloja varias páginas HTML.

CATEDRA DE PROGRAMACION I 79-101

Page 80: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAmarcosControl Web personalizado

.vb o .cs o .jsl Una clase para crear un control de servidores ASP.NET

Archivo de código .vb o .cs o .jsl Un archivo de código en blanco.Archivo de descubrimiento estático

.discoUn archivo opcional que actúa como mecanismo de descubrimiento para el servicio Web XML. El archivo .disco no se crea automáticamente para un servicio Web XML.

Clase del instalador .vb o .cs o .jsl Una clase que se va a invocar durante la configuración.Archivo de mapa de bits

.bmpUn archivo de imagen de mapa de bits en blanco, que puede utilizarse para crear imágenes simples.

Archivo de cursor .cur Un archivo para crear cursores personalizados. Archivo de icono .ico Un archivo de imagen para crear un icono personalizado.

CATEDRA DE PROGRAMACION I 80-101

Page 81: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

GLOSARIO Algunos conceptos (clasificados alfabéticamente) que usaremos con bastante frecuencia en las entregas del curso de .NET:

Palabra Descripción

A  

Aclaración sobre variables y métodos estáticos o compartidos

Se dice que una variable o un método es estático (Shared en VB / static en C#) cuando está compartido, es decir, no forma parte de ninguna instancia de la clase.Las variables y métodos estáticos 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 método.En el caso de VB todos los miembros de un módulo (Module) son estáticos (están compartidos) y no es necesario indicar el nombre del módulo para acceder a ellos.

Ámbito / Accesibilidad

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.En la documentación de Visual Studio .NET, ámbito es el nivel de visibilidad que puede tener, ya sea a nivel de bloque, procedimiento, módulo o espacio de nombres.Y la accesibilidad es la "visibilidad" de dicho elemento, si es público, privado, etc.

Array(matriz)

Los arrays (o matrices) son un tipo de variable que permiten tener más de un elemento, (o valor en su interior), a los que se pueden acceder mediante un índice.Un array también es el tipo en el que se basan todas las matrices o arrays.

Assenbly (ensamblado)

Básicamente un ensamblado es un programa (EXE) o un componente (DLL), en el que además del código compilado tiene un manifiesto o definición de que es lo que contiene dicho ensamblado: tipos de datos, dependencias, versión, etc.

C  

Clases / Objetos(tipos)

Prácticamente todo lo que manejemos en el entorno .NET es una clase u objeto, de hecho todas las clases derivan de una clase u objeto básico: la clase System.Object

Clases abstractas Son clases que exponen un interface el cual hay que usar en las clases que se hereden de dicha clase abstracta.

Colecciones

Serie de datos que están guardados en una lista, array (o matriz) o una colección propiamente dicha y que permite interactuar con los elementos de las mismas, pudiendo añadir, recuperar, eliminar uno o todos, saber cuantos elementos hay, etc.

CATEDRA DE PROGRAMACION I 81-101

Page 82: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Common Language Runtime(CLR)

El CLR (Common Language Runtime) es el motor en tiempo de ejecución del .NET Framework, es decir la parte del "entorno" que se encarga de ejecutar el código de los lenguajes del .NET Framework.

Constante Valores numéricos o de cadena que permanecen constantes, sin posibilidad de cambiar el valor que tienen.En caso de que necesitemos cambiar el valor, usaremos las variables.

E  

Encapsulación La posibilidad de ocultar el código usado para implementar un método o cualquier otro procedimiento o función de forma que lo único que interese sea el interface expuesto por la clase u objeto.

Enumeraciones(Enum)

Las enumeraciones son una serie de valores constantes (de tipo numérico), que de alguna forma están relacionadas entre sí.A diferencia de las constantes normales, una variable declarada como una enumeración, puede tomar cualquiera de los valores indicados en la enumeración.

Evento

Los eventos son procedimientos (SUB) que se ejecutan normalmente cuando el sistema Windows los provoca, por ejemplo, al hacer click en una ventana o en cualquier objeto de la ventana, cuando cambiamos el tamaño de una ventana, cuando escribimos en una caja de textos, etc.

ExpresionesUna expresión es una secuencia de operadores y operandos que describe un cálculo. Normalmente una expresión se evalúa en tiempo de ejecución.Existen expresiones numéricas y alfanuméricas o de caracteres.

Expresiones Lógicas

Las expresiones lógicas son expresiones pero cuyo resultado es un valor "lógico" (verdadero o falso).Este tipo de expresiones se usan normalmente con instrucciones que normalmente necesitan un valor verdadero (true) o falso (false)

F  

Formulario (forma/ventana)

Un formulario es una ventana de Windows la cual usaremos para interactuar con el usuario, ya que en dicha ventana o formulario, estarán los controles y demás objetos gráficos que mostraremos al usuario de nuestra aplicación.Los formularios también son llamados "formas" o Forms en su nombre en inglés.

Function(Función)

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 código que se ha ejecutado en su interior.A las funciones no se les puede asignar valores, a diferencia de las Propiedades.

H  

CATEDRA DE PROGRAMACION I 82-101

Page 83: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Handles

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(parámetros) Handles Objeto.Evento

Herencia La posibilidad de que una clase herede las propiedades y métodos de otra clase de forma que se puedan usar con la nueva clase de igual forma que si se hubiesen escrito directamente en ella.

I  

Instancia

Para poder usar una clase, hay que crear una instancia del mismo.Es decir, debemos declarar una variable y a esa variable asignarle el objeto o clase en cuestión para que podamos usarlo.Es como si tuviésemos que darle vida al objeto par poder usarlo.La instanciación de las clases se hace usando New LaClase

Interface Se dice que las propiedades y métodos expuestos por una clase (tipo) forman el interface de la misma.

Interface / Implements

Los interfaces a diferencia de las clases es que no hay que escribir código para los métodos o propiedades que expone, simplemente se indica la "declaración".Usando Implements, se pueden usar esas interfaces en las clases, aunque hay que escribir el código de cada método o propiedad implementado.

M  

Me(this)

La palabra clave (o instrucción) 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.

Método Un procedimiento (Sub, Function -función) que se usa para realizar una tarea específica en la clase o módulo.

MiembrosLos miembros de una clase (o tipo) son los métodos (Sub o Fucntion, las propiedades, enumeraciones, constantes, campos, etc. que se han declarado en dicho tipo.

Miembros compartidosSon miembros de una clase que pueden ser accedidos sin necesidad de crear una instancia de la clase. Se declaran usando la instrucción Shared (static en C#).

Miembros de instanciaSon miembros de una clase que sólo pueden ser accedidos al crear una instancia (objeto) de la clase en la memoria.

Módulo

Los módulos, 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 código contenido en un módulo siempre está disponible de forma directa, sin necesidad de crear una "instancia" de dicho módulo.

CATEDRA DE PROGRAMACION I 83-101

Page 84: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

MyBase

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 métodos, propiedades y eventos de la clase de la que se deriva (o hereda) la clase actual.

N  

Namespace(espacio de nombres)

Namespace es una forma de agrupar clases (tipos de datos), enumeraciones, etc. que están relacionadas entre sí.De forma que estén agrupados según el tema que quieran abarcar los tipos definidos en él.

O  

P  

Parámetro

Los métodos o propiedades pueden tener parámetros, (uno o varios), los cuales le indicarán los valores que deben usar para la tarea que debe realizar.Por ejemplo, un método Contar podría recibir un parámetro con el valor de las veces que tiene que contar.

Parámetros opcionales

Algunos procedimientos que aceptan parámetros, pueden tener también parámetros opcionales, los cuales, como su nombre indica, pueden o no ser incluidos en la llamada al procedimiento.Los parámetros opcionales tienen unos valores por defecto, el cual se usará en caso de que no se especifique.

Polimorfismo

La posibilidad de usar en clases diferentes propiedades o métodos con el mismo nombre de forma que cuando se usen no nos preocupe a que clase pertenece.Por ejemplo el objeto básico del que derivan todas las clases de .NET tiene una propiedad llamada ToString, ésta propiedad estará implementada de forma diferente en diferentes clases, pero nosotros la usaremos de la misma forma, sin importarnos que objeto estemos usando.

Procedimiento Un método, función o propiedad de una clase o módulo.

Programación Orientada a Objetos (OOP / POO)

Una forma de programar basada en la reutilización de código mediante herencia, encapsulación y polimorfismo.

Property(Propiedad)

A diferencia de los métodos, las propiedades se usan para "configurar" la forma que tendrá la clase.Algunas veces es difícil diferenciar un método de una propiedad, pero por convención los métodos realizan tareas. Por ejemplo, el ancho de un objeto es una propiedad, mientras que mostrar el objeto se realizaría con un método.A las Propiedades se les puede asignar valores y pueden devolverlos, (como las funciones). Aunque también pueden existir propiedades de solo lectura, (solamente devuelven valores), o de solo escritura, (sólo se les puede asignar valores, pero no los devuelven).

S  

CATEDRA DE PROGRAMACION I 84-101

Page 85: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Sobrecarga (Overload)

Se dice que un método está sobrecargado cuando existen distintas versiones de dicho método en la clase.Por ejemplo métodos con el mismo nombre que reciban parámetros de distintos tipos.

Sub Un procedimiento SUB es como una instrucción, es decir, realiza una tarea (ejecuta el código que haya en su interior), pero no devuelve un resultado.

V  

Variable

Son "espacios" de memoria en la que se almacena un valor. Se usarán para guardar en memoria los valores numéricos o de cadena de caracteres que nuestro programa necesite.Usa este link para ver los distintos tipos de datos.

Variables estáticas

Son variables definidas en los procedimientos con la instrucción 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.

Enunciados para realizar el TP de programacion I

1. En una empresa los empleados cobran un sueldo según la categoria, son 50 empleados y 3 categorías

archivo secuencial de categorias

categoriavalor del sueldo

Al sueldo se le suman $ 100 por cada año trabajado.Luego se tiene un archivo personal con los siguientes campos

NombreCategoríaantigüedad

calcular

A. Cuántos empleados hay por categoríaB. Total de sueldos pagados por categoríaC. Sueldo promedio generalD. Sueldo máximo y a quién perteneceE. Qué porcentuel sobre el total de sueldos representa cada total de sueldos de las categorías

2. con los mismos archivos del ejercico numero 1 Se desea saber

A. Cantidad de empleados por categoría

CATEDRA DE PROGRAMACION I 85-101

Page 86: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAB. Cantidad de empleados que cobran mas de $ 2000C. Cantidad de empleados de la categoría 1 con sueldo mayor a $ 1000D. Sueldo máximo y a qué empleado perteneceE. Sueldo mínimo y a que empleado perteneceF. Categoría con más empleadosG. Porcentual en cantidad de empleados de cada categoría sobre el total de la empresa

3. Una empresa desea procesar las ventas que tiene en el siguiente archivo secuencialnúmero de facturacódigo de articulocantidad vendida

en otro archivo se tiene el precio de los 10 articuloscodigo de articuloprecio unitario

en cada factura sólo se vende un tipo de artículo, los artículos son 6 tura = 0

Se pide :

A. cantidad de facturas emitidas B. monto de cada facturaC. suma de las facturas (caja diaria)D. cantidad total de artículos vendidosE. cantidad vendida de cada artículoF. cantidad de facturas emitidas para cada artículoG. promedio de importe de las facturasH. porcentual que representa el monto total de cada artículo sobre el total

4. Una companía aérea vende boletos en 3 aeropuertos mediante 6 empleados, cada vez que realiza una venta tiene los siguientes datosen un archivo secuencial

número de aeropuerto número de empleadodestinocantidad de pasajes

a la vez en otro archivo se tienen los siguientes datos de los 10 destinosdestino valor del pasaje

Se desea saber

A. cantidad de pasajes vendidos por aeropuertoB. cantidad de pasajes vendidos por cada empleadoC. monto total vendido por empleadoD. 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

CATEDRA DE PROGRAMACION I 86-101

Page 87: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAG. si cada boleto ya tiene incorporado el 10,5% de iva sobre el valor del boleto, cuánto hay que pagarle al fiscoH. si sobre el total hay que pagar el 3% de ingresos brutos, cuál 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

número de facturanúmero de mozo número de mesacantidad de personas que comieronmonto de la cuenta

Se desea saber lo siguiente

A. cantidad de personas atendidas por cada mozoB. cantidad de facturas realizadasC. caja diaria realizadaD. monto facturado por cada mesa en totalE. porcentual facturado por cada mozo sobre el totalF. si a cada mozo se le da el 5% de su venta cuánto le corresponde a cada unoG. cuál mozo atendió más personas en totalH. cuántas facturas superaron $ 45I. mesa a la que se facturó más veces, o sea que más 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

número de caja número de seccionimporte de la ventatiempo en cajacantidad de productos compradosnro de ticket

si la compra supera los $50, se le realiza un 2% de descuento, Se desea saber

A. cantidad de tickets emitidosB. cantidad de tickets emitidos por cajaC. ticket de mayor tiempo en cajaD. monto recaudado por secciónE. que porcentaje representa el monto recaudado por caja sobre el total F. cantidad de comprobantes con monto mayor a $ 100G. monto total descontado

CATEDRA DE PROGRAMACION I 87-101

Page 88: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAH. porcentual que representa el monto total descontado sobre el total vendidoI. si cada cajero gana el 20 % de su recaudación cuánto 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 películas

numero de peliculanombreprecio

Cada vez que compran, le dan un ticket donde figuran Número de sucursal Número de película Cantidad de asientos comprados Turno

Se desea saber

a. Cantidad de asientos vendidos en cada turnob. Pelicula de mayor recaudaciónc. Sucursal que vendió menos en total en pesosd. Si cada sucursal recibe un 20% de lo recaudado, cuánto ganó c/ue. Porcentual que representa lo recaudado por pelicula sobre el totalf. Ticket de menor valorg. Cantidad de asientos vendidos para la pelicula 2 en la sucursal 3 y turno Tardeh. Cuál fue el promedio de asientos solicitados por cada sucursal

8. Un noticiero de TV tiene 10 comentaristas para cubrir 5 móviles, al término de cada transmisión se genera un archivo con los siguientes datos

código de comentaristanúmero de movilcategoríacantidad de horaslocalidad

se posee en un archivo secuencial los siguientes datos de las 4 categorias

codigo de categoriadescripcion

en otro archivo los datos del as 6 localidades

codigo de localidaddescripcion

CATEDRA DE PROGRAMACION I 88-101

Page 89: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Se desea saber

a. cantidad de hs trabajadas por cada comentaristab. localidad desde donde se transmitió más vecesc. porcentual que representa la totalidad en hs de cada categoría sobre el totald. promedio de hs trabajadas por cada comentaristae. cantidad de veces que se transmitió política desde el exteriorf. que categoría fue la menos transmitida en totalg. que transmisión fue la de mayor duracion en hs h. el comentarista 1 en que localidad trabajó más

9. Una empresa de micros vende boletos a 3 destinos

Archivo secuencial destinos

Codigo de destinoNombre

Tiene otro archivo secuencial con los valores de las 4 clases

Codigo de clase-Descripcion Precio

Cada vez que realiza una venta representa un asiento generandose el siguiente archivo secuencial

número de ticketcodigo de destinocodigo de clase

Se desea saber

1. cantidad total de boletos vendidos2. promedio del valor de boleto vendido en dinero3. porcentual que representa la cantidad vendida en cada clase sobre el total4. cuántos boletos se vendieron a necochea en pullman5. cuál destino es el más solicitado en total6. cuál clase en total es la menos solicitada

10- Una empresa procesa un archivo secuencial de facturas con los siguientes datos:

CATEDRA DE PROGRAMACION I 89-101

Page 90: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA- nro de factura- nro de vendedor- articluo- cantidad vendida

se posee ademas otro archivo secuencial con los datos de los 10 articulos

articulodescripcionvalor unitario

Si existen 4 vendedores, calcular:

1. caja del día2. porcentual que representa lo vendido por cada vendedor del total3. valor promedio de las facturas4. cantidad vendida por cada vendedor en unidades5. articulo menos vendido en unidades6. monto recaudado para cada articulo

11- Una empresa comercializa 20 libros contenidos en 5 géneros.cada vez que realiza una venta tiene

los siguientes datos

nro de libro nro de género cantidad vendida

se posee otro archivvo secuencial con los siguientes datos

nro de libroprecio unitario

Se desea saber:

- facturación total - facturación por libro - facturación por genero . precio promedio de factura . cantidad de facturas de más de $100.

12- Un banco realiza operaciones de depósito y extracción. En cada operación se genera un archivo secuencial

- nro de operaciónCATEDRA DE PROGRAMACION I 90-101

Page 91: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA- nro de sucursal- tipo de transacción- monto

El banco tiene 10 sucursalesSe desea saber

1. cuánto recaudó en concepto de depósitos cada sucursal2. cuánto entregó cada sucursal en concepto de extracción3. de qué sucursal se extrajo más que lo que se depositó4. si se cobra el impuesto a los depositos del 2,1% cuanto recauda cada sucursal5. 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 artículos y son 10 corredores posee un archivo secuencial de corredores

nro de corredorcomision a cobrar

en otro archivo secuencial se tiene codigo de articulodescripcionprecio unitario

cada vez que realiza una venta se graba un archivo secuencial

- nro de corredor- nro de artículo- cantidad- descuento

Calcular e imprimir

a. importe total vendido por cada corredorb. porcentual que representa sobre la venta de la empresac. comisión a cobrar por cada corredord. cantidad de ventas realizadas por cada corredore. promedio del valor vendido por cada corredorf. nro de corredor que vendió másg. imprimir ordenado por monto total vendido por cada corredor, el monto, la cantidad de

facturas hechas y la comisión recibida

14- Una empresa de informática tiene 100 empleados que pertenece a una determinada categoría distribuidos en 3 departamentos y 5 categorias

Se posee un archivo secuencial con CATEDRA DE PROGRAMACION I 91-101

Page 92: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANANro de categoría

Descripción

Sueldo

en el archivo personal se tiene el siguiente archivo secuencial

legajonombrecategoriadepartamento

Se desea saber:

a. sueldo total a pagar por departamentob. sueldo total a pagar por categoríac. categoría que más cobra en total d. departamento que menos cobra en totale. cantidad de empleados por categoríaf. sueldos totales a pagar por la empresag. categoría con menos empleadosh. imprimir ordenados por sueldos por categoría, los sueldos y la cantidad de

empleados por categoría

15- Una empresa transportadora de caudales posee 8 camiones blindados para realizar sus viajesEn un archivo secuencial se tiene los siguientes datos de los 5 valores que transporta

código del valordescripcióncosto del transporte

Cada vez que realiza un viaje tiene la siguiente información que se graba en otro archivo secuencial

- código de cliente- número de camión- tipo de valor - cantidad

Se desea saber:

a. cantidad de viajes realizados por camión b. total transportado por camión del valor 1

CATEDRA DE PROGRAMACION I 92-101

Page 93: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAc. recaudación de cada valord. recaudación de cada camióne. nombre del valor más transportado en totalf. cliente que transportó menos en un viajeg. porcentual que representa lo recaudado por cada camión sobre el totalh. imprimir ordenado por la cantidad de viajes realizados por camión en forma

ascendente:- cantidad de viajes realizados por camión- recaudación por camión- número de camión

16- Una empresa de combustible tiene 20 estaciones de servicios, donde se expanden 3 tipos de combustibleEn nun archivo secuencial se tiene los siguientes datos

tipo descripciónprecio

Al realizar una venta se tiene los siguientes datos, que se guardan en otro archivo secuencialnúmero de boleta

- número de estación- tipo de combustible- cantidad

Se desea saber:

a. cantidad de litros vendidos en cada estaciónb. recaudacion de cada estaciónc. cantidad de boletas emitidas por estaciónd. total de litros vendidos por cada tipo de combustiblee. la estación 1 fue la que más recaudó?f. número de boleta con mayor importeg. imprimir las tres primeras preguntas ordenadas por recaudación por estación en

forma ascendente

17- Una empresa de micros realiza viajes a 4 destinos y tiene 3 tipos de tarifa iguales para todos los destinosEn un archivo secuencial tiene los destinos posibles

código destinodescripción

y en otro el valor de las tarifas según el codigo de tarifa

código de tarifavalor

CATEDRA DE PROGRAMACION I 93-101

Page 94: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

cada vez que se vende un boleto se tienen los siguientes datos que finalizan con nro de ticket = 0

numero de ticketcódigo de destinocódigo de tarifacantidad de boletos

si se compran más de 10 boletos se le hace 10 % de rebaja

Se desea saber:

1. cantidad de pasajes vendidos a cada destino 2. ticket de mayor valor 3. recaudación por destino4. porcentaje que representa lo recaudado por destino sobre el total5. cantidad de pasajes vendidos por clase6. salta fue el destino más solicitado ?7. si debe pagar el 21% de IVA, cuál es el monto a pagar8. imprimir ordenado descendentemente por recaudación por destino:

- nombre del destino- código del destino- recaudación por destino- cantidad de pasajes por destino

18- Una entidad de beneficiencia tiene autorizados 30 puestos de venta de alimentos en la vía pública

Se tiene un archivo con los datos de los 20 mercaderias

código de mercaderíadescripciónprecio

cada vez que se vende se emite un ticket con los siguientes datos

número de ticketnúmero de puestotipo de mercaderíacantidad

Se desea saber:

1. ticket de mayor valor2. recaudación de cada puesto3. porcentual que representa lo recaudado por cada mercadería sobre el total4. mercadería más vendida

CATEDRA DE PROGRAMACION I 94-101

Page 95: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA5. puesto menos rentable en dinero6. si el 10% se destina a impuestos, cuánto debe pagar cada puesto7. cantidad de tickets vendidos en cada puesto8. imprimir ordenado por número de puesto:

i. número de puestoii. recaudación por puesto

iii. cantidad de mercadería vendida por puesto

19- Una empresa desea analizar los sueldos a sus 50 empleados durante el año, para ello se tiene en un archivo

- legajo del empleado- cantidad de horas trabajadas- mes

en otro archivo secuencial se tiene legajovalor hora

Se desea saber:

a. sueldo anual de cada empleadob. total de sueldos pagados cada mesc. máximo sueldo pagado cada mes y a quién perteneced. porcentaje que representa cada sueldo anual sobre el totale. nombre del empleado que cobró más en el primer semestref. cantidad de meses en que el total de sueldos superó los $100000g. imprimir ordenado en forma descendente por sueldo anual de cada empleado:

1. legajo2. nombre3. sueldo anual de cada empleado

20- Una consultora tiene 10 analistas y 15 proyectos en los que trabajan indistintamente, su actividad se guarda en un archivo

o número de analista o número de proyectoo cantidad de hs trabajadas

en otro archivo se tiene

numero de analistavalor hora

CATEDRA DE PROGRAMACION I 95-101

Page 96: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANASe desea saber:

a. cantidad de hs. trabajadas en total por cada analista.b. total de horas trabajadas por cada analista en cada proyecto.c. total de hs trabajadas sobre cada proyecto.d. que analista trabajó menos en el proyecto 1.e. sueldo de cada analista.f. nombre del analista que cobró más.g. cantidad de analistas que hayan trabajado menos de 5 hs en alguno de los proyectos.h. imprimir ordenado en forma descendente por sueldo de los analista:

- nombre- valor de la hora- sueldo

21- Una acopiadora de cereales tiene 20 silos donde almacena 4 tipos de cerealEn un archivo secuencial se tiene código de cereal

descripciónvalor

en otro archivo secuencial se tiene los almacenajes efectuados,- número de silo- tipo de cereal- cantidad

Se desea saber:

a. total de kg almacenados de cada cerealb. total de kg almacenados de cada cereal en cada siloc. stock valorizado de cada silod. nombre del cereal de más almacenaje para cada siloe. de los silos cuál o cuáles recaudó másf. cantidad de silos con más de 20000 kg almacenados en totalg. cantidad de silos con más de 2000 kg almacenados para cada cerealh. 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

- número de vendedor- número de curso- cantidad de inscriptos

ademas se conoce

numero de cursovalor del cursoporcentaje a pagar al vendedor

CATEDRA DE PROGRAMACION I 96-101

Page 97: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Se desea saber:

a. total de alumnos inscriptos por cursob. total de alumnos inscriptos por vendedorc. comisión a cobrar por cada vendedord. recaudación por cursoe. en qué curso y de qué vendedor se dio la mayor inscripción de alumnosf. que vendedor inscribio más alumnos en el curso 4g. cantidad de cursos donde no se inscribió nadieh. 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, más el valor del liquido a embotelar.

La empresa tiene 20 centros distribuidos a lo largo del país 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

- número de centro - número 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 centrob. cantidad envasada por gaseosac. cantidad de gaseosa que embotelló cada centrod. costo total de embotellamiento de cada centroe. para cada gaseosa indicar en qué centro se embotelló másf. porcentaje que representa el costo de embotellamiento de cada centro sobre el totalg. si se vende todo lo que se produce con una ganacia del 200% cuánto se recauda por

cada centroh. si de esa recaudación se paga un 30 % de impuestos, que valor es estei. nombre de la gaseosa de mayor facturación para cada centroj. nombre de la gaseosa de menor facturación en total

CATEDRA DE PROGRAMACION I 97-101

Page 98: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

24- Una universidad desea analizar los sueldos abonados a sus 60 docentes, para ello se tiene un archivo secuencial con

- Legajo del docente. - Mes.- Categoría.- Cantidad de hs. trabajadas.

Se tiene un archivo secuencial categorias

CategoriaDescripcionValor hora

Se desea saber:

a. sueldo anual de cada profesorb. total de sueldos pagados por cada mesc. para cada profesor cantidad de sueldos mayores a su sueldo promediod. máximo sueldo pagado cada mese. porcentaje que representa cada sueldo anual sobre el total pagadof. profesor que cobró menos en el segundo semestre del añog. que profesor trabajo mas horas en diciembreh. imprimir ordenado por sueldo anual de menor a mayor

1. sueldo anual 2. legajo del profesor3. sueldo promedio4. 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

-código de droga -valor por unidad

Composicion

-número de remedio -código de droga -cantidad

Ventas

CATEDRA DE PROGRAMACION I 98-101

Page 99: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA

Nro de facturaRemedioCantidad vendida

Se desea saber:

a. recaudación del laboratoriob. recaudación por cada remedioc. valor de cada remediod. porcentaje que representa lo vendido por cada remedio sobre el totale. precio promediof. cuál remedio usa más de la droga 8g. droga menos usadah. droga más carai. remedio más barato

j. imprimir ordenado por valor de cada remedio, valor de cada remediocantidad de remedios vendidas en unidadesrecaudación de cada remedio

26- Una empresa desea analizar los sueldos de sus 80 empleados, para ello cuenta con los siguientes archivos secuenciales

categoria- código de categoria (del 1 al 6 )- descripción- sueldo básico - valor hora extra

personal

- número de legajo- categoría- cantidad de horas extras trabajadas- mes

En julio y diciembre hay que abonarle el medio aguinaldo

Se desea saber:

a. sueldo anual de cada profesionalb. total pagado por mesc. para cada legajo cuántos sueldos superan el promedio de cada unod. máximo sueldo pagado en un mes y a quién pertenecee. porcentaje que representa el sueldo anual de cada legajo sobre el total

CATEDRA DE PROGRAMACION I 99-101

Page 100: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANAf. legajo que cobró menos en el segundo semestreg. quien cobró más en diciembreh. quien trabajó menos en el primer trimestre del añoi. imprimir ordenado por sueldo anual del profesional

1. sueldo anual del profesional2. legajo3. cantidad total de horas extras trabajadas por cada legajo

27- Un taller de computación arma 4 modelos de equipos en 5 puntos del interior del pais,se tienen los siguientes archivos secuenciales

modelos- número de modelo- costo

lugares - lugar de armado - costo del flete

Si el lugar de armado es el 4 se le aplica un descuento del 15% al costo por incentivo zona desfavorableEl precio de venta tendra un 150% de ganancia

Por ultimo posee otro archivo secuencial ventas

- número de modelo- lugar de armado - cantidad

Se desea saber:

a. cantidad armada en cada lugarb. cantidad vendida de cada modeloc. total facturado por cada modelod. porcentual que representa esa facturación sobre el totale. precio promediof. cuál fue la ganancia de la empresag. cuál fue el lugar de más produccián de equipos en totalh. cuál equipo y adonde se fabricó menosi. imprimir el punto 2 y 3 ordenado descendentemente por total facturado

28. Una empresa naviera tiene 10 destinos en el caribe y su barco realiza viajes circulares entre ellos, o sea que sale de un puerto y retorna al mismo pasando por todos los puertos intermedios.

Los pasajeros pueden tomar este tipo de viaje o subir en uno y bajar en otro.

CATEDRA DE PROGRAMACION I 100-101

Page 101: Programacion I UAI

UNIVERSIDAD ABIERTA INTERAMERICANA Se tiene un archivo secuencial de puertos

- Número de puerto- Nombre

Archivo secuencial viajes

- Número de puerto de salida - Número de puerto de llegada- Cantidad de pasajeros

Se desea saber:

a. Cantidad de pasajeros que salieron de un puertob. Cantidad de pasajeros que llegaron a un puertoc. Cantidad de pasajeros que hicieron viajes circularesd. Puerto donde arribaron más pasajeros e. Puerto de donde salieron menos pasajerosf. Porcentual que representan los pasajeros que hicieron viajes circulares sobre el total

CATEDRA DE PROGRAMACION I 101-101