Mta

240
Generalidades de la lección Los alumnos comprenderán el almacenamiento en una computadora y los tipos de datos. En esta lección aprenderán: Como se almacenan los programas y las instrucciones en la memoria de la computadora Memoria: Pilas y Heaps (Asignación de memoria dinámica) referido en ocasiones como memoria en el montón Capacidad de memoria requerida para los varios tipos de almacenamiento de datos, Datos numéricos y de texto Tipos de datos y almacenamiento

description

Certificacion de Microsoft MTA

Transcript of Mta

Diapositiva 1

Generalidades de la leccinLos alumnos comprendern el almacenamiento en una computadora y los tipos de datos.En esta leccin aprendern:Como se almacenan los programas y las instrucciones en la memoria de la computadoraMemoria: Pilas y Heaps (Asignacin de memoria dinmica) referido en ocasiones como memoria en el montn Capacidad de memoria requerida para los varios tipos de almacenamiento de datos,Datos numricos y de textoTipos de datos y almacenamiento1Preguntas claveCmo se almacenan las instrucciones de un programa en una computadora?Identifique los diferentes tipos de datos que hay y los valores que pueden contener.Nombre los componentes de una computadoraCules componentes se involucran en el almacenamiento de las instrucciones de un programa?

Activador2TerminologaTipo de dato: La definicin de un conjunto de datos que especifica el rango posible de valores que pueden contener, las operaciones que se pueden llevar a cabo con estos valores y la forma en la cual se almacenan los datos en memoria.Recolector de basura: proceso para la recuperacin automtica de un heap de memoria.Heap: Seccin de memoria reservada para que el programa almacene de forma temporal las estructuras de datos, cuya existencia o tamao no se puedan determinar hasta que se ejecute el programa.Memoria: Dispositivo en el cual se puede almacenar y recuperar informacin.Pila: Regin de memoria reservada en la cual los programas almacenan el estado de datos, como por ejemplo la direccin en memoria de llamadas a procedimientos y funciones, paso de parmetros y algunas veces variables locales.

3Cmo se almacenan los programas en la memoriaLa computadora almacena los datos y los programas de la siguiente manera:Almacenamiento primario: tambin conocido como memoria de acceso aleatorio (RAM), esta conformada por chips de memoria. En trminos comunes, se refiere solo a la memoria principal de la computadora, el semiconductor de almacenamiento rpido (RAM) directamente conectado al procesador.Almacenamiento secundario: tambin conocido como disco duro, el cual consiste en un cabezal de lectura/escritura que flota sobre un plato rotatorio cubierto de material magntico.4Memoria-pilas y heapsLas variables se almacenan en pilas o heaps dependiendo de su tipo:Tipos con valores (ej.: int, double, float) van en la pila.Tipos con referencia (String, Object) van en el heap.Los tipos con valores en clases se almacenan con la instancia de la clase en el heap.La pilaLos valores en la pila se manejan sin la intervencin del recolector de basura puesto que los elementos se agregan y eliminan de la pila siguiendo el orden de que el ltimo que entra es el primero que sale (LIFO-last in first out) cada vez que se introduce un mtodo o una sentencia.Ocurre una StackOverFlowException cuando ha utilizado todo el espacio disponible en la pila.

5Memoria-pilas y heaps (contina)El Heap (Asignacin de memoria dinmica)Referido en ocasiones como memoria en el montnUna asignacin de memoria basada en heap ocurre cuando creamos un nuevo objeto, por lo que el compilador determina cuanta memoria se necesita y asigna una cantidad apropiada de espacio en memoria y regresa una referencia que representa la direccin en memoria.Un heap se utiliza para la asignacin dinmica de memoria.Microsoft .NET Framework utiliza el recolector de basura para liberar espacio durante el tiempo de ejecucin.El recolector de basura es un proceso automtico para la recuperacin de la memoria heap. Los bloques de memoria que hayan sido asignados pero que ya no se utilizan se liberan, y los bloques de memoria que aun estn en uso se pueden mover para consolidar la memoria libre en bloques ms grandes.6Tipos de datosTipos de datos numricosTipos integrales (ej.: byte, char, int)Tipos de punto flotante (float, double)DecimalBooleanoEjemplo: bool done = false; 7Tipos integralesTipo RangoTamaosbyte-128 a 127Entero de 8 bits con signobyte0 a 255Entero de 8 bits sin signocharU+0000 a U+ffffCarcter de 16 bits unicodeshort-32,768 a 32,767Entero de 16 bits con signounshort0 a 65,535Entero de 16 bits sin signoint-2,147,483,648 a 2,147,483,647Entero de 32 bits con signouint0 a 4,294,967,295Entero de 32 bits sin signolong-9,223,372,036,854,775,808 a 9,223,372,036,854,775,807Entero de 64 bits con signoulong0 a 18,446,744,073,709,551,615Entero de 64 bits sin signo8Tipos de punto flotanteTipoRango aproximadoPrecisin float1.5e-45 a 3.4e387 dgitosdouble5.0e-324 a 1.7e30815-16 dgitosTipo decimalTipoRango aproximadoPrecisin decimal1.0x10-28 a 7.9x10-28 28-29 dgitos9Uso de tipos de datos numricosbyte numKids = 15;char letter =p;int worldPopulation = 6692030277;float money = 201.00f;double lotsaMoney = 2.4E+12;decimal testGrade = 89.5m;

Describa cmo se almacena en memoria la siguiente sentencia:int tennisPoints = 30;Identifique el tipo de dato apropiado para cada uno de los siguientes valores.4233423.93100-2323trueRepaso10Preguntas claveCules son las diferentes estructuras de decisin que se utilizan para controlar la ejecucin de comandos de programa?Cmo se muestran los diferentes resultados de una estructura de decisin en los diagramas de flujo y tablas de decisin?Estructuras de decisinOperador relacionalOperador lgicoAnd, Or, NotBooleanoExpresinCondicinValorIfElseSwitchBreakCaseAlgoritmoSentencia compuestaSentencias anidadasPrecedencia

11If elseSentencia:if (condicin){sentencia1;}else{sentencia2;}Condicin evaluada.Sentencia 1Sentencia 2VerdaderoFalso12

if else ifEnunciado:if (condicin1){sentencia1;}if else(condicin2){sentencia2;}else{sentencia3;}

Condicin1 evaluada.Sentencia1VerdaderoCondicin2evaluada.FalsoSentencia2Sentencia3Verdadero13Sentencia switch:int caseSwitch = 1 ;switch (caseSwitch){case 1: Console.WriteLine (Caso 1); break;case 2: Console.WriteLine (Caso 2); break ;default: Console.WriteLine (Caso predetermindo); break ;}14Tabla de decisinUna manera concisa de mostrar la lgica.Crea una relacin entre las condiciones y las acciones a ejecutar.

ReglasCondicionesEl controlador no respondeSiNoParpadea una luz verdeNoSiAccionesReemplazar las baterasSiNoSincronizar con la consolaNoSi15Correccin de los errores de sintaxisboolean isFun = F ;boolean isKind = F ;boolean isPopular = T ;if isFun && isKind | | isPopular ;Console.WriteLn (Eres mi amigo.) ;elseConsole.WriteLn (Quin eres?);

