Programacin Avanzada IMAE Carlos Alberto Zelaya IrMAE Carlos Alberto Zelaya Irasas
Repaso Repaso ProgramaciProgramacin Orientada a n Orientada a ObjetosObjetos
Porqu Programacin Orientada a Objetos?
z A medida que se van desarrollando los lenguajes, se va desarrollando tambin la posibilidad de resolver problemas ms complejos. En la evolucin de cada lenguaje, llega un momento en que los programadores comienzan a tener dificultades a la hora de manejar problemas de cierto tamao y sofisticacin.
De la Programacin Estructurada a la Programacin Orientada a Objetosz El estilo ms bsico de programacin es el
procedural, en el cual un solo programa contiene todas las declaraciones, instrucciones y estructuras de control necesarias para su total funcionamiento.
z El siguiente nivel es el estilo modular (incorporando el uso de funciones) el cual propone la divisin de un programa en componentes o mdulos. Un mdulo tiene sus propios datos (variables) y su conjunto de instrucciones que manipulan los datos. Estos datos permanecen ocultos para el programa (o mdulo) que invoca a un mdulo dado.
z El estilo modular introduce a la programacin un concepto: Estado. El estado de un mdulo resulta de la combinacin de las variables internas del mdulo.
De la Programacin Estructurada a la Programacin Orientada a Objetos
z La razn para adoptar un estilo modular es sencilla: Muchas veces se realizan procesos que se repiten y en los que solo cambia un factor
z La programacin modular tiene inconvenientes:z Los mdulos no son extensibles. No es posible realizar
cambios incrementales a un mdulo sin abrir su cdigo.z No es posible basar un mdulo en otro ya existente.z Un mdulo no puede compartir el tipo de otro.
Recurdese que en los lenguajes procedurales y modulares, los datos estructurados y sin estructura tienen un tipo.
De la Programacin Estructurada a la Programacin Orientada a Objetosz La Programacin Orientada a Objetos da el
siguiente paso lgico a la programacin modular al agregar herencia y polimorfismo al mdulo.
z La POO estructura un programa dividindolo en una cantidad determinada de objetos de alto nivel. Cada objeto le da forma a algn aspecto del problema que se intenta resolver.
z La secuencia de llamadas a procedimientos (funciones) ya no es el enfoque principal en POO. En vez de eso, los objetos interactan entre si para dar lugar al flujo total del programa.
z En cierto modo, un programa OO se convierte en una simulacin real del problema que se intenta resolver.
Lo que NO es la Programacin Orientada a Objetos (POO)
z POO no es un sistema de comunicacin con los programas basados en ratones, ventanas, iconos, etc.
z No es un lenguaje. Sin embargo para hacer programas orientados a objetos en un 100% se necesitan mecanismos inherentes al lenguaje en el que se quiera aplicar.
Lo que SI es la Programacin Orientada a Objetos (POO)
z POO es un conjunto de tcnicas y reglas que nos permiten incrementar enormemente nuestra capacidad de produccin de software y as poder afrontar proyectos de mayor envergadura.
Programacin Orientada a Objetos (POO): Ejemplo
z Supongamos que se requiere desarrollar un programa OO para implementar un carrito de compras en lnea o una terminal de punto de venta.
z Un programa OO contendr los objetos artculo, carrito de compras, cuponesy cajero.
z Cada uno de esos objetos interactuarcon los dems para conformar el programa.
z Por ejemplo, cuando el cajero procese un pedido, tendr que revisar el precio de cada artculo.
Programacin Orientada a Objetos (POO): Otro ejemplo
z Si tenemos un auto y queremos que sea ms rpido, no se construye un auto nuevo. Simplemente se le cambia el carburador, se le ponen llantas ms anchas y se le agrega un sistema turbo. Todo el resto de las piezas del auto se siguen usando.
z Vindolo desde la perspectiva de OO lo que se ha hecho es:z Modificar dos cualidades/propiedades/atributos de
nuestro objeto: El carburador y las llantas.z Hemos agregado un mtodo nuevo: El sistema turbo.
z En programacin tradicional hubiramos tenido que construir un auto nuevo.
Programacin Orientada a Objetos (POO): Notasz La POO combina el enfoque procedural y el
modular.z En POO si queremos construir un objeto que
comparte ciertas cualidades con otro que ya tenemos creado, no tenemos que crearlo desde el principio. Simplemente decidimos que queremos utilizar del antiguo en el nuevo y que carctersticasle queremos agregar al nuevo.
z La reusabilidad del cdigo es mucho mayor que en el caso de las funciones y su portabilidad es mayor.
z Hay ms! En POO podemos incorporar objetos que otros programadores han desarrolladosin tener que saber como los han construido ellos!
Programacin Orientada a Objetos (POO): Lenguajesz En POO hay lenguajes puros e hbridos.z Un lenguaje es POO puro cuando se ajusta
completamente a los principios que esta tcnica propone y contempla la posibilidad de trabajar exclusivamente con clases.
z Un lenguaje es POO hbrido cuando ya exista antes de la POO y simplemente ha incorporado en mayor o menor medida facilidades para trabajar con clases.
z C++ es un lenguaje POO hbrido. Java es puroPOO.
Programacin Orientada a Objetos (POO): Conceptos
z Los conceptos bsicos de la POO son:z Clasez Objetoz Herenciaz Encapsulacinz Polimorfismo
Programacin Orientada a Objetos (POO): Conceptos - Clasez Una clase es simplemente una
abstraccin de nuestra experiencia sensitiva.
z El ser humano tiende a agrupar seres o cosas (objetos) con caractersticas similares en grupos (clases).
z Existen millones de vasos diferentes, pero reconocemos un vaso en cuanto lo vemos.
Programacin Orientada a Objetos (POO): Conceptos - Clasez Cada clase tiene cualidades que le hacen
diferente de otras.z Ver ejemplo de la Clasificacin Taxonmica de los
vertebrados en material OOP.PDF (Pag.18 en adelante).
z Existen clases y subclases.z Las subclases comparten cualidades de la clase
superior y tienen cualidades que las hacen distintas de la clase principal.
z Las clases superiores son ms generales que las inferiores. Lo que hacemos con las clases inferiores es dotarlas de ms cualidades (atributos).
Programacin Orientada a Objetos (POO): Conceptos - Clase
z Hay cualidades que ciertas clases compartencon otras pero que no son exactamente iguales en ambas clases. Por ejemplo: Tanto la clase hombre como la clase len se derivan de la clase vertebrado, y ambos poseen la cualidad columna vertebral. Sin embargo, en el hombre la columna vertebral est en posicin vertical y en el len en posicin horizontal.
Programacin Orientada a Objetos (POO): Conceptos - Clase
z Un concepto muy importante en POO es el de clase abstracta.
z Por ejemplo: Existe la clase mamfero, pero no hay ningn ser que sea solamente mamfero (no hay una instancin directa a esta clase).
z De igual modo la clase que se crea al principio de una jerarqua de clases, generalmente no es instanciada. Es creada solo para que contenga aquellas cualidades y mtodos que son comunes a todas las subclases que se deriven de ella.
Programacin Orientada a Objetos (POO): Conceptos - Clasez Ejemplo de Clase Mamfero:
Datos MtodosColor DesplazarseTamao MasticarPeso DigerirCantidad de dientes RespirarCuadrpedo/bpedo ParpadearEdad Dormir
Programacin Orientada a Objetos (POO): Conceptos - Clasez Ejemplo de Clase Cassette:
Datos MtodosPeso Rebobinar la cintaDimensiones Avanzar la cintaColor GrabarPotencia Reproducir
Programacin Orientada a Objetos (POO): Conceptos - Clasez Ahora veamos un ejemplo ms cercano a la
informtica: Una ventana. Clase Ventana:Datos Mtodos
Tipo de letra encabezado
Minimizarse
Etiqueta de encabezado
Maximizarse
Color de Fondo CerrarseColor de letra encabezado
Abrirse
Programacin Orientada a Objetos (POO): Conceptos - Clasez Ahora un ejemplo an ms cercano, en este caso a la
programacin: la declaracin de una variable.z Una clase es un nuevo tipo de dato y un objeto cada
una de las instancias que creamos de ese tipo de dato.
z Al decir:int numero1;
z estamos creando un objeto llamado numero1 que pertenece a la clase int (nmeros enteros).
z Para crear un objeto de la clase ventana lo hariamosde una manera muy similar:ventana nueva_ventana = new ventana()
Programacin Orientada a Objetos (POO): Conceptos - Clase
z Como puede verse, en esencia la POOlo que nos permite es ampliar el tipo de datos con los que se puede trabajar.
Programacin Orientada a Objetos (POO): Conceptos - Objeto
z Todos los hombres comparten las caractersticas de la clase hombre. Sin embargo todos los hombres son distintos entre s, en estatura, pigmentacin, etc.
z A cada uno de los hombre particulares se les llama objetos de la clase hombre.
z Cada nio que nace es una instanciacin de la clase hombre.
Programacin Orientada a Objetos (POO): Conceptos - Objetoz En POO un objeto es un conjunto de datos
(sinnimos: atributos, cualidades, propiedades, carctersticas) y mtodos (Sinnimos: comportamientos, operaciones, procedimientos).
z Los datos en un objeto son valores particularespara los atributos propios de la clase a la que pertenece.
z Los datos de una clase son siempre los mismos para todos los objetos de la clase, e igualmente los mtodos, pero para cada instanciacin de la clase (sus objetos) los valores de esos datos sern distintos.
z La aplicacin de los mtodos dar distintos resultados dependiendo de los valores con los que trabaje.
Programacin Orientada a Objetos (POO): Conceptos - Objeto
z Un objeto lo podemos considerar como un arreglo multidimensional, donde se almacenan los datos de ese objeto y sus mtodos que no seran ms que punteros a funciones que trabajan con esos datos.
Programacin Orientada a Objetos (POO): Conceptos - Encapsulacin
z Encapsulacin es la caracterstica de la POO que hace que un objeto sea una caja negra. Se le enva un mensaje al objeto y este responde ejecutando el mtodo apropiado.
z Un mtodo de una clase puede llamar a mtodos de la misma clase.
z Gracias a la encapsulacin una clase que ha sido programada y probada puede usarse sin temor a que la programacin de otros objetos basados en dichas clases tengan errores.
Programacin Orientada a Objetos (POO): Conceptos - Encapsulacinz En lugar de considerar el programa como una
enorme entidad, la encapsulacin permite dividir un programa en componentes ms pequeos e independientes.
z Cada componente es autnomo y realiza su labor independientemente de los demascomponentes.
z La encapsulacin mantiene esa independencia ocultando los detalles internos de cada componente, mediante una interfaz externa.
Programacin Orientada a Objetos (POO): Conceptos - Encapsulacin
z Una interfaz lista los servicios proporcionados por un componente. La interfaz acta como un contrato con el mundo exterior que define exactamente lo que una entidad externa puede hacer con el objeto.
z Una interfaz es un panel de control para el objeto.
Programacin Orientada a Objetos (POO): Conceptos - Encapsulacin
z Al definir una interfaz puede especificarse cuales mtodos sern definidos como pblicos, privados y protegidos.
z Los mtodos pblicos son aquellos que estn disponibles para todo aquel que cree objetos basados en la clase.
z Los mtodos privados son aquellos que solo son invocados por otros mtodos de la clase.
z Cuando un comportamiento se desee poner a disposicin del mundo exterior, debe tener acceso pblico. Lo que se desee ocultar debe tener acceso protegido o privado.
Programacin Orientada a Objetos (POO): Conceptos - Encapsulacin
z Porqu utilizar encapsulacin?z Independencia: Se puede reutilizar el objeto en
cualquier parte. Cuando se encapsulan de forma apropiada los objetos, estos no estn limitados a un programa en particular. Para utilizarlo solo hay que poner en accin su interfaz.
z Transparencia: La encapsulacin le permite hacer cambios transparentes al objeto, en tanto no se altere la interfaz.
z Autonoma: El uso de un objeto encapsulado no causar efectos secundarios inesperados entre el objeto y el resto del programa. Puesto que el objeto es autnomo, no tendr ninguna interaccin con el programa ms all de lo establecido por la interfaz.
Programacin Orientada a Objetos (POO): Conceptos - Herencia
z Esta es la cualidad ms importante de un programa POO. La que dar mayor potencia y productividad, ahorrando horas de codificacin y de depuracin de errores.
z La herencia permite reutilizar e las subclasestodo el cdigo escrito para las superclases, codificando nicamente las diferencias que entre las superclases y las subclases.
z A la clase heredada se le llama subclase o clase hija y a la clase que hereda se le llama superclase o clase padre.
Programacin Orientada a Objetos (POO): Conceptos - Herencia
z Ejemplo:z Veamos que hereda la clase len de sus
clases padre:Clase Lo que hereda
Vertebrados Espina dorsalCarnvoros Al ser adulto se
alimenta de carneMamiferos Se alimenta de leche
materna
Programacin Orientada a Objetos (POO): Conceptos - Herencia
z Un ejemplo ms informtico:z Suponga que se ha construido una clase con
tres mtodos: uno para leer nmeros enteros desde el teclado, otro para sumarlos, otro para calcular el ISV de la sumatoria de los mismos y finalmente otro para almacenar el resultado en un archivo de texto.
z Si desea tener la misma clase, pero para sumar nmeros reales solo necesita definir una subclase que herede de la clase anterior y en la que nicamente se redefina el mtodo de lectura desde el teclado.
Programacin Orientada a Objetos (POO): Conceptos - Herencia
z Al heredar, una clase heredada toma el comportamiento de su superclase, pero puesto que esta puede derivar de otra, y esta de otra, etc., una clase toma el comportamiento de todas las clases de la jerarqua del rbol al que pertenece.
z Se heredan los datos y los mtodos, por tanto ambos pueden ser redefinidos en las clases hijas aunque lo ms comn es redefinir mtodos, no datos.
Programacin Orientada a Objetos (POO): Conceptos - Herencia
z Clase base directaz Es la superclase desde la cual una subclase, o clase
derivada, explcitamente hereda.z Clase base indirecta
z Recibe la herencia de dos o ms niveles de la jerarqua de clases
z Herencia simplez Una clase se deriva a partir de una clase base
z Herencia mltiplez Una clase derivada (subclase) hereda desde mltiples
clases base (superclases), las cuales posiblemente ni siquiera estn relacionadas entre s.
Programacin Orientada a Objetos (POO): Conceptos - Herencia
z Tipos de herencia.z Public
z Cada objeto de una subclase es tambin un objeto de a superclase de la que se deriva. Sin embargo los objetos de la superclase NO son objetos de la subclase. Por ejemplo: Todos los vehiculos son medios de transporte, pero no todos los medios de transporte son vehculos.
z Privatez Es una alternativa a la composicin. Se puede acceder a
los miembros pblicos de la superclase, mediante funciones miembro public de la superclase.
Programacin Orientada a Objetos (POO): Conceptos - Polimorfismo
z Polimorfismo es la cualidad que tienen los objetos para responder de distinto modo a un mismo mensaje.
z Por ejemplo, si para los objetos de las clases automvil, barco y avin (todas derivadas de la clase medio de transporte) invocamos el mtodo desplazarse, cada uno de ellos ejecutar la accin de manera diferente.
z De igual manera, si tenemos tres objetos de la clase barco y deseamos que solo uno de ellos se desplace basta con invocar al mtodo desplazarse para el objeto especfico y eso no afectar el comportamiento de los dems objetos.
Programacin Orientada a Objetos (POO): Conceptos - Polimorfismo
z En programacin tradicional necesitaramos definir un nombre distinto para el mtodo desplazarse en cada subclase, para que el mismo no se confundiera con el de la clase principal. No es el caso en Programacin Orientada a Objetos.
z De esta manera el nmero de mtodos que tenemos que recordar al programar se reducen ostensiblemente.
Programacin Orientada a Objetos (POO): Conceptos - Sobrecarga
z Sobrecarga es un tipo especial de polimorfismo.
z Varios mtodos de una misma clase (incluso los constructores) pueden tener el mismo nombre, siempre y cuando el tipo o el nmero de parmetros que reciban sea diferente.
Programacin Avanzada I
.NET - Conceptos bsicos de la plataforma
Introduccin
z La plataforma .NET no es ms que un conjunto de tecnologas para desarrollar y utilizar componentes que nos permitan crear formularios web, servicios web y aplicaciones Windows.
Introduccin
Introduccin
CLR [Common Language Runtime]
z Proporciona algo similar a la mquina virtual de Java, eliminando adems los problemas de versiones habituales de las DLLs de Windows ("DLL hell"). Desde el punto de vista del desarrollador, se facilita su trabajo al poner a su disposicin una variedad de lenguajes que funcionan en una plataforma comn.
CLR [Common Language Runtime]
Assemblies
z Constituyen la unidad lgica de despliegue en la plataforma .NET.
z Un assembly incluye metadatos acerca de los componentes incluidos en el assembly (versiones, tipos, dependencias...), metadatos acerca de los tipos incluidos (propiedades, atributos, mtodos, signaturas, clases base...),
z El cdigo intermedio MSIL (Microsoft Intermediate Language, similar a los bytecodes de Java) y los recursos adicionales que sean necesarios (imgenes, textos...). En definitiva, viene a ser algo parecido a los ficheros JAR (Java archives) de Java.
z En la plataforma .NET, una aplicacin est formada por uno o varios assemblies. Al poder coexistir distintas versiones de un assembly, se eliminan muchos de los problemas que caracterizan a las aplicaciones tpicas de Windows, facilitando el despliegue, actualizacin y eliminacin de aplicaciones. De hecho, una aplicacin concreta podra utilizar simultneamente varias versiones de un assembly.
Biblioteca de clases .NET
Biblioteca de clases .NET
Biblioteca de clases .NET
ADO.NET
z Similar a ADO, proporciona acceso a datos de forma independiente al lenguaje de programacin que utilicemos. Los datos se pueden ver y procesar de forma relacional (tablas) o jerrquica (XML).
Desarrollo de aplicaciones
z Formularios Windowsz Los formularios Windows estn construidos sobre
la base de la plataforma .NET y permiten construir complejas aplicaciones Windows en un entorno de desarrollo visual de aplicaciones (RAD: RapidApplication Development
z Formularios webz Los formularios web, que se construyen con
ASP.NET, constituyen la evolucin natural y lgica de ASP. Siguiendo el mismo estilo que su antecesor (editar una pgina y listo)
Soporte para mltiples lenguajes
Visual Studio .NETEntorno de Desarrollo
z Herramientas
Visual Studio .NETEntorno de Desarrollo
z El editor
El lenguaje de programacin C#
z Introduccinz C# (ledo en ingls "C Sharp" y en espaol
"C Almohadilla") es el nuevo lenguaje de propsito general diseado por Microsoft para su plataforma .NET.
El lenguaje de programacin C#
z Sencillez. z Modernidad. z Orientacin a objetos.
z Encapsulacin: adems de public, private y protected C# aade el modificador internal.z C# slo admite herencia simple.z Todos los mtodos son por defecto sellados y que los redefinibles hayan de marcarse
con el modificador virtual.z Orientacin a componentes. z Gestin automtica de memoria. z Seguridad de tipos. z Instrucciones seguras. z Sistema de tipos unificado. z Extensibilidad de operadores. z Extensibilidad de modificadores. z Versionable. z Eficiente. z Compatible.
Hola, mundo!
Ejemplo Limpiar Pantalla
Clculo del Valor de un Paquete Turstico
Diagrama de ClasesDiagrama de Clases
Compra Boleto de Metro
Diagrama de ClasesDiagrama de Clases
Programacin Avanzada I
Estructuras de Control y Ciclos
Sentencias condicionales
C#: sentencia if con varios formatos
if (x > 10) if (x < 10) if (x < 10) if (x < 10) HacerAlgo(); { { {
Hacer1(); Hacer1(); Hacer1(); Hacer2(); } }
} else else if (x > 20){ {
Hacer2(); Hacer2();} }
else{
Hacer3();}
Sentencia case
int a = 0;switch(a) {
case 1:{//CODIGO 1break;
}case 2: {//CODIGO 2
break;}default:{//CODIGO DEFAULT
break;}
}
Sentencia for
//Partes: declaracin, prueba, accinfor (int i=1; i < 10; i++){}
Sentencia for/each
zz For/Each For/Each permitepermite recorrerrecorrer arreglosarreglos y y coleccionescolecciones
string[] nombres = new string[5];foreach(string auxNombre in nombres){
//auxNombre es de SOLO LECTURA
}
Sentencia while
bool condicion = true;while (condicion == true){
//En algn momento poner condicion = false
}
Programacin Avanzada I
Arreglos:Vectores, Matrices y Estructuras
Vectores y matrices
z En C# las tablas pueden ser multidimensionales, su ndice inicial es 0.
z Sea cual sea el tipo de elementos que contengan las tablas, son objetos que derivan de System.Array. En esta clase tambin estdisponible la propiedad Length.
z El tamao del vector se determina cuando se instancia.
z La declaracin emplea los parntesis vacos [ ] entre el tipo y el nombre para determinar el nmero de dimensiones (Rank).
z En C# el rango es parte del tipo. El nmero de elementos no lo es.
Vectores y matricesDefinicin
z stringstring[] a = [] a = newnew stringstring[10];[10];z "a" es un vector de 10 cadenas
zz intint[] primos = [] primos = newnew intint[9];[9];z "primos" es un vector de 9 enteros
zz Un vector puede inicializarse a la misma Un vector puede inicializarse a la misma vez que se declara: vez que se declara: z int[] primo1 = new int[10]
{1,2,3,5,7,11,13,17,19,23}; z int[] primo2 = new int[] {1,2,3,5,7,11,13,17,19,23};z int[] primo3 = {1,2,3,5,7,11,13,17,19,23};
Vectores y matricesDefinicinzz Los vectores pueden dimensionarse Los vectores pueden dimensionarse
dindinmicamente:micamente:
Console.Write ("Num. casillas: "); string strTam = Console.ReadLine(); int tam = Convert.ToInt16(strTam); int[] VecDin = new int[tam]; for (int i=0; i
Matrices
zz C#C# permite tanto permite tanto matrices rectangularesmatrices rectangulares (todas las (todas las filas tienen el mismo nfilas tienen el mismo nmero de columnas) como mero de columnas) como matrices dentadasmatrices dentadas..
int [,] array2D; // Declara un a referencia // (no se instancia ningn objeto)
array2D = new int [2,3]; // Instancia un objeto de la clase // System.Array y le asigna 6 casillas // (2 filas con 3 columnas cada una)
int [,] array2D = new int [2,3] {{1,0,4} {3,2,5}};
Matrices
z Una matriz dentada no es ms que una tabla cuyos elementos son a su vez tablas, pudindose as anidar cualquier nmero de tablas.
z Cada tabla puede tener un nmeropropio de casillas.
z Ver ejemplo
Matrices
z Ver ejemplo Ventas (Pgina 375, Superutilidades para C#)
Programacin Avanzada I
Programacin Orientada a Objetos y C#
Conceptos Bsicos
z Encapsulacinz Proporciona la encapsulacin por medio de
la estructura y la clasez Herencia z El mecanismo de herencia lo proporciona la
clasez Polimorfismoz La clase exhibe polimorfismo por medio de
la palabra reservada virtual
Encapsulacin de Datos
z Permite recolectar toda la informacin acerca de un objeto y colocarla en una unidad diferenciada, a la que luego se puede acceder mediante un nico identificador.
z El objeto completo puede pasarse a funciones utilizando un nico nombre de variable.
Ejemplo Prctico
z Si se quisiera crear un grupo de clases para contener registros de bases de datos para libros y pelculas, se deben identificar los datos que stos tienen en comn.
z Luego se identifican las diferenciasz Libros:
z Autor z Contador de Pginas
z Pelculas:z No necesariamente tienen autoresz Duracinz Medio (VHS o DVD)
Ejemplo Prctico
z Se tiene entonces una Clase Librera, de la cual se derivan las clases:z Librosz Pelcula
Ver ejemplo pagina 261 (Super Utileras de C#)
Libreria
PelculasLibros
Diagrama de Clases VS-2005
Creando la Clase clsLibreria
using System;using System.Collections.Generic;using System.Windows.Forms;
namespace PantallaInicio{
public class clsLibreria{
//Constructor de la Claseprotected clsLibreria() { }
public string Titulo;public int Copyright;
}}
Creando la clase clsLibro
public class clsLibro : clsLibreria{
public string Autor;public int Paginas;
public clsLibro(string titulo, string autor, int copyright)
{Titulo = titulo;Autor = autor;Copyright = copyright;
}}
Redefiniendo un mtodo
public override string ToString(){
return (string.Format("El libro {0} +({1}) de {2} tiene {3} paginas",
Titulo,Copyright,Autor,Paginas));}
Matrices de objetos
z Definicin de un arreglo de la clase clsLibro:
public clsLibro[] arrLibros = new clsLibro[10];
z Instanciar los objetos del arreglo:for (int i = 0; i < 10; i++){
arrLibros[i] = new clsLibro("","",0);}
Matrices de Objetos
z Asignacin de Valores:
arrLibros[contador].Titulo = textBox1.Text;arrLibros[contador].Autor = textBox2.Text;
arrLibros[contador].Copyright = int.Parse(textBox3.Text);
Matrices de Objetos
private void button3_Click(object sender, EventArgs e)
{Form2 TrabajarConPeliculas;TrabajarConPeliculas = new Form2();TrabajarConPeliculas.Show();
}
Controles GUI
z Ejemplo ComboBox y TextBoxz Tablas de Multiplicar
Controles GUI Ejemplo Tablas de Multiplicar
z ComboBoxz Llenar ComboBox
private void Tablas_Load(object sender, EventArgs e)
{for (int i = 1; i < 11; i++)
comboBox1.Items.Add(i);}
Controles GUI Ejemplo Tablas de Multiplicarz Leer ComboBox y llenar TextBox
int operacion;string linea;textBox1.Clear();for (int i = 1; i < 11; i++) {
operacion = i * int.Parse(comboBox1.Text);linea = i + " X " + comboBox1.Text + " = " + operacion + Environment.NewLine;textBox1.Text = textBox1.Text + linea;
}
Manejo de strings y Arreglos
z Ejemplo Diccionario
Manejo de strings y Arreglos
z Ejemplo Diccionarioz string[] resultado;
z palabra = textBox1.Text.Trim();z palabra = palabra.ToUpper();
z resultado = d.BuscarInicio(palabra);
z foreach (string s in resultado)z textBox2.Text = textBox2.Text + s +
Environment.NewLine;
Manejo de strings y Arreglos
public string[] BuscarFinal(string palabra){
string[] resultado;int cantidad = 0;int[] posiciones = new int[diccionario.Length];
for (int i = 0; i < diccionario.Length; i++)if (diccionario[i].EndsWith(palabra)){
posiciones[cantidad] = i;cantidad++;
}
resultado = new string[cantidad];for (int i = 0; i < cantidad; i++)
resultado[i] = diccionario[posiciones[i]];
return (resultado);}
Manejo de strings y Arreglos
public string[] Buscar(string palabra){
string[] resultado;int cantidad = 0;int[] posiciones = new int[diccionario.Length];
for (int i = 0; i < diccionario.Length; i++)if (diccionario[i].IndexOf(palabra) >= 0){
posiciones[cantidad] = i;cantidad++;
}
resultado = new string[cantidad];for (int i = 0; i < cantidad; i++)
resultado[i] = diccionario[posiciones[i]];
return (resultado);}
Manejo de strings y Arreglos
public string[] BuscarInicio(string palabra){
string[] resultado;int cantidad = 0;int[] posiciones = new int[diccionario.Length];
for (int i = 0; i < diccionario.Length; i++)if (diccionario[i].StartsWith(palabra)){
posiciones[cantidad] = i;cantidad++;
}
resultado = new string[cantidad];for (int i = 0; i < cantidad; i++)
resultado[i] = diccionario[posiciones[i]];
return (resultado);}
Manejo de strings y Arreglos
z Fin Ejemplo Diccionario
El Tiro de Penal!!
z Ejercicio para resolver en Laboratorio
Programacin Avanzada I
Segundo ParcialConectividad a Bases de DatosConectividad a Bases de Datos
Conectividad a Bases de DatosResumenIntroduccinModelo Relacional de Bases de DatosGeneralidades de las Bases de Datos Relacionales: La Base de datoslibros
SQLConsulta Bsica SELECTLa Clusula WHERELa Clusula ORDER BYCmo fusionar varias tablas: INNER JOINLa instruccin INSERT La Instruccin UPDATELa Instruccin DELETE
Creacin de la base de datos libros en SQL Server 2005Manipulacin de Bases de Datos con ADO .NET
Conectando y consultanto una base de datosConsultas a la base de datos libros
Introduccin
z Base de datosz Coleccin organizada de datosz Las mas popurales son las bases de datos
relacionales
z DBMSz Sistema Manejador de Bases de Datos (Database
management system )z Almacena y organiza los datos
Modelo de Bases de DatosRelacionaleszBase de datos Relacionalz Tabla
zFilas, columnasz Llave Primaria
z Identificador nico de los datos
Introduccin (Cont.)
z RDBMSz Sistema Manejador de Base de Datos
Relacionalesz SQL Server, Oracle, Sybase, DB, Infromix,
MySQLz SQL
z Bases de datos relacionalesz Lenguaje de consulta estructurado (Structured
Query Language)
Modelo de Bases de DatosRelacionales
z SQLz Lenguaje estndar para acceder a una base de datos relacional,
estandarizado por el American National Standards Institute(ANSI): SQL-92. En gran parte, los distintos DBMS utilizan todos el mismo SQL, si bien cada vendedor le ha aadido sus propias extensiones. El lenguaje SQL se divide en:
z DDL (Data Definition Language), utilizado para crear y modificar la estructura de la base de datos (p.ej. CREATE TABLE).
z DML (Data Manipulation Language), empleado para manipular los datos almacenados en la base de datos (p.ej. consultas con la sentencia SELECT).
z DCL (Data Control Language), para establecer permisos de acceso (GRANT, REVOKE, DENY) y gestionar transacciones (COMMIT y ROLLBACK).
Modelo de Bases de DatosRelacionales
Numero Nombre Departamento Salario Ubicacion
23603 Jones 413 1100 New Jersey
24568 Kerwin 413 2000 New Jersey
34589 Larson 642 1800 Los Angeles
35761 Myers 611 1400 Orlando
47132 Neumann 413 9000 New Jersey
78321 Stephens 611 8500 Orlando
Fila
ColumnaLlave Primaria
Datos de ejemplo para la tabla Empleado
Modelo de Bases de DatosRelacionales (Cont.)
Departamento Ubicacion
413 New Jersey
611 Orlando
642 Los Angeles
Resultado de seleccionar datos distintos de Departamento y Ubicacion
de la tabla Empleado
Generalidades de las bases de datos relacionales
z Base de datos librosz Cuatro tablas
z autores, editoriales, isbnAutor y titulos
z Relaciones de las tablas
La Base de datos libros
Columna Descripcin idAutor Nmero de identificacin del autor en la base de datos, esta
columna representa la clave principal de la tabla
nombrePila Nombre de pila del autor (una cadena) apellidoPaterno Apellido Paterno del autor (una cadena) Tabla Autores de la base de datos libros.
idAutor nombrePila apellidoPaterno 1 Harvey Deitel 2 Paul Deitel 3 Tem Nieto 4 Sean Santry Datos de ejemplo de la tabla autores
La Base de datos librosColumna Descripcin idEditorial El nmero de identificacin (ID) de la
editorial en la base de datos. Es la llave principal de la tabla
nombreEditorial El nombre de la editoral (una cadena) Tabla editoriales de la base de datos libros
idEditorial nombreEditorial1 Prentice Hall2 Prentice Hall PTG
Datos de la tabla editoriales
La Base de datos librosColumna Descripcin isbn Nmero ISBN del libro (una cadena). Llave primaria de
la tabla titulo Titulo del libro (una cadena). numeroEdicion Nmero de Edicion del libro (un entero). copyright Ao de edicin (Copyright) del libro (una cadena) idEditorial Nmero de Identificacin de la editorial (un entero).
Llave extranjera para la tabla editoriales archivoImagen Nombre del archivo que contiene la imagen de la
portada del libro (una cadena) precio Precio de venta sugerido para el libro (un nmero real) Tabla titulos de la base de datos libros
La Base de datos librosisbn titulo Numero
Edicioncopy-right
idEditorial Archivo Imagen
precio0130895725 C How to
Program 3 2001 1 chtp3.jpg 74.95
0130384747 C++ How to Program
4 2002 1 cpphtp4.jpg 74.95
0130461342 Java Web Services for Experienced Programmers
1 2002 1 jwsfep1.jpg 54.95
0131016210 Java How to Program
5 2003 1 jhtp5.jpg 74.95
0130852473 The Complete Java 2 Training Course
5 2002 2 javactc5.jpg 109.95
0130895601 Advanced Java 2 Platform How to Program
1 2002 1 advjhtp1.jpg 74.95
Datos de ejemplo de la tabla titulos
La Base de datos librosColumna Descripcion idAutor Identificacion del autor, llave extranjera para la tabla de
autores isbn El ISBN del libro, llave extranjera para la tabla titulos Tabla isbnAutor
idAutor isbn idAutor isbn1 0130895725 2 01391630502 0130895725 3 01308292932 0132261197 3 01302841732 0130895717 3 01302841812 0135289106 4 0130895601
Datos de ejemplo de la tabla isbnAutor .
La Base de datos libros
isbnAutor
idAutor
isbn
autores
idAutor
nombrePila
apellidoPaterno
editoriales
idEditorial
nombreEditorial
titulos
isbn
titulo
numeroEdicion
copyright
idEditorial
archivoimagen
precio
1 8 1
81
8
Relaciones de tablas en la base de datos libros
SQLz SQL descripcin generalz SQL palabras clave (keywords)
SQL keyword DescripcinSELECT Recupera datos de una o mas tablasFROM Tablas involucradas en cada consulta, se requiere para cada
SELECT . WHERE Criterios de seleccin que determinan cuales filas se van a
Recuperar, borrar o actualizarGROUP BY Criterios para agrupar filasORDER BY Criterios para ordenar filasINNER JOIN Fusionar filas de varias tablasINSERT Insertar filas en una tabla especificadaUPDATE Actualizar filas en una tabla especificadaDELETE Eliminar filas en una tabla especificada
.SQL SQL palabraspalabras clave clave parapara consultasconsultas
Consulta Bsica SELECT
z Consulta bsica SELECT z SELECT * FROM nombreTabla
z SELECT * FROM autores
Consulta Bsica SELECT
z Recuperar ciertas columnas de la tablaz select idAutor,nombrePila from autores
Clusula WHERE
z Especificar criterio de selccinz SELECT columna1, columna2, FROM
NombreTabla WHERE criterioz SELECT titulo, numeroEdicion, copyright
FROM titulosWHERE copyright > 2000
z Operadores de condicin en la clusulaWHEREz , =, =, z LIKE
z Caracteres comodines % y _
Clusula WHERE (Cont.)
Clusula WHERE(Cont.)
Clusula WHERE(Cont.)
Clusula ORDER BY
z Clusula ORDER BY opcionalz SELECT columna1, columna2, FROM
nombreTabla ORDER BY columna ASCz SELECT columna1, columna2, FROM
nombreTabla ORDER BY columna DESCz ORDER BY campos mltiplesz ORDER BY columna1 tipoOrden, columna2
tipoOrden, z Combinar WHERE y ORDER BY
Clusula ORDER BY
Clusula ORDER BY
Clusula ORDER BY
Clusula ORDER BY
Fusionar datos de varias tablas
z Los datos se guardan en tablasseparadas para evitar redundacia.
z Debido a esto a veces es necesariofusionar datos de varias tablas en unasola consulta
Fusionar datos de variastablas(Cont.)
La instruccin INSERT
z Inserta una fila dentro de una tablaz INSERT INTO nombreTabla ( columna1, , columnaN )
VALUES ( valor1, , valorN )z INSERT INTO autores ( nombrePila, apellidoPaterno)
VALUES ( Sue, Smith )idAutor nombrePila apellidoPaterno1 Harvey Deitel2 Paul Deitel3 Tem Nieto4 Sean Santry5 Sue Smith
Datos en la tabla autores, despus del INSERT
La instruccin UPDATEz Modicar datos de una tabla
z UPDATE nombreTablaSET columna1 = valor1, , columnaN = valorNWHERE criterios
z UPDATE autoresSET apellidoPaterno = JonesWHERE apellidoPaterno = Smith AND nombrePila =
SueauthorID firstName lastName1 Harvey Deitel2 Paul Deitel3 Tem Nieto4 Sean Santry5 Sue JonesFig. 23.23 Datos en tabla autores despus de UPDATE
La instruccin DELETEz Elimina datos de una tablaz DELETE FROM nombreTabla WHERE criterios
z DELETE FROM autoresWHERE apellidoPaterno = Jones AND
nombrePila = Sue
authorID firstName lastName1 Harvey Deitel2 Paul Deitel3 Tem Nieto4 Sean SantryFig. 23.24 Datos tabla autores despus de DELETE
Creando Base de Datos librosen SQL Server 2005
Manipulando Bases de Datoscon ADO.NETz Objetivos Generalesz Conectarse a una Base de Datosz Consultar una Base de Datosz Desplegar los resultados de la consulta
Manipulando Bases de Datoscon ADO.NETz Bases de datosz Interfaces de acceso a bases de datosz Arquitectura ADO.NETz Clases ADO.NETz Transacciones en ADO.NETz Data Binding
Interfaces de acceso a bases de datos
z Evolucin histrica de los "estndares" propuestos por Microsoft:
z ODBC (Open Database Connectivity)z DAO (Data Access Objects): utiliza automatizacin
OLE y ActiveX.z RDO (Remote Data Objects): Fuertemente acoplado
a ODBC, orientado al desarrollo de aplicaciones cliente/servidor.
z OLE DB: Construido sobre COM, permite acceder a bases de datos tanto relacionales como no relacionales
z ADO (ActiveX Data Objects): Ofrece un interfaz orientado a objetos
Interfaces de acceso a bases de datos
Interfaces de acceso a bases de datos
z ADO .NET es una coleccin de clases, interfaces, estructuras y tipos enumerados que permiten acceder a los datos almacenados en una base de datos desde la plataforma .NET. Si bien se puede considerar una versin mejorada de ADO, no comparte con ste su jerarqua de
clases (aunque s su funcionalidad).
Arquitectura ADO.NET
z El funcionamiento de ADO.NET se basa esencialmente en utilizar los siguientes componentes:
z Data Provider (proveedor de datos): Proporciona un acceso uniforme a conjuntos de datos (bases de datos relacionales o informacin ID3 de ficheros MP3). Su papel el similar al de un controlador ODBC o JDBC.
z DataSet: El componente ms importante, puede almacenar datos provenientes de mltiples consultas (esto es, mltiples tablas).
z DataAdapter: Sirve de enlace entre el contenedor de conjuntos de datos (DataSet) y la base de datos (Data Provider).
Arquitectura ADO.NET
z Adicionalmente:z DataReader: para realizar eficientemente lecturas
de grandes cantidades de datos que no caben en memoria
z DataRelation: establecer una reunin entre dos tablas
z Connection: utilizada por DataAdapter para conectarse a la base de datos
z Command: permite especificar las rdenes, generalmente en SQL, que nos permiten consultar y modificar el contenido de la base de datos ( select, insert, delete y update).
Funcionamiento tpico de ADO.NET
z Se crean un objeto Connection especificando la cadena de conexin.
z Se crea un DataAdapter.z Se crea un objeto Command asociado al DataAdapter,
con la conexin adecuada y la sentencia SQL que haya de ejecutarse.
z Se crea un DataTable donde almacenar los datos.z Se abre la conexin.z Se rellena el DataSet con datos a travs del
DataAdapter.z Se cierra la conexin.z Se trabaja con los datos almacenados en el DataSet.
Clases ADO.NET
z Interfaz IDbConnectionz Interfaz IDbCommandz Interfaz IDataReaderz Clase DataSet
Transacciones en ADO.NET
z En ADO.NET, los lmites de las transacciones se indican manualmente. Los objetos de la clase Connectiontienen un mtodo BeginTransaction que devuelve una transaccin (objeto de tipo Transaction). La transaccin finaliza cuando se llama al mtodo Commit o Rollback del objeto Transaction devuelto por BeginTransaction.
Data Binding en Visual Studio .NET
z Se puede optar por asistentes del tipo de DataForm wizard... o, cuando stos no nos ofrecen la funcionalidad suficiente para nuestras aplicaciones, podemos programarlo nosotros mismos (algo que no es difcil y nos da bastante ms control sobre nuestra aplicacin):
z Se crean los objetos ADO.NET necesarios (Connection, DataSet, Command y DataAdapter).
z Se enlazan los controles de la interfaz con las columnas del DataSet, lo que se consigue aadiendo un objeto System.Windows.Forms.Binding a la propiedad DataBindings del control. Los objetos de tipo Binding nos permiten enlazar una propiedad de un control a una columna de unDataSet.
z Se implementa la forma de recorrer los registros, haciendo uso del objeto BindingContext asociado al formulario (cuyas propiedades Position y Count nos permiten movernos por el conjunto de datos).
z Se implementan las operaciones sobre la base de datos (con los comandos asociados al DataAdapter.
Conectndose y consultandouna base de datoszMostrarAutoresz Muestra el contenido completo de la base
de datos autoresz Despliega el contenido de la tabla en un
objeto TextBox, con Multilinea
z Ver Ejercicio MostrarAutores
Consulta Mostrar Autores
Consultar Un Autor
Utilizacin DataGridView
Utilizacin DataGridView
Utilizacin DataGridView
Utilizacin DataGridView
z Incluir los flash de Manejo de datos con ambiente grafico
Programacin Avanzada IMAE Carlos Alberto Zelaya IrMAE Carlos Alberto Zelaya Irasas
Tercer ParcialTercer ParcialSubprocesamientoSubprocesamiento MMltipleltipleRelaciRelacin Productorn Productor--ConsumidorConsumidor
Subprocesamiento Mltiple (Multithreading)z Introduccinz Estados de los Threads: Ciclo de Vida de un hilo de
ejecucinz Prioridades de los hilos de ejecucinz Crear y Ejecutar Threads z Sincronizacin de Threadsz Relacin Productor/Consumidor sin sincronizacinz Relacin Productor/Consumidor con sincronizacinz Relacin Productor/Consumidor: Buffer Circular
Introduccin
z Histricamente la concurrencia se ha implementado en forma de funcionesprimitivas del sistema operativo, disponiblespara programadores experimentados.z El subprocesamiento mltiple, mejora el
rendimiento de los programasz C y C++ no manejan subprocesamiento mltiple.z La programacin de subprocesos es dependiente
de la plataforma
Estado de los subprocesos: Ciclo de vida de un subproceso
z Estado de los subprocesosz Estado de Nacimiento
z El subproceso fue creado y permanece as hasta que se llama al mtodo start de la clase Thread.
z Estado Listoz El mtodo start ha sido invocadoz El proceso puede ahora ejecutarse
z Estado de Ejecucinz Asigna el subproceso a un procesador y comienza a
ejecutarse
Estado de los subprocesos: Ciclo de vida de un subproceso
z Estado Muertoz Sucede cuando su mtodo run ha sido completado o ha
sucedido una excepcin no atrapadaz Eventualmente ser eliminado de la memoria
z Estado Bloqueadoz Cuando intenta ejecutar una tarea de entrada-salida que
no puede ser completada de manera inmmediata.z Estado de Espera
z Cuando encuentra cdigo que no puede ejecutar en esemomento
z Estado Inactivoz Cuando se llama al mtodo sleep de la clase Thread para
cambiar el estado por unos milisegundos
Primer Ejemplo Multithreading
Primer Ejemplo Multithreading
z Ejemplo de Ejecucin
Main()
printer2.Imprimir
printer2.Imprimir
printer1.ImprimirMensajeImpresora printer1 = new MensajeImpresora();MensajeImpresora printer2 = new MensajeImpresora();MensajeImpresora printer3 = new MensajeImpresora(); thre
ad1.Sta
rt()
thread2.Start()
thread3.Start()
Thread thread1 = new Thread(printer1.Imprimir); Thread thread2 = new Thread(printer2.Imprimir); Thread thread3 = new Thread(printer3.Imprimir);
Ejemplo Multithreading GUI
Ejemplo Multithreading GUI
Cuando un hilo llegue a un valor que sea multiplo de 1000, se pausa. En ese mismomomento se activa el hilo que estabainactivo. Esto se repetir indefinidamente.
Solucin paso a paso - 1
Solucin paso a paso - 2
Solucin paso a paso - 3
Solucin paso a paso - 4
Relacin Productor/Consumidor sin Sincronizacin - Ejemplo
z En una relacin productor /consumidor:z La parte correspondiente al productor
genera datosz La parte correspondiente al consumidor lee
los datosz Ambos desde un objeto compartido (buffer)
Relacin Productor/Consumidor sin Sincronizacin - Ejemplo
z Bufferz Regin compartida de la memoria
z Subproceso Productorz Genera los datos que se aaden al bufferz Escribe el buffer vaco
z Subproceso consumidorz Lee los datos del buffer
Relacin Productor/Consumidor sin Sincronizacin - Ejemplo
z El programa de ejemplo consta de:z Interfaz buffer
z Mtodo establecer (set)z Mtodo Obtener (get)
z Clase Productorz Coloca valor en el bufferz Contiene:
z ubicacionCompartidaz tiempoRandomDormirz Constructorz Mtodo Producir
Relacin Productor/Consumidor sin Sincronizacin - Ejemplo
z Clase Consumidorz Recupera Valor del bufferz Contiene:
z ubicacionCompartidaz Mtodo Consumirz Contructor
z Clase BufferSinSincronizarz Implementa la interfaz Buferz Declara objeto compartido entre productor y consumidorz Implementa los mtodos set y get
z SinSincronizarTestz Contiene:
z Mtodo mainz Crea instancia de objeto BufferSinSincronizar compartidoz Crea hilos y establece delegados
z Este ejemplo muesta los problemas que se pueden ocasionar al no existir la sincronizacin
Relacin Productor/Consumidor sin Sincronizacin Ejemplo, Salida
Relacin Productor/Consumidor Sincronizada - Ejemplo
z Bufferz Regin compartida de la memoria
z Subproceso Productorz Genera los datos que se aaden al bufferz Escribe el buffer vaco
z Subproceso consumidorz Lee los datos del buffer
Relacin Productor/Consumidor Sincronizada - Ejemplo
z El programa de ejemplo consta de:z Interfaz buffer
z Mtodo establecer (set)z Mtodo Obtener (get)
z Clase Productorz Coloca valor en el bufferz Contiene:
z ubicacionCompartidaz tiempoRandomDormirz Constructorz Mtodo Producir
Relacin Productor/Consumidor Sincronizada - Ejemplo
z Clase Consumidorz Recupera Valor del bufferz Contiene:
z ubicacionCompartidaz Mtodo Consumirz Contructor
z Clase BufferSincronizadoz Implementa la interfaz Buferz Declara objeto compartido entre productor y consumidorz Implementa los mtodos set y getz Sincroniza la ejecucin de los hilos, utilizando objeto.Wait y
objeto.Pulsez SincronizadoTest
z Contiene:z Mtodo mainz Crea instancia de objeto BufferSincronizado compartidoz Crea hilos y establece delegados
z Este ejemplo muestra como se evitan los problemas de desincronizacindel ejemplo anterior
Relacin Productor/Consumidor Sincronizada - Ejemplo
Creacin de un Chat
z Pasos bsicos, lado Servidor:z Paso 1: crear TcpListenerz Paso 2: TcpListener espera por una
requisicin de conexinz Paso 3: establece conexin luego de
peticin del clientez Paso 4: lee el string de datos enviada por el
clientez Paso 5: cerrar conexin
Creacin de un Chat
z Pasos bsicos, lado Cliente:z Paso 1: crear TcpClient y Conectar al
Servidorz Paso 2: obtener NetworkStream Asociado
con el TcpClientz Paso 3: fase de procesamientoz Paso 4: cerrar conexin
Programacin Avanzada IMAE Carlos Alberto Zelaya IrasPorqu Programacin Orientada a Objetos?De la Programacin Estructurada a la Programacin Orientada a ObjetosDe la Programacin Estructurada a la Programacin Orientada a ObjetosDe la Programacin Estructurada a la Programacin Orientada a ObjetosLo que NO es la Programacin Orientada a Objetos (POO)Lo que SI es la Programacin Orientada a Objetos (POO)Programacin Orientada a Objetos (POO): EjemploProgramacin Orientada a Objetos (POO): Otro ejemploProgramacin Orientada a Objetos (POO): NotasProgramacin Orientada a Objetos (POO): LenguajesProgramacin Orientada a Objetos (POO): ConceptosProgramacin Orientada a Objetos (POO): Conceptos - ClaseProgramacin Orientada a Objetos (POO): Conceptos - ClaseProgramacin Orientada a Objetos (POO): Conceptos - ClaseProgramacin Orientada a Objetos (POO): Conceptos - ClaseProgramacin Orientada a Objetos (POO): Conceptos - ClaseProgramacin Orientada a Objetos (POO): Conceptos - ClaseProgramacin Orientada a Objetos (POO): Conceptos - ClaseProgramacin Orientada a Objetos (POO): Conceptos - ClaseProgramacin Orientada a Objetos (POO): Conceptos - ClaseProgramacin Orientada a Objetos (POO): Conceptos - ObjetoProgramacin Orientada a Objetos (POO): Conceptos - ObjetoProgramacin Orientada a Objetos (POO): Conceptos - ObjetoProgramacin Orientada a Objetos (POO): Conceptos - EncapsulacinProgramacin Orientada a Objetos (POO): Conceptos - EncapsulacinProgramacin Orientada a Objetos (POO): Conceptos - EncapsulacinProgramacin Orientada a Objetos (POO): Conceptos - EncapsulacinProgramacin Orientada a Objetos (POO): Conceptos - EncapsulacinProgramacin Orientada a Objetos (POO): Conceptos - HerenciaProgramacin Orientada a Objetos (POO): Conceptos - HerenciaProgramacin Orientada a Objetos (POO): Conceptos - HerenciaProgramacin Orientada a Objetos (POO): Conceptos - HerenciaProgramacin Orientada a Objetos (POO): Conceptos - HerenciaProgramacin Orientada a Objetos (POO): Conceptos - HerenciaProgramacin Orientada a Objetos (POO): Conceptos - PolimorfismoProgramacin Orientada a Objetos (POO): Conceptos - PolimorfismoProgramacin Orientada a Objetos (POO): Conceptos - SobrecargaProgramacin Avanzada IIntroduccinIntroduccinIntroduccinCLR [Common Language Runtime]CLR [Common Language Runtime]AssembliesBiblioteca de clases .NETBiblioteca de clases .NETBiblioteca de clases .NETADO.NETDesarrollo de aplicacionesSoporte para mltiples lenguajesVisual Studio .NETEntorno de DesarrolloVisual Studio .NETEntorno de DesarrolloEl lenguaje de programacin C#El lenguaje de programacin C#Hola, mundo!Ejemplo Limpiar PantallaClculo del Valor de un Paquete TursticoCompra Boleto de MetroProgramacin Avanzada ISentencias condicionalesSentencia caseSentencia forSentencia for/eachSentencia whileProgramacin Avanzada IVectores y matricesVectores y matricesDefinicinVectores y matricesDefinicinMatricesMatricesMatricesProgramacin Avanzada IConceptos BsicosEncapsulacin de DatosEjemplo PrcticoEjemplo PrcticoDiagrama de Clases VS-2005Creando la Clase clsLibreriaCreando la clase clsLibroRedefiniendo un mtodoMatrices de objetosMatrices de ObjetosMatrices de ObjetosControles GUIControles GUI Ejemplo Tablas de MultiplicarControles GUI Ejemplo Tablas de MultiplicarManejo de strings y ArreglosManejo de strings y ArreglosManejo de strings y ArreglosManejo de strings y ArreglosManejo de strings y ArreglosManejo de strings y ArreglosEl Tiro de Penal!!Programacin Avanzada IConectividad a Bases de DatosIntroduccinModelo de Bases de Datos RelacionalesIntroduccin (Cont.)Modelo de Bases de Datos RelacionalesModelo de Bases de Datos RelacionalesModelo de Bases de Datos Relacionales (Cont.)Generalidades de las bases de datos relacionalesLa Base de datos librosLa Base de datos librosLa Base de datos librosLa Base de datos librosLa Base de datos librosLa Base de datos librosSQLConsulta Bsica SELECTConsulta Bsica SELECTClusula WHEREClusula WHERE (Cont.)Clusula WHERE(Cont.)Clusula WHERE(Cont.)Clusula ORDER BYClusula ORDER BYClusula ORDER BYClusula ORDER BYClusula ORDER BYFusionar datos de varias tablasFusionar datos de varias tablas(Cont.)La instruccin INSERTLa instruccin UPDATELa instruccin DELETECreando Base de Datos libros en SQL Server 2005Manipulando Bases de Datos con ADO.NETManipulando Bases de Datos con ADO.NETInterfaces de acceso a bases de datosInterfaces de acceso a bases de datosInterfaces de acceso a bases de datosArquitectura ADO.NETArquitectura ADO.NETFuncionamiento tpico de ADO.NETClases ADO.NETTransacciones en ADO.NETData Binding en Visual Studio .NETConectndose y consultando una base de datosConsulta Mostrar AutoresConsultar Un AutorUtilizacin DataGridViewUtilizacin DataGridViewUtilizacin DataGridViewUtilizacin DataGridViewProgramacin Avanzada IMAE Carlos Alberto Zelaya IrasSubprocesamiento Mltiple (Multithreading)IntroduccinEstado de los subprocesos: Ciclo de vida de un subprocesoEstado de los subprocesos: Ciclo de vida de un subprocesoPrimer Ejemplo MultithreadingPrimer Ejemplo MultithreadingEjemplo Multithreading GUIEjemplo Multithreading GUISolucin paso a paso - 1Solucin paso a paso - 2Solucin paso a paso - 3Solucin paso a paso - 4Relacin Productor/Consumidor sin Sincronizacin - EjemploRelacin Productor/Consumidor sin Sincronizacin - EjemploRelacin Productor/Consumidor sin Sincronizacin - EjemploRelacin Productor/Consumidor sin Sincronizacin - EjemploRelacin Productor/Consumidor sin Sincronizacin Ejemplo, SalidaRelacin Productor/Consumidor Sincronizada - EjemploRelacin Productor/Consumidor Sincronizada - EjemploRelacin Productor/Consumidor Sincronizada - EjemploRelacin Productor/Consumidor Sincronizada - EjemploCreacin de un ChatCreacin de un Chat
Top Related