35
CONTENIDOS DE LA ASIGNATURA. UNIDAD 01: INTRODUCCION DE LA PROGRAMACION. Tema 1.1 Conceptos Generales y Terminología de la Programación. Introducción: Los cambios tecnológicos de nuestra era implican una amplia gama de conocimientos en el área, razón por la cual se vuelve fundamental se vuelve fundamental mantenerse actualizado con la terminología informática que cada día absorbe a más usuarios; los que antes se consideraban términos raros y de uso técnico ahora se encuentran en nuestro vocabulario común y son usados por muchas personas indistintamente de su profesión. En esta unidad se parte de las definiciones de informática: Computadoras, clasificación y dispositivos; programación, lenguaje y sintaxis; concluyendo con la definición de sistemas y sus elementos. Al concluir con este contenido el estudiante podrá definir fácilmente la terminología relacionada y aplicarla a su vocabulario técnico identificando los conceptos y terminología de programación. Conceptos Generales. Informática: Es una disciplina que incluye diversas técnicas y actividades relacionadas con el tratamiento automático y lógico de la información.

Portafolio de Fundamentos de Programación.docx

Embed Size (px)

Citation preview

CONTENIDOS DE LA ASIGNATURA.

UNIDAD 01: INTRODUCCION DE LA PROGRAMACION.Tema 1.1 Conceptos Generales y Terminologa de la Programacin.

Introduccin: Los cambios tecnolgicos de nuestra era implican una amplia gama de conocimientos en el rea, razn por la cual se vuelve fundamental se vuelve fundamental mantenerse actualizado con la terminologa informtica que cada da absorbe a ms usuarios; los que antes se consideraban trminos raros y de uso tcnico ahora se encuentran en nuestro vocabulario comn y son usados por muchas personas indistintamente de su profesin.En esta unidad se parte de las definiciones de informtica: Computadoras, clasificacin y dispositivos; programacin, lenguaje y sintaxis; concluyendo con la definicin de sistemas y sus elementos. Al concluir con este contenido el estudiante podr definir fcilmente la terminologa relacionada y aplicarla a su vocabulario tcnico identificando los conceptos y terminologa de programacin.

Conceptos Generales.Informtica: Es una disciplina que incluye diversas tcnicas y actividades relacionadas con el tratamiento automtico y lgico de la informacin.Computadora: Mquina de propsito general que procesa datos de acuerdo al conjunto de instrucciones que estn almacenadas internamente.Hardware: Son todos los dispositivos fsicos utilizados en el procesamiento de datos, que en su conjunto forman una computadora o un sistema de computo. Comnmente se dice que hardware es todo lo que el usuario puede ver y tocar en un sistema de computacin.Software: Es la parte intangible de la computadora.- Esta constituido por todos los programas que hacen funcionar el hardware.Sistema Operativo: Es un programa bsico que controla una computadora.Informacin: Es el conjunto de datos que al procesarse, se transforman y adquieren un significado.Sistema: Es un conjunto de elementos que se interrelacionan entre si para el logro de un objetivo o fin comn.Entradas: Estn constituidas por todos aquellos datos que se van a ingresar en un sistema, teniendo como objetivo principal mantener temporalmente los datos introducidos antes de ser procesados.Procesos: Su objetivo primordial es transformar los datos capturados en resultados o salidas, realizando las operaciones que sean necesarias. Salidas: Contiene los datos que han convertido en informacin para los usuarios finales.

Terminologa de la Programacin.Programacin: Tambin llamada desarrollo de software, es un procedimiento de pasos para la produccin de un programa para computadora.Programa: Es una lista de instrucciones que la computadora debe seguir para realizar la tarea de procesar datos y convertirlos en informacin.Lgica: Ciencia formal que tiene por objeto el estudio del razonamiento.Lgica en Programacin: Se define como una secuencia de instrucciones dentro de un programa dando soluciones a un problema.Programador: Es la persona que disea la lgica y escribe el cdigo de un programa para instruir a la computadora.Instrucciones: Conjunto de caracteres que se utilizan para dirigir un sistema de procesamiento de datos, es decir, la ejecucin de una operacin.Lenguaje: Conjunto de reglas e instrucciones convencionales que se utilizan para comunicarse con otras personas.Lenguaje de Programacin: Conjunto de caracteres que nos permiten crear instrucciones siguiendo una sintaxis.

Tema 1.2 Importancia de la programacin.

Tcnicas de la Programacin.1- Programacin Estructurada: Su objetivo es redactar sistemticamente algoritmos correctos y debe de aplicarse en forma clara, sencilla y fcil evitando el uso indiscriminado de las transferencias de control incondicional entre las diferentes partes de un programa.2- Programacin Modular: Es un mtodo de diseo que permite resolver un problema mediante su descomposicin en problemas ms simples o mdulos que se pueden analizar, programar y poner a punto independiente.3- Programacin Orientada a objetos (POO): Se trata de una tcnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilizacin de los objetos. El elemento principal de la programacin orientada a objetos es el objeto. El objeto es un conjunto completo de datos y programas que poseen estructura y forman parte de una organizacin.