16Correccin de los errores de sintaxis Respuestasboolean isFun = false ;boolean isKind = false ;boolean isPopular = Treue ;if (isFun && isKind | | isPopular) ;Console.WriteLn (Eres mi amigo.) ;else Console.WriteLn (Quin eres?);17RepasoQue estructura(s) de decisin puede utilizar para una decisin con tres posibilidades?Dibuje un diagrama de flujo para mostrar el pensamiento involucrado al decidir que va a cenar.Cules son algunos errores de sintaxis comunes al utilizar sentencias condicionales?18Preguntas claveDe qu manera los ciclos for, while y do-while manejan la repeticin de manera diferente?Cmo se evala un mtodo recursivo?Identificando el mtodo apropiado para el manejo de repeticiones19Activador Escriba lo siguiente de manera ms eficienteConsole.WriteLine (Repetitivo) ;Console.WriteLine (Repetitivo) ;Console.WriteLine (Repetitivo) ;Console.WriteLine (Repetitivo) ;Console.WriteLine (Repetitivo) ;Console.WriteLine (Repetitivo) ;Console.WriteLine (Repetitivo) ;Console.WriteLine (Repetitivo) ;Console.WriteLine (Repetitivo) ;Console.WriteLine (Repetitivo) ;20Iteraciones en la vida realUna iteracin es el acto de repetir un conjunto de pasos para llevar a cabo una tarea.Por ejemplo:Gire el desarmador hasta que el tornillo se encuentre rgido.Froto mis manos bajo el aire del secador hasta que estn secas.Las iteraciones tambin se implementan en las computadoras.Por ejemplo: (C#)for(int i = 0; i < 10; i++)Console.WriteLine(Repito diez veces);21El Ciclo whilePermite que el cdigo se repita mientras se cumpla una condicin Booleana.Se evala la condicin antes de ejecutar el cdigo.Se puede utilizar cuando el nmero de iteraciones no se conoce antes de ejecutar el ciclo.

int i = 0;

while (i < 5){Console.WriteLine(i);

i = i + 1;}

InicializacinCondicinIncremento22El Ciclo forPermite que el cdigo se ejecute usando un contador de ciclos para controlar el nmero de veces que se repite.Se usa cuando el nmero de iteraciones se conoce antes de la ejecucin del ciclo.

for (int i = 0; i < 5; i++){Console.WriteLine(i);}

InicializacinCondicinIncremento23Diagrama de flujo del ciclo for

Si la condicin es falsa en la entrada del ciclo, entonces el ciclo nunca se ejecutar (ni siquiera una vez).InicializacinCondicin?Ejecucin del cicloIncremento24Ciclo while vs Ciclo forString line = default;while (line != null){Console.WriteLine(Escriba una palabra:);line = Console.ReadLine();}for (int i = 0; i < 5; i++){Console.WriteLine(Escriba una palabra:);line = Console.ReadLine();}

25El Ciclo do-whilePermite que el cdigo se repita mientras se cumpla una condicin Booleana.La condicin se evala despus de que el cdigo ya se haya ejecutado una vez.Se puede usar cuando el nmero de iteraciones no se conoce antes de ejecutar el ciclo, pero se asume que se ejecutar al menos una vez.

String line = default;do{Console.WriteLine(Escriba una palabra:);line = Console.ReadLine();} while (line != null);26Ciclo while vs Ciclo do-while Un ciclo do-while se ejecutar por lo menos una vez.Un ciclo while puede no ejecutarse nunca.

Console.WriteLine(Escriba una palabra:);String line = Console.ReadLine();while (line != null){Console.WriteLine(Escriba una palabra:);line = Console.ReadLine();}do{Console.WriteLine(Escriba una palabra:);line = Console.ReadLine();} while (line != null)27Conteo del 1 al 10 usando diferentes ciclosint i = 1;while (i 0) length = value; }}Las propiedades se pueden usar como si fueran miembros pblicos de datos pero en realidad son mtodos especiales llamados acessors. Esto permite el acceso a los datos de manera fcil a la vez que proporciona la seguridad y la flexibilidad de los mtodos.49//contina el cdigo

// ms cdigopublic Rectangle(double l, double w){ length = l; width = w;}Los constructores son mtodos de clase los cuales se ejecutan cuando se crea un objeto de un determinado tipo. Los constructores tiene el mismo nombre que la clase y por lo general inicializan los miembros de datos del nuevo objeto. 50//contina el cdigo

} // fin de la clase Rectangle.public void magnify(int factor){ length = length * factor; width = width * factor;}Un mtodo es un bloque de cdigo que contiene una serie de sentencias. Cada instruccin que se ejecuta, se lleva a cabo en el contexto de un mtodo.51Dentro de un MtodoModificador de acceso Tipo de retorno Nombre del mtodo Parmetro

{length = length * factor;width = width * factor;}publicvoidmagnify(int factor)52Ejemplo 1: Uso de la Clase Rectanglepublic class ShapeProgram{public static void Main(){Rectangle rec1 = new Rectangle(10,20);rec1.magnify(3);Console.WriteLine(Longitud + rec1.length);Console.WriteLine(Ancho + rec1.width);}}

53Ejemplo 2: Uso de la Clase Rectanglepublic class Window{Rectangle outerFrame;Rectangle innerFrame;

public Window (){outerFrame = new Rectangle(10,8);innerFrame = new Rectangle(8,6);}public void enlargeWindow(){outerFrame.magnify(2);}}54RepasoDefina los siguientes trminos de acuerdo a su aplicacin en la programacin orientada a objetos.ObjetoClasePropiedadMtodoConstructor55Generalidades de la leccinLos alumnos comprendern los conceptos relacionados con la herencia en la programacin orientada a objetos.En esta leccin aprendern:La relacin is-a (es un).Como crear jerarquas de clases a travs de la herencia.HerenciaPreguntas claveCmo se puede derivar una clase a partir de una clase base?Cmo se puede relacionar un grupo de clases a travs de una jerarqua de herencia?

56ActivadorComplete la jerarqua que a continuacin se presenta para mostrar las relaciones entre las siguientes clases. Use flechas para representar las relaciones.

Mamfero

Reptl

Perro

Gato

Animal

Pez

57Activador SolucinAnimal

Mamfero

Reptl

Pez

Perro

Gato

58La Relacin is-a (es-un).Un Mamfero es-un Animal.Un Perro es-un Mamfero.Un Gato es-un Mamfero.Animal

Mamfero

Perro

Gato

59TerminologaClase abstracta: Es una clase a partir de la cual no se puede crear ningn objeto.Se usa para definir subclases. Los objetos se crean a partir de las subclases.Clase base: Es una clase a partir de la cual otras clases han sido o pueden derivarse por herencia.Clase derivada: es una clase creada a partir de otra clase a la cual se le conoce como clase base.Una clase derivada hereda todas las caractersticas de su clase base.Puede incluir elementos de informacin y rutinas adicionales, puede redefinir rutinas a partir de la clase base y restringir el acceso a las caractersticas de la clase base.

