Programación Orientada a Objetos Profr. Pedro Pablo Mayorga

Documentos relacionados
Estructuras de Control (y su forma en Python y en C) Clase 5 Introducción a la Computación Patricia Borensztejn

Programación orientada a objetos

INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Introducción a la programación. Cecilia Manzino

Tema 03: Programación estructurada

COLEGIO DE ESTUDIOS DE POSGRADO DE LA CIUDAD DE MÉXICO

Programación Orientada a Objetos

Programación Estructurada

Informática Ingeniería en Electrónica y Automática Industrial

Programación Orientada a Objetos

Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3: 3 - Paradigmas de Programación

Capítulo 4. Control de flujo. Continuar

INDICE Parte I Algoritmos y herramientas de programación Capitulo 1. Computadoras y lenguajes de programación Actividades de Programación Resueltas

Introducción a la Programación en C

Lenguajes de Programación I

Software. Programa Paradigmas de programación Cómo se produce software Modelos de procesos Atributos del buen software

Introducción. Introducción y conceptos de POO. En qué consiste la POO? Vocabulario. Definiciones

Introducción y conceptos de POO

Lenguajes de Programación

Laboratorio de Arquitectura de Redes. Sentencias de control en lenguaje C

Lenguajes y paradigmas de programación

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

Capítulo 3 CICLO DE VIDA DE UN PROGRAMA. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Paradigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa

1. PRINCIPIOS BÁSICOS DE PROGRAMACIÓN

Módulo 1. Introducción a los lenguajes de programación

ESTRUCTURAS DE CONTROL

INICIACIÓN A LA PROGRAMACIÓN 1ª parte

Tema 2 Introducción a la Programación en C.

1. Computadores y programación

Unidad I: Fundamentos de Ingenieria de Software

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Adentrándonos a la Programación

Estructura de Datos y de la Información. Tema 1: Introducción a los tipos abstractos de datos

Presentación del Curso Presencial. Programación en Java Nivel Básico

INGENIERÍA DE SOFTWARE. Sesión 5: Estrategias

Tipo de Datos Abstractos y Programación Orientada a Objetos

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

A3F. Objetos (uso) Carlos Fontela

Examen escrito de Programación 1

Introducción a la programación

CONCEPTO Y DEFINICIÓN DE CLASE EN JAVA. OBJETOS DEL MUNDO REAL Y ABSTRACTOS. EJEMPLOS. EJERCICIO (CU00644B)

Prof. María Alejandra Quintero. Informática Año

Conceptos básicos. IC-1800 Introducción a la programación. I semestre,

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

La resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los mismos resultados.

Tema 3. Estructuras de control

Tema 1. Introducción a la Programación Orientada a Objetos

1 / 14 Fundamentos de programación de Sistemas Embebidos Introducción

Conceptos básicos. IC-1800 Introducción a la programación. I semestre,

Programación Orientada a Objetos

Tema 6. Estructuras básicas. Computacion - FA.CE.NA.

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

ProgramaciónDeclarativa

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

Programación Estructurada. Sesión 4:Estructuras de control

Tema III: Introducción al lenguaje de programación

Lenguajes de Cuarta Generación

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.

ANEXO XVII DE LA RESOLUCION N

Introducción a Haskell. Cecilia Manzino

Programación Estructurada

Programación Orientada o Objetos

Diferentes Perspectivas de un Ordenador

Lenguaje de Diseño. Primera Parte. Segundo Cuatrimestre 2017

INSTITUTO TECNOLÓGICO DE TIJUANA

PRÁCTICA FUNDAMENTOS DE ALGORITMOS I. Objetivos

Cada enfoque tiene sus ventajas y desventajas Cada uno es más apropiado para ciertas cosas

Metodología de Desarrollo de Programas

Algoritmo. Programa. Lenguaje algorítmico

CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional

CAPÍTULO 2: CARACTERÍSTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS. ABSTRACCIÓN. ENCAPSULAMIENTO. PRINCIPIO DE OCULTACIÓN. HERENCIA. POLIMORFISMO.

Evolución de los Lenguajes de Programación. Dr. Oldemar Rodríguez Escuela de Informática Universidad Nacional

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

FUNDAMENTOS PARA LA CONSTRUCCIÓN DEL CÓDIGO A PARTIR DEL ALGORITMO

TEMA 2.1 TIPOS DE PRUEBAS DEL SOFTWARE

Metodología de la Programación II. Recursividad

DEPARTAMENTO TECNOLOGIA EN ELECTRONICA FUNDAMENTOS DE PROGRAMACION CÓDIGO

Bloque II. Elementos del lenguaje de programación Java

Introducción a la. Programación con

PRINCIPIOS DE PROGRAMACIÓN. Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández

Estructuras de Control

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

A3F. Objetos (uso) Carlos Fontela

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos 1

