SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
FUNDAMENTOS DE PROGRAMACIÓN
Ibarra Badillo Mayra                                                                    Actividad 1
12590431
                                Paradigmas de Programación
Un paradigma de programación es una propuesta tecnológica que es adoptada por una
comunidad de programadores cuyo núcleo central es incuestionable en cuanto a que
unívocamente trata de resolver uno o varios problemas claramente delimitados. La resolución de
estos problemas debe suponer consecuentemente un avance significativo en al menos un
parámetro que afecte a la ingeniería de software. Los paradigmas de programación nos indican las
diversas formas que, a lo largo de la evolución de los lenguajes, han sido aceptadas como estilos
para programar y para resolver los problemas por medio de una computadora.

Programación imperativa
Es un paradigma de programación que describe la programación en términos del estado del
programa y sentencias que cambian. Los programas imperativos son un conjunto de instrucciones
que le indican al computador cómo realizar una tarea.

Desde esta perspectiva de bajo nivel, el estilo del programa está definido por los contenidos de la
memoria, y las sentencias son instrucciones en el lenguaje de máquina nativo del computador (por
ejemplo el lenguaje ensamblador).

Los elementos más importantes de este paradigma son:
• Variables: Son objetos cuyo valor depende de una localidad de memoria y que puede cambiar a
lo largo de la ejecución del programa. Los estados de un programa son representados y
diferenciados por su conjunto de variables y sus contenidos.
• Tipos de datos: Son abstracciones que representan un conjunto de valores junto con las
operaciones y relaciones que son aplicables a ellos.
• Expresiones: Enla programación imperativa su papel más importante está en las sentencias de
asignación. Una sentencia de asignación sirve para modificar el valor de una variable y así cambiar
el estado de un programa. Los operadores empleados pueden ser matemáticos, lógicos o una
combinación de ambos.

Nociones básicas:
-Variable con estado (valor modificable)
-Secuencia de cambios de estado
-Procedimientos

Características destacables:
Se fija completamente el orden en el que se deben realizar las operaciones con ayuda de unos
patrones de control del flujo de ejecución (secuencia, alternativa y ciclo)que sirven para construir
el esqueleto de las rutinas.
Se pueden fijar puntos de observación en el texto de una rutina y considerar los valores de las
variables (estado)cuando el flujo de ejecución pasa por dichos puntos. Estos valores pueden
cambiar de un punto a otro y en el mismo punto en momentos distintos de la ejecución.




                                                                                                1
FUNDAMENTOS DE PROGRAMACIÓN
Ibarra Badillo Mayra                                                                  Actividad 1
12590431

Ventajas
       Manipulación controlada
       Ajusta los problemas
       Control de datos de manera secuencial
Desventajas
       Programación lineal
       Codificación
       Los programas no son seguros
       Lenguajes de alto nivel y muy complejo

Programación estructurada
La programación estructurada es una forma de escribir programas de ordenador (programación de
computadora) de manera clara. Para ello utiliza únicamente tres estructuras: secuencia, selección
e iteración; siendo innecesario el uso de la instrucción o instrucciones de transferencia
incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN).

Estructurada es una técnica en la cual la estructura de un programa, esto es, la interpelación de
sus partes realiza tan claramente cómo es posible mediante el uso de tres estructuras lógicas de
control:

   A. Secuencia: Sucesión simple de dos o más operaciones.
   B. Selección: bifurcación condicional de una o más operaciones.
   C. Interacción: Repetición de una operación mientras se cumple una condición.


Características
1. La estructura secuencial: Está definida por el flujo de control automático de un programa. De
manera natural, a menos que otra cosa se indique, la computadora ejecuta las líneas de código en
el orden en que fueron escritas. El control del programa fluye de la línea anterior a la línea
siguiente.

2. Las estructuras de selección: Se basan en una declaración condicional. Si es verdadera, ciertas
líneas de código son ejecutadas. Si tal declaración es falsa, esas líneas no serán ejecutadas.

