You are on page 1of 31

Taller de Programacin Estructurada en Java

Tema 1. Introduccin al paradigma orienta


do a objetos
Ingeniero en Computacin Jos Alfredo Cobin
Campos
josealfredocobian@gmail.com
Facultad de Ciencias

Tema 1. Introduccin al paradig


ma orientado a objetos
Qu es un paradigma.
Principales Paradigmas de Programacin.
Introduccin a la resolucin de problemas.
El paradigma orientado a objetos.

Qu es un paradigma
Reproducir Video de Par
adigma

Paradigmas de programacin
Imperativo
Uso de variables globales, dificulta notablemente la
depuracin y la paralelizacin.
BASIC, C, D 1, Fortran, Pascal, Perl, PHP, Lua, Java, P
ython, Go.
Funcional
nocin abstracta de funcin, clculo lambda, recursi
vidad, listas
Scheme,Erlang,Rust,Objective CamlyHaskell.

Lgico
Lgica simblica, programacin declarativa
Prolog
Orientado a Objetos
Est basado en tcnicas, herencia, cohesin, abs
traccin, polimorfismo, acoplamiento y encapsu
lamiento. C++
C#, Fortran 90/95, Java, R, PHP5, Python, Ruby, S
malltalk6, etc
5

Actividad del grupo


Actividad 01
http://goo.gl/forms/acS1IVA
Ingresa al sitio
qGq
Y realiza la actividad 01 http://goo.gl/forms/acS1IVAqGq

Introduccin a la resolucin de
problemas

Problema
Un problema es una abstraccin de la realidad.
Nos interesa conocer una solucin que altera el estado
inicial del problema llevndolo al estado deseado.

Es un procedimiento o mtodo para establecer el


mecanismo de transformacin de situaciones real
es que nos lleve a satisfacer ciertos requerimiento
s.

Qu es un Algoritmo?
Es un procedimiento detallado y preciso para res
olver un problema en pasos (o etapas), cada uno
de los cuales toma un tiempo finito.
Los algoritmos se especifican en trminos de un c
onjunto de operaciones bsicas, en las que se inv
olucran diferentes objetos que forman parte de l
a solucin.
Se manipulan las variables del algoritmo y, en g
eneral, cambiar el mundo en que se desarrolla el pr
oblema.

Qu es un Algoritmo?
Algunas de estas operaciones permiten tambin
controlar el flujo de ejecucin del algoritmo.
El flujo de las operaciones especifica la secuenci
a en que se llevan a cabo las actividades:
Toma de decisiones
Iteracin

11

La principal destreza que se debe


desarrollar para escribir algoritmo
s
Abstraer un problema.
Conceptualizarlo de modo que se pueda expresar
su solucin en trminos de las operaciones bsi
cas entre objetos que se definieron. + - * /
Descomposicin en partes y subproblemas ms
simples, las cuales tambin requieren de cierto gr
ado de conceptualizacin. Mtodos o funciones

Cmo se especifican o describ


en los algoritmos?
Se puede utilizar el "lenguaje natural" y tambin el
"pseudocdigo" (casi cdigo).
El lenguaje natural es suficiente de palabras en fras
es cortas, pero con sentido completo como para qu
e el algoritmo especificado quede claro.
El pseudocdigo, est disenando un algoritmo que r
esuelve algn problema computacional, abstraye
ndo varios detalles de la sintaxis rgida de algn cd
igo o lenguaje de programacin, como es el caso del
lenguaje Java.

Un primer ejemplo de algoritm


o

El siguiente algoritmo calcula el rea y el permetro de u


n rectngulo
Datos de entrada: b y a (base y altura)
Datos de salida: ar y pe (rea y
permetro)
Procesos: ar = b*a, pe = 2*(b + a)
Inicio
2. Leer base y altura (b, a)
3. ar b*a
4. pe 2*(b + a)
5. Escribir rea del rectngulo: , ar
6. Escribir Permetro del rectngulo: ,
pe
7. Fin
1.

Anlisis
resumido del
problema

Existe un nico algoritmo de s


olucin?
Para cualquier problema, pueden existir varios al
goritmos de solucin, tantos como personas que
quieran resolverlos.
No existe un algoritmo "nico" de solucin para
un problema dado.

Las soluciones tambin pueden


tener problemas

Las soluciones tambin pueden


tener problemas
Es necesario entonces validar la solucin y/o esp
ecificar limitaciones del algoritmo de solucin.
PARA TENER EXPERIENCIA ES NECESARIO TENER
PRAC TICA EN LA RESOLUCION DE PROBLEMAS.
PARA TENER PRAC TICA ES NECESARIO RESOLVER
MUCHOS PROBLEMAS.

Arboles de Decisin
Son una herramienta grfica muy til para representar al
goritmos en los que estn involucradas una gran cantida
d de decisiones a lo largo de su ejecucin.
Cada punto de decisin se representa con una caja recta
ngular, en la cual se describe brevemente los aspectos a
considerar para tomar dicha decisin.
Una vez que se conocen los criterios para tomar la decisi
n en uno de estos puntos, se senala con flechas las disti
ntas posibilidades hacia donde evolucionara el algoritm
o, llevando el desarrollo de la ejecucin hacia otro punto
de decisin

