SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Paradigmas de Programación

       Algorítmica 201
Programación Estructurada
• Programación estructurada:
   – consiste en un conjunto de reglas para escribir programas de tal
     manera que sean legibles y fáciles de modificar.

• Reglas a seguir para la programación estructurada:
   a) Características de algoritmos estructurados
   b) ¿Cómo construir un algoritmo estructurado?
   c) Estructuras algorítmicas estructuradas
a) Características de un algoritmo
             estructurado
• Finito: El algoritmo debe tener un número finito
  de pasos.
• Eficientes: Deben ocupar la mínima memoria y
  minimizar el tiempo de ejecución.
• Legibles: El texto que lo describe debe ser claro,
  de forma que permita entenderlo y leerlo
  fácilmente.
• Modificables: Estarán diseñados de modo que
  sus posteriores modificaciones sean fáciles de
  realizar, incluso por programadores diferentes a
  sus propios autores.
Características de un algoritmo
               estructurado
• Modulares:
   – La filosofía utilizada para su diseño debe favorecer la división del
     problema en módulos pequeños.



• Único punto de entrada, único punto de salida:
   – A los algoritmos y a los módulos que lo integran, se entra por un solo
     punto (inicio) y se sale por un solo punto (fin)
b) ¿Cómo construir algoritmos
          estructurados?
– Definición y análisis del problema: datos de entrada y
  salida (resultados)

– Aplicar la técnica de: “divide y vencerás”, que consiste en
  descomponer el problema en subproblemas más sencillos

– Resolución de los subproblemas: realización de los
  algoritmos correspondientes a los subproblemas

– Depurar (prueba de validez) el algoritmo resultante
c)Estructuras algorítmicas o de control
• Secuenciales: cada acción se realiza una sola
  vez y en un determinado orden

• Condicionales (selectivas): permiten
  seleccionar una acción a realizar entre varias
  alternativas

• Iterativas (repetitivas): una determinada
  acción se realiza más de una vez
Ejemplo
• Calcular la media de una serie de números
  positivos, suponiendo que los datos se leen desde un
  terminal.
• Un valor de cero —como entrada— indicará que se ha
  alcanzado el final de la serie de números positivos.
• El primer paso a dar en el desarrollo del algoritmo es
  descomponer el problema en una serie de pasos
  secuenciales.
• Para calcular una media se necesita sumar y contar los
  valores. Por consiguiente, el algoritmo en forma
  descriptiva sería
•   algoritmo media
•   inicio
•   variables
•   entero: n, c, s;
•   real: media;
•   C← 0;
•   S←0;
•   Hacer
•     leer(N)
•     Si N <> 0 Entonces
•        S←S+N;
•        C←C+1;
•      fin si
•   Mientras N <>0
•   si C>0 entonces
•      media ← S/C
•       escribe(media)
•   sino
•       escribe('no datos')
•   fin si
•   fin
Paradigma Orientado a Objetos
• La programación orientada a objetos aporta
  un nuevo enfoque a los retos que se plantean
  en la programación estructurada cuando los
  problemas a resolver son complejos. Al
  contrario que la programación procedimental
  que enfatiza en los algoritmos, la POO enfatiza
  en los datos. En lugar de intentar ajustar un
  problema al enfoque procedimental de un
  lenguaje, POO intenta ajustar el lenguaje al
  problema.
• Los lenguajes orientados combinan en una única
  unidad o módulo, tanto los datos como las
  funciones que operan sobre esos datos. Tal
  unidad se llama objeto. Si se desea modificar los
  datos de un objeto, hay que realizarlo mediante
• las funciones miembro del objeto. Ninguna otra
  función puede acceder a los datos. Esto simplifica
  la escritura, depuración y mantenimiento del
  programa.
Principios Básicos de Orientación a
Objetos

                                 Orientación a Objetos


                      Encapsulación


                                       Polimorfismo


                                                      Modularidad
        Abstracción




                                                                    Jerarquía
¿Qué es Abstracción?

• Es el proceso de capturar los detalles
  fundamentales de un objeto mientras se
  suprimen o ignoran otros detalles.

  – • Se enfatizan características comunes que
    interesan
  – • Se ignoran otras características
La Abstracción Minimiza la Complejidad
¿Qué es Encapsulación?

• Es la capacidad de esconder los detalles de
  como funciona un objeto (la
  implementación), detrás de una interface
  – • Solo se necesita conocer la interface para poder
    usar el objeto
  – • El usuario no se ve afectado si se cambia o
    mejora el funcionamiento interno del objeto,
    mientras se mantenga la interface