3. Las estructuras de repetición (o de ciclos): Su construcción también hace uso de
declaracionescondicionales. Si la condición evaluada es verdadera, un bloque de una o
másinstrucciones se repetirá, hasta que la condición sea falsa. La computadora prueba la
condición una primera vez, si es verdadera, ejecuta el bloque de comandos. Entonces, finalizada la
primera repetición,comprueba de nuevo la condición y si es verdadera se repite el bloque
nuevamente, y así sucesivamente hasta que la condición sea falsa. Ya que este funcionamiento es
cíclico, cada unade estas repeticiones es llamada también ciclo.




                                                                                              2
FUNDAMENTOS DE PROGRAMACIÓN
Ibarra Badillo Mayra                                                                     Actividad 1
12590431

VENTAJAS POTENCIALES

Un programa escrito de acuerdo a estos principios no solamente tendrá una estructura, sino
también una excelente presentación.

Un programa escrito de esta forma tiende a ser mucho más fácil de comprender.

La facilidad de comprensión del contenido de un programa puede facilitar el chequeo de la
codificación y reducir el tiempo de prueba y depuración de programas.

    1.   Reducción de los costos de mantenimiento.
    2.   Los programas quedan mejor documentados internamente.
    3.   Aumento de la productividad del programador
    4.   Programas más sencillos y más rápidos
    5.   Se facilita la utilización de las otras técnicas para el mejoramiento de la productividad en
         programación

DESVENTAJAS
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, definiendo
módulos interdependientes programados y compilados por separado.
Un método un poco más sofisticado es la programación por capas, en la que los módulos tienen
una estructura jerárquica en la que se pueden definir funciones dentro de funciones o de
procedimientos.

Abstracción de datos
Los lenguajes como ADA y C++ permiten que un usuario defina tipos que se comporten casi de la
misma manera que los tipos definidos por el lenguaje. Tales tipos de datos reciben a menudo el
nombre de tipos abstractos o tipos definidos por el usuario. El paradigma de programación sobre
este tipo de datos consiste en:

 a) Establecer las características de los tipos de datos abstractos se desean definir.

 b) Proporcionar un conjunto completo de operaciones válidas y útiles para cada tipo de dato.

Cuando no hay necesidad de más de un objeto de un tipo dado, no es necesario este estilo y basta
con el estilo de programación de ocultamiento de datos por medio de módulos.

Ventajas
Recogen mejor la semántica de los tipos. Al agrupar la representación junto a las operaciones que
definen su comportamiento, y forzar a utilizar el TAd a través de estas operaciones se evitan
errores en el manejo del tipo de datos (Por ejemplo, la división por 0 en el caso del TAD Racional).




                                                                                                 3
FUNDAMENTOS DE PROGRAMACIÓN
Ibarra Badillo Mayra                                                                      Actividad 1
12590431

2. Abstracción: Separa la especificación (que hace) de la implementación (cómo lo hace). Los
usuarios de un TAD no necesitan conocer sus detalles de implementación. Como consecuencia:

a) Se favorece la extensibilidad del código: Es posible modificar y mejorar la implementación del
TAD sin afectar a los demás módulos que lo utilizan.

b) Aumenta la facilidad de uso.

c) Aumenta la legibilidad del código que usa el TAD.

3. Produce código reutilizable.

4. Favorece la ausencia de errores, al reutilizar código ya probado y forzar a utilizar la estructura
de datos correctamente.

Programación orientada a objetos (POO)
La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de
programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas
informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y
encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad,
existe variedad de lenguajes de programación que soportan la orientación a objetos.

El problema con la abstracción de datos es que no hay ninguna distinción entre las propiedades
generales y las particulares de un conjunto de objetos.