Diseno de algoritmos

Representacin grfica del algoritmo:


diagramas de flujo (II)
Smbolo

Representacin

Significado

Flechas o lneas de flujo

Indica el sentido de
ejecucin de las acciones

Rectngulo

Proceso o accin a realizar


(por ejemplo, asignacin)

Paralelogramo

Representa una entrada o


salida

Rombo

Representa el constructor de
seleccin (decisin lgica)

Rectngulo redondeado

Representa el inicio y fin del


diagrama

Crculo

Se usa como conector entre


dos partes del diagrama

Diseo de algoritmos
Representacin grfica del algoritmo:
diagramas de flujo
1.Inicio
2.Leer cantidad de estudiantes (N)
3.NE <- 0, SE <- 0, SP <- 0
4.MIENTRAS NE < N
4.1 Leer edad y peso del
estudiante (E, P)
4.2 SE <- SE + E
4.3 SP <- SP + P
4.4 Incrementar el contador: NE <NE + 1
1.Calcular
la media de la edad: ME <FIN-MIENTRAS
SE/N
2.Calcular la media del peso: MP <SP/N
3.Escribir La edad promedio es: ,
ME
4.Escribir El peso promedio es: ,
MP
5.Fin

Inicio
Leer N

NE <- 0

SE <- 0

SP <- 0

Diseo de algoritmos
1

Continuacin

Leer E, P

1.Inicio
2.Leer cantidad de estudiantes (N)
3.NE <- 0, SE <- 0, SP <- 0
4.MIENTRAS NE < N
4.1 Leer edad y peso del
estudiante (E, P)
4.2 SE <- SE + E
4.3 SP <- SP + P
4.4 Incrementar el contador: NE <NE + 1
FIN-MIENTRAS

SE <SE+E
SP <SP+P
NE <NE+1
S
i

NE <N
No
ME <SE/N

1.Calcular la media de la edad: ME <SE/N


2.Calcular la media del peso: MP <SP/N
3.Escribir La edad promedio es: ,
ME
4.Escribir El peso promedio es: ,
MP

MP <SP/N
Escribir
ME, MP
Fin

Contenido Sinttico
Resolucin de
problemas y
los algoritmos
De los
algoritmos a
los programas
Constructores
fundamentales
de la
programacin
estructurada
Fundamentos
del diseo
modular Algoritmos
iterativos de
bsqueda y
ordenamiento
Archivos
Introduccin a
los tipos de
datos
abstractos
Introduccin al
anlisis y
diseo
estructurado
del software

Concepto de algoritmo
Algoritmo

Especificaci
n de las
entradas

Accin o
procedimien
to

Accin o
procedimien
to

...

Accin o
procedimien
to

Accin o
procedimien
to

Descripcin
del
resultado o
efecto

25

Orientacin a Objetos
En anos recientes se ha adoptado, ms que una tc
nica, un enfoque basado en lo que genricamente se
denomina Objeto, a diferencia de esquemas tradici
onales, denominados Procedurales, en los cuales l
a solucin se especifica como una secuencia de pasos
y subpasos.
El Mundo Real est compuesto de Objetos
que interactan
y no es un mundo procedural, en que todo ocurre se
cuencialmente.

Programacin Orientada a Obje


tos
La tiene como punto medular el uso de objetos, que en
realidad son estructuras lgicas que representan eleme
ntos o entidades del mundo real.
Se usan nombres que permiten hacer una rpida asoci
acin con el correspondiente objeto.
Por ej: Auto.
Se utilizan variables, denominadas atributos o propied
ades, que almacenan diferentes valores que pueden ir
cambiando en el tiempo.
Por ej: el auto puede estar representado por cilindraje
, velocidad, etc.

Programacin Orientada a Obje


tos
El comportamiento del objeto, se definen mtod
os, que corresponden a acciones especficas del o
bjeto, una vez ms, simulando el mundo real.
Por ej: avanzar, frenar, abrir la puerta delantera
derecha, etc.

28

Objeto
El mundo est compuesto de
objetos fsicos y simblicos.
Los objetos en programaci
n OO son elementos simb
licos que representan obje
tos fsicos del mundo real.
En particular, se utiliza el tr
mino clase para describir u
n tipo de objeto, que tiene ci
ertas caractersticas comune
s.

Instancia
Es un objeto especfico que
se puede relacionar con otr
as instancias u objetos del
mismo tipo o de otro tipo.
una instancia es un objet
o de una clase especfica.
Una variable de un tipo de
dato

Actividad del grupo


Actividad 02
http://goo.gl/forms/USJ4NUX
F6L

Ingresa al sitio
Y realiza la actividad 01 http://goo.gl/forms/USJ4NUXF6L

You might also like