Sens => => Vol++
  Sens3 VolUp =>
=>=> DAC31.out=2.1
   Settings.vol++
=>=> Amp27.gain=1.3
   DAC23.out=0.7
=>=> OSD, Pref, ...
   Amp02.gain=1.7
=> OSD, Pref, ...
¿Que es Polimorfismo?
 Es la habilidad de esconder diferentes
 implementaciones tras una sola interface
• Ejemplo2: Operación “Abrir”

       Puerta           Cuenta            Puerto            Plazo

     Abrir()          Abrir()          Abrir()          Abrir()

 Permite al analista hablar el lenguaje del cliente.
 Evita asignar identificadores artificiosos para distinguir las
  operaciones.
 Contribuye a la reutilización de código.
¿Qué es Modularidad?


• Es la capacidad de particionar algo complejo
  y difícil de manejar, en partes más sencillas y
  fáciles de manejar
¿Qué es Jerarquía?

• La capacidad de manejar niveles de
  abstracción
¿Qué es Herencia?


• Es la capacidad de los elementos de una
  jerarquía, de transmitir sus características
  desde los niveles mas abstractos a los más
  concretos
Herencia
                                    • Uno puede hacer
                Animal                representaciones
                                      generales de un objeto y
    Mamífero              Ovíparo     después relacionarlas con
                                      otros objetos, para que
                                      cada uno tenga
Canino       Felino       Reptil
                                      características mas
                                      especificas
  Firulais     Garfield
                                    • Estas son las relaciones
                                      que puede tener un
  Lassie        Felix                 objeto
Otro ejemplo de herencia:
¿Qué es un Objeto?

 Informalmente, un objeto representa a una
  entidad, ya sea física, conceptual o software
Una definición más formal


• Un objeto es un concepto, abstracción o cosa
  con fronteras definidas y con sentido para
  una aplicación
• Un objeto es algo que tiene:
  – Estado
  – Comportamiento
  – Identidad
Un Objeto tiene Estado

• El estado de un objeto es una de las posibles condiciones en
  que un objeto puede existir

• El estado de un objeto normalmente cambia con el tiempo

• El estado de un objeto es usualmente implementado por un
  conjunto de propiedades llamadas atributos, mas los enlaces
  que el objeto pueda tener con otros objetos

• El estado lo establecen los valores de los atributos
Un objeto tiene comportamiento


• El comportamiento determina como un objeto actúa y
  reacciona.

• El comportamiento define la manera en la que un objeto
  responde a las peticiones de otros objetos.

• El comportamiento visible de un objeto se modela con un
  conjunto de mensajes a los que el puede responder
• Los mensajes se implementan como las operaciones del
  objeto.
Un objeto tiene identidad



• Cada objeto tiene una identidad única, aun si
  su estado en un momento dado, es idéntico
  al de otros objetos
Ejemplo:
• Objeto: Televisor
  Atributos: Pantalla, Antena, Color, Marca, Bocina,
  Sintonizador.
  Comportamiento (métodos): Encender, Apagar,
  Cambiar canal
  Estado de un atributo: Marca=sony.
  El estado es la asignación de un valor a un atributo.
¿Qué son Clases?
  Cuando se han identificado muchos objetos en un
  dominio, decimos que una clase es una abstracción
  que describe un grupo de objetos que tienen:
  –   • propiedades en común (atributos)
  –   • comportamiento en común (operaciones)
  –   • relaciones comunes con otros objetos (asociaciones)
  –   • semántica en común (descripción breve)
• Una clase es una abstracción porque:
  – • enfatiza características relevantes al sistema
  – • suprime otras características
Clase Carro
La Relación entre Clases y Objetos


• Una clase en una definición abstracta de un objeto
   – Define la estructura y comportamiento de cada objeto en
     la clase
   – Sirve como una plantilla para crear objetos
• Un objeto es una instancia concreta de una clase
   – • Los objetos pueden agruparse en clases
Clases y Objetos
Vehículo

                            Platero:Animal
           Animal




                                 Punto


Figura              (1,3)
                                   (5,2.5)
                        (2,2)
                        (2,1)
Ejercicio
•   Identifique los elementos de la siguiente lista, indicando cuales son objetos y cuales son clases. En el
    caso de los objetos, indicar cual sería la clase a la que pertenecen.