Características fundamentales de la POO:
 1. Encapsulamiento: Es la ocultación de información. Significa mantener la información dentro
    del objeto y mantenerlo como una caja negra. Puede ser accedida por métodos.
 2. Abstracción: Es la capacidad de aislar y encapsular la información del diseño y la ejecución.
    Es la capacidad para identificar atributos y métodos.

      La ventaja de la herencia              es   que     permite    la   reutilización   de código,
      ahorrando tiempo y dinero.
 3. Herencia: Es la propiedad que permite a los objetos crearse a partir de otros objetos. Cada
    subclase comparte características comunes con la clase de la que deriva. La clase original la
    llamamos clase base y las nuevas clases creadas a partir de ella clases derivadas. Una clase
    derivada puede ser también clase base dando lugar a una jerarquía de clases.
 4. Polimorfismo: Es la capacidad de que diferentes objetos reaccionen de distinta forma a un
    mismo mensaje. Es la capacidad de referirse a objetos de clases distintas en una jerarquía
    utilizando el mismo elemento de programa (método) para realizar la misma operación, pero
    de manera diferente.




                                                                                                 4
FUNDAMENTOS DE PROGRAMACIÓN
Ibarra Badillo Mayra                                                                       Actividad 1
12590431

Características Secundarias de la POO:
 1. Tipificación: Permite la agrupación de objetos en tipos.
 2. Concurrencia: Los objetos pueden actuar al mismo tiempo.
 3. Persistencia: Un objeto puede seguir existiendo tras desaparecer su antecesor.

Gran parte de los lenguajes más utilizados hoy en díaestán orientados a objetos,entre ellos se
encuentran: Java, C++, PHP, Python, C#, Delphi, Ruby, D y Actionscript,entre otros.

Ventajas de la programación orientada a objetos

Vamos a ver las ventajas más importantes de la programación orientada a objetos:


        Reusabilidad. Cuando hemos diseñado adecuadamente las clases, se pueden usar en
          distintas partes del programa y en numerosos proyectos.
        Mantenibilidad. Debido a la sencillez para abstraer el problema, los programas orientados a
          objetos son más sencillos de leer y comprender, pues nos permiten ocultar detalles de
          implementación dejando visibles sólo aquellos detalles más relevantes.
        Modificabilidad. La facilidad de añadir, suprimir o modificar nuevos objetos nos permite
          hacer modificaciones de una forma muy sencilla.
        Fiabilidad. Al dividir el problema en partes más pequeñas podemos probarlas de manera
          independiente y aislar mucho más fácilmente los posibles errores que puedan surgir.


        Fomenta la reutilización y extensión del código.
        Permite crear sistemas más complejos.
        Relacionar el sistema al mundo real.
        Facilita la creación de programas visuales.
        Construcción de prototipos
        Agiliza el desarrollo de software
        Facilita el trabajo en equipo
        Facilita el mantenimiento del software

La programación orientada a objetos presenta también algunas desventajas como pueden ser:


        Cambio en la forma de pensar de la programación tradicional a la orientada a objetos.
        La ejecución de programas orientados a objetos es más lenta.
        La necesidad de utilizar bibliotecas de clases obliga a su aprendizaje y entrenamiento.
        Exige conocer bien la teoría de objetos.
        Requiere mayor capacidad de los programadores.




Conclusión
Un paradigma es el resultado de un proceso social y tecnológico en el cual un grupo de personas
programadores desarrolla nuevas ideas, crea principios y prácticas alrededor de estas ideas, los
paradigmas de programación nos indican las diversas formas para programar a lo largo de la
evolución de los lenguajes de programación, que han sido aceptados como estilos para programar
y para resolver los problemas por medio de una computadora. En la actualidad el paradigma más
usado es la programación orientada a objetos.




                                                                                                  5
FUNDAMENTOS DE PROGRAMACIÓN
Ibarra Badillo Mayra                                                                         Actividad 1
12590431

Bibliografía

 Héctor Zárate | www.mieldemaple.com
 http://www.taringa.net/posts/ciencia-educacion/9145179/Paradigma-de-Programacion.html
 http://www.genbetadev.com/paradigmas-de-programacion/diferencias-entre-paradigmas-de-
 programacion
  Scott, Michael Lee. Programming Languages Pragmatics. Estados Unidos: MorganKauffmannPublishers,
  2000.
