Beruflich Dokumente
Kultur Dokumente
Tecnolgico de
Durango
Programacin avanzada
Ingeniera Mecatrnica
Catedrtico: HERNANDEZ MARINES
MARIO GERARDO
Miguel Alejandro Pulido Martnez
13040438
Sptimo semestre
Grupo V
Trabajo de investigacin
ndice
INTRODUCCIN............................................................................................................... 3
PROGRAMACIN ORIENTADA EN OBJETOS......................................................................4
Origenes de la programacion orientada a objetos.......................................................4
Conceptos de la programacion orientada a objetos.....................................................5
Encapsulamiento y ocultacin.....................................................................................6
Organizacin de los objetos......................................................................................... 6
Programacin avanzada
Estructura de un objeto............................................................................................... 7
1. relaciones............................................................................................................. 7
2. propiedades......................................................................................................... 8
3. metodos............................................................................................................... 9
Polimorfismo................................................................................................................ 9
Demonios.................................................................................................................... 9
PROGRAMACIN ORIENTADA EN GRFICOS..................................................................10
Un poco de historia................................................................................................ 10
Funcionamiento de la VGA.........................................................................................10
Programacin avanzada
Programacin avanzada
2. Nivel estructurado............................................................................................ 20
Lenguajes de programacin a nivel de movimientos elementales.............................20
Lenguajes estructurados de programacin explcita..................................................21
Caractersticas de un lenguaje ideal para la robtica................................................23
Conclusiones................................................................................................................. 25
Introduccin
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin orientada en
objetos
La programacin orientada a objetos, ha tomado las mejores ideas de la
programacin estructurada y los ha combinado con varios conceptos nuevos y
potentes que incitan a contemplar las tareas de programacin desde un nuevo
punto de vista. La programacin orientada a objetos, permite descomponer
ms fcilmente un problema en subgrupos de partes relacionadas del
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
1. RELACIONES
Programacin avanzada
2. PROPIEDADES
3. METODOS
Programacin avanzada
Programacin avanzada
Encapsulamiento y ocultacin
Como hemos visto, cada objeto es una estructura compleja en cuyo interior
hay datos y programas, todos ellos relacionados entre s, como si estuvieran
encerrados conjuntamente en una cpsula. Esta propiedad (encapsulamiento),
es una de las caractersticas fundamentales en la OOP.
Los objetos son inaccesibles, e impiden que otros objetos, los usuarios, o
incluso los programadores conozcan cmo est distribuida la informacin o qu
Programacin avanzada
Programacin avanzada
El hecho de que cada objeto sea una cpsula facilita enormemente que un
objeto determinado pueda ser transportado a otro punto de la organizacin, o
incluso a otra organizacin totalmente diferente que precise de l. Si el objeto
ha sido bien construido, sus mtodos seguirn funcionando en el nuevo
entorno sin problemas. Esta cualidad hace que la OOP sea muy apta para la
reutilizacin de programas.
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Estructura de un objeto
1. RELACIONES
Las relaciones entre objetos son, precisamente, los enlaces que permiten a un
objeto relacionarse con aquellos que forman parte de la misma organizacin.
Las hay de dos tipos fundamentales:
-Relaciones jerrquicas. Son esenciales para la existencia misma de la
aplicacin porque la construyen. Son bidireccionales, es decir, un objeto es
padre de otro cuando el primer objeto se encuentra situado inmediatamente
encima del segundo en la organizacin en la que ambos forman parte;
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
2. PROPIEDADES
Todo objeto puede tener cierto nmero de propiedades, cada una de las cuales
tendr, a su vez, uno o varios valores. En OOP, las propiedades corresponden a
las clsicas "variables" de la programacin estructurada. Son, por lo tanto,
datos encapsulados dentro del objeto, junto con los mtodos (programas) y las
relaciones (punteros a otros objetos). Las propiedades de un objeto pueden
tener un valor nico o pueden contener un conjunto de valores ms o menos
estructurados (matrices, vectores, listas, etc.). Adems, los valores pueden ser
de cualquier tipo (numrico, alfabtico, etc.) si el sistema de programacin lo
permite.
Programacin avanzada
Pero existe una diferencia con las "variables", y es que las propiedades se
pueden heredar de unos objetos a otros. En consecuencia, un objeto puede
tener una propiedad de maneras diferentes:
-Propiedades propias. Estn formadas dentro de la cpsula del objeto.
-Propiedades heredadas. Estan definidas en un objeto diferente, antepasado de
ste (padre,"abuelo", etc.). A veces estas propiedades se llaman propiedades
miembro porque el objeto las posee por el mero hecho de ser miembro de una
clase.
Programacin avanzada
3. METODOS
Una operacin que realiza acceso a los datos. Podemos definir mtodo como
un programa procedimental o procedural escrito en cualquier lenguaje, que
est asociado a un objeto determinado y cuya ejecucin slo puede
desencadenarse a travs de un mensaje recibido por ste o por sus
descendientes.
Son sinnimos de 'mtodo' todos aquellos trminos que se han aplicado
tradicionalmente a los programas, como procedimiento, funcin, rutina, etc. Sin
embargo, es conveniente utilizar el trmino 'mtodo' para que se distingan
claramente las propiedades especiales que adquiere un programa en el
entorno OOP, que afectan fundamentalmente a la forma de invocarlo
Programacin avanzada
Programacin avanzada
miembro porque el objeto los posee por el mero hecho de ser miembro de una
clase.
Polimorfismo
Una de las caractersticas fundamentales de la OOP es el polimorfismo, que no
es otra cosa que la posibilidad de construir varios mtodos con el mismo
nombre, pero con relacin a la clase a la que pertenece cada uno, con
comportamientos diferentes. Esto conlleva la habilidad de enviar un mismo
mensaje a objetos de clases diferentes. Estos objetos recibiran el mismo
mensaje global pero responderan a l de formas diferentes; por ejemplo, un
Programacin avanzada
Demonios
Es un tipo especial de mtodos, relativamente poco frecuente en
los sistemas de OOP, que se activa automticamente cuando sucede algo
especial. Es decir, es un programa, como los mtodos ordinarios, pero se
diferencia de estos porque su ejecucin no se activa con un mensaje, sino que
se desencadena automticamente cuando ocurre un suceso determinado: la
asignacin de un valor a una propiedad de un objeto, la lectura de un valor
determinado, etc.
Programacin avanzada
Programacin orientada en
grficos
Programacin avanzada
Un poco de historia
No puedo empezar sin hacer un breve resumen antes de la evolucin de las
tarjetas grficas desde los primeros PCs. Cuando salieron los primeros PCs
(8086 y similares), los monitores eran monocromos o de escasos colores (4, 8 o
a lo sumo 16). Eran los tiempos de las tarjetas CGA y EGA, lentas y muy
simples. Con la llegada de los 286 y los 386, aparecieron las VGA, que
soportaban 256 colores, algo ms que de sobra para grficos, juegos, etc. en
esa poca. Supusieron una revolucin no slo por esto, sino porque, aunque
aparentemente soportaran pocos modos de vdeo (320x200 y 640x480 en
modo grfico son los ms conocidos, aparte del clsico 80x25 del MS-DOS), los
Hackers pronto descubrieron que podan manipularlas para conseguir modos
Programacin avanzada
grficos no-nativos, como el famoso 320x240. Esto permita jugar con muchos
parmetros, como velocidades de refresco, colores, resoluciones, etc. Se
generaliz el modo de 320x240 para los juegos, ya que si nos fijamos, esta
resolucin si mantiene el ratio (320x240, 640x480, 800x600, etc.) para que los
pixel se vean cuadrados (en 320x200 se ven achatados). Debido a la
velocidad de estos modos grficos de baja resolucin y a las optimizaciones
que se han ido realizando, ha sido el estndar hasta la aparicin de Windows
95.
Funcionamiento de la VGA.
Programacin avanzada
Programacin avanzada
Programacin avanzada
terrible para un juego o demo, por lo que hay que echar mano de los DirectX
(lo que supone aprender a manejar dichos controladores). En MS-DOS es un
trabajo duro, ya que hay que partir desde cero prcticamente, pero tiene sus
recompensas, como el hacer libreras grficas personalizadas y optimizadas (a
quien le importa el manejo de ventanas en un juego de conduccin, o el usar
primitivas de elipses, si lo que queremos es dibujar sprites lo ms rpido
posible?).
RGB. Limitaciones de la VGA Los colores se definen mediante 3 valores, los
componentes Red, Green y Blue (Rojo, Verde y Azul) o comnmente llamados
RGB. En la VGA de 8 bits de color (o sea, 256 colores), la pigmentacin de
cada color es un BYTE, que tiene 256 combinaciones posibles. Como son tres
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Una vez en la VGA estandar, para poder pintar pixels, hay que dibujarlos en la
memoria de la VGA, cuya direccin comienza en A000:0000. Como el MS-DOS
trata los pixels como valores de la memoria, no es posible de primeras el situar
un pixel en la posicin x=3 y=5. En realidad, esta posicin sera la direccin
A000:063D. Lioso? Pues no pasa nada, porque para eso estn las
matemticas. Veamos, si multiplicamos 320x200 nos da 64000 (FA00 en Hex.),
luego las posiciones de memoria van desde A000:0000 hasta A000:FA00. Bien.
Programacin avanzada
Como sabemos que hay 320 columnas y 200 filas, con la frmula Dir = (320 x
Y) + X ya podemos saber a qu OFFSET se corresponde la posicin que
deseemos. Con la funcin poke podemos dibujar nuestros primeros pixels.
Ejemplo de funcin:
Programacin avanzada
Esta funcin pinta un pixel segn las coordenadas X e Y y con el color deseado.
Programacin avanzada
Programacin avanzada
dividimos por 2. Pues con esta culturilla general y algunos conocimientos ms,
aqu tenemos la funcin optimizada en ASM para dibujar un pixel en 320x200:
Programacin avanzada
Programacin avanzada
Programacin avanzada
Pero luego, cmo se el color del pixel de la posicin (310, 150)?, pues nada,
alla vamos. La funcin sin implementar es sencilla. Simplemente hay que saber
leer registros de la memoria y buscar en la direccin deseada el valor, que
corresponder al color del pixel (aqu lo dejo a los conocimientos de cada uno).
La funcin optimizada (que tambin utiliza los truquitos anteriormente citados
para evitar la multiplicacin al hallar la posicin de memoria) es la siguiente:
Programacin avanzada
Programacin avanzada
La funcin retorna como valor el color del pixel. Bueno, ya tenemos casi una
librera para empezar. Slo falta un ltimo detalle. Qu pasa si no nos gustan
los 256 colores de la paleta que por defecto tiene el MS-DOS, o si queremos
hacer un precioso mar con muchos tonos de azules y verdes?. Pues bien, como
ya he explicado antes, podemos cambiar los componentes RGB para hacer
nuevas paletas a nuestro gusto. La funcin para cambiar lo RGB de un color
determinado es la siguiente:
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin Visual
Se llama programacin visual al hecho (por decirlo de alguna manera) de
desarrollar software para entornos grficos "visuales", es decir, compuestos por
ventanas, mens desplegables, botones, barras de scroll, listas desplegables,
etc.
La programacin visual, va de la mano de la programacin orientada a objetos
(en la mayora de los casos), ya que los controles (botones, grillas, etc) que se
utilizan para desarrollar la interfaz de usuario son precisamente objetos con
propiedades y mtodos, y, responden a eventos.
Programacin avanzada
Programacin avanzada
Visual Basic
Visual Basic es un lenguaje de programacin dirigido por eventos, desarrollado
por Alan Cooper para Microsoft. Este lenguaje de programacin es un dialecto
de BASIC, con importantes agregados. Su primera versin fue presentada
en 1991, con la intencin de simplificar la programacin utilizando un ambiente
de desarrollo que facilit en cierta medida la programacin misma.
La ltima versin fue la 6, liberada en 1998, para la que Microsoft extendi el
soporte hasta marzo de 2008.
En 2001 Microsoft propuso abandonar el desarrollo basado en la API Win32 y
pasar a un framework o marco comn de libreras, independiente de la versin
Programacin avanzada
del sistema operativo, .NET Framework, a travs de Visual Basic .NET (y otros
lenguajes como C Sharp (C#) de fcil transicin de cdigo entre ellos); fue el
sucesor de Visual Basic 6.
Aunque Visual Basic es de propsito general, tambin provee facilidades para
el desarrollo de aplicaciones de bases de datos usando Data Access
Objects, Remote Data Objects o ActiveX Data Objects.
Visual Basic contiene un entorno de desarrollo integrado o IDE que
integra editor de textos para edicin del cdigo fuente, undepurador,
un compilador (y enlazador) y un editor de interfaces grficas o GUI.
Programacin avanzada
Embarcadero Delphi
Embarcadero Delphi antes conocido como CodeGear Delphi, Inprise
Delphi y Borland Delphi, es un entorno de desarrollo de software diseado para
la programacin de propsito general con nfasis en la programacin visual. En
Delphi se utiliza como lenguaje de programacin una versin moderna
de Pascal llamada Object Pascal. Es producido comercialmente por la empresa
estadounidense CodeGear (antes lo desarrollaba Borland), adquirida en mayo
de 2008 por Embarcadero Technologies, una empresa del grupo Thoma Cressey
Bravo, en una suma que ronda los 30 millones de dlares. En sus diferentes
Programacin avanzada
Programacin avanzada
ellos podemos encontrar a Visual Basic .Net, C#, C++, Delphi, Visual COBOL, el
ya nombrado Visual FoxPro, y muchos, muchos, mas.
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Seleccin de velocidades
Generacin de retardos
Sealizacin del estado de los sensores
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Por el contrario, los lenguajes del tipo articular indican los incrementos
angulares de las articulaciones. Aunque esta accin es bastante simple
para motores de paso a paso y corriente continua, al no tener una referencia
general de la posicin de las articulaciones con relacin al entorno, es difcil
relacionar al sistema con piezas mviles, obstculos, cmaras de TV, etc.
Los lenguajes correspondientes al nivel de movimientos elementales aventaja,
principalmente, a los de punto a punto, en la posibilidad de realizar
bifurcaciones simples y saltos a subrutinas, as como de tratar informaciones
sensoriales.
Programacin avanzada
2. Nivel estructurado
Intenta introducir relaciones entre el objeto y el sistema del robot, para que los
lenguajes se desarrollen sobre una estructura formal.
Se puede decir que los lenguajes correspondientes a este tipo de programacin
adoptan la filosofa del PASCAL. Describen objetos y transformaciones con
objetos, disponiendo, muchos de ellos, de una estructura de datos
arborescente.
Programacin avanzada
Programacin avanzada
Programacin avanzada
ANORAD
EMILY
RCL
RPL
SIGLA
VAL
MAL
Programacin avanzada
Programacin avanzada
VAL .- Fue diseado por UNIMATION INC para sus robots UNIMATE y PUMA. (FIG.
Programacin avanzada
LISPT
PROGRAM PICKUP
1. APRO PART, 25.0
2. MOVES PART
3. CLOSE, 0.0.0
4. APRO PART, -50.0
5. APRO DROP, 100.0
Programacin avanzada
6. MOVES DROP
7. OPEN, 0.0.0
8. APRO DROP, -100.0
.END
RPL.- Dotado con un LSI-II como procesador central, y aplicado a los robots
PUMA, ha sido diseado por SRI INTERNATIONAL.
EMILY.- Es un lenguaje creado por IBM para el control de uno de sus robots.
Usa el procesador IBM 370/145 SYSTEM 7 y est escrito en Ensamblador.
Programacin avanzada
Programacin avanzada
Programacin avanzada
PAL
MCL
MAL EXTENDIDO
Programacin avanzada
AL.- Trata
HELP.- Creado
Programacin avanzada
MAPLE.- Escrito,
PAL.-
Programacin avanzada
MCL.-
Programacin avanzada
Las seis caractersticas bsicas de un lenguaje ideal, expuestas por Pratt, son:
Programacin avanzada
1.
2.
3.
4.
5.
6.
Claridad y sencillez.
Claridad de la estructura del programa.
Sencillez de aplicacin.
Facilidad de ampliacin.
Facilidad de correccin y mantenimiento.
Eficacia.
Programacin avanzada
Programacin avanzada
Programacin avanzada
Es imprescindible que los lenguajes para los robots sean fcilmente ampliables,
por lo que se les debe dotar de una estructura modular, con inclusin de
subrutinas definidas por el mismo usuario.
La adaptabilidad a sensores externos implica la posibilidad de una toma de
decisiones, algo muy interesante en las labores de ensamblaje. Esta facultad
precisa de un modelo dinmico del entorno, as como de una buena dosis de
Inteligencia Artificial, como es el caso del AUTOPASS.
Aunque los intrpretes son ms lentos que los compiladores, a la hora de la
ejecucin de un programa, resultan ms adecuados para las aplicaciones de la
robtica. Las razones son las siguientes:
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Programacin avanzada
Conclusiones
La programacin orientada a objetos permite la optimizacin del cdigo
generado gracias a que mediante tcnicas de herencia, atributos estticos
entre otros permiten, que el cdigo sea genrico de manera que sea
reutilizable.
Mediante la tcnica aprendida en el presente curso podemos establecer una
solucin primitiva de un problema real, tan solo con relacionarlo con objetos
lgicos que sern usados para el desarrollo del software.
Programacin avanzada
Podemos dar a conocer de una forma sencilla los mecanismos que se usan en
este nivel de programacin, a personas que deseen una explicacin rpida y
sencilla de lo que es la programacin orientada a objetos.
Tenemos los conocimientos necesarios como para enfrentar un problema real y
desarrollo en otro lenguaje de programacin, pues concebimos la idea de que
el lenguaje C es la base de la programacin.
Al trabajar con la programacin orientada a objetos sea esta desarrollada en
otras plataformas de programacin o en lenguaje C, sabemos las formas de
lograr un mejor rendimiento del equipo a controlar y aplicar soluciones
Programacin avanzada
Programacin avanzada