•   Contestador telefónico de Mario
•   Caja de Ahorro
•   Servidor FTP
•   Misil nuclear
•   Botón de llamado al ascensor
•   Máquina de Fax del Depto. de Ventas
•   Vehículo Espacial Ariadne
•   Apollo XIII
•   Fondo de contingencia de la compañía
•   Lanzador espacial Columbus
•   Teléfono rojo de la oficina oval de la Casa Blanca
•   Registro de Impuestos Federales
Ejercicio 2
•   En la siguiente lista, identificar cuales son atributos y cuales son clases. Intente asociar los atributos
    con las clases a las que podrían pertenecer.

•   Autopista
•   Nombre
•   Población
•   Número
•   Paciente
•   Tratamiento
•   Cantidad adeudada
•   Enfermedad
•   Período orbital
•   País
•   Coordenadas
•   Ultima Fecha de paso
•   Satélite
Otro ejemplo:
• Clase   Objetos     Responsabilidades
                      • Nombre
                      • Edad
• Niño    Alejandro   • Juguetes
                      • Cepillarse los dientes
                      • Avisar que tiene sueño

                      • Nombre
• Mamá    Gloria      • Dormir al niño

• Papá    Alexis      •   Nombre
                      •   Arrancar el carro
                      •   Leer el periódico
                      •   Cuidar a los niños
Actividades:
1. Identifique una clase que agrupe todos estos objetos
2. Agrupe diversos objetos en distintas clases




                                          RB - 2004       46
Representando un objeto


Nombre:      María
             Edad
Atributos:   Dirección
             Amigo

                  Bailar()
Acciones:         PedirAJorgeQueBaile()
                  Saltar()
                  Caminar()
                  MoverMiCabeza()
                  MoverMisBrazos
                  MoverMiCintura
              ......

                         RB - 2004        47
Representando una clase


Nombre:      Persona
             Edad
Atributos:   Dirección
             Amigo

              Bailar()
Acciones:     PedirA_un_amigoQueBail
              e()
              Saltar()
              Caminar()
              MoverCabeza()
              MoverBrazos
              MoverCintura
              ......
                         RB - 2004     48
Métodos
• Los métodos de una clase son funciones ó
  procedimientos propios de la clase que pueden tener
  acceso a los atributos de la misma para realizar las
  operaciones para los que son programados.

• Cada método recibe ciertos parámetros y retorna su
  resultado en un dato de cierto tipo, dependiendo de
  estos parámetros que recibe el método y el tipo del
  dato que retorna, podemos tener métodos con el
  mismo nombre y serán diferenciados por el tipo de sus
  parámetros (polimorfismo).
• Los parámetros o argumentos son una forma de
  intercambiar información con el método. Pueden servir
  para introducir datos para ejecutar el método (entrada)
  o para obtener o modificar datos tras su ejecución
  (salida).

• En <tipo retorno dato> se indica cuál es el tipo de dato
  del objeto que el método devuelve, y si no devuelve
  ninguno se ha de escribir void en su lugar.

• Como nombre del método se puede poner en
  <nombreMétodo> cualquier identificador válido.
Definición de métodos en
                   Pseudocódigo
•   Nombre_Método (parámetros): Tipo retorno dato
•     Cuerpo del método

•   Ejemplo:
•   Método calcularFactorial (numero : entero) : entero
•   Declaraciones Variables
•   fac, i, numero:Entero
•   Fac<-1;
•   Para i<- 1 hasta numero hacer
•     fac = fac * i
•   FinFor
•   retornar fac
•   Fin Método calcularFactorial
Funciones en el paradigma
                 estructurado
• Nombre_funcion (lista_parametros): tipo de dato retorno

• Inicio
•   declaración de variables.
•   sentencias;
•   ;
•   ;
•   regresa valor o expresión;
• Fin
Ejemplo
• CalcularFactorial(numero : entero) : entero
• Inicio
• Declaraciones Variables
• fac, i, numero:Entero
• Fac<-1;
• Para i<- 1 hasta numero hacer
•     fac = fac * i
• FinFor
• retornar fac
• Fin calcularFactorial
Programación Orientada a Objetos
                    vs
         Programación Estructurado

Los lenguajes de programación estructurada:
    • Están orientados a acciones.
    • La unidad de programación es la función.


La programación orientada a objetos:
    • Encapsula datos (atributos) y métodos (comportamiento) en
       objetos que están relacionados entre sí.
    • La unidad de programación es la clase.

Weitere ähnliche Inhalte

Was ist angesagt?