• Sebesta, Robert W. Concepts of Programming Languages. Estados Unidos: PearsonEducation, 2004.
• Linz, Peter. An Introduction to Formal Languages and Automata.EstadosUnidos: Jonesand Bartlett
Publishers, 2001.
• Craig, Iain. Object-Oriented Programming Languages: Interpretation. EstadosUnidos:Springer, 2007.
• Bruce, Kim. Foundations of Object-oriented Languages: Types and Semantics. EstadosUnidos: MIT Press,
2002.
   http://es.scribd.com/doc/6167605/9/Desventajas-de-la-programacion-estructurada




                                                                                                    6

Más contenido relacionado

La actualidad más candente

Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareJosé Antonio Sandoval Acosta
 
Lenguajes de cuarta generacion
Lenguajes de cuarta generacionLenguajes de cuarta generacion
Lenguajes de cuarta generacionAlexander Campues
 
Modelamiento de software
Modelamiento de softwareModelamiento de software
Modelamiento de softwaresairarcf
 
Lenguaje de programacion de alto nivel
Lenguaje de programacion de alto nivelLenguaje de programacion de alto nivel
Lenguaje de programacion de alto nivelelvin1202
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de SoftwareGustavo Bazan Maal
 
Multiprogramación
MultiprogramaciónMultiprogramación
Multiprogramaciónelmunera
 
Ingeniería del software basada en componentes
Ingeniería del software basada en componentesIngeniería del software basada en componentes
Ingeniería del software basada en componentesjose_macias
 
Middleware en los sistemas distribuidos
Middleware en los sistemas distribuidosMiddleware en los sistemas distribuidos
Middleware en los sistemas distribuidosJC Alca Arequi
 
Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Facultad de Ciencias y Sistemas
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraAlexandraMolinaSanchez
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcionalAlejandra MA
 
Fundamentos del Diseño de Software
Fundamentos del Diseño de SoftwareFundamentos del Diseño de Software
Fundamentos del Diseño de SoftwareNelson Guanipa
 

La actualidad más candente (20)

Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
Lenguajes de cuarta generacion
Lenguajes de cuarta generacionLenguajes de cuarta generacion
Lenguajes de cuarta generacion
 
PAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIAPAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIA
 
Modelamiento de software
Modelamiento de softwareModelamiento de software
Modelamiento de software
 
Dispositivos portatiles
Dispositivos portatilesDispositivos portatiles
Dispositivos portatiles
 
Lenguaje de programacion de alto nivel
Lenguaje de programacion de alto nivelLenguaje de programacion de alto nivel
Lenguaje de programacion de alto nivel
 
Diseño a Nivel de Componentes
Diseño a Nivel de ComponentesDiseño a Nivel de Componentes
Diseño a Nivel de Componentes
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de Software
 
Multiprogramación
MultiprogramaciónMultiprogramación
Multiprogramación
 
Ingeniería del software basada en componentes
Ingeniería del software basada en componentesIngeniería del software basada en componentes
Ingeniería del software basada en componentes
 
Operaciones Sobre Procesos
Operaciones Sobre ProcesosOperaciones Sobre Procesos
Operaciones Sobre Procesos
 
Middleware en los sistemas distribuidos
Middleware en los sistemas distribuidosMiddleware en los sistemas distribuidos
Middleware en los sistemas distribuidos
 
Simulador de ensamble
Simulador de ensambleSimulador de ensamble
Simulador de ensamble
 
Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
PSeInt
PSeIntPSeInt
PSeInt
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcional
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
Fundamentos del Diseño de Software
Fundamentos del Diseño de SoftwareFundamentos del Diseño de Software
Fundamentos del Diseño de Software
 

Similar a Paradigmas de programación

MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdfMODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdfannalybautistaruiz
 