LENGUAJES DE PROGRAMACIÓN

TEMA 3: El proceso de compilación, del código fuente al código máquina

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

Análisis y escritura de las estructuras de control

Conceptos de Programación Orientada a Objetos

UNIVERSIDAD DISTRITAL Francisco José de Caldas Facultad de Ingeniería Ingeniería Eléctrica. Fecha de Elaboración Fecha de Revisión

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Transcripción:

Actividad 3 Historia de los paradigmas de programación Unidad 1 Paradigma de programación Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más apropiado que otro. Existen diferentes paradigmas algunos se listan a continuación: El paradigma imperativo o por procedimientos o estructurada es considerado el más común y está representado, por ejemplo, por el C o por BASIC. El paradicigma funcional está representado por la familia de lenguajes (en particular Scheme), ML o Haskell. El paradigma lógico, un ejemplo es PROLOG. El paradigma orientado a objetos. Un lenguaje completamente orientado a objetos es Smalltalk. El paradigma dirigido por Eventos. El paradigma orientado a objetos es tan potente que se ha usado para generar otros paradigmas tales como: Redes de Petri Lógica de predicados Funcional Paradigma de programación estructurada Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las necesidades de programación existentes en los años 1960, principalmente debido a las aplicaciones gráficas, por lo que las técnicas de programación estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas técnicas, tales como la programación orientada a objetos y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones. A finales de los años 1960 surgió una nueva forma de programar que no solamente daba lugar a programas fiables y eficientes, sino que además estaban escritos de manera que facilitaba su comprensión posterior. El teorema del programa estructurado, demostrado por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes: 1

Secuencia Instrucción condicional. Iteración (bucle de instrucciones) con condición al principio. Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, éstas pueden ser construidas mediante las tres básicas. Algunas de las ventajas de la programación estructurada son las siguientes: 1. Los programas son más fáciles de entender, ya que pueden ser leídos de forma secuencial, sin necesidad de hacer seguimiento a saltos de línea (GOTO) dentro de los bloques de código para entender la lógica. 2. La estructura del programa es clara, puesto que las instrucciones están más ligadas o relacionadas entre sí. 3. Reducción del esfuerzo en las pruebas. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a la estructura más visible, por lo que los errores se pueden detectar y corregir más fácilmente. 4. Reducción de los costos de mantenimiento de los programas. 5. Programas más sencillos y más rápidos (ya que es más fácil su optimización). 6. Los bloques de código son auto explicativos, lo que facilita la documentación. 7. Los GOTO se reservan para construir las instrucciones básicas. Aunque no se usan de forma directa, por estar prohibida su utilización, están incluidas implícitamente en las instrucciones de selección e iteración. 8. Un programa escrito de acuerdo a estos principios no solamente tendrá una mejor estructura sino también una excelente presentación. 9. La programación estructurada ofrece estos beneficios, pero no se la debe considerar como una panacea ya que el desarrollo de programas es, principalmente, una tarea de dedicación, esfuerzo y creatividad. Adicionalmente algunas desventajas de la programación estructurada son: 1. Se obtiene un único bloque de programa, que cuando se hace demasiado grande puede resultar problemático su manejo; esto se resuelve empleando la programación modular, 2. Definición de módulos interdependientes programados y compilados por separado (en realidad esto no es necesario, pero es recomendable para su mantenimiento y funcionalidad). Algunos de los lenguajes de programación estructurada son: C Fortran Pascal Basic 2

Para lenguaje C las instrucciones básicas para resolver cualquier problema son: Condicional: Permite la ejecución a partir del cumplimiento de ciertas expresiones, por ejemplo en los ejemplos mostrados abajo, si expresión es cierta, se ejecuta el conjunto de expresiones A (que generalmente se encierran entre llaves). Un segundo caso es cuando la expresión es falsa, entonces se ejecuta el conjunto de instrucciones B en lugar del bloque de las instrucciones A. o if ( expresion ) Conjunto_A o if ( expresión ) Conjunto_A Conjunto_B Iteracion: Este es un ejemplo de ciclos o repeticiones, se ejecuta el conjunto de instrucciones A mientras expr sea cierta. Para el caso del ciclo for expr1 se ejecuta una sola vez antes de evaluar a expr, mientras que expr3 se ejecuta siempre al final de cada iteración, justo después de haber ejecutado el conjunto de instrucciones A. o for ( expr1; expr ; expr3) Conjunto_A o while ( expr ) Conjunto_A o do Conjunto_A while ( expr ) Por lo general cuando se escribe código de programación secuencial no se escriben instrucciones de un lenguaje en especial por lo que se usan palabras clave por lo general que hacen uso del lenguaje matemático con toda su simbología. Para consultar simbología matemática visitar: http://es.wikipedia.org/wiki/s%c3%admbolo_matem%c3%a1tico 3