PARADIGMA FUNCIONAL
PARADIGMA FUNCIONALPARADIGMA FUNCIONAL
PARADIGMA FUNCIONALFredy Olaya
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajesPedro Contreras Flores
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcionalAlejandra MA
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programaciónMay Ibarra
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programaciónOver Rattlehead
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooJosé Antonio Sandoval Acosta
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En JavaEmilio Aviles Avila
 
Programacion Orientada a Objetos (poo)
Programacion Orientada a Objetos (poo) Programacion Orientada a Objetos (poo)
Programacion Orientada a Objetos (poo) Maîck Ddz
 
Conceptos y definiciones de poo (quino ortiz & miguel martinez)
Conceptos y definiciones de poo (quino ortiz & miguel martinez)Conceptos y definiciones de poo (quino ortiz & miguel martinez)
Conceptos y definiciones de poo (quino ortiz & miguel martinez)MIGUEL_INGENIERO
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoAlvaro Enrique Ruano
 
Curso java inicial 1 poo
Curso java inicial   1 pooCurso java inicial   1 poo
Curso java inicial 1 pooHerman Vargas
 

Was ist angesagt? (20)

Curso Java Inicial 1 POO
Curso Java Inicial   1 POOCurso Java Inicial   1 POO
Curso Java Inicial 1 POO
 
PARADIGMA FUNCIONAL
PARADIGMA FUNCIONALPARADIGMA FUNCIONAL
PARADIGMA FUNCIONAL
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajes
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcional
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma poo
 
Unidad 1. Introducción. Conceptos fundamentales de la POO
Unidad 1. Introducción. Conceptos fundamentales de la POOUnidad 1. Introducción. Conceptos fundamentales de la POO
Unidad 1. Introducción. Conceptos fundamentales de la POO
 
Programación!! . .
Programación!! . .Programación!! . .
Programación!! . .
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En Java
 
Cuestionario consultado
Cuestionario consultadoCuestionario consultado
Cuestionario consultado
 
Programacion Orientada a Objetos (poo)
Programacion Orientada a Objetos (poo) Programacion Orientada a Objetos (poo)
Programacion Orientada a Objetos (poo)
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Taller 2 conceptualizacion
Taller 2 conceptualizacionTaller 2 conceptualizacion
Taller 2 conceptualizacion
 
Conceptos y definiciones de poo (quino ortiz & miguel martinez)
Conceptos y definiciones de poo (quino ortiz & miguel martinez)Conceptos y definiciones de poo (quino ortiz & miguel martinez)
Conceptos y definiciones de poo (quino ortiz & miguel martinez)
 
Programacion 1 primera unidad
Programacion 1 primera unidadProgramacion 1 primera unidad
Programacion 1 primera unidad
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
Programacion Funcional
Programacion FuncionalProgramacion Funcional
Programacion Funcional
 
Curso java inicial 1 poo
Curso java inicial   1 pooCurso java inicial   1 poo
Curso java inicial 1 poo
 

Andere mochten auch

Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacionLuis Peralta
 
Programacion modular
Programacion modularProgramacion modular
Programacion modularCarmen Silva
 
Programación Modular y Estructyrada
Programación Modular y EstructyradaProgramación Modular y Estructyrada
Programación Modular y Estructyradaguestefc95b
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacionWil Mer
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacionjeansebas154
 
3 paradigmas
3 paradigmas3 paradigmas
3 paradigmasalithu1
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modularguestb97266b9
 
Sentencia, secuencia y bloque
Sentencia, secuencia y bloqueSentencia, secuencia y bloque
Sentencia, secuencia y bloqueTensor
 
Tema 7
Tema 7Tema 7
Tema 7UH
 
CURSO DE PROGRAMACION BASICA - Cap 5
CURSO DE PROGRAMACION BASICA - Cap 5CURSO DE PROGRAMACION BASICA - Cap 5
CURSO DE PROGRAMACION BASICA - Cap 5Daniel Irene
 
12 programacion modular
12 programacion modular12 programacion modular
12 programacion modularLaura Cruz
 
Programación Modular
Programación ModularProgramación Modular
Programación Modularguestefc95b
 
Programacion logica 1
Programacion logica 1Programacion logica 1
Programacion logica 1profedelvalle
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradavnslgars
 
Utilizar programación modular con datos simples y con datos estructurados
Utilizar programación modular con datos simples y con datos estructuradosUtilizar programación modular con datos simples y con datos estructurados
Utilizar programación modular con datos simples y con datos estructuradosprofe.gguacaran
 