Programación Modular y Estructyrada
Programación Modular y EstructyradaProgramación Modular y Estructyrada
Programación Modular y Estructyradaguestefc95b
 
Técnicas de programación
Técnicas de programaciónTécnicas de programación
Técnicas de programaciónMaría Alvarez
 
Metodologías de programación.pptx
Metodologías de programación.pptxMetodologías de programación.pptx
Metodologías de programación.pptxHctorFabela1
 
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfUnidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfEDWINERNESTOMADRIDME
 
Diagrama de flujo pseudocodigos
Diagrama de flujo pseudocodigos Diagrama de flujo pseudocodigos
Diagrama de flujo pseudocodigos franklin
 
Paradigmas de Programación
Paradigmas de ProgramaciónParadigmas de Programación
Paradigmas de ProgramaciónJose Sanchez
 
Alirio teran _ Primer trabajo Programacion 2
Alirio teran _ Primer trabajo Programacion 2Alirio teran _ Primer trabajo Programacion 2
Alirio teran _ Primer trabajo Programacion 2Javier Eulacio
 
Paradigmas de programacion
Paradigmas de programacion Paradigmas de programacion
Paradigmas de programacion Anel Sosa
 
El algoritmo como estrategia y herramienta para la solución de problemas
El algoritmo como estrategia y herramienta para la solución de problemasEl algoritmo como estrategia y herramienta para la solución de problemas
El algoritmo como estrategia y herramienta para la solución de problemasBERNARDAURELIOFELIZM
 
Apun9algol
Apun9algolApun9algol
Apun9algolpabesacv
 
Paradigmasdeprogramacion
ParadigmasdeprogramacionParadigmasdeprogramacion
ParadigmasdeprogramacionVictor Zapata
 
Unidad 2
Unidad 2Unidad 2
Unidad 2Rurus9
 

Similar a Paradigmas de programación (20)

Clase 2
Clase 2Clase 2
Clase 2
 
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdfMODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
 
Modulo 1 algoritmo
Modulo 1 algoritmoModulo 1 algoritmo
Modulo 1 algoritmo
 
Modulo 1 algoritmo
Modulo 1 algoritmoModulo 1 algoritmo
Modulo 1 algoritmo
 
Programación Modular y Estructyrada
Programación Modular y EstructyradaProgramación Modular y Estructyrada
Programación Modular y Estructyrada
 
Técnicas de programación
Técnicas de programaciónTécnicas de programación
Técnicas de programación
 
Metodologías de programación.pptx
Metodologías de programación.pptxMetodologías de programación.pptx
Metodologías de programación.pptx
 
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfUnidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
 
Diagrama de flujo pseudocodigos
Diagrama de flujo pseudocodigos Diagrama de flujo pseudocodigos
Diagrama de flujo pseudocodigos
 
Paradigmas de Programación
Paradigmas de ProgramaciónParadigmas de Programación
Paradigmas de Programación
 
Alirio teran _ Primer trabajo Programacion 2
Alirio teran _ Primer trabajo Programacion 2Alirio teran _ Primer trabajo Programacion 2
Alirio teran _ Primer trabajo Programacion 2
 
Paradigmas de programacion
Paradigmas de programacion Paradigmas de programacion
Paradigmas de programacion
 
Programación modular
Programación modularProgramación modular
Programación modular
 
El algoritmo como estrategia y herramienta para la solución de problemas
El algoritmo como estrategia y herramienta para la solución de problemasEl algoritmo como estrategia y herramienta para la solución de problemas
El algoritmo como estrategia y herramienta para la solución de problemas
 
Técnicas de programación
Técnicas de programaciónTécnicas de programación
Técnicas de programación
 
Apun9algol
Apun9algolApun9algol
Apun9algol
 
Paradigmasdeprogramacion
ParadigmasdeprogramacionParadigmasdeprogramacion
Paradigmasdeprogramacion
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Iniciacion a-la-programacion-ii
Iniciacion a-la-programacion-iiIniciacion a-la-programacion-ii
Iniciacion a-la-programacion-ii
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 

