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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
UNIVERSIDAD ABIERTA INTERAMERICANA
CATEDRA DE PROGRAMACION I 60-101
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
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
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
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
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
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
UNIVERSIDAD ABIERTA INTERAMERICANA
CATEDRA DE PROGRAMACION I 67-101
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Recommended