Importancia de la Programacin.

La programacin es importante para el programador porque sta le proporciona conceptos, tcnicas, metodologas, herramientas y estructuras para la construccin de programas de alta calidad y a la medida de los usuarios finales.Operadores.Son necesarios para realizar operaciones entre valores numricos.- Entre ellos existen los operadores.Operadores Aritmticos: Permiten realizar operaciones entre operando: tales como nmeros, variables temporales o constantes.- Tambin puede ser procesadas utilizando operaciones y funciones adecuadas a sus tipos.- El resultado de una operacin aritmtica siempre es un nmero.Operadores Relacionales: Se utilizan para comparar dos operadores, que pueden ser nmeros, caracteres, cadenas de caracteres, constantes o variables.- Son aquellos que se utilizan para expresar condiciones, ya que describe una posible relacin entre dos valores.

Operadores Lgicos: Permiten formular condiciones complejas a partir de condiciones simples, son de conjuncin, disyuncin y negacin.

UNIDAD 2: METODOLOGIA QUE PERMITEN DESARROLLAR ACTIVIDADES BASICAS DE LA PROGRAMACION.

2.1 Definicin del Problema.

Est constituido por un texto o enunciado que nos permitir saber qu es lo que se pretende solucionar y nos proporcionara informacin til para el anlisis de variables o planeacin del problema.

2.2 Anlisis de Variables.

Nos permite entender por completo el problema y dejar en claro Cul es la informacin til que se nos da?, Qu otra nos hace falta?.

Sus elementos:Entradas: Son los datos desconocidos que hacen falta para resolver el problema.Proceso: Aplicaciones de frmulas y operaciones que sean necesarias para resolver el problema.

Salida:Resultados que se desea obtener es decir la informacin.

Datos adicionales:Se define como los datos que nos proporcionan la definicin del problema, constante, intereses, porcentajes, descuentos, entre otros.

2.3 ALGORITMO.Se define como una serie de pasos ordenados encaminados a resolver un problema, debe ser escrito en forma clara y fcil de entender, es decir explicando con nuestras propias palabras, como se resolver el problema. El sistema para describir (escribir) un algoritmo consiste en hacer una descripcin paso a paso con un lenguaje natural del citado algoritmo.

LAS CARACTERISTICAS QUE DEBE CUMPLIR UN ALGORITMO SON:

Debe ser preciso e indicar el orden de realizacin de cada paso. Debe estar definido, si se sigue un algoritmo dos veces se debe tener el mismo resultado. Debe ser finito, si se sigue un algoritmo se debe terminar en algn momento.

2.4 DIAGRAMAS DE FLUJO DE DATOS O FLUJOGRAMAS.

Una tcnica de diseo que permite la documentacin de un sistema o programa en barrios niveles de generalidad.

2.4.1 SIMBOLOS UTILIZADOS PARA LA ELABORACION DE FLUJOGRAMA.

INICIO O TERMINAL: representa el inicio y el final de un programa.Puede representar tambin una parada o interrupcin programada que sea necesaria realizar en un programa.

ENTRADA/SALIDA EN PANTALLA: significa introduccin de datos en la memoria desde los perifricos de entrada o registros de informacin procesada o salida.

PROCESO: Cualquier tipo de operacin que pueda originar cambio de valor formato o posicin de la informacin almacenada en memoria entre ellas operaciones aritmticas.

DECISIN: Indica operaciones lgicas o de comparacin entre datos, generando una salida falsa o verdadera.

CONECTOR DE PROGRAMA: Sirve para enlazar dos partes cualesquiera de un flujograma a travs de un conector de salida y otro conector en la salida.- Se refiere a la conexin en la misma pgina.

CONECTOR DE PAGINA: Conexin entre dos puntos de flujograma situado en pginas diferentes.

LINEA CONECTORA: Sirve de unin entre dos smbolos.

INDICADOR DE DIRECCIN: O lnea de flujo indica el sentido de ejecucin de las operaciones.

IMPRESORA: Se utiliza para generar la salida de los programas en papel.En ocasiones en lugar de smbolo de entrada/salida.

COMENTARIOS: Se utiliza para aadir comentarios clasificadores a otros smbolos del diagrama de flujo. Se puede dibujar en cualquier lado del smbolo.

ESTRUCTURA REPETITIVA: Permite la ejecucin de un ciclo de acciones dos o ms veces.

2.4.2 REGLAS PARA ELABORAR UN DIAGRAMA DE FLUJO.