Andere mochten auch (20)

Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacion
 
Programacion modular
Programacion modularProgramacion modular
Programacion modular
 
Programación modular
Programación modularProgramación modular
Programación modular
 
Programación Modular y Estructyrada
Programación Modular y EstructyradaProgramación Modular y Estructyrada
Programación Modular y Estructyrada
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacion
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacion
 
3 paradigmas
3 paradigmas3 paradigmas
3 paradigmas
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
Sentencia, secuencia y bloque
Sentencia, secuencia y bloqueSentencia, secuencia y bloque
Sentencia, secuencia y bloque
 
Programación modular
Programación modularProgramación modular
Programación modular
 
Tema 7
Tema 7Tema 7
Tema 7
 
CURSO DE PROGRAMACION BASICA - Cap 5
CURSO DE PROGRAMACION BASICA - Cap 5CURSO DE PROGRAMACION BASICA - Cap 5
CURSO DE PROGRAMACION BASICA - Cap 5
 
12 programacion modular
12 programacion modular12 programacion modular
12 programacion modular
 
Programacion MODULAR
Programacion MODULARProgramacion MODULAR
Programacion MODULAR
 
Programación Modular
Programación ModularProgramación Modular
Programación Modular
 
Logica subprogramas
Logica subprogramasLogica subprogramas
Logica subprogramas
 
Programacion logica 1
Programacion logica 1Programacion logica 1
Programacion logica 1
 
2.1 recursividad
2.1 recursividad2.1 recursividad
2.1 recursividad
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Utilizar programación modular con datos simples y con datos estructurados
Utilizar programación modular con datos simples y con datos estructuradosUtilizar programación modular con datos simples y con datos estructurados
Utilizar programación modular con datos simples y con datos estructurados
 

Ähnlich wie Paradigmas de programación

Paradigmas programacion rufino
Paradigmas programacion rufinoParadigmas programacion rufino
Paradigmas programacion rufinoagustin rojas
 
Programación i 1. diseño orientado a objetos
Programación i 1. diseño orientado a objetosProgramación i 1. diseño orientado a objetos
Programación i 1. diseño orientado a objetosEdward Ropero
 
2clasesdeprogramacion
2clasesdeprogramacion2clasesdeprogramacion
2clasesdeprogramacionAmado Arcaya
 
G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1
G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1
G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1Oscar Ramos
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objetoboncastell
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosalexmoncada21
 
Introduccion poo2
Introduccion poo2Introduccion poo2
Introduccion poo2ayreonmx
 
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetoskarlalopezbello
 
Fundamentos de la Tecnologia Orientada a Objetos
Fundamentos de la Tecnologia Orientada a ObjetosFundamentos de la Tecnologia Orientada a Objetos
Fundamentos de la Tecnologia Orientada a Objetosedwinlemmon
 

Ähnlich wie Paradigmas de programación (20)

Paradigmas programacion rufino
Paradigmas programacion rufinoParadigmas programacion rufino
Paradigmas programacion rufino
 
Programación i 1. diseño orientado a objetos
Programación i 1. diseño orientado a objetosProgramación i 1. diseño orientado a objetos
Programación i 1. diseño orientado a objetos
 
Unidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a ObjetosUnidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a Objetos
 
2clasesdeprogramacion
2clasesdeprogramacion2clasesdeprogramacion
2clasesdeprogramacion
 
G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1
G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1
G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1
 
Poo
PooPoo
Poo
 
Java Basico
Java BasicoJava Basico
Java Basico
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objeto
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
conceptos de la poo
conceptos de la pooconceptos de la poo
conceptos de la poo
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Introduccion poo2
Introduccion poo2Introduccion poo2
Introduccion poo2
 
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
 
Introducción al POO
Introducción al POOIntroducción al POO
Introducción al POO
 
Orientada a objetos
Orientada a objetosOrientada a objetos
Orientada a objetos
 
Programación Orientada a Objetos
Programación Orientada  a ObjetosProgramación Orientada  a Objetos
Programación Orientada a Objetos
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la POO
 
Fundamentos de la Tecnologia Orientada a Objetos
Fundamentos de la Tecnologia Orientada a ObjetosFundamentos de la Tecnologia Orientada a Objetos
Fundamentos de la Tecnologia Orientada a Objetos
 
Cap3.0
Cap3.0Cap3.0
Cap3.0
 

Mehr von María Luisa Velasco (20)

Respaldando bd
Respaldando bdRespaldando bd
Respaldando bd
 