Ejemplo de un programa que calcula el valor de $y=x^n$ se presenta a continuación Para un caso en particular en donde x=3, n=5. Paso 1: y=1 Paso 2: no se ejecuta porque n<0 es falso Paso 6: X = 3 Paso 7: N = 5 Paso 9: Al ser N diferente de cero se ejecuta: Paso 10: Al ser No ser N par (even significa par) Paso 14: y = y*x = 1*3 = 3 Paso 15: N=N-1= 5-1=4 Paso 9: N diferente de cero es cierto Paso 10: N si es par Paso 11: X = X*X = 3*3 = 9 Paso 12: N=N/2 = 4/2 = 2 Paso 9: N diferente de cero es cierto Paso 10: N es par es cierto Paso 11: X = X*X = 9*9 = 81 Paso 12: N=N/2 = 2/2 = 1 Paso 9: N diferente de cero es cierto Paso 10: N es par es falso (ir al paso 14) Paso 14: y = y*x = 3*81 = 243 Paso 15: N=N-1 =1-1=0 Paso 9: N diferente de cero es falso (N es igual a cero): Termina el programa Pila de valores X 3 9 81. x 3. Y 3 243. N 5 4 2 1 0. N 5. 4

El programa anterior programa en lenguaje C es el siguiente: float potxn(float x,int n) float y = 1.0; float X; int N; if( n < 0 ) X = 1.0 / x; N = -n; X = x; N = n; while( N!= 0 ) if( N % 2 == 0 ) X = X * X; N = N / 2; y = y * X; N = N - 1; return y; Paradigma de Programación Orientada a Objetos Para ver una completa referencia de la POO consultar las lecturas U1_1.doc y U1_2.doc. Podemos resumir que la Orientación a Objetos se basa en estas ideas: un programa es un mundo que representa un subconjunto del mundo real. La estructura del programa se simplifica en gran medida si cada una de las entidades u objetos del problema que se está modelando corresponde directamente con un objeto que se puede manipular internamente en un programa. Para el desarrollo de sistemas, la orientación a objetos es un nivel de abstracción de computadora más allá de los procedimientos y los datos. La orientación a objetos anima al desarrollador de sistemas a concentrarse en los temas importantes e ignorar el resto a la hora de la modelación. 5

Para el problema anterior de calcular una potencia de x, una clase sería la clase potencia con atributos base, exponente y resultado. El método sería calcular potencia. Class Potencia Decimal: base Entero: exponente Decimal: resultado Decimal: Calcular ( Decimal: base, Entero: exponente) La programación en C++ sería class Potencia private: float base; int exponente; float resultado; public: float Calcular(float x,int n) if( x == base && exponente == n) base = x; exponente = n; return resultado; ; float y = 1.0; float X; int N; if( n < 0 ) X = 1.0 / x; N = -n; X = x; N = n; while( N!=0 ) if( N % 2 == 0 ) X = X * X; N = N / 2; y = y * X; N = N - 1; return resultado=y; 6

Algunos de los lenguajes orientado a objetos son: C++ Java PHP Object Pascal R Python C# Ada Eiffel Algunos de los beneficios de la Programación orientada a objetos son: que encapsula los métodos y propiedades de objetos en común y eso los mantiene ordenados. Constructor: Todos los lenguajes POO consideran un método llamado constructor que se ejecuta cuando se crea una instancia de la clase, esto es muy útil porque se puede usar como preámbulo o para iniciar las propiedades y métodos de la clase, por ejemplo reservar memoria para un proceso. Destructor: Todos los lenguajes POO consideran un método llamado desstructor que se ejecuta cuando se libera la instancia de la clase, esto es muy útil porque se puede usar como para finalizar las propiedades y métodos de la clase, por ejemplo liberar la memoria reservada durante la vida del objeto. La programación es más natural porque se basa en las interacciones de los objetos en sí y no de las propiedades internas a ellos. La manutención de los programas es más sencilla porque solo se necesita arreglar códigos de la clase, sabiendo que una vez corregido el posible fallo las relaciones entre clases permanecerá inalterada y el funcionamiento del software no se verá afectado. La reutilización de código es más sencilla y natural debido a que una clase que ya está creada y probada en su total funcionamiento, se coloca en un repositorio donde puede ser usada por programas o aplicaciones futuras sin modificación alguna ahorrando tiempo de codificación y de diseño. Por ejemplo si se programa una clase que permita graficar datos en forma de barras, puntos y pastel, puede ser usada por diversos proyectos que requieran de mostrar gráficas. Una de las desventajas de la POO es que para que funcione adecuadamente es necesario un buen diseño orientado a objetos y abstraer adecuadamente las propiedades y métodos de los modelos a diseñar para que estas clases se puedan reutilizar y sean de un propósito general en la medida de que el sistema así lo requiera. 7