Todos los flujo gramas tienen un principio y un final. Las lneas de conexin de un flujo deben de ser siempre rectas, verticales y horizontales. Las lneas que enlazan los smbolos entre si deben estar todas conectadas y cada lnea debe de entrar a un bloque. La visualizacin del recorrido del flujo grama deben de ser desde arriba hacia abajo. Realizar un grfico claro, equilibrado procurando que el flujo central quede en la parte central de la pgina. Evitar la utilizacin de la terminologa especifica de un lenguaje de programacin Indicar con comentarios al margen del flujo grama las variables utilizadas. Al comienzo del diagrama de flujo debe dejarse uno o dos bloque de procesos libres. En las operaciones lgicas preferir la lgica positiva que la negativa. Cada bloque puede tener diferentes entradas, pero su salida es nica a excepcin de la estructura condicional o de decisin. Realizar todas las anotaciones o comentarios al final del flujo grama. Utilizar correctamente los conectores de pagina o de programas.

2.5 Codificacin y edicin del programa. La codificacin consiste en traducir el diagrama de flujo a instrucciones de un lenguaje de programacin especficos, es decir, la elaboracin del programa. La edicin consiste en introducir el programa a la computadora por medio de editor de texto o el editor de un lenguaje de programacin.

2.6 Prueba y Depuracin. Una vez que se ha introducido el programa a la computadora, debe probarse continuamente, ejecutando el programa hasta concluir con los resultados deseados y que tengan errores. Para ello se beben preparar datos de prueba en papel, as como su solucin para compararlo con los resultados que obtenga la computadora. si el programa tiene errores sintcticos estos pueden corregirse simplemente consultando un libro de instrucciones del lenguaje de programacin que utilizan el programador; no as si el problema es de lgica, en este caso debe revisarse y corregirse desde el algoritmo.

2.7 Documentacin del problema Una vez desarrollados los pasos anteriores de la metodologa de solucin del problema, esta debe de pasar en limpios y quedar archivada en un folder llamando a esta accin documentacin.Adems debe de incorporarse un listado de programas impresos por computadora, al igual que las pruebas ejecutadas.

UNIDAD 03: ESTRUCTURAS LOGICAS FUNDAMENTALES Y EXTENDIDAS.

Tema 3.1: Estructuras de Control.Son construcciones mediante las cuales se escribe la lgica de los programas, son empleados y definidos de manera ordenada y sistemtica para dirigir el flujo de acciones que el procesador efectuara sobre los datos que se manejan en un programa.Entre las estructuras de control se encuentran: Estructura de Secuenciacin o Secuencial. Estructuras de Decisin o condicional. Estructuras de Hacer - Mientras.

3.1.1: Estructura de Secuenciacin o Secuencial.Es aquella en que una accin sigue a otra en secuencia lgica y ordenada. La accin 2 se ejecuta despus de la accin 1y ninguna accin puede ejecutarse entre ellas. La accin 3 sigue a la accin 2. Y as sucesivamente. 3.1.2: Estructura condicional o de decisin.Esta estructura lgica, permite la toma de decisiones en un programa, es decir, que las soluciones a este tipo de problemas son una serie de acciones en las que la ejecucin de algunas depender de que se cumplan una o varias condiciones.Cuando el programador desea especificar dos o ms caminos alternativos en un programa se deben utilizar una estructura de decisin, que evala una condicin obteniendo una sola salida.Qu es una condicin? Es aquella que se establece por medio de una expresin lgica que puede ser simple o compuesta. Por tanto solo puede tomar dos valores: falso o verdadero.Condiciones simplesUna condicin simple se identifica porque est constituida nicamente por una condicin A>B utilizando los operadores irracionales. Condiciones compuestasUna condicin compuesta, se identifica porque para solucionarla se necesita establecer ms de una condicin utilizando operadores lgicos relacionales, aritmticos y de asociacin.

3.1.3 Estructura Hacer MientrasEs la ms importante desde el punto de vista de la programacin porque permite la ejecucin de un conjunto de instrucciones cuantas veces sea necesario.Tambin se llama estructura repetitiva a aquellas operaciones en cuya solucin es necesario utilizar un mismo conjunto de acciones que puedan ejecutarse ms de una vez. Para solucionar problemas repetitivos recurriremos al uso de ciclos, que nos evitaran escribir muchas veces un conjunto de acciones.Elementos que constituyen la estructura repetitiva. Ciclo: Es la ejecucin de un mismo conjunto de acciones dos o ms veces. Proces: Conjunto de acciones a los que se les asigna un nombre, es decir, la operacin a realizar. Cuerpo del ciclo: Se considera una parte importante del siclo en donde se ejecutara un proceso dos o ms veces. Estructura cclica: Conjunto de acciones que permiten que el cuerpo del ciclo se ejecute dos o ms veces. La iteracin: se define como cada una de las ejecuciones del cuerpo de ciclo.