60Terminologa (contina)Herencia: Es la transferencia de caractersticas de una clase a otras clases que se derivan de ella.Ejemplo: Si vegetal es una clase, entonces las clases legumbre y raz se pueden derivar a partir de ella y cada una heredar las propiedades de la clase vegetal.Las propiedades heredadas pueden incluir el nombre, la temporada de crecimiento y requerimientos de agua.Interfaz: nicamente contiene las firmas de los mtodos, delegados o eventos. La implementacin de los mtodos se crea en la clase que implementa la interfaz.61HerenciaLas clases pueden heredarse de otras clases. La sintaxis requiere de dos puntos despus del nombre de la clase en la declaracin e identificar la clase a heredar (la clase base) despus de los dos puntos como se muestra a continuacin:public class A

public class B : A{public B() { }public void doB(){ }}{ public A() { } public void doA(){ }}Clase Base62Herencia (contina)La nueva clase, es decir, la clase derivada, incluye toda la informacin no privada as como el comportamiento de la clase base, tambin incluye los datos y comportamiento que la definen a s misma. Por lo tanto, la nueva clase tiene dos tipos efectivos: el tipo de la nueva clase y el tipo de la clase que hereda.public class A{public A() { }public void doA(){ }}

}

public class B : A{ public B() { } public void doB(){ }Clase Derivada63Herencia (contina)public class Tester{A a = new A();B b = new B();b.doB(); // legalb.doA(); // legala.doA(); // legala.doB(); // ilegal}B se deriva de A y por lo tanto puede crear doA () pero A no se deriva de B por lo cual no puede crear doB (). La relacin de herencia no es recproca.64Herencia (contina)En los ejemplos anteriores, la clase B es efectiva para el tipo B y para el tipo A. Cuando se accede al objeto B, puede usar el operador cast para convertirlo en un objeto A. El operador cast no cambia al objeto B pero su vista del objeto B se encontrar restringido a la informacin y comportamientos de A.La herencia mltiple no tiene soporte en C#. Una clase puede heredar nicamente de una clase.B b = new B();A a = (A)b; // el objeto B se castea como un objeto A // esto es correcto porque B es-una A

65InterfacesSe definen usando la palabra clave interface.Describen un grupo de comportamientos relacionados que pueden pertenecer a cualquier clase.Se pueden crear a partir de mtodos, propiedades, eventos, indexadores o alguna combinacin de esos cuatro tipos de miembros.No pueden contener campos.Los miembros son pblicos de manera automtica.Una clase puede heredar ms de un interfaz:Cuando una clase hereda un interfaz, nicamente hereda los nombres y firmas del mtodo debido a que el interfaz no contiene implementaciones.

66interface IComparable{

}

{public int CompareTo(object obj){//implementacin de CompareTo}}

int CompareTo(object obj);public class Minivan : Car, IComparableLas interfaces y los miembros de las interfaces son abstractos ya que no proporcionan una implementacin predeterminada.La Minivan hereda del Carro e implementa la interfaz IComparable.67Clases abstractasLa palabra clave abstract le permite crear clases y miembros de clases con el nico propsito de heredarlas (para definir las caractersticas de las clases derivadas).Una clase abstracta no se puede instanciar. El propsito de una clase abstracta es proporcionar una definicin comn de una clase base que pueda compartir mltiples clases derivadas.Las clases abstractas tambin pueden definir mtodos abstractos. Lo anterior se logra al agregar la palabra clave abstract antes del tipo de retorno del mtodo.68{

}public abstract class Apublic abstract void DoWork(int i);Las clases se pueden declarar como abstractas al escribir la palabra clave abstract antes de la palabra clave class en la definicin de clase. Los mtodos abstractos no tienen implementacin y por ello despus de la definicin del mtodo se pone punto y coma en vez de un bloque de mtodo normal. Las clases derivadas de las clases abstractas pueden implementar todos los mtodos abstractos.69Repaso de interfacesUn interfaz es similar a una clase base abstracta.Cualquier tipo que no sea abstracto y que herede la interfaz, debe implementar todos sus miembros.Una interfaz no se puede instanciar de manera directa.Las interfaces pueden contener eventos, indexadores, mtodos y propiedades.Las interfaces no pueden contener la implementacin de mtodos.Las clases pueden heredar ms de un interfaz.Un interfaz puede por s misma heredar mltiples interfaces.

70Clases Abstractas.

Pueden tener un cdigo de implementacin.Se usan para proporcionar clases derivadas relacionadas con firmas de mtodos comunes y tambin mtodos comunes y variables de instancia.Pueden contener variables de instancia.Pueden declarar constantes.

Interfaces.

Son completamente abstractas.Se usan para representar un conjunto de comportamientos abstractos que pueden ser implementados por clases no relacionadas.No pueden contener variables de instancia.Pueden declarar constantes.

71RepasoMencione tres caractersticas de cada uno de los siguientes conceptos:HerenciaInterfazClases AbstractasCul es la diferencia entre una clase abstracta y una interfaz?

72Generalidades de la leccinLos alumnos comprendern el polimorfismo.En esta leccin aprendern:A extender la funcionalidad en una clase despus de heredarla de una clase base.Anular los mtodos en una clase derivada.PolimorfismoPreguntas claveCmo se puede cambiar la funcin de una clase despus de heredarla de una clase base?Cmo se anulan los mtodos?73Activador-Determine el resultadopublic class A{public virtual void say(){ Console.WriteLine(A); }}public class B : A{public override void say(){ Console.WriteLine(B); }}public class C{public static void main(){A b = new B();b.say();}}74TerminologaBase (Base): Es una palabra clave que se usa para tener acceso a los miembros de la clase base a partir de una clase derivada.New (Nuevo): Cuando se usa como modificador, esta palabra clave esconde de manera explcita un miembro heredado de una clase base. Cuando se esconde un miembro heredado, la versin derivada del miembro reemplaza la versin de la clase base.Override (Anular): Es un modificador necesario para prolongar o modificar la implementacin abstracta o virtual de un mtodo, propiedad, indexador o evento heredado.

75Terminologa (contina)Polimorfismo: Es la habilidad para redefinir un mtodo en una clase derivada (una clase que hered sus estructuras de informacin y mtodos de otra clase)Una clase se puede usar como ms de un tipo. Se puede usar como su propio tipo, como cualquier tipo de base o cualquier tipo de interfaz en caso de que implemente interfaces.Sealed (Sellado): No se puede heredar. Un mtodo de sellado anula un mtodo en una clase base, pero no se puede anular a s mismo ms adelante en cualquier clase derivada.Virtual: Es una palabra clave que se usa para modificar un mtodo o una declaracin de propiedad, en cuyo caso, al mtodo o la propiedad se le conoce como miembro virtual.El miembro virtual permite que su implementacin se reemplace dentro de las clases derivadas.

76PolimorfismoSe refiere a la habilidad para redefinir mtodos en una clase derivada y usar una clase como ms de un tipo. Se puede usar como su propio tipo, como cualquier tipo de base o como cualquier tipo de interfaz en caso de que implemente interfaces.No slo es importante para las clases derivadas sino tambin para las clases base. El uso de la clase base, podra ser lo mismo que usar un objeto de la clase derivada que fue casteada para el tipo de clase base.Cuando una clase derivada hereda de una clase base, obtiene todos los mtodos, campos, propiedades y eventos de la clase base.Para cambiar la informacin y comportamiento de una clase base tiene dos opciones: Puede reemplazar el miembro base con un nuevo miembro derivado o puede anular un miembro virtual base.77Uso de la palabra clave NewPara reemplazar un miembro de la clase base con un nuevo miembro derivado es necesario usar la palabra clave new.Si la clase base define un mtodo, campo o propiedad, entonces se usa la palabra clave new para crear una nueva definicin de dicho mtodo, campo o propiedad en una clase derivada.

78Uso de la palabra clave New (contina)La palabra clave new se escribe antes del tipo de retorno del miembro clase que se va a reemplazar .

public class BaseClass{public int WorkField;public void DoWork() { }}public class DerivedClass : BaseClass{public new int WorkField;public new void DoWork() { }}79Uso de la palabra clave New (contina)Cuando se usa la palabra clave new, se llaman a los nuevos miembros de clase y no a los miembros de la clase base que se reemplazaron.A esos miembros de la clase base se les llama miembros ocultos. Los miembros de la clase oculta todava se pueden llamar, si una instancia de la clase derivada se castea para una instancia de la clase base.

DerivedClass B = new DerivedClass();B.DoWork(); // Se llama el nuevo mtodo

BaseClass A = (BaseClass) B;A.DoWork(); // Se llama el mtodo anterior.

80Uso de las palabras clave Virtual y OverridePara que una instancia de una clase derivada controle completamente un miembro clase de una clase base, la clase base tiene que declarar dicho miembro como virtual.Entonces, una clase derivada usa la palabra clave override (anular) y no la palabra new (nuevo) para reemplazar la implementacin de la clase base con la propia.

public class BaseClass{public int WorkField;public virtual void DoWork() { }}public class DerivedClass : BaseClass{public int WorkField;public override void DoWork() { }}81Uso de las palabras clave Virtual y Override (contina)Los campos no pueden ser virtuales; nicamente los mtodos, propiedades, eventos e indexadores pueden ser virtuales.Cuando una clase derivada anula un miembro virtual, entonces dicho miembro se llama an cuando se tiene acceso a una instancia de dicha clase como una instancia de la clase base.

DerivedClass B = new DerivedClass();B.DoWork(); // Se llama al nuevo mtodo.

BaseClass A = (BaseClass) B;A.DoWork(); // Tambin se llama al nuevo mtodo.82Los miembros virtuales permanecen virtualesSi una clase A declara un miembro virtual, la clase B deriva de la clase A y la clase C deriva de la clase B, la clase C hereda el miembro virtual y tiene la opcin para anularlo a pesar de que la clase B declar una anulacin para dicho miembro.

public class A {public virtual void DoWork() { }}public class B : A {public override void DoWork() { }}public class C : B {public override void DoWork() { }}

83Uso de la palabra clave SealedUna clase derivada puede detener la herencia virtual al declarar una anulacin como sellada.En los ejemplos de cdigo en la parte inferior, el mtodo DoWork ya no es virtual para ninguna clase derivada de C. Pero todava es virtual para las instancias de C incluso si estn casteadas para el tipo B o para el tipo A.

public class A {public virtual void DoWork() { }}public class B : A {public override void DoWork() { }}public class C : B {public sealed override void DoWork() { }}

84Uso de la palabra clave Sealed (contina)Las clases derivadas pueden reemplazar los mtodos de sellado al usar la palabra clave new.Si se llama a DoWork en D al usar una variable de tipo D, entonces se llama al nuevo DoWork. Si una variable del tipo C, B o A se usa para tener acceso a una instancia de D, entonces una llamada a DoWork seguir las reglas de la herencia virtual y asignar dichas llamadas a la implementacin de DoWork en la clase C.

public class C : B {public sealed override void DoWork() { }}public class D : C {public new void DoWork() { }}85Uso de la palabra clave BaseUna clase derivada que reemplaz o anul un mtodo, todava puede tener acceso al mtodo en la clase base usando la palabra clave base.

public class A {public virtual void DoWork() { }}public class B : A {public override void DoWork() { }}public class C : B {public override void DoWork() {base.DoWork(); // DoWork de B// comportamientos de DoWork especficos para C}}86RepasoDescriba situaciones en las cuales se usan las siguientes palabras clave. Proporcione cdigo para soportar sus respuestas.Virtual OverrrideBaseNewSealed87Generalidades de la leccinLos alumnos comprendern el encapsulamiento en la programacin orientada a objetos.En esta leccin aprendern:A crear clases que oculten sus detalles de implementacin, mientras siguen permitiendo el acceso a la funcionalidad necesaria a travs de la interfaz.Los modificadores de acceso.EncapsulamientoPreguntas claveCmo se puede escribir una clase para ocultar sus detalles de implementacin, mientras sigue permitiendo el acceso a la funcionalidad necesaria?Cmo se usan los modificadores de acceso para controlar el acceso a los miembros de la clase?

88Activador-De qu manera se parece el encapsulamiento a una caja negra?15EntradadrawCircleSalidaPencil p = new DrawTool();p.drawCircle(15);89TerminologaEncapsulamiento: En la programacin orientada a objetos, el encapsulamiento empaca los atributos (propiedades) y la funcionalidad (mtodos o comportamientos), para crear un objeto que es bsicamente una caja negra cuya estructura interna sigue siendo privada y cuyos objetos pueden ser accesados a travs de mensajes transmitidos mediante una interfaz claramente definida.Internal (Interno): Es un modificador de acceso para las clases y para los miembros de las clases. Se puede tener acceso a los miembros internos solamente dentro de los archivos del mismo conjunto.

90Terminologa (contina)Private (Privado): Es un miembro modificador de acceso. El acceso privado es el ltimo nivel de acceso permisivo. Se puede tener acceso a los miembros privados a travs del cuerpo de la clase en la cual se declararon. Protected (Protegido): Es un miembro modificador de acceso. Un miembro protegido es accesible a travs de la clase en la cual se declar y cualquier otra clase derivada de la clase que declar dicho miembro.Public (Pblico): Es un modificador de acceso para las clases y miembros de las clases. El acceso pblico es el nivel de acceso ms permisivo. No tiene restricciones para el acceso a los miembros pblicos.

91Qu es el encapsulamiento?El encapsulamiento le permite al programador ocultar (encapsular) cierta informacin y funcionalidad de la clase, mientras que da a conocer otra.Los campos de informacin se hicieron privados para restringir el acceso a la clase. pero se asocian con los mtodos accesibles (pblicos) que proporcionan acceso a los datos.Otras clases pueden llamar un mtodo en una clase, pero la implementacin actual del mtodo se oculta en la clase.Lo anterior le permite cambiar el cdigo del mtodo en la clase, sin afectar el cdigo de las clases fuera de la clase.Es ms fcil editar o mejorar un programa ya que se puede centrar los cambios en determinadas clases.

92Qu es el encapsulamiento? (contina)Los campos y mtodos que pertenece al registro de un estudiante se encapsulan en la clase Student.Los mtodos pblicos pueden tener acceso a los campos de informacin privada.

Studentprivate int id;

public int getId() { }public void setId() { }93Qu es el encapsulamiento?Para cambiar el campo id, otra clase tiene que llamar al mtodo pblico setID el cual protege al campo id de nmeros invlidos.

public class Student {private int id;public int getID(){return id;}public void setID(int number){//nicamente admite nmeros positivos.if (id > 0)id = number;}}94Encapsulamiento con propiedadesLas propiedades le permiten a la clase exponer la manera pblica, para obtener y establecer valores mientras oculta la implementacin o la verificacin.Se usa la palabra clave value para definir el valor que le asign el conjunto de indexadores.Las propiedades que no implementan un mtodo set slo son de lectura.Las propiedades que no implementan un mtodo get slo son de escritura.

public class Student {public int Id{ get { return id; } set { if (id > 0)id = value; }}

95Encapsulamiento encargado del accesoLos miembros clase se pueden declarar con cualquiera de los cinco tipos de acceso: public, private, protected, internal y protected internal.El acceso a un miembro nunca puede ser mayor al acceso de su tipo de contenido. Por ejemplo, un mtodo pblico que se declar en un tipo interno, slo tiene acceso interno.public class Tricycle {protected void Pedal() { }private int wheels = 3;protected internal int Wheels{ get { return wheels };}}96Uso de la palabra clave PublicLa palabra clave public es un modificador de acceso para los tipos y los miembros de tipo. El acceso pblico es el nivel de acceso ms permisivo.

public class Sample{public int x;}public class MainClass{public static void Main(){ Sample s = new Sample(); // acceso directo a los miembros pblicos s.x = 15;}}97Uso de la palabra clave PrivateCuando se usa la palabra clave private, los miembros son accesibles nicamente en el cuerpo de la clase en la cual se declararon.

public class Sample{private int x;}public class MainClass{public static void Main(){ Sample s = new Sample(); // private niega el acceso s.x = 15; // no compila}}

98Uso de la palabra clave ProtectedUn miembro protegido es accesible dentro de su clase y por instancias de la clase derivada.Un miembro protegido de la clase base, es accesible en una clase derivada nicamente si el acceso ocurre a travs del tipo de la clase derivada.

public class A{protected int x = 123;}public class B : A { }public class Driver{public static void Main() { A a = new A(); B b = new B(); a.x = 10; // error b.x = 10; // OK}}

99Uso de la palabra clave InternalLos tipos o miembros internos son accesible nicamente dentro de los archivos en el mismo conjunto.Un uso comn del acceso interno, es en el desarrollo basado en componentes, debido a que le permite a un grupo de componentes cooperar de manera privada sin ser expuestos al resto del cdigo de aplicacin.Por ejemplo, una estructura para la creacin de interfaces grficas de usuario (GUIs) puede proporcionar clases de Control y Formularios que cooperan al usar miembros con acceso interno. Debido a que dichos miembros son internos, no se encuentran expuestos al cdigo que est usando el framework.100Uso de la palabra clave Internal (contina)El siguiente ejemplo contiene dos archivos en diferentes ensamblados: Assembly1.cs y Assembly2.cs.El primer archivo contiene una clase base interna, BaseClass. En el segundo archivo, un intento para crear BaseClass ocasionar un error.

// Assembly1.cs, compila con: /target:libraryinternal class BaseClass{public static int x = 0;}// Assembly2.cs, compila con: /reference:Assembly1.dllpublic class TestAccess{public static void Main(){BaseClass myBase = new BaseClass(); // error}}

101RepasoQu es el encapsulamiento y en qu radica su utilidad?De qu manera y cundo se usan los diferentes modificadores de acceso? Proporcione ejemplos de cdigo para soportar su respuesta.PublicPrivateProtectedInternal

102Generalidades de la leccinLos alumnos comprendern la Administracin del ciclo de vida de las aplicaciones (ALM).En esta leccin aprendern:Las fases del ALM.Prueba de software.Administracin del ciclo de vida de las aplicacionesPreguntas claveCules son las fases de ALM y qu pasa en cada fase?En qu etapa de su desarrollo se prueba el software y cmo se prueba?

103ActivadorDe qu manera se relacionan el Ciclo de vida del Software (SDLC) y la Administracin del ciclo de vida de las aplicaciones (ALM)?En qu se diferencian?

TerminologaAdministracin del ciclo de vida de las aplicaciones (ALM): Es una combinacin de prcticas empresariales e ingeniara de software. Las fases de la ALM son: Visin, Diseo, Desarrollo, Prueba y Mantenimiento.Prueba: Sirve para verificar la exactitud de un programa usando varias secuencias y valores de entrada.UML: Son las iniciales de Lenguaje de Modelado Unificado, el cual es un lenguaje que se usa para especificar, construir y documentar software y sistemas que no son de software, como lo son los modelos de negocio. La notacin de UML cuenta con los fundamentos comunes para el diseo orientado a objetos, ya que proporciona descripciones de conceptos de modelado incluyendo la clase objeto, asociaciones, interfaz y responsabilidad. 104Qu es ALM?Es una combinacin de practicas empresariales e ingeniera de software.Las fases de ALM son cinco:Visin, Diseo, Desarrollo, Prueba y Mantenimiento.El objetivo es modelar todo el ciclo a travs del cual el software se desarrolla, gestiona e implementa.Ventajas de la colaboracin en ALMIncrementa la productividad ya que el equipo comparte las mejores prcticas para el desarrollo e implementacin y adems los creadores se pueden enfocar en los requerimientos actuales de las empresas.Reduce el nmero de deficiencias, debido a la falta de comunicacin.Detecta las inconsistencias entre los requerimientos.Acelera el desarrollo.Reduce el tiempo de mantenimiento al sincronizar la aplicacin y el diseo.Incrementa la flexibilidad al reducir el tiempo que toma construir y adaptar aplicaciones que den soporte a nuevas iniciativas de negocios.

105VisinSe evalan las necesidades del cliente y se establecen los criterios para dar seguimiento al progreso del proyecto.Desarrollo del caso del negocioSe evalan los costos, ventajas y el retorno de la inversin.Se desarrollan los planes para la entrega del producto.El proyecto se divide en secciones entregables.Se desarrollan los procesos para medir la calidad del producto y la eficiencia del equipo en el desarrollo del software funcional.

DiseoSe crean modelos para asegurar que el sistema de software cumpla con las necesidades del usuario.Se desarrollan los modelos en diferentes niveles de detalle y se relacionan el uno con el otro para las pruebas y el plan de desarrollo. En las primeras etapas del proyecto, se desarrollan los requerimientos en general, el diseo y las pruebas a un nivel de esquema. 106Lenguaje de Modelado Unificado (UML)Se usa UML para especificar, construir y documentar los sistemas de software.

Cuenta.

Correo

int id

void send ()

Direccin

int destination

void report ()

107DesarrolloEscribe y documenta el cdigo.Escribe y lleva a cabo pruebas unitarias. Identifica cuales las pruebas que deben de aplicarse en caso de que se realice un cambio en particular.Depura y analiza el cdigo.Escribe y lleva a cabo pruebas unitarias. Asocia los cambios en el cdigo con tareas especficas y fallas.Planea y rastrea el progreso de acuerdo a lo planeado.Este proceso es iterativo.108PruebaPrueba unitaria.La prueba de clases se realizan de manera separada a la prueba del programa ya completo.Prueba de integracin.Se combinan las unidades del software y se prueban como grupo.Prueba de regresin.Se aplican las pruebas anteriores a las nuevas versiones del programa.

109Prueba unitariaUna prueba unitaria puede probar toda una clase, un grupo de mtodos o incluso un solo mtodo.El uso de cdigo auxiliar de mtodos, ayuda a evaluar los casos de forma independiente.Se usa un instrumento de prueba para llamar un mtodo con ciertos parmetros y compara los resultados con valores deseados.La ventaja es que cada parte individual de un programa se puede probar para corregirse antes de que interacten entre s.

110Prueba de integracinEn su forma ms simple, dos unidades que ya han sido evaluadas se combinan con un componente y se prueba la interfaz entre ellos.Un componente, en este sentido, se refiere al conjunto de ms de una unidad.Muchas de las unidades se combinan en componentes, los cuales a su vez se agregan a partes aun ms grandes del programa.La idea es probar diferentes combinaciones y eventualmente prolongar el proceso a mdulos de prueba con los otros grupos.111Prueba de regresinOcurre despus de que varias fallas se han descubierto y reparado en versiones anteriores del software.Se crearon las pruebas conforme se fueron encontrando fallas, para verificar que las fallas reparadas realmente funcionen.Estas pruebas se aaden a un conjunto de pruebas y se les conoce como grupo de pruebas de regresin.Estas pruebas se integran en un grupo de pruebas, es decir, un conjunto de pruebas para la prueba de repeticin.La idea es que cuando se hagan cambios para crear nuevas versiones del programa, las pruebas que se usaban pueden ya no funcionar.

112MantenimientoSe monitorea y gestiona la aplicacin implementada.Se realizan actualizaciones para afrontar los nuevos problemas (fallas).Las pruebas slidas disminuirn el ndice de mantenimiento.Los nuevos requerimientos y problemas se tratarn por separado.Los nuevos requerimientos entran en la prxima edicin, mientras que las fallas reparadas se aplican a la edicin actual.

RepasoImagine que va a crear un nuevo software. Proporcione ejemplos de acciones que pueden ocurrir en cada una de las etapas de la ALM:VisinDiseoDesarrolloPruebaMantenimientoDibuje un diagrama UML de su programa imaginario o de un programa que haya creado recientemente. Asegrese de incluir los nombres de las clases y los miembros y adems muestre las relaciones entre las clases.

113Interpretacin de las especificaciones de aplicacinActivadorCmo se usa una especificacin de aplicacin para crear los prototipos, cdigos y componentes que eventualmente formarn la aplicacin?

Qu aspectos de una especificacin de aplicacin son tiles en la creacin de un cdigo para la aplicacin?Si escribiera una especificacin de aplicacin, qu incluira para que fuera fcil de leer y traducir en cdigo?Mencione algunas aplicaciones comunes de software.

114TerminologaAplicacin: Es un programa diseado para ayudar en la funcin de una tarea especfica como el procesador de textos, contabilidad o gestin de inventario.Componente: Es una rutina de software modular individual que ha sido recopilada y vinculada de manera dinmica y se encuentra lista para usarse con otros componentes o programas.Base de datos: Es un conjunto de tablas compuestas por registros; cada una tiene campos junto con un conjunto de operaciones para buscar, clasificar, recombinar y otras funciones.Servicio: En relacin a la programacin y al software, es un programa o rutina que proporciona soporte a otros programas.Aplicacin Web: Es un conjunto de clientes y servidores que cooperan para proporcionar la solucin a un problema.115Qu es una especificacin de aplicacin?Describe los requerimientos tcnicos de una aplicacin.Tambin puede proporcionar informacin que los creadores necesitan para hacer su aplicacin compatible con otras aplicaciones o sistemas.Ejemplo: Cuando se lanz el Servidor de Microsoft Windows 2003, inclua una especificacin de aplicacin que describa los requerimientos que las aplicaciones deban cumplir.La especificacin de aplicacin describe el problema que necesita ser resuelto y comunica los requerimientos al programador.El objetivo es darle al programador la informacin necesaria para llevar a cabo una solucin adecuada.

116Tipos de aplicacionesServicio de WindowsAplicacin WebServicio WebAplicacin de Windows FormAplicacin de consolaAplicacin de Base de datos

117Servicio de WindowsEs un ejecutable que lleva a cabo funciones especificas y est diseado para no requerir de la participacin del usuario.Los ejecutables de servicios de Windows a menudo se configuran para iniciar junto con el sistema operativo y ejecutarse en segundo plano.Por qu un servicio de Windows?Cuando desee que un programa inicie automticamente cuando se inicie el sistema operativo.Cuando su programa no necesite de la participacin del usuario y por consiguiente tal vez no necesite de una interfaz de usuario.Cuando necesite funcionalidad a largo plazo.

118Aplicacin WebSe puede tener acceso a un aplicacin usando el explorador web.Por lo general se componen de tres niveles:El explorador Web (ejemplo: el Explorador de Internet de Windows).El motor de contenido Web (ejemplo: ASP.NET)La base de datos (ejemplo: Servidor Microsoft SQL)Por qu usar una aplicacin Web en vez de una aplicacin tradicional?Fcil de actualizar y mantener.Compatibilidad multi-plataforma.Ejemplos: correo Web, ventas en lnea.

119Servicio WebUn servicio Web proporciona la habilidad de intercambiar mensajes en un ambiente acoplado, utilizando protocolos estndar como el Protocolo de Transferencia de Hipertexto (HTTP) y el Lenguaje de Marcas Extensible (XML). El servicio Web permite el intercambio de informacin y la invocacin remota de la lgica de la aplicacin al usar los mensajes XML, para transmitir informacin a travs firewalls y entre sistemas heterogneos.La nica suposicin entre el cliente y el servidor es que el receptor comprender los mensajes que reciba.

120Aplicacin de Windows FormUn aplicacin de Windows Form, es una aplicacin grfica en la cual se muestra la informacin y se utilizan controles para interactuar con los datos.Por qu usar Windows Form?La interfaz corresponde al sistema operativo y por lo tanto la aplicacin se integra con el escritorioInterfaz de usuario consistenteDemanda de alto procesamientoLa seguridad y la confianza es importanteNo requiere de una conexin a internet

121Aplicacin de consolaUna aplicacin de consola es un programa de computadora diseado para usarse a travs de una interfaz de computadora de texto.Por qu usar una aplicacin de consola?Cuando no es necesario usar un mouse o un dispositivo sealador. Velocidad de implementacin.Fcil de usar.

122Aplicacin de base de datosUna aplicacin de base de datos obtiene y manipula la informacin de una base de datos gestionada por un sistema de administracin de base de datos (DBMS).Las aplicaciones de base de datos tpicas incluyen programas para la entrada de informacin, el despliegue de informacin y el procesamiento por lotes de informacin.Por qu usar un aplicacin de base de datos?Se puede almacenar y recuperar una cantidad mayor de informacin.Interaccin Cliente/Servidor.

123RepasoIdentifique el tipo de aplicacin ms apropiado para cada una de las siguientes situaciones. Justifique su respuesta.Necesita almacenar, ver y actualizar los registros de un empleado incluyendo nombre, edad, direccin e informacin personal adicional.Necesita una aplicacin que inicie cuando se encienda una laptop para que monitoree el uso constante de la batera.Desea vender su producto alrededor del mundo.Necesita crear una aplicacin rpidamente para introducir y obtener datos de texto para y de un archivo de texto.124Preguntas claveCuntas estructuras de datos recuerda? En qu situaciones decidira usar una en vez de otra? Por qu?ActivadorDe qu manera son similares las estructuras de datos?De qu manera son diferentes las estructuras de datos? Algoritmos y estructuras de datos125TerminologaMatriz: Es una lista de valores de datos, todos del mismo tipo, a cualquier elemento de la lista se puede hacer referencia por medio de una expresin que consiste en el nombre de la matriz seguido de una expresin de ndice.Estructura de datos: Es un esquema organizacional, tal como un registro o arreglo, que se puede aplicar a los datos para facilitar la interpretacin de datos o las operaciones realizadas en el.Lista ligada: Es una lista de nodos o elementos de una estructura de datos conectada por apuntadores.

126TerminologaCola: Es una estructura de datos de mltiples elementos, de la cual (por estricta definicin) los elementos se eliminan nicamente en el mismo orden en el cual se insertaron, es decir, sigue la restriccin Primero en entrar-Primero en salir (FIFO).Algoritmo de ordenamiento: Es un algoritmo que coloca una coleccin de elementos de datos en alguna secuencia y algunas veces se basan en uno o ms valores clave en cada elemento.Pila: Representa una coleccin de instancias del mismo tipo, en la cual el ltimo elemento en entrar es el Primero en salir (LIFO).

127Qu es una estructura de datos?Clases que se usan para organizar datos y facilitar diversas operaciones sobre esos datos.El tipo de estructura de datos que se usa en un algoritmo determina su funcionamiento.La eleccin de la estructura de datos depende del contexto. El uso de una pila es mejor cuando se quiere tener acceso a los elementos en el orden Ultimo en entrar -Primero en salir. El uso de una lista vinculada es mejor cuando hay un nmero de inserciones dentro de la estructura de datos.

128MatricesLas matrices son unas de las estructuras ms simples y utilizadas en programacin.Las matrices en cualquier lenguaje de programacin tienen algunas propiedades en comn:El contenido de una matriz por lo general se almacena en memoria contigua.Todos los elementos de una matriz deben ser del mismo tipo o de un tipo derivado, por lo tanto las matrices son estructuras de datos homogneas.Se puede tener acceso directo a los elementos de las matrices. Si se desea tener acceso a un elemento i de una matriz, simplemente utilice la lnea de cdigo: arrayName [i].

129MatricesSi el ndice de una matriz se encuentra fuera de los lmites, entonces se arroja un IndexOutOfRangeException.Para cambiar el nmero de elementos que tiene una matriz, se debe crear una nueva instancia de matriz con el tamao especificado y despus se debe copiar los contenidos de la matriz anterior a la matriz nueva. Es aceptable realizar bsquedas en una matriz sin ordenar, cuando se trabaja con matrices pequeas o cuando se llevan a cabo pocas bsquedas.Si una aplicacin almacena matrices grandes en las que se realizan bsquedas a menudo, se deben utilizar otras estructuras de datos ms adecuadas en lugar de las matrices.

130Ejemplo: Cdigo de una matrizpublic static void Main(){int [] nums = new int[3];num[0] = 23;num[1] = 45;num[2] = 19;Console.WriteLine(ndice 0: + nums[0]);Console.WriteLine(tamao: + nums.Length);for (int i = 0; i < nums.length; i++){Console.WriteLine(nums[i]);}}

131PilasEstructura de datos Ultimo en entrar-Primero en salir (LIFO).No permite el acceso aleatorio a los elementos.Se pueden visualizar de manera grfica como una coleccin vertical de elementos.Cuando un elemento entra a la pila, se coloca hasta arriba de todos los otros artculos.Cuando se elimina un elemento, se remueve de la parte superior de la pila.Resultan de utilidad cuando se necesita tener acceso al elemento agregado ms recientemente.

132PilasLa siguiente animacin muestra los elementos 1,2 y 3 que se colocan dentro de la pila en ese orden y despus un solo pop.

321321

Colocacin en la pilaUn pop133Ejemplo: Cdigo de la pilaPush(), Pop(), y Count

public static void Main(){Stack myStack = new Stack();myStack.Push(1");myStack.Push(2");myStack.Push(3");Console.WriteLine(ltimo en entrar: +myStack.Pop());Console.WriteLine(Elementos faltantes:+myStack.Count);}

134ColasEstructura de datos Primero en entrar-Primero en salir (FIFO).No permite el acceso aleatorio a los elementos.Es ideal para las situaciones en donde el nico inters es procesar los artculos en el mismo orden en el cual se recibieron.Se usan Enqueue() y Dequeue() para introducir y accesar a los elementos en la estructura de datos.

135ColaLa siguiente animacin muestra los artculos agregados 1,2 y 3 en la cola (enqueue) y la eliminacin de un artculo (dequeue).1 231 23En colaFuera de la cola136Ejemplo: Cdigo de una colaEnqueue(), Dequeue(), y Countpublic static void Main(){Queue myQ = new Queue();myQ.Enqueue(1");myQ.Enqueue(2");myQ.Enqueue(3");Console.WriteLine(Primero en entrar: +myQ.Dequeue());Console.WriteLine(Elementos faltantes: +myQ.Count);}137Listas ligadasUna lista de nodos o elementos de una estructura de datos conectados por apuntadores. Una sola lista vinculada tiene un puntero en cada nodo apuntando hacia el prximo nodo en la lista. Una lista doblemente ligada tiene dos punteros en cada nodo los cuales apuntan hacia el nodo prximo y anterior. En una lista circular, el primer y ltimo nodo de la lista se encuentran ligados.No se permite el acceso aleatorio a los elementos.

138Listas ligadasPermite una insercin y eliminacin ms eficiente de los elementos que se encuentran a la mitad de la secuencia.Debido a que solo se puede cambiar los vnculos, la insercin o eliminacin nicamente afecta a los vecinos del elemento insertado o eliminado y no afecta a toda la estructura.La insercin y la eliminacin son independientes del nmero de elementos en la lista, asumiendo que se encontr el punto de insercin o de eliminacin. La bsqueda de un elemento tiene una relacin lineal con el nmero de elementos.139Ejemplo: Cdigo de lista vinculadapublic static void Main(){LinkedList myList = new LinkedList();myList.AddFirst(uno");myList.AddLast(dos");Console.WriteLine(Primer punto:+myList.RemoveFirst());}140Algoritmos de ordenamientoPasos que colocan a una coleccin de elementos de datos en un orden de secuencia, en ocasiones se basa en uno o ms valores clave en cada elemento.Ordenamiento de BurbujaOrdenamiento por SeleccinOrdenamiento por InsercinOrdenamiento de BurbujaCompara cada artculo en la lista con el artculo que sigue despus de el y de ser necesario los intercambia.En un recorrido, el nmero ms grande terminar eventualmente en el ltimo lugar (en caso de que la lista vaya del ms pequeo al ms grande).Repite este proceso N-1 veces, en donde N es el nmero de artculos a ordenar.141Ordenamiento de Burbuja. 5 6 9 7 2 1142Ordenamiento por SeleccinEncuentra el nmero ms pequeo en la lista y lo intercambia por el nmero en el ndice al cual pertenece.En cada recorrido, disminuye la seccin del vector que se tiene que revisar para encontrar el nmero ms pequeo.Repite este proceso de N-1 veces, en donde N es el nmero del artculos a ordenar. 5 6 9 7 2 1143Ordenamiento por InsercinEl primer elemento de una matriz se clasifica con respecto a s mismo. La matriz est compuesta de una parte ordenada y de otra parte sin ordenar.Los elementos de la parte no ordenada se insertan en el orden correcto dentro de la parte clasificada, uno a la vez.Para crear el punto de insercin, se bajan los elementos para hacer espacio.Repite este proceso N-1 veces, en donde N es el nmero de artculos a ordenar. 5 6 9 7 2 1144RepasoQu especificaciones de programa pueden darse para que un programador seleccione cada una de las siguientes estructuras de datos? Por qu?MatricesPilasColasListas ligadasDescriba los pasos a seguir para el ordenamiento de los siguientes datos usando el ordenamiento de burbuja, el ordenamiento por seleccin y el ordenamiento por insercin.5624831

145Desarrollo de pginas Web Preguntas claveQu es HTML y como se usa? Qu es CSS y de qu manera mejora a HTML?Qu es JavaScript y de qu manera mejora a HTML?

ActivadorQu significan las siglas HTML?Qu significan las siglas CSS?De qu manera se relaciona JavaScript con Java?

146Terminologa.Hoja de estilo en cascada (CSS): Es una especificacin del Lenguaje de Marcado de Hipertexto (HTML), desarrollado por el Consorcio World Wide Web (W3C) el cual permite a los autores de los documentos y usuarios de HTML anexar hojas de estilo a los documentos HTML.HTML: Son las siglas de Lenguaje de Marcado de Hipertexto; el lenguaje de marcado se usa para los documentos en la World Wide Web. Se usa un lenguaje de notacin basado en etiquetas, para dar formato a documentos que posteriormente puede interpretar y traducir un navegador de Internet. JavaScript: Es un lenguaje de secuencia de comandos, desarrollado por Netscape Communications y Sun Microsystems el cual se encuentra relacionado de manera indirecta con Java. Sin embargo. JavaScript no es un verdadero lenguaje orientado a objetos y se encuentra limitado en funcionamiento en comparacin con Java debido a que no se encuentra compilado.147Qu es HTML?El lenguaje que los servidores Web y los navegadores usan para definir los elementos de una pgina Web.HTML usa etiquetas para marcar elementos en un documento, tales como lo son un texto o una grfica e indica de qu manera los navegadores Web debern mostrar dichos elementos al usuario y la forma como debern responder a las acciones del usuario mismo, como lo puede ser son la activacin de un vnculo a travs de una tecla o un clic del mouse. Ejemplos de etiquetas:

148Qu es HTML? (contina)Se usa principalmente para darle formato a la informacin de una pgina.No contiene ningn soporte avanzado para llevar a cabo operaciones complejas, nicamente sirve para disear los contenidos de una pgina Web de manera legible.Cuando el navegador recibe un documento HTML, convierte la descripcin HTML a una presentacin en pantalla.

149Qu es HTML? (contina)Es un lenguaje basado en textos que se puede ver y modificar en un editor de texto estndar como el Bloc de Notas.Consiste en el texto en la pgina Web junto con las etiquetas de instruccin, que le indican al navegador como se debe mostrar el texto.Especifica elementos como el tamao de letra que se debe usar en determinadas secciones del texto, en qu parte se deben mostrar las imgines incrustadas y tambin los hipervnculos que permiten enlazarse a otras pginas Web.

150Ejemplo de cdigo HTMLEl cdigo HTML consiste de una serie de etiquetas representadas por parntesis angulares a los lados del nombre de la etiqueta como la etiqueta . Al final del documento se encuentra otra etiqueta . La diagonal indica que esta es la etiqueta final, la cual corresponde a la etiqueta que se encuentra al inicio del documento. Todo lo que hay entre las dos etiquetas se le llama elemento .Contenido aqu.

MuestraContenido aqu.151

Qu es una Hoja de estilo en cascada?Es un lenguaje/cdigo que separa de manera total el texto que se muestra en la pgina Web (el cual se cre en cdigo HTML) y la informacin que describe cmo mostrar dicho texto.Incluye informacin tipogrfica de cmo debe mostrarse la pgina, tal como el tamao de fuente del texto en la pgina.Especifica la forma en la cual se combinarn las hojas de estilo para un documento HTML y el estilo del usuario.

152Por qu usar CSS?Mejora la accesibilidad del contenido, al permitir que se muestre el mismo contenido en diferentes estilos, dependiendo del mtodo de interpretacin: en la pantalla, por voz o usando dispositivos Braille.Permite ms flexibilidad y control sobre la manera en la cual se presenta el contenido.Proporciona una manera ms eficiente para que diferentes pginas compartan el mismo formato.

153Ejemplo de cdigo CSSLa primera seccin del cdigo de la hoja de estilo, define que todo el contenido dentro del elemento body del HTML, usar la fuente Verdana con un tamao 9 y que se alinear a la derecha.body{font-family: Verdana;font-size: 9pt;text-align: right;}div{font-family: Georgia;}

154Cliente vs Servidor.Se ingresa un Localizador Uniforme de Recursos (URL) o se da clic en un enlace y el navegador solicita al servidor esa pgina en particular. (1)El servidor encuentra la pgina, la abre y la ejecuta dentro de la secuencia de comandos para el servidor. (2)Despus de que se procesan las secuencias de comando del servidor, los resultados se envan de vuelta al navegador. (3)El resultado es una pgina que se cre en cdigo HTML y CSS y de manera opcional el cdigo de las secuencias de comando del cliente. Si en la pgina se encuentra un cdigo de secuencia de comandos del cliente (por ejemplo JavaScript), el buscador lo procesar y lo mostrar al usuario. (4)

1. Peticin de una pgina web.3. Entrega de la pgina web resultante2. Secuencia de comandos del Servidor.ServidorNavegador del Cliente2. Secuencia de comandos del Cliente.

155Secuencia de comandos del ServidorASP.NET, ASP o PHP.Se usa para crear pginas Web por peticin.Toda la informacin de las pginas ser actual, ya que se crea momentos antes de enviarse de vuelta al navegador.Ejemplos: tiendas en lnea, sitios de subasta, foros en lnea y publicaciones.

156Secuencia de comandos del ClienteSe usa para crear pginas interactivas despus de que se envan al navegador.Una aplicacin comn es para verificar la informacin que el usuario ingres en una aplicacin de la pgina.Si el usuario olvida ingresar su nombre completo o escribe mal su direccin de correo electrnico, la secuencia de comandos del cliente dar aviso al cliente.Ms respuesta y rapidez para el usuario, a diferencia de la secuencia de comandos del servidor, el cual depende del servidor y de la velocidad del Internet entre el usuario de la computadora y el servidor.

157Qu es JavaScript?Es un lenguaje de secuencia de comandos ejecutados del lado del cliente que se usa en millones de pginas Web.Agrega interactividad al navegador y a las pginas Web.Complementa los tan populares lenguajes de programacin del servidor adems de las plataformas como ASP.NET.Por qu usar JavaScript?Permite el contenido dinmico (mientras que HTML es esttico).Agrega funcionalidad, interactividad y efectos dinmicos.Por ejemplo, JavaScript permite mostrar la fecha actual de la pgina Web, sin tener que editar el cdigo y actualizarlo para el servidor cada noche.158Ejemplo: Cdigo de JavaScript

My page