Sql
SqlSql
Sql
 
Sql
SqlSql
Sql
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Ejercicios normalización
Ejercicios normalizaciónEjercicios normalización
Ejercicios normalización
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Modulos sgbd
Modulos sgbdModulos sgbd
Modulos sgbd
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Induccion fundbd2012
Induccion fundbd2012Induccion fundbd2012
Induccion fundbd2012
 
Induccion fundbd2012
Induccion fundbd2012Induccion fundbd2012
Induccion fundbd2012
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Proyecto final de algoritmica
Proyecto final de algoritmicaProyecto final de algoritmica
Proyecto final de algoritmica
 
Ejercicios arreglos4
Ejercicios arreglos4Ejercicios arreglos4
Ejercicios arreglos4
 
Ejercicios arreglos2
Ejercicios arreglos2Ejercicios arreglos2
Ejercicios arreglos2
 
Seguridad bd
Seguridad bdSeguridad bd
Seguridad bd
 
Ejercicios3parte
Ejercicios3parteEjercicios3parte
Ejercicios3parte
 
Ejercicio privilegios
Ejercicio privilegiosEjercicio privilegios
Ejercicio privilegios
 

Paradigmas de programación

  • 1. Paradigmas de Programación Algorítmica 201
  • 2. Programación Estructurada • Programación estructurada: – consiste en un conjunto de reglas para escribir programas de tal manera que sean legibles y fáciles de modificar. • Reglas a seguir para la programación estructurada: a) Características de algoritmos estructurados b) ¿Cómo construir un algoritmo estructurado? c) Estructuras algorítmicas estructuradas
  • 3. a) Características de un algoritmo estructurado • Finito: El algoritmo debe tener un número finito de pasos. • Eficientes: Deben ocupar la mínima memoria y minimizar el tiempo de ejecución. • Legibles: El texto que lo describe debe ser claro, de forma que permita entenderlo y leerlo fácilmente. • Modificables: Estarán diseñados de modo que sus posteriores modificaciones sean fáciles de realizar, incluso por programadores diferentes a sus propios autores.
  • 4. Características de un algoritmo estructurado • Modulares: – La filosofía utilizada para su diseño debe favorecer la división del problema en módulos pequeños. • Único punto de entrada, único punto de salida: – A los algoritmos y a los módulos que lo integran, se entra por un solo punto (inicio) y se sale por un solo punto (fin)
  • 5. b) ¿Cómo construir algoritmos estructurados? – Definición y análisis del problema: datos de entrada y salida (resultados) – Aplicar la técnica de: “divide y vencerás”, que consiste en descomponer el problema en subproblemas más sencillos – Resolución de los subproblemas: realización de los algoritmos correspondientes a los subproblemas – Depurar (prueba de validez) el algoritmo resultante
  • 6. c)Estructuras algorítmicas o de control • Secuenciales: cada acción se realiza una sola vez y en un determinado orden • Condicionales (selectivas): permiten seleccionar una acción a realizar entre varias alternativas • Iterativas (repetitivas): una determinada acción se realiza más de una vez
  • 7. Ejemplo • Calcular la media de una serie de números positivos, suponiendo que los datos se leen desde un terminal. • Un valor de cero —como entrada— indicará que se ha alcanzado el final de la serie de números positivos. • El primer paso a dar en el desarrollo del algoritmo es descomponer el problema en una serie de pasos secuenciales. • Para calcular una media se necesita sumar y contar los valores. Por consiguiente, el algoritmo en forma descriptiva sería
  • 8. algoritmo media • inicio • variables • entero: n, c, s; • real: media; • C← 0; • S←0; • Hacer • leer(N) • Si N <> 0 Entonces • S←S+N; • C←C+1; • fin si • Mientras N <>0 • si C>0 entonces • media ← S/C • escribe(media) • sino • escribe('no datos') • fin si • fin
  • 9. Paradigma Orientado a Objetos • La programación orientada a objetos aporta un nuevo enfoque a los retos que se plantean en la programación estructurada cuando los problemas a resolver son complejos. Al contrario que la programación procedimental que enfatiza en los algoritmos, la POO enfatiza en los datos. En lugar de intentar ajustar un problema al enfoque procedimental de un lenguaje, POO intenta ajustar el lenguaje al problema.
  • 10. • Los lenguajes orientados combinan en una única unidad o módulo, tanto los datos como las funciones que operan sobre esos datos. Tal unidad se llama objeto. Si se desea modificar los datos de un objeto, hay que realizarlo mediante • las funciones miembro del objeto. Ninguna otra función puede acceder a los datos. Esto simplifica la escritura, depuración y mantenimiento del programa.
  • 11. Principios Básicos de Orientación a Objetos Orientación a Objetos Encapsulación Polimorfismo Modularidad Abstracción Jerarquía
  • 12. ¿Qué es Abstracción? • Es el proceso de capturar los detalles fundamentales de un objeto mientras se suprimen o ignoran otros detalles. – • Se enfatizan características comunes que interesan – • Se ignoran otras características
  • 13. La Abstracción Minimiza la Complejidad
  • 14. ¿Qué es Encapsulación? • Es la capacidad de esconder los detalles de como funciona un objeto (la implementación), detrás de una interface – • Solo se necesita conocer la interface para poder usar el objeto – • El usuario no se ve afectado si se cambia o mejora el funcionamiento interno del objeto, mientras se mantenga la interface
  • 15.
  • 16. Sens => => Vol++ Sens3 VolUp => =>=> DAC31.out=2.1 Settings.vol++ =>=> Amp27.gain=1.3 DAC23.out=0.7 =>=> OSD, Pref, ... Amp02.gain=1.7 => OSD, Pref, ...
  • 17. ¿Que es Polimorfismo? Es la habilidad de esconder diferentes implementaciones tras una sola interface
  • 18. • Ejemplo2: Operación “Abrir” Puerta Cuenta Puerto Plazo Abrir() Abrir() Abrir() Abrir()  Permite al analista hablar el lenguaje del cliente.  Evita asignar identificadores artificiosos para distinguir las operaciones.  Contribuye a la reutilización de código.
  • 19. ¿Qué es Modularidad? • Es la capacidad de particionar algo complejo y difícil de manejar, en partes más sencillas y fáciles de manejar
  • 20.
  • 21. ¿Qué es Jerarquía? • La capacidad de manejar niveles de abstracción
  • 22.
  • 23. ¿Qué es Herencia? • Es la capacidad de los elementos de una jerarquía, de transmitir sus características desde los niveles mas abstractos a los más concretos
  • 24. Herencia • Uno puede hacer Animal representaciones generales de un objeto y Mamífero Ovíparo después relacionarlas con otros objetos, para que cada uno tenga Canino Felino Reptil características mas especificas Firulais Garfield • Estas son las relaciones que puede tener un Lassie Felix objeto
  • 25. Otro ejemplo de herencia:
  • 26. ¿Qué es un Objeto? Informalmente, un objeto representa a una entidad, ya sea física, conceptual o software
  • 27.
  • 28. Una definición más formal • Un objeto es un concepto, abstracción o cosa con fronteras definidas y con sentido para una aplicación • Un objeto es algo que tiene: – Estado – Comportamiento – Identidad
  • 29. Un Objeto tiene Estado • El estado de un objeto es una de las posibles condiciones en que un objeto puede existir • El estado de un objeto normalmente cambia con el tiempo • El estado de un objeto es usualmente implementado por un conjunto de propiedades llamadas atributos, mas los enlaces que el objeto pueda tener con otros objetos • El estado lo establecen los valores de los atributos
  • 30.
  • 31. Un objeto tiene comportamiento • El comportamiento determina como un objeto actúa y reacciona. • El comportamiento define la manera en la que un objeto responde a las peticiones de otros objetos. • El comportamiento visible de un objeto se modela con un conjunto de mensajes a los que el puede responder • Los mensajes se implementan como las operaciones del objeto.
  • 32.
  • 33. Un objeto tiene identidad • Cada objeto tiene una identidad única, aun si su estado en un momento dado, es idéntico al de otros objetos
  • 34.
  • 35. Ejemplo: • Objeto: Televisor Atributos: Pantalla, Antena, Color, Marca, Bocina, Sintonizador. Comportamiento (métodos): Encender, Apagar, Cambiar canal Estado de un atributo: Marca=sony. El estado es la asignación de un valor a un atributo.
  • 36. ¿Qué son Clases? Cuando se han identificado muchos objetos en un dominio, decimos que una clase es una abstracción que describe un grupo de objetos que tienen: – • propiedades en común (atributos) – • comportamiento en común (operaciones) – • relaciones comunes con otros objetos (asociaciones) – • semántica en común (descripción breve) • Una clase es una abstracción porque: – • enfatiza características relevantes al sistema – • suprime otras características
  • 38. La Relación entre Clases y Objetos • Una clase en una definición abstracta de un objeto – Define la estructura y comportamiento de cada objeto en la clase – Sirve como una plantilla para crear objetos • Un objeto es una instancia concreta de una clase – • Los objetos pueden agruparse en clases
  • 39.
  • 41. Vehículo Platero:Animal Animal Punto Figura (1,3) (5,2.5) (2,2) (2,1)
  • 42.
  • 43. Ejercicio • Identifique los elementos de la siguiente lista, indicando cuales son objetos y cuales son clases. En el caso de los objetos, indicar cual sería la clase a la que pertenecen. • Contestador telefónico de Mario • Caja de Ahorro • Servidor FTP • Misil nuclear • Botón de llamado al ascensor • Máquina de Fax del Depto. de Ventas • Vehículo Espacial Ariadne • Apollo XIII • Fondo de contingencia de la compañía • Lanzador espacial Columbus • Teléfono rojo de la oficina oval de la Casa Blanca • Registro de Impuestos Federales
  • 44. Ejercicio 2 • En la siguiente lista, identificar cuales son atributos y cuales son clases. Intente asociar los atributos con las clases a las que podrían pertenecer. • Autopista • Nombre • Población • Número • Paciente • Tratamiento • Cantidad adeudada • Enfermedad • Período orbital • País • Coordenadas • Ultima Fecha de paso • Satélite
  • 45. Otro ejemplo: • Clase Objetos Responsabilidades • Nombre • Edad • Niño Alejandro • Juguetes • Cepillarse los dientes • Avisar que tiene sueño • Nombre • Mamá Gloria • Dormir al niño • Papá Alexis • Nombre • Arrancar el carro • Leer el periódico • Cuidar a los niños
  • 46. Actividades: 1. Identifique una clase que agrupe todos estos objetos 2. Agrupe diversos objetos en distintas clases RB - 2004 46
  • 47. Representando un objeto Nombre: María Edad Atributos: Dirección Amigo Bailar() Acciones: PedirAJorgeQueBaile() Saltar() Caminar() MoverMiCabeza() MoverMisBrazos MoverMiCintura ...... RB - 2004 47
  • 48. Representando una clase Nombre: Persona Edad Atributos: Dirección Amigo Bailar() Acciones: PedirA_un_amigoQueBail e() Saltar() Caminar() MoverCabeza() MoverBrazos MoverCintura ...... RB - 2004 48
  • 49. Métodos • Los métodos de una clase son funciones ó procedimientos propios de la clase que pueden tener acceso a los atributos de la misma para realizar las operaciones para los que son programados. • Cada método recibe ciertos parámetros y retorna su resultado en un dato de cierto tipo, dependiendo de estos parámetros que recibe el método y el tipo del dato que retorna, podemos tener métodos con el mismo nombre y serán diferenciados por el tipo de sus parámetros (polimorfismo).
  • 50. • Los parámetros o argumentos son una forma de intercambiar información con el método. Pueden servir para introducir datos para ejecutar el método (entrada) o para obtener o modificar datos tras su ejecución (salida). • En <tipo retorno dato> se indica cuál es el tipo de dato del objeto que el método devuelve, y si no devuelve ninguno se ha de escribir void en su lugar. • Como nombre del método se puede poner en <nombreMétodo> cualquier identificador válido.
  • 51. Definición de métodos en Pseudocódigo • Nombre_Método (parámetros): Tipo retorno dato • Cuerpo del método • Ejemplo: • Método calcularFactorial (numero : entero) : entero • Declaraciones Variables • fac, i, numero:Entero • Fac<-1; • Para i<- 1 hasta numero hacer • fac = fac * i • FinFor • retornar fac • Fin Método calcularFactorial
  • 52. Funciones en el paradigma estructurado • Nombre_funcion (lista_parametros): tipo de dato retorno • Inicio • declaración de variables. • sentencias; • ; • ; • regresa valor o expresión; • Fin
  • 53. Ejemplo • CalcularFactorial(numero : entero) : entero • Inicio • Declaraciones Variables • fac, i, numero:Entero • Fac<-1; • Para i<- 1 hasta numero hacer • fac = fac * i • FinFor • retornar fac • Fin calcularFactorial
  • 54. Programación Orientada a Objetos vs Programación Estructurado Los lenguajes de programación estructurada: • Están orientados a acciones. • La unidad de programación es la función. La programación orientada a objetos: • Encapsula datos (atributos) y métodos (comportamiento) en objetos que están relacionados entre sí. • La unidad de programación es la clase.