Tema 3.2 Estructura Lgicas Extendidas.Con el objeto de proporcionarles a los programadores otras estructuras que faciliten las actividades de programar se agregan las siguientes. Hacer - desde hasta incremento Hacer hasta que Hacer caso seleccionar caso 3.2.1 Estructura Hacer Desde Hasta IncrementoA esta estructura se le considera una de las ms tiles en la programacin y por ello la proveen casi todos los lenguajes de programacin.Funciona de la siguiente manera: Se inicializa una variable numrica denominada ndice de lazo con el valor que resulte al evaluar la expresin aritmtica 1 (expo 1). Si el valor del ndice no excede al valor que resulta de evaluar la expo 2 entonces: Se ejecutan las instrucciones D-H-I. Se incrementa el valor del ndice con el valor de expo 3. Se repite el paso 2 y si no se ejecuta la siguiente estructura en el flujo de ejecucin del algoritmo. 3.2.2 Estructura Hace Hasta Que Esta estructura repite la ejecucin de un conjunto de instrucciones hasta que tome el valor de cierto. La condicin se ubica al final del ciclo; el conjunto de acciones se repetir hasta que cumpla la condicin sino cumple sigue interactuando.Funciona de la siguiente manera: Se ejecutan las instrucciones hasta que. Se evala la condicin si el valor es falso entonces se repite paso 1, sino se sale de la estructura, es decir, que ejecuta las siguientes estructuras normales de un algoritmo. Las instrucciones se ejecutaran al menos una vez antes de evaluar la condicin. 3.2.3 Estructura Hacer Caso o seleccionar caso.Permite asociar un conjunto de condiciones a un conjunto de acciones que se excluyen mutuamente.La estructura se conoce como case y permite una desviacin del flujo de control hacia mltiples procesos en funcin del resultado de la evaluacin de una expresin o indicador. Es decir; que permite seleccionar las instrucciones que deben ser ejecutadas dependiendo del valor de una expresin aritmtica.exp =opcin Funciona de la siguiente manera: Se evala la expresin aritmtica expo que es la opcin a seleccionar Si el valor se expresin =1 entonces se ejecutan las acciones caso 1. Sino expresin =II se ejecutan acciones caso II y si la expresin=caso n, entonces se ejecutan las instrucciones excepcin o caso error y sale de la estructura. El valor de la expresin debe ser siempre un entero positivo Tema 3.3 Estructura de datos Una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulacin. Un dato elemental es la misma informacin que se tiene en un sistema. Una estructura de datos define la organizacin e interrelacin de estos y un conjunto de operaciones que se pueden realizar sobre ellos. Las operaciones bsicas son: Alta, adicionar un nuevo valor a la estructura. Baja, borrar un valor de la estructura. Bsqueda, encontrar un determinado valor en la estructura para realizar una operacin con este valor, en forma secuencial o vinario (siempre y cuando los datos estn ordenados).Las estructuras de datos ms comunes son: Arreglos (Matrices). Colas. Pilas. Listas Enlazadas.Arreglos: Un arreglo es un conjunto finito ordenado de elementos homogneos, la propiedad de ordenacin significa que es posible identificar el primero, segundo, tercero y el ensimo elemento del arreglo, un arreglo puede ser un conjunto de elementos de tipo cadena en tanto que otro puede ser de tipo entero.Arreglos Bidimensionales.Un array bidimensional se puede considerar como un vector de vectores. Es decir un conjunto de elementos todos del mismo tipo, en el cual el orden de de los componentes es significativo y en el que se necesitan especificar dos subndices para poder identificar cada elemento del arreglo.Arreglos Multidimensionales.Existe grupos de datos que se representan mejor en forma de tabla o matriz cada dos o ms subndices a esos les llamamos arreglos multidimensionales.Colas.En las colas el elemento que entro en el primer lugar tambin es el primero en salir por ello se conocen como listas FIFO (first in first out).Pilas.Una pila es un tipo de lista lineal en la que la insercin y borrado de nuevos elementos solo se pueden realizar por un extremo que se denomina tope o cima.Listas Enlazadas.Se pueden almacenar los elementos de una lista lineal en posiciones que no sean contiguas o abyacentes, una lista enlazada es un conjunto de elementos en la que cada elemento contiene la posicin o direccin del siguiente elemento de la lista, cada elemento de lista debe tener al menos dos Cam

UNIDAD 4: PROGRAMACION ORIENTADA A OBJETOS

INTRODUCCIONEn esta unidad estudiaremos uno de los paradigmas de programacin mas utilizadas en la actualidad: La Programacin Orientada a objetos. Esta forma de programar se acerca a como vemos el mundo en nuestra realidad. Empezamos estudiando algunas razones por las que esta forma de programacin est siendo mayormente aceptada en la actualidad. Un objeto es entidad que posee caractersticas propias. Los objetos tienen propiedades, mtodos y eventos. Los objetos pertenecen a clases que son como la familia principal que agrupa unconjunto de objetos. En la Programacin Orientada a Objetos encontramos caractersticas fundamentales como la herencia, el encapsulamiento y el polimorfismo. Por ltimo estudiamos un poco los objetos compuestos y su estructura. Con el estudio de esta unidad el estudiante tendr la base terica para empezar a hacer uso de lenguajes de programacin orientados a objetos que sern incluidos en la parte prctica de esta unidad Conociendo lospilares de programacin orientada a objetos mostrando un espritu investigador que no cese en su bsqueda de informacin actualizada de manera responsable, analtica y colaborativa.