Paradigmas de programación

  • 1. FUNDAMENTOS DE PROGRAMACIÓN Ibarra Badillo Mayra Actividad 1 12590431 Paradigmas de Programación Un paradigma de programación es una propuesta tecnológica que es adoptada por una comunidad de programadores cuyo núcleo central es incuestionable en cuanto a que unívocamente trata de resolver uno o varios problemas claramente delimitados. La resolución de estos problemas debe suponer consecuentemente un avance significativo en al menos un parámetro que afecte a la ingeniería de software. Los paradigmas de programación nos indican las diversas formas que, a lo largo de la evolución de los lenguajes, han sido aceptadas como estilos para programar y para resolver los problemas por medio de una computadora. Programación imperativa Es un paradigma de programación que describe la programación en términos del estado del programa y sentencias que cambian. Los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea. Desde esta perspectiva de bajo nivel, el estilo del programa está definido por los contenidos de la memoria, y las sentencias son instrucciones en el lenguaje de máquina nativo del computador (por ejemplo el lenguaje ensamblador). Los elementos más importantes de este paradigma son: • Variables: Son objetos cuyo valor depende de una localidad de memoria y que puede cambiar a lo largo de la ejecución del programa. Los estados de un programa son representados y diferenciados por su conjunto de variables y sus contenidos. • Tipos de datos: Son abstracciones que representan un conjunto de valores junto con las operaciones y relaciones que son aplicables a ellos. • Expresiones: Enla programación imperativa su papel más importante está en las sentencias de asignación. Una sentencia de asignación sirve para modificar el valor de una variable y así cambiar el estado de un programa. Los operadores empleados pueden ser matemáticos, lógicos o una combinación de ambos. Nociones básicas: -Variable con estado (valor modificable) -Secuencia de cambios de estado -Procedimientos Características destacables: Se fija completamente el orden en el que se deben realizar las operaciones con ayuda de unos patrones de control del flujo de ejecución (secuencia, alternativa y ciclo)que sirven para construir el esqueleto de las rutinas. Se pueden fijar puntos de observación en el texto de una rutina y considerar los valores de las variables (estado)cuando el flujo de ejecución pasa por dichos puntos. Estos valores pueden cambiar de un punto a otro y en el mismo punto en momentos distintos de la ejecución. 1
  • 2. FUNDAMENTOS DE PROGRAMACIÓN Ibarra Badillo Mayra Actividad 1 12590431 Ventajas Manipulación controlada Ajusta los problemas Control de datos de manera secuencial Desventajas Programación lineal Codificación Los programas no son seguros Lenguajes de alto nivel y muy complejo Programación estructurada La programación estructurada es una forma de escribir programas de ordenador (programación de computadora) de manera clara. Para ello utiliza únicamente tres estructuras: secuencia, selección e iteración; siendo innecesario el uso de la instrucción o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN). Estructurada es una técnica en la cual la estructura de un programa, esto es, la interpelación de sus partes realiza tan claramente cómo es posible mediante el uso de tres estructuras lógicas de control: A. Secuencia: Sucesión simple de dos o más operaciones. B. Selección: bifurcación condicional de una o más operaciones. C. Interacción: Repetición de una operación mientras se cumple una condición. Características 1. La estructura secuencial: Está definida por el flujo de control automático de un programa. De manera natural, a menos que otra cosa se indique, la computadora ejecuta las líneas de código en el orden en que fueron escritas. El control del programa fluye de la línea anterior a la línea siguiente. 2. Las estructuras de selección: Se basan en una declaración condicional. Si es verdadera, ciertas líneas de código son ejecutadas. Si tal declaración es falsa, esas líneas no serán ejecutadas. 3. Las estructuras de repetición (o de ciclos): Su construcción también hace uso de declaracionescondicionales. Si la condición evaluada es verdadera, un bloque de una o másinstrucciones se repetirá, hasta que la condición sea falsa. La computadora prueba la condición una primera vez, si es verdadera, ejecuta el bloque de comandos. Entonces, finalizada la primera repetición,comprueba de nuevo la condición y si es verdadera se repite el bloque nuevamente, y así sucesivamente hasta que la condición sea falsa. Ya que este funcionamiento es cíclico, cada unade estas repeticiones es llamada también ciclo. 2
  • 3. FUNDAMENTOS DE PROGRAMACIÓN Ibarra Badillo Mayra Actividad 1 12590431 VENTAJAS POTENCIALES Un programa escrito de acuerdo a estos principios no solamente tendrá una estructura, sino también una excelente presentación. Un programa escrito de esta forma tiende a ser mucho más fácil de comprender. La facilidad de comprensión del contenido de un programa puede facilitar el chequeo de la codificación y reducir el tiempo de prueba y depuración de programas. 1. Reducción de los costos de mantenimiento. 2. Los programas quedan mejor documentados internamente. 3. Aumento de la productividad del programador 4. Programas más sencillos y más rápidos 5. Se facilita la utilización de las otras técnicas para el mejoramiento de la productividad en programación DESVENTAJAS 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, definiendo módulos interdependientes programados y compilados por separado. Un método un poco más sofisticado es la programación por capas, en la que los módulos tienen una estructura jerárquica en la que se pueden definir funciones dentro de funciones o de procedimientos. Abstracción de datos Los lenguajes como ADA y C++ permiten que un usuario defina tipos que se comporten casi de la misma manera que los tipos definidos por el lenguaje. Tales tipos de datos reciben a menudo el nombre de tipos abstractos o tipos definidos por el usuario. El paradigma de programación sobre este tipo de datos consiste en: a) Establecer las características de los tipos de datos abstractos se desean definir. b) Proporcionar un conjunto completo de operaciones válidas y útiles para cada tipo de dato. Cuando no hay necesidad de más de un objeto de un tipo dado, no es necesario este estilo y basta con el estilo de programación de ocultamiento de datos por medio de módulos. Ventajas Recogen mejor la semántica de los tipos. Al agrupar la representación junto a las operaciones que definen su comportamiento, y forzar a utilizar el TAd a través de estas operaciones se evitan errores en el manejo del tipo de datos (Por ejemplo, la división por 0 en el caso del TAD Racional). 3
  • 4. FUNDAMENTOS DE PROGRAMACIÓN Ibarra Badillo Mayra Actividad 1 12590431 2. Abstracción: Separa la especificación (que hace) de la implementación (cómo lo hace). Los usuarios de un TAD no necesitan conocer sus detalles de implementación. Como consecuencia: a) Se favorece la extensibilidad del código: Es posible modificar y mejorar la implementación del TAD sin afectar a los demás módulos que lo utilizan. b) Aumenta la facilidad de uso. c) Aumenta la legibilidad del código que usa el TAD. 3. Produce código reutilizable. 4. Favorece la ausencia de errores, al reutilizar código ya probado y forzar a utilizar la estructura de datos correctamente. Programación orientada a objetos (POO) La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos. El problema con la abstracción de datos es que no hay ninguna distinción entre las propiedades generales y las particulares de un conjunto de objetos. Características fundamentales de la POO: 1. Encapsulamiento: Es la ocultación de información. Significa mantener la información dentro del objeto y mantenerlo como una caja negra. Puede ser accedida por métodos. 2. Abstracción: Es la capacidad de aislar y encapsular la información del diseño y la ejecución. Es la capacidad para identificar atributos y métodos. La ventaja de la herencia es que permite la reutilización de código, ahorrando tiempo y dinero. 3. Herencia: Es la propiedad que permite a los objetos crearse a partir de otros objetos. Cada subclase comparte características comunes con la clase de la que deriva. La clase original la llamamos clase base y las nuevas clases creadas a partir de ella clases derivadas. Una clase derivada puede ser también clase base dando lugar a una jerarquía de clases. 4. Polimorfismo: Es la capacidad de que diferentes objetos reaccionen de distinta forma a un mismo mensaje. Es la capacidad de referirse a objetos de clases distintas en una jerarquía utilizando el mismo elemento de programa (método) para realizar la misma operación, pero de manera diferente. 4
  • 5. FUNDAMENTOS DE PROGRAMACIÓN Ibarra Badillo Mayra Actividad 1 12590431 Características Secundarias de la POO: 1. Tipificación: Permite la agrupación de objetos en tipos. 2. Concurrencia: Los objetos pueden actuar al mismo tiempo. 3. Persistencia: Un objeto puede seguir existiendo tras desaparecer su antecesor. Gran parte de los lenguajes más utilizados hoy en díaestán orientados a objetos,entre ellos se encuentran: Java, C++, PHP, Python, C#, Delphi, Ruby, D y Actionscript,entre otros. Ventajas de la programación orientada a objetos Vamos a ver las ventajas más importantes de la programación orientada a objetos: Reusabilidad. Cuando hemos diseñado adecuadamente las clases, se pueden usar en distintas partes del programa y en numerosos proyectos. Mantenibilidad. Debido a la sencillez para abstraer el problema, los programas orientados a objetos son más sencillos de leer y comprender, pues nos permiten ocultar detalles de implementación dejando visibles sólo aquellos detalles más relevantes. Modificabilidad. La facilidad de añadir, suprimir o modificar nuevos objetos nos permite hacer modificaciones de una forma muy sencilla. Fiabilidad. Al dividir el problema en partes más pequeñas podemos probarlas de manera independiente y aislar mucho más fácilmente los posibles errores que puedan surgir. Fomenta la reutilización y extensión del código. Permite crear sistemas más complejos. Relacionar el sistema al mundo real. Facilita la creación de programas visuales. Construcción de prototipos Agiliza el desarrollo de software Facilita el trabajo en equipo Facilita el mantenimiento del software La programación orientada a objetos presenta también algunas desventajas como pueden ser: Cambio en la forma de pensar de la programación tradicional a la orientada a objetos. La ejecución de programas orientados a objetos es más lenta. La necesidad de utilizar bibliotecas de clases obliga a su aprendizaje y entrenamiento. Exige conocer bien la teoría de objetos. Requiere mayor capacidad de los programadores. Conclusión Un paradigma es el resultado de un proceso social y tecnológico en el cual un grupo de personas programadores desarrolla nuevas ideas, crea principios y prácticas alrededor de estas ideas, los paradigmas de programación nos indican las diversas formas para programar a lo largo de la evolución de los lenguajes de programación, que han sido aceptados como estilos para programar y para resolver los problemas por medio de una computadora. En la actualidad el paradigma más usado es la programación orientada a objetos. 5
  • 6. FUNDAMENTOS DE PROGRAMACIÓN Ibarra Badillo Mayra Actividad 1 12590431 Bibliografía Héctor Zárate | www.mieldemaple.com http://www.taringa.net/posts/ciencia-educacion/9145179/Paradigma-de-Programacion.html http://www.genbetadev.com/paradigmas-de-programacion/diferencias-entre-paradigmas-de- programacion Scott, Michael Lee. Programming Languages Pragmatics. Estados Unidos: MorganKauffmannPublishers, 2000. • Sebesta, Robert W. Concepts of Programming Languages. Estados Unidos: PearsonEducation, 2004. • Linz, Peter. An Introduction to Formal Languages and Automata.EstadosUnidos: Jonesand Bartlett Publishers, 2001. • Craig, Iain. Object-Oriented Programming Languages: Interpretation. EstadosUnidos:Springer, 2007. • Bruce, Kim. Foundations of Object-oriented Languages: Types and Semantics. EstadosUnidos: MIT Press, 2002. http://es.scribd.com/doc/6167605/9/Desventajas-de-la-programacion-estructurada 6