4.1 QUE ES LA PROGRAMACION ORIENTADA A OBJETOS?

La programacin Orientada a objetos (POO) es una forma especial de programar, ms cercana a como expresaramos las cosas en la vida real que otros tipos de programacin.

4.2 RAZONES FUNDAMENTALES QUE ESTN INFLUYENDO EN LA IMPORTANCIA DE LA POO

Algunas de las causas que estn "influyendo considerablemente en el notable desarrollo de las tcnicas orientadas a objetos son:

La 00 (orientacin a objetos) es especialmente adecuada para realizar determinadasaplicaciones, sobre todo realizacin de prototipos y simulacin de programas

Los mecanismos de encapsulacin de POO soportan un alto grado de reutilizacin decdigo, que se incrementa por sus mecanismos de herencia.

En el entorno de la base de datos, la POO se adjunta bien a los modelos semnticos dedatos para solucionar las limitaciones de los modelos tradicionales.

Aumento espectacular de los lenguajes de programacin orientados a objetos.

Interfaces de usuarios grficos [por iconos) y visuales. Las interfaces de usuarios de unaaplicacin manipulan la entrada y salida del usuario. Por consiguiente, su funcin principales la comunicacin con el usuario final.

4.3 UN MUNDO DE OBJETOS

4.3.1 DEFINICION DE OBJETOS:

Los objetos son entidades que se pueden distinguir de manera clara y definida, ejemplos de un objeto pueden ser una persona, un libro, un botn de orden.Un objete adems de un estado interno, presenta una interfaz para poder interactuar con el exterior. Es por esto por lo que se dice que en la programacin orientada a objetos "se unen datos y procesos".

4.3.2 IDENTIFICACION DE OBJETOS UN OBJETO CONSTA DE:

* TIEMPO DE VIDA: La duracin de un objeto en un programa siempre est limitada en el tiempo. La mayora de los objetos slo existen durante una parte de la ejecucin delprograma. Los objetos son creados mediante un mecanismo denominado instanciacin, y cuando dejan de existir se dice que son destruidos.

* ESTADO: todo objeto posee un estaco, definido por sus o tributos. Con l se definen las propiedades del objeto, y el estado en que se encuentra en un momento determinado de su existencia. El estado de un objeto es la apariencia que el objeto presenta al usuario, y

Depende del valor que tenga sus propiedades. Un camino de estado se logra alterando al menos una de las propiedades del objeto.

COMPORTAMIENTO: Todo objeto es de presentar una Interfaz, definida por sus mtodos,para que el resto de objetos que componen los programas puedan interactuar con l.

El equivalente de un objeto en el paradigma estructurado sera una variable. As mismo la instanciacin de objetos equivaldra a la declaracin de variables, y el tiempo de vida de un objeto al mbito de una variable.

Identificacin de objetos:En el entorno de procesos de programacin, en el paso de la anlisis del problema, el elemento central del objeto, es decir, se estudia el problema y se identifica los objetos, involucrados y sus relaciones

Duracin de objetos es un objeto en un programa siempre est limitado en el e tiempo la duracin (la mayora de los objetos solo existe durante la duracin del programa)

Objetos frente a claseLa clase es una representacin abstracta que describe un conjunto de objetos, en otras palabras, es un tipo de datos abstractos que representa un conjunto de objetos que tiene un comn una misma estructura.

Datos internos Datos son internos, nada que datos, esos datos son variables.Clases ejemplos:Crear X entero=oCrear Y=0

4.4 COMUNICACIN ENTRE OBJETOS

El mensaje es esencialmente una orden que se enva a un objeto para indicarle que realice alguna accin. Tambin se define mensaje como la informacin completa que un objeto emisor transmite hacia un objeto receptor. Un mensaje contiene tres elementos: el objeto receptor, el tipo de evento y los datos necesariospara el receptor.

Comunicacin entre objetos:Los objetos se comunican entre si mediante mensajes

4.41 Activacin de objetos:

A los objetos solo se le puede accede a travs de su interfaz pblica. (Como se permite el acceso a objetos) un objeto accede envindole un mensaje.

4.4.2 MENSAJE.

Cuando se produce un evento, el objeto receptor sabe cul es et objeto emisor, que evento se produjo y el valor de los datos asociados con dicho evento.

4.5 ESTRUCTURA INTERNA DE UN OBJETO

La estructura interna de un objeto est compuesta por tres elementos fundamentales como son;

4.5.1 Atributos.

Son datos que diferencian un objeto de otros; el conjunto de ellos constituye sus estado, cada objeto almacena informacin acerca de su estado actual y en un momento dado este corresponde a un seleccin determinada de valores posibles de diversos atributos, estos ltimos son propiedades o caractersticas de un clases y describen un rango de valores.

4.5.2 MTODOS:

Se define como un conjunto de acciones que un objeto puede realizar paraconseguir un propsito. Los mtodos representan la parte viva e interesante de unobjeto y se emplean habitualmente para modificar las propiedades del objeto. Almodificar cualquiera de las propiedades del objeto se altera su apariencia y se generaun cambio qua el usuario de te aplicacin puede percibir.

4.6 LAS CLASES.

Los objetos estn organizados en familias claramente delimitadas. Una familia se reconoce porque rene un grupo de objetos que heredan elementos entre s. El modelo de programacin visual, al igual que la naturaleza., organiza los objetos en clases (famiasX as una case es el conjunto de objetos que pertenecen a una misma familia. Por ejemplo David Beckham, Lionel Messi, Cristiano Ronaldo son ejemplos de la clase: Jugadores de Ftbol, sin embargo personas especficas con nombres especficos son miembros de esa clase si poseen ciertas caractersticas comunes. E modelo de programacin visual permite as organizar las familias de objetos en un orden jerrquico.

4.7 HERENCIA.

Un objeto es heredero de otro cuando posee todas sus propiedades y todos sus mtodos y reconoce todos sus eventos, aunque pueda disfrutar de propiedades, mtodos y eventosadicionales. Se define la herencia como la caracterstica que tienen los objetos de derivarse unos de otros. Por otra parte la herencia supone una ciase base y una jerarqua de clases que contienenlas clases derivadas de la clase base, as las clases derivadas pueden heredar \a$ propiedades y mtodos de una clase base, aadiendo sus propios mtodos y propiedades, incluso cambiar aquellos elementos de la clase base que necesiten sean diferentes.

4.7.1 TIPOS DE HERENCIA:

Existen dos tipos de herencia

HERENCIA SIMPLE: En esta jerarqua cada clase tiene como mximo una sola superclase. Laherencia simple permite que una ciase herede las propiedades y mtodos de su superclase en una cadena jerrquica.

HERENCIA MLTIPLE: Una malla o retcula consta de clases, cada una de las cuales pueden tener dos o ms superclases inmediatas. Una herencia mltiple es aquella en la que cada clase puede heredar las propiedades y mtodos de cualquier nmero de ciases.

CARACTERISTICAS DE LA HERENCIA

ANULACIN O SUSTITUCIN:

cuando redefino un mtodo heredado en la subclase, se dice que estoyANULANDO O SUSTITUYENDO DICHO MTODO. Sera deseable una "herencia selectiva": seleccionar lo que se requiere heredar es la mejor forma de anulacin.SOBRECARGA: Propiedad que puede darse tambin sin herencia. Es designar varios elementos (identificadores) con el mismo nombre. No es anulacin.

4.7.2 CLASES ABSTRACTAS

Con frecuencia, cuando se disea un modelo orientado a objetos es til introducir clases a ciertoNivel que pueden no existir en la realidad pero que son construcciones conceptuales tiles .Estas clases se conocen como clases abstractas.Una clase abstracta normalmente ocupa una posicin adecuada en la jerarqua de clases que le permite actuar como un depsito de mtodos y atributos compartidos para las subclases de nivel inmediatamente inferior.Las clases abstractas no tienen instancias directamente. Se utilizan para agrupar otras clases y capturar informacin que es comn al grupo. Sin embargo, las subclases de clases abstractas quecorresponden a objetos del mundo real si pueden tener instancias.Una clase- abstracta podra ser una impresora:+ inyectores + agujasLas clases derivadas de una clase base o abstracta se conocen como clases concretas, que ya pueden instanciarse (es decir, pueden tener instancias).

4.7.3Anulacin o Sustitucin.Cuando redefino un mtodo heredado en la subclase, se dice que estoy anulando o sustituyendo dicho mtodo. Sera deseable una herencia selectiva: seleccionar lo que se quiere heredar es la mejor forma de anulacin.

4.8 ENCAPSULAMIENTO.

Un objeto est separado del medio que lo rodea por algun tipo de envoltura, esta separacin es te que determina la unidad del objeto, es decir, lo convierte en algo independiente. La envolturaoculta los detalles relacionados con la construccin interior del objeto. esto significa que slo conocemos del objeto aquello que es revelado por sus mtodos. Se llama encapsulamiento a la propiedad que tienen los objetos de ocultar detalles internos, as se permite asegurar que el contenido de \a 'informacin de un objeto este oculta mundo exterior por ejemplo objeto A.no conoce lo que hace un objeto B y viceversa). Por otra parte el programador que construye un objeto tiene acceso a todas sus partes: propiedades, mtodos y definicin de eventos. El programador que utiliza un objeto solamente tiene acceso a sus propiedades y mtodos (si estos son pblicos) y a la programacin de los eventos que han sido definidos para el objeto.Algunos mtodos y propiedades en un objeto son privados, es decir, tiles nicamente dentro del objeto y desconocidos por quien utiliza el objeto, los restantes mtodos y propiedades son pblicos, los programadores los emplean para cambiar el estado del objeto.

4.9 POLIMORFISMO.

El polimorfismo se presenta cuando se ha creado objetos que pertenecen a clases que han sido Derivadas de otras clases. En otras palabras, el polimorfismo aparece en las clases derivadas. Tambin se dice que el polimorfismo es la propiedad que indica literalmente, la posibilidad de que una entidad tome muchas formas, en trminos prcticos el polimorfismo permite referirse a

Objetos de clases distintas mediante el mismo elemento de programa y realizar la misma operacin de diferentes formas, segn sea el objeto que se referencia en ese momento. Por ejemplo cuarto se describe clase mamferos se puede observar que \b operacin comer es una operacin fundamental en la vida de los mamferos, de modo que cada tipo de mamferos debe poder realizar la operacin o funcin comer. Por otra parte, una vaca o una cabra que pasta en el campo, un nio que se come un bombn o caramelo y un len que devora a otro animal, sondiferentes formas que utilizan los distintos mamferos para realizar la misma funcin (comer).

4.10 OBJETOS COMPUESTOS.

Una de las caractersticas que hacen a los objetos ser muy potentes es que pueden contener otros objetos. Los objetos que contienen otros objetos se denominan objetos compuestos. Esta Caracterstica ofrece dos ventajas importantes:

Los objetos contenidos pueden cambiar en tamao y composicin, sin afectar al objeto compuesto que los contiene, esto hace que el mantenimiento de sistemas complejos de objetos anidados sea ms sencillos.

Los objetos contenidos estn libres para participar en cualquier nmero de objetoscompuestos, en lugar de estar bloqueados en un nico objeto compuesto.

UNIDAD 5: EVOLUCIN DE LOS LENGUAJES DE PROGRAMACIN ORIENTADA A OBJETOS

EVOLUCIN DE LOS LENGUAJES PROGRAMACIN

En esta seccin se describir brevemente cmo han evolucionado los lenguajes de programacin, desde el lenguaje de mquina y ensamblador (Bajo Nivel) hasta los lenguajes estructurados yorientados a objetos (Alto Nivel). Se presentan las limitaciones principales del lenguaje mquina y algunos ejemplos de lenguaje ensamblador.

En el siguiente nivel se encuentran los lenguajes de alto nivel que solventan muchas de las debilidades de los lenguajes de bajo nivel pero que an tienen limitaciones. Despus se abordan los lenguajes de programacin Orientados a Objetos, exponiendo sus caractersticas, taxonoma y ejemplos de los principales lenguajes de programacin ubicados en esta categora de los cualesalgunos son Orientados a Objetos y otros tan solo han incorporado algunas de las caractersticas de la orientacin a objetos. Esto primer acercamiento ser meramente terico, pero en este nivel del curso ya has desarrollado la lgica estructurada y puedes empezar a experimentar con lenguajes de programacin y olvidarte un poco del pseudocdigo. Con la culminacin de esta unidad el estudiante tendr las bases para interactuar con un lenguaje de programacin y aplicar los conocimientos adquiridos en la lgica estructurada en su primer acercamiento a un lenguaje de programacin especfico siendo responsable en el desarrollo de programas quebusquen solucin a problemas. Demostrar responsabilidad, creatividad, innovacin, comprensin y colaboracin con su equipo de trabajo.

5.1 CLASIFICACION DE LOS LENGUAJES DE PROGRAMACIONLENGUAJES DE BAJO NIVEL

LENGUAJE MQUINAEs el lenguaje que entiende el procesador y est basado en el sistema binario. Est formado por un conjunto de instrucciones o cdigos que pueden ser interpretados directamente por elprocesador. El lenguaje mquina valia dependiendo del hardware evoluciona con cadaversin del CHIP. Cuando se habla a del lenguaje mquina en el IBM PC y compatibles, se habla principalmente de la familia de procesadores Intel 80xX y de su evolucin hasta el actual Core.

En cada versin del CHIP Intel se han agregado nuevas funcionalidades, pero Intel siempre haTratado de mantener la compatibilidad con las versiones anteriores., por lo que se habla de que un programa es compatible con la Familia x86.

La principal ventaja del lenguaje maquina es su alta velocidad, debida a la traduccin inmediata de los cdigos binarios. Entre sus muchas debilidades encontramos:

Codificacin compleja: el programador debe entender el significado de los unos y ceros y tener tablas de instrucciones y variables. En los procesadores actuales de 64bits, porEjemplo, una instruccin tiene 64 unos y ceros, lo cual es muy difcil de controlar.

Errores en la codificacin y depuracin compleja: debido a la complejidad de los Cdigos

Productividad mnima: tiempos de desarrollo muy altos

No portabilidad: un programa solo funciona sobre el hardware para el que es hecho.

Lenguaje Ensamblador

Son una representacin ms entendible para el humano de los cdigos del lenguaje mquina. Cada LENGUAJE ENSAMBLADOR: aparece casi a la par con el lenguaje mquina, esto debido a que losfabricantes de hardware disean sus Chips pensando ya en las instrucciones de un lenguaje de ensamblado.

Un ejemplo de una instruccin en lenguaje mquina y en lenguaje ensamblador:

Lenguaje MquinaLenguaje Ensamblador

1 0010111000000001

0000000000001010movax, 10

A pesar de que el lenguaje ensamblador es ms fcil de entender por las personas sigue teniendolas desventajas del lenguaje de mquina. Realmente lo que hace es ayudar un poco a que el cdigo sea ms legible, el lenguaje ensamblador adicionalmente necesita un traductor {ensamblador}capaz de convertir dichos cdigos en lenguaje mquina .

Ejemplos de ensambladores: TASM (TurboAssembler de Borland), MASM (Microsoft MacroAssembler), NASM (NetwideAssembier - Libre).

LENGUAJES DE ALTO NIVEL

Son lenguajes ms afines coa el programador en tos que una instruccin puede representar varas instrucciones en lenguaje mquina. Incluyen los lenguajes estructurados y no estructurados. Como ejemplos tenemos: Basic, Pascal, C, API, FORTRAN (Aplicaciones Cientficas), COBOL (paraaplicaciones de procesamiento de datos), LISP Y PROLOG (para inteligencia Artificial), etc.

Los lenguajes de alto nivel necesitan de un traductor que puede ser interpretador o compilador. Los interpretadores o intrpretes, necesitan de un programa auxiliar que traduce en tiempo real las instrucciones al lenguaje mquina, por lo tanto, cada vez que un programa interpretado seejecuta ejecutarse tambin su interprete, ejemplos Je lenguajes interpretados. Basic,PROLOG, LISP, entre otros.

Los lenguajes compilados son aquellos que necesitan de un compilador para la traduccin al lenguaje mquina. La traduccin o compilacin se hace solo una vez, y el resultado es un cdigoobjeto entendible por la mquina. Para ejecutar un programa compilado no se necesita de sucompilador. Ejemplos de lenguajes compilados: Pascal, C, Fortran, Cobol, Modula-2 (evolucin del Pascal), etc.

5.3 ALGUNAS DE LAS CARACTERSTICAS DE LOS LENGUAJES DE ALTO NIVEL:

Depuracin ms sencilla: Debido a que el cdigo es ms legible, la depuracin tambinse hace ms fcil. Con la ayuda editores (IDEs - Entornos de Desarrollo Integrados) lacompilacin, depuracin y ejecucin se hacen ms fcilmente.

Productividad aceptable: son ms productivos que los lenguajes de alto nivel

Algunos permiten la Portabilidad; generalmente los interpretados.

5.2 Taxonoma de los Lenguajes Orientados a Objetos.

Basados en objetosBasados en clasesOrientacin a Objetos

Si la sintaxis y semntica de lenguaje soportan lascaractersticas de objetos que hemos mencionado

Si un lenguaje est basado en objetos y ademssoporta clases, se dice queest basado en clases

Si un lenguaje deprogramacin soportaobjetos, clases y ademspermite la jerarqua dedichas clases, entonces sedice que es un lenguaje deprogramacin orientado aobjetos.

5.3 Caractersticas de los Lenguajes Orientados a Objetos.

Tres son las principales caractersticas de un lenguaje orientado a objetos, es decir, se considera que un lenguaje esta totalmente orientado a objetos si es capaz proveer estas tres caraterscas: Encapsulacin. Herencia. Polimorfismo.

La Encapsulacin es la cualidad de unificar los datos y la forma de manipularlos, de esta forma podemos ocultar el funcionamiento de una clase y exponer solo los datos que manipula ( mediante propiedades ), as como proveer de medios para poder manipular dichos datos (mediante mtodos). De esta forma solo exponemos al mundo exterior la informacin y la forma de manipularla, ocultando los detalles usados para manejar esos datos y, lo que es ms importante, evitando que nadie manipule de una forma no controlada dicha informacin. La Herencia es la cualidad de poder crear nuevas clases (o tipos) basadas en otras clases, de forma que la nueva clase obtenga las caractersticas de la clase que ha heredado, tanto los datos que contiene como la forma de manipularlos, pudiendo aadir nuevas caractersticas he incluso poder cambiar comportamiento de algunas de las incluidas en la clase base, (siempre que as se haya previsto). Mediante la herencia podemos crear de forma fcil una jerarqua de clase que comparte un mismo comportamiento bsico pero que cada nueva generacin puede tener (y de hecho tiene) un nuevo comportamiento. El Polimorfismo es la cualidad de implementar de forma particular algunas de las caractersticas que tiene las clases, de forma que cuando necesitemos usarlas no nos preocupe la implementacin interna que cada una tenga, lo que realmente nos interesa o nos debe importar es que podemos usar esas caractersticas e incluso podamos acceder a ellas de forma annima.