tag:blogger.com,1999:blog-90462110806294493092024-03-13T13:53:13.283-07:00Programaciónmauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comBlogger21125tag:blogger.com,1999:blog-9046211080629449309.post-91995280056260799482012-07-23T11:45:00.002-07:002012-07-23T11:45:47.539-07:00<h2 class="post-title entry-title" itemprop="name">
LIBREOFFICE CALC
</h2>
<div class="post-header">
</div>
<div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;">
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">
<span style="color: red; font-family: Arial, Helvetica, sans-serif;"><strong>HOJA ELECTRONICA</strong></span><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq_qTmAsYkWvdLnMej1FbjlLH_YAhzHkOwSTCRmoyxYYIlj-VWuYc3v9eWvzYk3t4Z0xc9hPV1OLNfdEeeUvkQ6P5zhXKPz4S_f5fkuUjMCBM-RKzq_YZya1-ZNvPdcnU3i0aYY8F9n-FN/s1600/11_Spanish.jpg" style="clear: right; float: right; height: 254px; margin-bottom: 1em; margin-left: 1em; width: 338px;"><span style="font-family: Arial, Helvetica, sans-serif;"></span></a><span style="color: black;"><span class="MsoIntenseEmphasis"><span lang="ES" style="font-family: Arial, Helvetica, sans-serif; line-height: 115%;">Una
hoja de cálculo es una aplicación que permite la introducción de datos y
la obtención de resultados a partir de su análisis, de forma que ayuden
a la hora de tomar decisiones en una empresa.</span></span><span class="MsoIntenseEmphasis"><span lang="ES" style="font-style: normal; font-weight: normal; line-height: 115%;"></span></span></span></div>
</div>
</div>
<div class="MsoNormal" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0cm 0cm 10pt; text-align: justify;">
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">
<span style="color: black;"><span class="MsoIntenseEmphasis"><span lang="ES" style="font-family: Arial, Helvetica, sans-serif; line-height: 115%;">La
posibilidad de incorporar fórmulas complejas, de representar
gráficamente los datos introducidos y de realizar el análisis de qué
sucedería si variamos algún parámetro de nuestro modelo, hacen de una
hoja de cálculo una herramienta indispensable en entornos económicos o
administrativos.</span></span></span></div>
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">
<span class="MsoIntenseEmphasis"><span lang="ES" style="line-height: 115%;"><span style="color: #4f81bd;"><b><span style="color: red;"><span class="MsoIntenseEmphasis"><span lang="ES" style="font-family: Arial, Helvetica, sans-serif;">INTRODUCCION A LIBREOFFICE CALC</span></span></span></b></span></span></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin: 2.65pt -1pt 0pt 0cm; text-align: justify;">
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg34LY_WbwemGeJmleC-molubevByD04fPSNNUn9PilSvV7O5VWH70x0hytIAruJX0YzcexaNds3Qxa5fEQvDpVDK4Q6KjeAX7qaEtlopsDwPEv_ZVygKmcIlrWWTMeq7E8TbnG2ZVkvV1F/s1600/libre-office5" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: Arial, Helvetica, sans-serif;"><img border="0" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg34LY_WbwemGeJmleC-molubevByD04fPSNNUn9PilSvV7O5VWH70x0hytIAruJX0YzcexaNds3Qxa5fEQvDpVDK4Q6KjeAX7qaEtlopsDwPEv_ZVygKmcIlrWWTMeq7E8TbnG2ZVkvV1F/s320/libre-office5" width="320" /></span></a><b><span style="color: red;"><span class="MsoIntenseEmphasis"><span lang="ES"></span></span><span class="MsoIntenseEmphasis"></span></span></b><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: black;">Es </span><span style="color: black;"><span class="MsoIntenseEmphasis"><span lang="ES" style="line-height: 115%;">una
hoja de cálculo potente y sencillo. Su principal cualidad es la de
incorporar elementos que permiten un análisis de los datos desde casi
cualquier punto de vista sin que ello implique dificultad en su manejo.
Tareas como la creación de presupuestos, cálculos de facturas, impuestos
y otras más complejas, como el análisis de inventarios, análisis de
ventas o análisis estadísticos son más sencillas en este entorno.</span></span><span class="MsoIntenseEmphasis"><span lang="ES" style="font-style: normal; font-weight: normal; line-height: 115%;"></span></span></span></span></div>
</div>
<h1 style="margin: 0cm 0cm 0pt; text-align: justify;">
<span class="MsoIntenseEmphasis"><span lang="ES" style="color: windowtext; font-family: Arial,Helvetica,sans-serif; font-size: x-small; font-style: normal; font-weight: normal; line-height: 115%;"></span></span></h1>
<div style="font-family: Arial, Helvetica, sans-serif; margin: 0cm 0cm 0pt; text-align: justify;">
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<span style="font-size: small;"><span class="MsoIntenseEmphasis"><span lang="ES" style="color: windowtext; font-weight: normal; line-height: 115%;">LibreOffice.org
Calc la planilla de cálculo libre, esta aplicación es indispensable en
la administración de cualquier empresa u organismo, nos da la
posibilidad de generar cálculos en tiempos muy cortos y manejando
grandes volúmenes de datos, con el agregado de poder visualizar estos
valores a través de importantes gráficos, también se desempeña como una
muy buena gestora de cálculos.</span></span></span></div>
</div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-39951807596418772092012-04-30T13:07:00.000-07:002012-04-30T14:59:29.672-07:00Objetivos de la programaciòn<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="Predeterminado" style="margin: 1.4pt 0cm; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5JXeejbYDaq51zlgYuVBWKd6_Hjyzc2pZyp3py6ULy0s9BbJN2bAu8LjVodsrSW6sk1-EZ3JLC4hAX00tD0rS92QrpcRnRZdIS59usrB_tFjNKyZLQPtw9ram8hNT-4KlG8ZpOPp5yQg/s1600/123.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5JXeejbYDaq51zlgYuVBWKd6_Hjyzc2pZyp3py6ULy0s9BbJN2bAu8LjVodsrSW6sk1-EZ3JLC4hAX00tD0rS92QrpcRnRZdIS59usrB_tFjNKyZLQPtw9ram8hNT-4KlG8ZpOPp5yQg/s320/123.jpeg" width="320" /></a><b style="font-family: Arial,Helvetica,sans-serif;"><span style="color: black; font-size: 18pt;">Objetivos de la programación</span></b></div>
<div class="Predeterminado" style="font-family: Arial,Helvetica,sans-serif; margin: 1.4pt 0cm; text-align: justify;">
<span style="color: black;">La programación debe perseguir la obtención de
programas de calidad. Para ello se establece una serie de factores que
determinan la calidad de un programa. Algunos de los factores de calidad más
importantes son los siguientes:</span></div>
<div class="Predeterminado" style="font-family: Arial,Helvetica,sans-serif; margin: 1.4pt 0cm 1.4pt 36pt; text-align: justify; text-indent: -18pt;">
<span style="font-size: 10pt;">·<span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span><i><span style="color: black;">Corrección</span></i><span style="color: black;">.
Un programa es correcto si hace lo que debe hacer tal y como se estableció en
las fases previas a su desarrollo. Para determinar si un programa hace lo que
debe, es muy importante especificar claramente qué debe hacer el programa antes
de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace.</span></div>
<div class="Predeterminado" style="font-family: Arial,Helvetica,sans-serif; margin: 1.4pt 0cm 1.4pt 36pt; text-align: justify; text-indent: -18pt;">
<span style="font-size: 10pt;">·<span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span><i><span style="color: black;">Claridad</span></i><span style="color: black;">. Es muy importante que el programa sea lo
más claro y legible posible, para facilitar así su desarrollo y posterior
mantenimiento. Al elaborar un programa se debe intentar que su estructura sea
sencilla y coherente, así como cuidar el estilo en la edición; de esta forma se
ve facilitado el trabajo del programador, tanto en la fase de creación como en
las fases posteriores de corrección de errores, ampliaciones, modificaciones,
etc. Fases que pueden ser realizadas incluso por otro programador, con lo cual
la claridad es aún más necesaria para que otros programadores puedan continuar
el trabajo fácilmente. Algunos programadores llegan incluso a utilizar Arte
ASCII para delimitar secciones de código. Otros, por diversión o para impedir
un análisis cómodo a otros programadores, recurren al uso de código ofuscado.</span></div>
<div class="Predeterminado" style="font-family: Arial,Helvetica,sans-serif; margin: 1.4pt 0cm 1.4pt 36pt; text-align: justify; text-indent: -18pt;">
<span style="font-size: 10pt;">·<span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span><i><span style="color: black;">Eficiencia</span></i><span style="color: black;">.
Se trata de que el programa, además de realizar aquello para lo que fue creado
(es decir, que sea correcto), lo haga gestionando de la mejor forma posible los
recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se
suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha
sido creado y a la cantidad de memoria que necesita, pero hay otros recursos
que también pueden ser de consideración al obtener la eficiencia de un
programa, dependiendo de su naturaleza (espacio en disco que utiliza, tráfico
de red que genera, etc.).</span></div>
<div class="Predeterminado" style="font-family: Arial,Helvetica,sans-serif; margin: 1.4pt 0cm 1.4pt 36pt; text-align: justify; text-indent: -18pt;">
<span style="font-size: 10pt;">·<span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span><i><span style="color: black;">Portabilidad</span></i><span style="color: black;">.
Un programa es portable cuando tiene la capacidad de poder ejecutarse en una
plataforma, ya sea hardware o software, diferente a aquélla en la que se
elaboró. La portabilidad es una característica muy deseable para un programa,
ya que permite, por ejemplo, a un programa que se ha desarrollado para sistemas
GNU/Linux ejecutarse también en la familia de sistemas operativos Windows. Esto
permite que el programa pueda llegar a más usuarios más fácilmente.</span></div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-54478825746352321682012-04-30T11:10:00.001-07:002012-04-30T14:58:40.743-07:00Herencia (informática)<span class="mw-tou_notice-text"></span><br />
<div id="bodyContent" style="text-align: justify;">
<div id="contentSub">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqWVSJ_uloxo5FTSUlroiRCqnAjWc9KRUx9DodRuLA_G0s3oI6CSbsjE5AEHqn9z7v2Sa1Eds9ZS6CjPmLLWfX4mKVLFHDIL8L2gOaEQb4Y4PWm1Zl0UTPjSAZqGvtwgu_75C5UeiXXoE/s1600/%C3%ADndice.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqWVSJ_uloxo5FTSUlroiRCqnAjWc9KRUx9DodRuLA_G0s3oI6CSbsjE5AEHqn9z7v2Sa1Eds9ZS6CjPmLLWfX4mKVLFHDIL8L2gOaEQb4Y4PWm1Zl0UTPjSAZqGvtwgu_75C5UeiXXoE/s1600/%C3%ADndice.jpeg" /></a>(Redirigido desde Herencia (programación orientada a objetos))</div>
<div class="mw-jump" id="jump-to-nav">
Saltar a: navegación,
búsqueda
</div>
<div class="mw-content-ltr" dir="ltr" id="mw-content-text" lang="es">
<div class="rellink noprint">
Para otros usos de este término, véase Herencia.</div>
En orientación a objetos la herencia es, después de la agregación o
composición, el mecanismo más utilizado para alcanzar algunos de los
objetivos más preciados en el desarrollo de software como lo son la
reutilización y la extensibilidad. A través de ella los diseñadores
pueden crear nuevas clases partiendo de una clase o de una jerarquía de
clases preexistente (ya comprobadas y verificadas) evitando con ello el
rediseño, la modificación y verificación de la parte ya implementada. La
herencia facilita la creación de objetos a partir de otros ya
existentes e implica que una subclase obtiene todo el comportamiento
(métodos) y eventualmente los atributos (variables) de su superclase.<br />
Es la relación entre una clase general y otra clase más especifica.
Por ejemplo: Si declaramos una clase párrafo derivada de una clase
texto, todos los métodos y variables asociadas con la clase texto, son
automáticamente heredados por la subclase párrafo.<br />
La herencia es uno de los mecanismos de los lenguajes de programación orientada a objetos basados en clases, por medio del cual una clase se deriva de otra de manera que extiende su funcionalidad. La clase de la que se hereda se suele denominar <i>clase base</i>, <i>clase padre</i>, <i>superclase</i>, <i>clase ancestro</i> (el vocabulario que se utiliza suele depender en gran medida del lenguaje de programación).<br />
En los lenguajes que cuentan con un sistema de tipos
fuerte y estrictamente restrictivo con el tipo de datos de las
variables, la herencia suele ser un requisito fundamental para poder
emplear el Polimorfismo,
al igual que un mecanismo que permita decidir en tiempo de ejecución
qué método debe invocarse en respuesta a la recepción de un mensaje,
conocido como <i>enlace tardío</i> (<i>late binding</i>) o <i>enlace dinámico</i> (<i>dynamic binding</i>).</div>
</div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-62746144162765132012012-04-30T11:07:00.004-07:002012-04-30T14:58:30.599-07:00Encapsulamiento (informática)<span class="mw-tou_notice-text"></span>
<br />
<div class="firstHeading" id="firstHeading" style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpgIKRi6YnqZpREUf-Vmw5Vwfm-O_XJl4X10PmUxm_hgDeHblhuMG_vbGdHfFQeOTqo80BdkL64eQeXHWa4lAnfFUeYkeafiA9QBL8IRQGIpsMBsSRop_HAnaJtEahYDcllKjwfBHAZOE/s1600/images.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="199" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpgIKRi6YnqZpREUf-Vmw5Vwfm-O_XJl4X10PmUxm_hgDeHblhuMG_vbGdHfFQeOTqo80BdkL64eQeXHWa4lAnfFUeYkeafiA9QBL8IRQGIpsMBsSRop_HAnaJtEahYDcllKjwfBHAZOE/s320/images.jpeg" width="320" /></a>
<span style="font-family: Arial,Helvetica,sans-serif;">(Redirigido desde Encapsulamiento (programación orientada a objetos))</span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div id="bodyContent" style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<div class="mw-jump" id="jump-to-nav" style="text-align: justify;">
Saltar a: navegación,
búsqueda
</div>
<div class="mw-content-ltr" dir="ltr" id="mw-content-text" lang="es">
<div style="text-align: justify;">
En Programación modular, y más específicamente en programación orientada a objetos, se denomina <b>encapsulamiento</b>
al ocultamiento del estado, es decir, de los datos miembro, de un
objeto de manera que sólo se puede cambiar mediante las operaciones
definidas para ese objeto.</div>
<div style="text-align: justify;">
Cada objeto
está aislado del exterior, es un módulo natural, y la aplicación entera
se reduce a un agregado o rompecabezas de objetos. El aislamiento
protege a los datos asociados a un objeto contra su modificación por
quien no tenga derecho a acceder a ellos, eliminando efectos secundarios
e interacciones.</div>
<div style="text-align: justify;">
De esta forma el usuario de la clase puede obviar la implementación
de los métodos y propiedades para concentrarse sólo en cómo usarlos. Por
otro lado se evita que el usuario pueda cambiar su estado de maneras
imprevistas e incontroladas.</div>
<div style="text-align: justify;">
<br /></div>
<h2 style="text-align: justify;">
<span class="mw-headline" id="Encapsulamiento">Encapsulamiento</span></h2>
<div style="text-align: justify;">
Como se puede observar de los diagramas, las variables
del objeto se localizan en el centro o núcleo del objeto. Los métodos
rodean y esconden el núcleo del objeto de otros objetos en el programa. '<i>Al empaquetamiento de las variables de un objeto con la protección de sus métodos se le llama encapsulamiento</i>.
Típicamente, el encapsulamiento es utilizado para esconder detalles de
la puesta en práctica no importantes de otros objetos. Entonces, los
detalles de la puesta en práctica pueden cambiar en cualquier tiempo sin
afectar otras partes del programa.</div>
<div style="text-align: justify;">
El encapsulamiento de variables y métodos en un componente de software
ordenado es, todavía, una simple idea poderosa que provee dos
principales beneficios a los desarrolladores de software: El
encapsulamiento consiste en unir en la Clase las características y
comportamientos, esto es, las variables y métodos. Es tener todo esto en
una sola entidad. En los lenguajes estructurados esto era imposible. Es
evidente que el encapsulamiento se logra gracias a la abstracción y el
ocultamiento que veremos a continuación. La utilidad del encapsulamiento
va por la facilidad para manejar la complejidad, ya que tendremos a las
Clases como cajas negras donde sólo se conoce el comportamiento pero no
los detalles internos, y esto es conveniente porque lo que nos
interesará será conocer qué hace la Clase pero no será necesario saber
cómo lo hace.</div>
<div style="text-align: justify;">
La encapsulación da lugar a que las clases se dividan en dos partes:</div>
<ol>
<li style="text-align: justify;">Interfaz: Captura la visión externa de una clase, abarcando la abstracción del comportamiento común a los ejemplos de esa clase.</li>
<li style="text-align: justify;">Implementación: Comprende la representación de la abstracción, así como los mecanismos que conducen al comportamiento desead</li>
</ol>
</div>
</div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-9077427329129464182012-04-29T13:31:00.003-07:002012-04-30T14:57:46.733-07:00Abstracción (informática)<div class="firstHeading" id="firstHeading" style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXTl1vwx75E540EN3dF0hZRtgEBKPMtN_-0Juvc3Kq8dMJLATY1JXGKyIh4aCxabr6YBU4MZCHd0ENiZrRugjNOcGraIJ5k2TtG-rj36TR27Y1PvX1mdZ4hNPns5SNXPoaVXOM1q_RxT8/s1600/images.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXTl1vwx75E540EN3dF0hZRtgEBKPMtN_-0Juvc3Kq8dMJLATY1JXGKyIh4aCxabr6YBU4MZCHd0ENiZrRugjNOcGraIJ5k2TtG-rj36TR27Y1PvX1mdZ4hNPns5SNXPoaVXOM1q_RxT8/s1600/images.jpeg" /></a><span style="font-family: Arial,Helvetica,sans-serif;">La </span><b style="font-family: Arial,Helvetica,sans-serif;">abstracción</b><span style="font-family: Arial,Helvetica,sans-serif;"> consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan. En programación, el término se refiere al énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?" (característica de caja negra). El común denominador en la evolución de los lenguajes de programación, desde los clásicos o imperativos hasta los orientados a objetos, ha sido el nivel de abstracción del que cada uno de ellos hace uso.</span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Los lenguajes de programación son las herramientas mediante las cuales los diseñadores de lenguajes pueden implementar los modelos abstractos.
La abstracción ofrecida por los lenguajes de programación se puede
dividir en dos categorías: abstracción de datos (pertenecientes a los
datos) y abstracción de control (perteneciente a las estructuras de control).</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Los diferentes paradigmas de programación han aumentado su nivel de abstracción, comenzando desde los lenguajes de máquina, lo más próximo al ordenador
y más lejano a la comprensión humana; pasando por los lenguajes de
comandos, los imperativos, la orientación a objetos (OO), la Programación Orientada a Aspectos (POA); u otros paradigmas como la programación declarativa, etc.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
La abstracción encarada desde el punto de vista de la programación orientada a objetos expresa las características esenciales de un objeto,
las cuales distinguen al objeto de los demás. Además de distinguir
entre los objetos provee límites conceptuales. Entonces se puede decir
que la encapsulación
separa las características esenciales de las no esenciales dentro de un
objeto. Si un objeto tiene más características de las necesarias los
mismos resultarán difíciles de usar, modificar, construir y comprender.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
La misma genera una ilusión de simplicidad dado a que minimiza la cantidad de características que definen a un objeto.</div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Durante años, los programadores se han dedicado a construir aplicaciones
muy parecidas que resolvían una y otra vez los mismos problemas. Para
conseguir que sus esfuerzos pudiesen ser utilizados por otras personas
se creó la POO que consiste en una serie de normas para garantizar la interoperabilidad entre usuarios de manera que el código se pueda r</span>eutilizar.</div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-35537196971467116862012-04-29T13:28:00.001-07:002012-04-30T14:57:01.274-07:00Lenguajes orientados a objetos<div style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_OsmEGZiElxXVhToHVvMTxBxAJPNzoWGpDwCEZF8mMPsjWvNrNjJMpZ_gAeaz4T4pzmqBPeOm-grHd-jKhIFkS1aWlyPBdD5aGmKma6ia-trl6UGiFhAEoGKP2yRMjouIeD6BFVVw10Q/s1600/image.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="219" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_OsmEGZiElxXVhToHVvMTxBxAJPNzoWGpDwCEZF8mMPsjWvNrNjJMpZ_gAeaz4T4pzmqBPeOm-grHd-jKhIFkS1aWlyPBdD5aGmKma6ia-trl6UGiFhAEoGKP2yRMjouIeD6BFVVw10Q/s320/image.jpg" width="320" /></a><span class="mw-headline" id="Lenguajes_orientados_a_objetos"></span>Simula (1967) es aceptado como el primer lenguaje que posee las
características principales de un lenguaje orientado a objetos. Fue
creado para hacer programas de simulación, en donde los "objetos" son la
representación de la información más importante. Smalltalk (1972 a
1980) es posiblemente el ejemplo canónico, y con el que gran parte de la
teoría de la programación orientada a objetos se ha desarrollado.</div>
<div style="text-align: justify;">
Entre los lenguajes orientados a objetos se destacan los siguientes:</div>
<ul style="text-align: justify;">
<li>ABAP -> SAP Lenguaje orientado a eventos</li>
<li>ABL Lenguaje de programación de OpenEdge de Progress Software</li>
<li>ActionScript</li>
<li>ActionScript 3</li>
<li>Ada</li>
<li>C++</li>
<li>C#</li>
<li>Clarion</li>
<li>Clipper (lenguaje de programación) (Versión 5.x con librería de objetos Class(y))</li>
<li>Object Pascal (Embarcadero Delphi)</li>
<li>Gambas</li>
<li>Harbour</li>
<li>Eiffel</li>
<li>Fortran 90/95</li>
<li>Java</li>
<li>JavaScript (la herencia se realiza por medio de la programación basada en prototipos)</li>
<li>Lexico (en castellano)</li>
<li>Objective-C</li>
<li>Ocaml</li>
<li>Perl (soporta herencia múltiple. La resolución se realiza en preorden, pero puede modificarse al algoritmo linearization C3 por medio del módulo Class::C3 en CPAN)</li>
<li>PHP (a partir de su versión 5)</li>
<li>PowerBuilder</li>
<li>Python</li>
<li>Ruby</li>
<li>Smalltalk (Entorno de objetos puro)</li>
<li>Magik (SmallWorld)</li>
<li>Vala</li>
<li>Visual FoxPro (en su versión 6)</li>
<li>Visual Basic 6.0</li>
<li>VisuaVB.NETl DataFlex</li>
<li>Visual Objects</li>
<li>XBase++</li>
<li>Lenguaje DRP</li>
<li>Lenguaje de programación Scala (lenguaje usado por Twitter) http://www.scala-lang.org/page.jsp</li>
</ul>
<div style="text-align: justify;">
Muchos de estos lenguajes de programación no son puramente orientados
a objetos, sino que son híbridos que combinan la POO con otros
paradigmas.</div>
<div style="text-align: justify;">
Al igual que C++ otros lenguajes, como OOCOBOL, OOLISP, OOPROLOG y Object REXX, han sido creados añadiendo extensiones orientadas a objetos a un lenguaje de programación clásico.</div>
<div style="text-align: justify;">
Un nuevo paso en la abstracción de paradigmas de programación es la Programación Orientada a Aspectos
(POA). Aunque es todavía una metodología en estado de maduración, cada
vez atrae a más investigadores e incluso proyectos comerciales en todo
el mundo.</div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-57405557047296030082012-04-29T13:23:00.001-07:002012-04-30T14:56:00.250-07:00Características de la programación Orientada a objetos s<h2>
<span class="mw-headline" id="Caracter.C3.ADsticas_de_la_POO"><br /></span></h2>
<div style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAVegjKgW3l9zrchQVND9sAvsmentPBidx6jHs6AJPKBqDl4qPNZ2JFTn7DnJ16Mn43obUdkAIRZ8YeOfVYiLaqV7IcMd_PkDIgde4OelrJQGKw0X1Vzm8wmYBkV3EIhPy6ahudZUcIdQ/s1600/12345.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAVegjKgW3l9zrchQVND9sAvsmentPBidx6jHs6AJPKBqDl4qPNZ2JFTn7DnJ16Mn43obUdkAIRZ8YeOfVYiLaqV7IcMd_PkDIgde4OelrJQGKw0X1Vzm8wmYBkV3EIhPy6ahudZUcIdQ/s320/12345.jpg" width="294" /></a><span style="font-family: Arial,Helvetica,sans-serif;">Existe un acuerdo acerca de qué características contempla la
"orientación a objetos", las características siguientes son las más
importantes:</span></div>
<ul style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<li><b>Abstracción</b>:
denota las características esenciales de un objeto, donde se capturan
sus comportamientos. Cada objeto en el sistema sirve como modelo de un
"agente" abstracto que puede realizar trabajo, informar y cambiar su
estado, y "comunicarse" con otros objetos en el sistema sin revelar <i>cómo</i>
se implementan estas características. Los procesos, las funciones o los
métodos pueden también ser abstraídos y cuando lo están, una variedad
de técnicas son requeridas para ampliar una abstracción.El proceso de
abstracción permite seleccionar las características relevantes dentro de
un conjunto e identificar comportamientos comunes para definir nuevos
tipos de entidades en el mundo real. La abstracción es clave en el
proceso de análisis y diseño orientado a objetos, ya que mediante ella
podemos llegar a armar un conjunto de clases que permitan modelar la
realidad o el problema que se quiere atacar.</li>
</ul>
<ul style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<li><b>Encapsulamiento</b>:
Significa reunir a todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto
permite aumentar la cohesión
de los componentes del sistema. Algunos autores confunden este concepto
con el principio de ocultación, principalmente porque se suelen emplear
conjuntamente.</li>
</ul>
<ul style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<li><b>Modularidad</b>:
Se denomina Modularidad a la propiedad que permite subdividir una
aplicación en partes más pequeñas (llamadas módulos), cada una de las
cuales debe ser tan independiente como sea posible de la aplicación en
sí y de las restantes partes. Estos módulos se pueden compilar por
separado, pero tienen conexiones con otros módulos. Al igual que la
encapsulación, los lenguajes soportan la Modularidad de diversas formas.</li>
</ul>
<ul style="font-family: Arial,Helvetica,sans-serif;">
<li style="text-align: justify;"><b>Principio de ocultación</b>: Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una <i>interfaz</i>
a otros objetos que especifica cómo pueden interactuar con los objetos
de la clase. El aislamiento protege a las propiedades de un objeto
contra su modificación por quien no tenga derecho a acceder a ellas,
solamente los propios métodos internos del objeto pueden acceder a su
estado. Esto asegura que otros objetos no pueden cambiar el estado
interno de un objeto de maneras inesperadas, eliminando efectos
secundarios e interacciones inesperadas. Algunos lenguajes relajan esto,
permitiendo un acceso directo a los datos internos del objeto de una
manera controlada y limitando el grado de abstracción. La aplicación
entera se reduce a un agregado o rompecabezas de objetos.</li>
<li style="text-align: justify;"><b>Polimorfismo</b>:
comportamientos diferentes, asociados a objetos distintos, pueden
compartir el mismo nombre, al llamarlos por ese nombre se utilizará el
comportamiento correspondiente al objeto que se esté usando. O dicho de
otro modo, las referencias y las colecciones de objetos pueden contener
objetos de diferentes tipos, y la invocación de un comportamiento en una
referencia producirá el comportamiento correcto para el tipo real del
objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta
última característica se llama <i>asignación tardía</i> o <i>asignación dinámica</i>.
Algunos lenguajes proporcionan medios más estáticos (en "tiempo de
compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.</li>
<li style="text-align: justify;"><b>Herencia</b>:
las clases no están aisladas, sino que se relacionan entre sí, formando
una jerarquía de clasificación. Los objetos heredan las propiedades y
el comportamiento de todas las clases a las que pertenecen. La herencia
organiza y facilita el polimorfismo y el encapsulamiento permitiendo a
los objetos ser definidos y creados como tipos especializados de objetos
preexistentes. Estos pueden compartir (y extender) su comportamiento
sin tener que volver a implementarlo. Esto suele hacerse habitualmente
agrupando los objetos en <i>clases</i> y estas en <i>árboles</i> o <i>enrejados</i> que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay <i>herencia múltiple</i>.</li>
<li style="text-align: justify;"><b>Recolección de basura</b>: la recolección de basura o <i>garbage collector</i>
es la técnica por la cual el entorno de objetos se encarga de destruir
automáticamente, y por tanto desvincular la memoria asociada, los
objetos que hayan quedado sin ninguna referencia a ellos. Esto significa
que el programador no debe preocuparse por la asignación o liberación
de memoria, ya que el entorno la asignará al crear un nuevo objeto y la
liberará cuando nadie lo esté usando. En la mayoría de los lenguajes
híbridos que se extendieron para soportar el Paradigma de Programación
Orientada a Objetos como C++ u Object Pascal, esta característica no existe y la memoria debe desasignarse manualmente.</li>
</ul>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-69043296989655605532012-04-29T13:20:00.003-07:002012-04-30T14:46:28.510-07:00Conceptos fundamentales<h2>
<span class="mw-headline" id="Conceptos_fundamentales"><br /></span></h2>
<div style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXOQLxY55ZkhtdUbM_hfHjJ9NZFalSq_LwVITaO2ZT3P3i7ervsfAD8a1p5JK4xGN0Q6Z3WnhZUX8wmFsqrceGp5EUljFr62qUeoZjrYmdhPrsckG8-fxDaUcIS1KPnxgdqbkOTNltPzg/s1600/maraia.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXOQLxY55ZkhtdUbM_hfHjJ9NZFalSq_LwVITaO2ZT3P3i7ervsfAD8a1p5JK4xGN0Q6Z3WnhZUX8wmFsqrceGp5EUljFr62qUeoZjrYmdhPrsckG8-fxDaUcIS1KPnxgdqbkOTNltPzg/s320/maraia.jpeg" width="320" /></a>La programación orientada a objetos es una forma de programar que
trata de encontrar una solución a estos problemas. Introduce nuevos
conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre
ellos destacan los siguientes:</div>
<ul style="text-align: justify;">
<li><b>Clase</b>:
definiciones de las propiedades y comportamiento de un tipo de objeto
concreto. La instanciación es la lectura de estas definiciones y la
creación de un objeto a partir de ellas.</li>
<li><b>Herencia:</b>
(por ejemplo, herencia de la clase C a la clase D) Es la facilidad
mediante la cual la clase D hereda en ella cada uno de los atributos y
operaciones de C, como si esos atributos y operaciones hubiesen sido
definidos por la misma D. Por lo tanto, puede usar los mismos métodos y
variables publicas declaradas en C. Los componentes registrados como
"privados" (private) también se heredan, pero como no pertenecen a la
clase, se mantienen escondidos al programador y sólo pueden ser
accedidos a través de otros métodos públicos. Esto es así para mantener
hegemónico el ideal de OOP.</li>
<li><b>Objeto</b>:
entidad provista de un conjunto de propiedades o atributos (datos) y de
comportamiento o funcionalidad (métodos) los mismos que
consecuentemente reaccionan a eventos. Se corresponde con los objetos
reales del mundo que nos rodea, o a objetos internos del sistema (del
programa). Es una instancia a una clase.</li>
<li><b>Método</b>:
Algoritmo asociado a un objeto (o a una clase de objetos), cuya
ejecución se desencadena tras la recepción de un "mensaje". Desde el
punto de vista del comportamiento, es lo que el objeto puede hacer. Un
método puede producir un cambio en las propiedades del objeto, o la
generación de un "evento" con un nuevo mensaje para otro objeto del
sistema.</li>
<li><b>Evento</b>: Es un suceso en el sistema (tal como una interacción
del usuario con la máquina, o un mensaje enviado por un objeto). El
sistema maneja el evento enviando el mensaje adecuado al objeto
pertinente. También se puede definir como evento, a la reacción que
puede desencadenar un objeto, es decir la acción que genera.</li>
<li><b>Mensaje</b>: una comunicación dirigida a un objeto, que le ordena
que ejecute uno de sus métodos con ciertos parámetros asociados al
evento que lo generó.</li>
<li><b>Propiedad o atributo</b>: contenedor de un tipo de datos
asociados a un objeto (o a una clase de objetos), que hace los datos
visibles desde fuera del objeto y esto se define como sus
características predeterminadas, y cuyo valor puede ser alterado por la
ejecución de algún método.</li>
<li><b>Estado interno</b>: es una variable que se declara privada, que
puede ser únicamente accedida y alterada por un método del objeto, y que
se utiliza para indicar distintas situaciones posibles para el objeto
(o clase de objetos). No es visible al programador que maneja una
instancia de la clase.</li>
<li><b>Componentes de un objeto</b>: atributos, identidad, relaciones y métodos.</li>
<li><b>Identificación de un objeto</b>: un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.</li>
</ul>
<div style="text-align: justify;">
En comparación con un lenguaje imperativo, una "variable", no es más
que un contenedor interno del atributo del objeto o de un estado
interno, así como la "función" es un procedimiento interno del método
del objeto.</div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-14883783412602116142012-04-29T13:18:00.003-07:002012-04-30T14:44:12.599-07:00Origen<div style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIpkVZpbtr7ON1EQh9SSvNrYCtFYVrH4p-xuXs1T50XJujJb8g0Lz9dLDn2YRDLcuR1a6cQoAGqKXXMzmxET9VDadw_qFDhjwrI17SehEmLUwljWq3GbkgT26jneilxyliht_K5qY7w60/s1600/222222.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIpkVZpbtr7ON1EQh9SSvNrYCtFYVrH4p-xuXs1T50XJujJb8g0Lz9dLDn2YRDLcuR1a6cQoAGqKXXMzmxET9VDadw_qFDhjwrI17SehEmLUwljWq3GbkgT26jneilxyliht_K5qY7w60/s320/222222.jpg" width="320" /></a>Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard del Centro de Cómputo Noruego en Oslo.
En este centro, se trabajaba en simulaciones de naves, que fueron
confundidas por la explosión combinatoria de cómo las diversas
cualidades de diferentes naves podían afectar unas a las otras. La idea
surgió al agrupar los diversos tipos de naves en diversas clases de
objetos, siendo responsable cada clase de objetos de definir sus <i>propios</i> datos y comportamientos. Fueron refinados más tarde en Smalltalk, desarrollado en Simula en Xerox PARC (cuya primera versión fue escrita sobre Basic)
pero diseñado para ser un sistema completamente dinámico en el cual los
objetos se podrían crear y modificar "sobre la marcha" (en tiempo de
ejecución) en lugar de tener un sistema basado en programas estáticos.</div>
<div style="text-align: justify;">
La programación orientada a objetos se fue convirtiendo en el estilo
de programación dominante a mediados de los años ochenta, en gran parte
debido a la influencia de C++, una extensión del lenguaje de programación C. Su dominación fue consolidada gracias al auge de las Interfaces gráficas de usuario, para las cuales la programación orientada a objetos está particularmente bien adaptada. En este caso, se habla también de programación dirigida por eventos.</div>
<div style="text-align: justify;">
Las características de orientación a objetos fueron agregadas a muchos lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp, Pascal,
entre otros. La adición de estas características a los lenguajes que no
fueron diseñados inicialmente para ellas condujo a menudo a problemas
de compatibilidad y en la capacidad de mantenimiento del código. Los
lenguajes orientados a objetos "puros", por su parte, carecían de las
características de las cuales muchos programadores habían venido a
depender. Para saltar este obstáculo, se hicieron muchas tentativas para
crear nuevos lenguajes basados en métodos orientados a objetos, pero
permitiendo algunas características imperativas de maneras "seguras". El
Eiffel
de Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con
esos objetivos pero ahora ha sido esencialmente reemplazado por Java, en gran parte debido a la aparición de Internet, y a la implementación de la máquina virtual de Java en la mayoría de navegadores. PHP
en su versión 5 se ha modificado, soporta una orientación completa a
objetos, cumpliendo todas las características propias de la orientación a
objetos.</div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-37455593669773028712012-04-29T13:17:00.001-07:002012-04-30T14:41:22.419-07:00Programació Orientada a objetos<h2>
<span class="mw-headline" id="Introducci.C3.B3n">Introducción</span></h2>
<div style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaSVZlj8gwXHkd4wGtHpsy7JJ9yTa0TUb3R_r_ssTyf29Tn_eK-cVcNi-eb9Q5W_PwO7UPFtLKcsEMXaFqzCnIcOuNgOV1toeC0PLAx-29ZkvjulYdSvOu9CvPoMV7GdjcGAAlG90TLXY/s1600/flor.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaSVZlj8gwXHkd4wGtHpsy7JJ9yTa0TUb3R_r_ssTyf29Tn_eK-cVcNi-eb9Q5W_PwO7UPFtLKcsEMXaFqzCnIcOuNgOV1toeC0PLAx-29ZkvjulYdSvOu9CvPoMV7GdjcGAAlG90TLXY/s1600/flor.jpeg" /></a>Los objetos son entidades que tienen un determinado <i>estado</i>, <i>comportamiento (método)</i> e <i>identidad</i>:<br />
El <i>estado</i> está compuesto de datos o informaciones , será uno o
varios atributos a los que se habrán asignado unos valores concretos
(datos).<br />
El <i>comportamiento</i> está definido por los mètodos o mensajes a los que sabe responder dicho objeto, es decir, qué operaciones se pueden realizar con él.<br />
La <i>identidad</i> es una propiedad de un objeto que lo diferencia
del resto, dicho con otras palabras, es su identificador (concepto
análogo al de identificador de una variable o una constante).<br />
Un objeto contiene toda la información que permite definirlo e
identificarlo frente a otros objetos pertenecientes a otras clases e
incluso frente a objetos de una misma clase, al poder tener valores bien
diferenciados en sus atributos. A su vez, los objetos disponen de
mecanismos de interacción llamados métodos,
que favorecen la comunicación entre ellos. Esta comunicación favorece a
su vez el cambio de estado en los propios objetos. Esta característica
lleva a tratarlos como unidades indivisibles, en las que no se separa el
estado y el comportamiento.<br />
Los <b>métodos (comportamiento)</b> y <b>atributos (estado)</b> están
estrechamente relacionados por la propiedad de conjunto. Esta propiedad
destaca que una clase requiere de métodos para poder tratar los
atributos con los que cuenta. El programador
debe pensar indistintamente en ambos conceptos, sin separar ni darle
mayor importancia a alguno de ellos. Hacerlo podría producir el hábito
erróneo de crear clases contenedoras de información por un lado y clases
con métodos que manejen a las primeras por el otro. De esta manera se
estaría realizando una <b>programación camuflada</b> en un lenguaje de programación orientado a objetos.<br />
La POO difiere de la programación estructurada
tradicional, en la que los datos y los procedimientos están separados y
sin relación, ya que lo único que se busca es el procesamiento de unos
datos de entrada para obtener otros de salida. La programación
estructurada anima al programador a pensar sobre todo en términos de
procedimientos o funciones, y en segundo lugar en las estructuras de
datos que esos procedimientos manejan. En la programación estructurada
solo se escriben funciones que procesan datos. Los programadores que
emplean POO, en cambio, primero definen objetos para luego enviarles
mensajes solicitándoles que realicen sus métodos por sí mismos.</div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-82735082843184218312012-04-29T13:12:00.000-07:002012-04-30T14:41:04.131-07:00Programación Dinámica<br />
<div class="Encabezado1" style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Programación dinámica </div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
En informática, la <b>programación
dinámica</b> es un método para reducir el tiempo de ejecución de un algoritmo
mediante la utilización de subproblemas superpuestos y subestructuras óptimas,
como se describe a continuación.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHQVFpmrd_TF79U6pCVCpBIxCpWt_DgAqIY_JOwiyk6puJDMk8Z0wI4Vf_JckFaUFEDIH9SPbXDXtNB-jkM0eJLoNPfZYx8a9Q1SaDBMgwNHy4zKyE3-XWHQJIX6D5LU4so0IfpcrqiTM/s1600/linda.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHQVFpmrd_TF79U6pCVCpBIxCpWt_DgAqIY_JOwiyk6puJDMk8Z0wI4Vf_JckFaUFEDIH9SPbXDXtNB-jkM0eJLoNPfZYx8a9Q1SaDBMgwNHy4zKyE3-XWHQJIX6D5LU4so0IfpcrqiTM/s1600/linda.jpeg" /></a></div>
El matemático Richard
Bellman inventó la <b>programación dinámica</b> en 1953 que se utiliza para
optimizar problemas complejos que pueden ser discretizados y secuencializados.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify; text-justify: inter-ideograph;">
<br /></div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-87161894634817530052012-04-29T13:10:00.003-07:002012-04-30T14:40:33.929-07:00Programación Orientada a Eventos<br />
<div class="Encabezado1" style="mso-list: l0 level1 lfo1; text-align: justify; text-justify: inter-ideograph;">
<span style="color: black;"> </span></div>
<div class="Predeterminado" style="text-align: justify; text-justify: inter-ideograph;">
<span style="color: black;"> </span></div>
<div style="text-align: justify; text-justify: inter-ideograph;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH-6A7GjEVRGtP-hdB_fLPjYHjT1IrvDbIi5kcVUIBa_GzG1AMkAUCaWlw7SQlXDBcP5R-3W3qsju1B8JdjdqrdeNoBJVglLMwVhMiBG_YCzK7IQAH1YIiuz5dE29AbhYzmx4-hTvf4Ho/s1600/mmmmmtttnnngg.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH-6A7GjEVRGtP-hdB_fLPjYHjT1IrvDbIi5kcVUIBa_GzG1AMkAUCaWlw7SQlXDBcP5R-3W3qsju1B8JdjdqrdeNoBJVglLMwVhMiBG_YCzK7IQAH1YIiuz5dE29AbhYzmx4-hTvf4Ho/s1600/mmmmmtttnnngg.jpeg" /></a><span style="color: black;">La <b>programación dirigida por eventos</b> es un paradigma
de programación en el que tanto la estructura como la ejecución de los
programas van determinados por los sucesos que ocurran en el sistema, definidos
por el usuario o que ellos mismos provoquen.</span></div>
<div style="text-align: justify; text-justify: inter-ideograph;">
<span style="color: black;">Para entender la programación dirigida por eventos, podemos
oponerla a lo que no es: mientras en la programación secuencial (o estructurada)
es el programador el que define cuál va a ser el flujo del programa, en la
programación dirigida por eventos será el propio usuario —o lo que sea que esté
accionando el programa— el que dirija el flujo del programa. Aunque en la
programación secuencial puede haber intervención de un agente externo al
programa, estas intervenciones ocurrirán cuando el programador lo haya
determinado, y no en cualquier momento como puede ser en el caso de la programación
dirigida por eventos.</span></div>
<div style="text-align: justify; text-justify: inter-ideograph;">
<span style="color: black;">El creador de un programa dirigido por eventos debe definir
los eventos que manejarán su programa y las acciones que se realizarán al
producirse cada uno de ellos, lo que se conoce como el administrador de evento.
Los eventos soportados estarán determinados por el lenguaje de programación
utilizado, por el sistema operativo e incluso por eventos creados por el mismo
programador.</span></div>
<div style="text-align: justify; text-justify: inter-ideograph;">
<span style="color: black;">En la programación dirigida por eventos, al comenzar la
ejecución del programa se llevarán a cabo las inicializaciones y demás código
inicial y a continuación el programa quedará bloqueado hasta que se produzca
algún evento. Cuando alguno de los eventos esperados por el programa tenga
lugar, el programa pasará a ejecutar el código del correspondiente administrador
de evento. Por ejemplo, si el evento consiste en que el usuario ha hecho click
en el botón de play de un reproductor de películas, se ejecutará el código del administrador
de evento, que será el que haga que la película se muestre por pantalla.</span></div>
<div style="text-align: justify; text-justify: inter-ideograph;">
<span style="color: black;">Un ejemplo claro lo tenemos en los sistemas de programación
Lexico y Visual Basic, en los que a cada elemento del programa (objetos,
controles, etcétera) se le asignan una serie de eventos que generará dicho
elemento, como la pulsación de un botón del ratón sobre él o el redibujado del
control.</span></div>
<div style="text-align: justify; text-justify: inter-ideograph;">
<span style="color: black;">La programación dirigida por eventos es la base de lo que
llamamos interfaz de usuario, aunque puede emplearse también para desarrollar
interfaces entre componentes de Software o módulos del núcleo.</span></div>
<div style="text-align: justify; text-justify: inter-ideograph;">
<span style="color: black;">En los primeros tiempos de la computación, los programas
eran secuenciales, también llamados Batch. Un programa secuencial arranca, lee
parámetros de entrada, procesa estos parámetros, y produce un resultado, todo
de manera lineal y sin intervención del usuario mientras se ejecuta.</span></div>
<div style="text-align: justify; text-justify: inter-ideograph;">
<span style="color: black;">Con la aparición y popularización de los PC, el software
empezó a ser demandado para usos alejados de los clásicos académicos y
empresariales para los cuales era necesitado hasta entonces, y quedó patente
que el paradigma clásico de programación no podía responder a las nuevas
necesidades de interacción con el usuario que surgieron a raíz de este hecho.</span></div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-5224769115734730372012-04-29T13:09:00.000-07:002012-04-30T14:38:48.363-07:00Lenguajede programación<br />
<div class="Encabezado1" style="mso-list: l1 level1 lfo1; text-align: justify; text-justify: inter-ideograph;">
<span style="color: black;"> </span></div>
<div style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh71bI5u0laZ5hCHDaskmR6mrDWDUgriDeMBDYhEF2XhqvzxbeKX6zQ4s-WkfXwXc1Yc_YdQgeSGivcJ5tW0v4OC1ZzSr604KX_XLBAR0Q24qQ0NCNvj6dhWgwZ7PjsGuGkZNpY6u5lqUo/s1600/gambas.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh71bI5u0laZ5hCHDaskmR6mrDWDUgriDeMBDYhEF2XhqvzxbeKX6zQ4s-WkfXwXc1Yc_YdQgeSGivcJ5tW0v4OC1ZzSr604KX_XLBAR0Q24qQ0NCNvj6dhWgwZ7PjsGuGkZNpY6u5lqUo/s1600/gambas.jpeg" /></a><span style="color: black;">Un <b>lenguaje de programación</b> es un idioma artificial
diseñado para expresar computaciones que pueden ser llevadas a cabo por
máquinas como las computadoras. Pueden usarse para crear programas que
controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos
con precisión, o como modo de comunicación humana.<sup>1</sup> Está formado por
un conjunto de símbolos y reglas sintácticas y semánticas que definen su
estructura y el significado de sus elementos y expresiones. Al proceso por el
cual se escribe, se prueba, se depura, se compila y se mantiene el código
fuente de un programa informático se le llama programación.</span><br /><span style="color: black;">También la palabra programación se define como el proceso
de creación de un programa de computadora, mediante la aplicación de
procedimientos lógicos, a través de los siguientes pasos:</span><br /><span style="font-family: Symbol; font-size: 10pt;">·<span style="font: 7pt "Times New Roman";">
</span></span><span style="color: black;">El desarrollo lógico
del programa para resolver un problema en particular.</span><br /><span style="font-family: Symbol; font-size: 10pt;">·<span style="font: 7pt "Times New Roman";">
</span></span><span style="color: black;">Escritura de la lógica
del programa empleando un lenguaje de programación específico (codificación del
programa).</span><br /><span style="font-family: Symbol; font-size: 10pt;">·<span style="font: 7pt "Times New Roman";">
</span></span><span style="color: black;">Ensamblaje o
compilación del programa hasta convertirlo en lenguaje de máquina.</span><br /><span style="font-family: Symbol; font-size: 10pt;">·<span style="font: 7pt "Times New Roman";">
</span></span><span style="color: black;">Prueba y depuración
del programa.</span><br /><span style="font-family: Symbol; font-size: 10pt;">·<span style="font: 7pt "Times New Roman";">
</span></span><span style="color: black;">Desarrollo de la
documentación.</span><br /><span style="color: black;">Existe un error común que trata por sinónimos los términos
'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos
engloban a los lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje
para el marcado de páginas web que no es propiamente un lenguaje de
programación, sino un conjunto de instrucciones que permiten diseñar el
contenido de los documentos).</span><br /><span style="color: black;">Permite especificar de <i>manera precisa</i> sobre qué
datos debe operar una computadora, cómo deben ser almacenados o transmitidos y
qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a
través de un lenguaje que intenta estar <i>relativamente</i> próximo al
lenguaje humano o natural. Una característica relevante de los lenguajes de
programación es precisamente que más de un programador pueda usar un conjunto
común de instrucciones que sean comprendidas entre ellos para realizar la
construcción de un programa de forma colaborativa.</span></div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-43985655199421009602012-04-29T13:06:00.000-07:002012-04-30T14:38:08.344-07:00Referencias Històricas<br />
<div class="Predeterminado" style="font-family: Arial,Helvetica,sans-serif; margin: 1.4pt 0cm; text-align: justify;">
<span style="font-size: small;"><b><span style="color: black;">Referencias históricas</span></b></span></div>
<div class="Predeterminado" style="font-family: Arial,Helvetica,sans-serif; margin: 1.4pt 0cm; text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin8U33D42R84GMg_oY3Bo5zpu_rUDuuzK4xEWRoNSQ4oRasbI10xG6i6quKAkjNV6qVSWkI2T1mvhyphenhyphen_vYRNva24FreDhzYwenIC4HgUky8nVk1N67E9q6EIwZLN78Uxssu_f2k_xiUuco/s1600/m7t.jpeg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin8U33D42R84GMg_oY3Bo5zpu_rUDuuzK4xEWRoNSQ4oRasbI10xG6i6quKAkjNV6qVSWkI2T1mvhyphenhyphen_vYRNva24FreDhzYwenIC4HgUky8nVk1N67E9q6EIwZLN78Uxssu_f2k_xiUuco/s1600/m7t.jpeg" /></a></div>
<span style="font-size: small;"><span style="color: black;">La primera programadora de computadora conocida fue
Ada Love lace, hija de Anabella Milbanke Byron y Lord Byron. Anabella introdujo
en las matemáticas a Ada quien, después de conocer a Charles Babbage, tradujo y
amplió una descripción de su máquina analítica. Incluso aunque Babbage nunca
completó la construcción de cualquiera de sus máquinas, el trabajo que Ada
realizó con éstas le hizo ganarse el título de primera programadora de
computadoras del mundo. El nombre del lenguaje de programación Ada fue escogido
como homenaje a esta programadora.</span></span></div>
<div class="Predeterminado" style="font-family: Arial,Helvetica,sans-serif; margin: 1.4pt 0cm; text-align: justify;">
<span style="font-size: small;"><span style="color: black;">No olvidemos que este proceso está aplicado a todos
los métodos científicos que actualmente se practican</span></span></div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-79417009776749377442012-04-23T12:08:00.001-07:002012-04-30T14:37:49.128-07:00Requisitos de la programación<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
es un lenguaje de alto nivel desarrollado por Nvidia en colaboración con Microsoft<sup class="reference" id="cite_ref-0">1</sup> <sup class="reference" id="cite_ref-1">2</sup> para la programación de vertex y pixel shaders. Es similar al lenguaje de Microsoft HLSL.
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigPO14JGOXCpzeHCwgbussyXRZ5HwDZPFumLeFbZfFNNtNhF2pHJpAoogkL8KVchvHdlv9QZlBX1Kwm97awAtvhUg-zoj2gxx6xOCt_zxqLtkIaxMKYePfHIfvX5h-q4glUca7BpSwwwI/s1600/ilg.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigPO14JGOXCpzeHCwgbussyXRZ5HwDZPFumLeFbZfFNNtNhF2pHJpAoogkL8KVchvHdlv9QZlBX1Kwm97awAtvhUg-zoj2gxx6xOCt_zxqLtkIaxMKYePfHIfvX5h-q4glUca7BpSwwwI/s1600/ilg.jpeg" /></a>El lenguaje está basado en lenguaje de programación C
y comparte varias de sus características aunque existen diferencias
notables y elementos añadidos para adaptarlos a cuestiones concretas y
especiales de la programación de las GPU (Graphics Processing Unit o Unidad de Procesamiento de Gráfico).</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Este lenguaje fue diseñado específicamente para las acelaradoras y API gráficas, no pretende ser utilizado como lenguaje de propósito general. Por el contrario, el lenguaje CUDA (también orientado a programación de GPU) si puede ser utilizado para aplicaciones de propósito general.</div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-3154286171224099322012-04-23T11:48:00.002-07:002012-04-30T14:31:27.243-07:00Programación e ingeniería del software<style type="text/css">
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
<br />
<div align="JUSTIFY" style="line-height: 0.18cm; margin-bottom: 0.05cm; margin-top: 0.05cm;">
<span style="color: black;"><span style="font-size: large;"><b>Programación e ingeniería del
software</b></span></span></div>
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;"><br /></span><br />
<div style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGde43RUQhzz7nWJyAzOm-uDc6I3oa_rbteFyLgTpyrzy0dHfgW1fg-qIXlq9av00A3HunIEQu0iN61NTU6xKn33pXzcJrE-vEXw2Zl_3O5WdKGrokf3h_zaa6X7G_ulVgNWnTmfmwfyk/s1600/tmns.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGde43RUQhzz7nWJyAzOm-uDc6I3oa_rbteFyLgTpyrzy0dHfgW1fg-qIXlq9av00A3HunIEQu0iN61NTU6xKn33pXzcJrE-vEXw2Zl_3O5WdKGrokf3h_zaa6X7G_ulVgNWnTmfmwfyk/s1600/tmns.jpeg" /></a><span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">Existe una tendencia a identificar el proceso de creación de un programa informático con la programación, que es cierta cuando se trata de programas pequeños para uso personal, y que dista de la realidad cuando se trata de grandes proyectos.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">El proceso de creación de software, desde el punto de vista de la ingeniería, incluye los siguientes pasos: </span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">Reconocer la necesidad de un programa para solucionar un problema o identificar la posibilidad de automatización de una tarea.</span></div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-43126677527556989982012-04-23T11:47:00.001-07:002012-04-30T14:31:11.989-07:00Compilación<style type="text/css">
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
<br />
<div align="JUSTIFY" style="line-height: 0.18cm; margin-bottom: 0.05cm; margin-top: 0.05cm;">
<span style="color: black;"><span style="font-size: large;"><b>Compilación</b></span></span></div>
<br />
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiDDK0cUCTi-z8cIn8GvCMhhhpIrAQFOddHMbWgRfQbychy8SiyJjmz5185IwV904jWhJRjdUy24oh599PcPeVEaVUBvNQ8ZUd13Jq7U7zdlvBgOl2T6ASKBTVX6dPrjPpGsvxlAQ2eb4/s1600/rja.jpeg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiDDK0cUCTi-z8cIn8GvCMhhhpIrAQFOddHMbWgRfQbychy8SiyJjmz5185IwV904jWhJRjdUy24oh599PcPeVEaVUBvNQ8ZUd13Jq7U7zdlvBgOl2T6ASKBTVX6dPrjPpGsvxlAQ2eb4/s1600/rja.jpeg" /></a><span style="font-size: small;">El programa escrito en un lenguaje de programación (fácilmente comprensible por el programador) es llamado programa fuente y no se puede ejecutar directamente en una computadora. La opción más común es compilar el programa obteniendo un módulo objeto, aunque también puede ejecutarse en forma más directa a través de un intérprete informático.<br /><br />El código fuente del programa se debe someter a un proceso de traducción para convertirlo en lenguaje máquina, código éste directamente ejecutable por el procesador. A este proceso se le llama compilación.<br /><br />Normalmente la creación de un programa ejecutable (un típico.exe para Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de programación almacenado en un archivo a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje máquina). El segundo paso se llama enlazado en el cual se enlaza el código de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo así finalmente el código objeto a código máquina, y generando un módulo ejecutable.<br /><br />Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de compilación en archivos objetos (un típico.obj para Microsoft Windows, DOS o para Unix); para enlazarlos en fases posteriores, o crear directamente el ejecutable; con lo que la fase de compilación se almacena sólo temporalmente. Un programa podría tener partes escritas en varios lenguajes (por ejemplo C, C++ y ensamblador), que se podrían compilar de forma independiente y luego enlazar juntas para formar un único módulo ejecutable.</span></div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-5949384482676281322012-04-23T11:45:00.000-07:002012-04-30T14:30:51.600-07:00Programas y algoritmos<style type="text/css">
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
<br />
<div align="JUSTIFY" style="line-height: 0.18cm; margin-bottom: 0.05cm; margin-top: 0.05cm;">
<span style="color: black;"><span style="font-size: large;"><b>Programas y algoritmos</b></span></span></div>
<br /><br /><div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2KGTuiPQy5WR-8D7wBVJAXLeIVGPCk3Jg8U2b7GWURzWrgi5aaBr8l9q-IcK8LWU34uL7NuaBYv-wYxneNp7bmyMyD1j5QI7w1byJhyphenhyphenlBGcMTSui5EIsNgz8AJ7WAx8c05CSdPPpT3xM/s1600/images.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2KGTuiPQy5WR-8D7wBVJAXLeIVGPCk3Jg8U2b7GWURzWrgi5aaBr8l9q-IcK8LWU34uL7NuaBYv-wYxneNp7bmyMyD1j5QI7w1byJhyphenhyphenlBGcMTSui5EIsNgz8AJ7WAx8c05CSdPPpT3xM/s1600/images.jpeg" /></a>Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) uno o más algoritmos. Un algoritmo puede expresarse de distintas maneras: en forma gráfica, como un diagrama de flujo, en forma de código como en pseudocódigo o un lenguaje de programación, en forma explicativa, etc.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Los programas suelen subdividirse en partes menores, llamadas módulos, de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Esta es una práctica muy utilizada y se conoce como "refino progresivo".</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Según Niklaus Wirth, un programa está formado por los algoritmos y la estructura de datos.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Se han propuesto diversas técnicas de programación cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas, se pueden mencionar las siguientes: </div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Programación estructurada </div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Programación modular </div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Programación orientada a objetos (POO) </div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Programación declarativa</div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-78266699441514613042012-04-23T11:44:00.002-07:002012-04-30T14:29:52.403-07:00Léxito y programación<style type="text/css">
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
<br />
<div align="JUSTIFY" style="line-height: 0.18cm; margin-bottom: 0.05cm; margin-top: 0.05cm;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: justify;">
<span style="color: black;"> <span style="font-size: large;"><b>Léxico y programación</b></span></span></div>
<div style="text-align: justify;">
<br /></div>
</div>
<div style="font-family: Arial,Helvetica,sans-serif; line-height: 0.18cm; margin-bottom: 0.05cm; margin-top: 0.05cm; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCKmkuA0_EPyWISbBbdvwVdLqB7DhUg-dlHuXeZ2DCgbdEKEDTxvbQ-aA0e7Y70KjDtMxi5wl1XpV7wpyyJQKtXZ9fpGU3RiiZLOvVp4IxrSkjeHMJBabohChsHTb4QXW-QuKKm7JH-7U/s1600/111111.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCKmkuA0_EPyWISbBbdvwVdLqB7DhUg-dlHuXeZ2DCgbdEKEDTxvbQ-aA0e7Y70KjDtMxi5wl1XpV7wpyyJQKtXZ9fpGU3RiiZLOvVp4IxrSkjeHMJBabohChsHTb4QXW-QuKKm7JH-7U/s200/111111.gif" width="200" /></a><span style="color: black;">La programación se rige por reglas y un
conjunto más o menos reducido de</span><br />
órdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una<br />
<span style="color: black;">lengua
natural acotada (en inglés); y que además tienen la particularidad
de una </span><br />
<span style="color: black;">reducida ambigüedad. Cuanto menos ambiguo es un lenguaje de
programación, se</span><br />
<br />
<span style="color: black;"> dice, es más potente. Bajo esta premisa, y en el
extremo, el lenguaje más potente</span><br />
<br />
<span style="color: black;"> existente es el binario, con
ambigüedad nula (lo cual lleva a pensar así del</span><br />
<span style="color: black;">lenguaje
ensamblador).</span></div>
<div style="font-family: Arial,Helvetica,sans-serif; line-height: 0.18cm; margin-bottom: 0.05cm; margin-top: 0.05cm; text-align: justify;">
<span style="color: black;">En los lenguajes de programación de alto nivel
se distinguen diversos elementos </span><br />
<span style="color: black;">entre los que se incluyen el léxico
propio del lenguaje y las reglas semánticas y sintácticas</span></div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-41253152474169056252012-04-23T11:43:00.001-07:002012-04-30T14:29:38.969-07:00Historia<style type="text/css">
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
<br />
<div style="line-height: 0.18cm; margin-bottom: 0.05cm; margin-top: 0.05cm; text-align: justify;">
<span style="color: black;"><span style="font-size: large;"><b>Historia</b></span></span></div>
<div style="text-align: justify;">
<br />
<br />
Para crear un programa, y que la computadora interprete y ejecute las instrucciones escritas en él, debe usarse un Lenguaje de programación.En sus inicios las computadoras interpretaban sólo instrucciones en un lenguaje específico, del más bajo nivel, conocido como código máquina, siendo éste excesivamente complicado para programar. De hecho sólo consiste en cadenas de números 1 y 0 (Sistema binario). Para facilitar el trabajo de programación, los primeros científicos que trabajaban en el área decidieron reemplazar las instrucciones, secuencias de unos y ceros,por palabras o letras provenientes del inglés; codificándolas así y creando un lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador <br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNHyrU5lpFaZX93YqFR8pjzwMEl75ZCq87ObNkf6JF6aCGcePLBXG7iBEPn9vZT6mVIk7Y_Gjrl5CSg2Vnwlzjojcu0URkM9Zf6H-eM-0uwT0sB3Du3o87fQd0abxCBXf4opsX_EWiv4I/s1600/maurico.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNHyrU5lpFaZX93YqFR8pjzwMEl75ZCq87ObNkf6JF6aCGcePLBXG7iBEPn9vZT6mVIk7Y_Gjrl5CSg2Vnwlzjojcu0URkM9Zf6H-eM-0uwT0sB3Du3o87fQd0abxCBXf4opsX_EWiv4I/s1600/maurico.jpeg" /></a>. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo<br />
<br />
en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que secuencias de números binarios.<br />
<br />
A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método sencillo para programar<br />
Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan<br />
<br />
trivial como multiplicar dos números puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará con solo una.<br />
<br />
Una vez que se termina de escribir un programa, sea en ensamblador o en unlenguaje de alto nivel, es necesario compilarlo, es decir, traducirlo a lenguajemáquina.</div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.comtag:blogger.com,1999:blog-9046211080629449309.post-71225760587651633742012-04-23T11:40:00.004-07:002012-05-01T07:02:57.666-07:00La programación<style type="text/css">
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
<br />
<div style="line-height: 0.18cm; margin-bottom: 0.05cm; margin-top: 0.05cm; text-align: justify;">
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRRxe8BP0Kr94BNPpiCneSQAMo83GJiCFcMZ0QiXgtvtaQoJ_yGY-PovdHKm_z48eHhDKBW4QTaTj6-EcXGEe663gugPb8YNpbE8p17SVAcwa1X9n1xWmXPqB3zFY2Lm2MW4JPfujMYgM/s1600/mtm.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRRxe8BP0Kr94BNPpiCneSQAMo83GJiCFcMZ0QiXgtvtaQoJ_yGY-PovdHKm_z48eHhDKBW4QTaTj6-EcXGEe663gugPb8YNpbE8p17SVAcwa1X9n1xWmXPqB3zFY2Lm2MW4JPfujMYgM/s200/mtm.jpeg" width="200" /></a><span style="font-family: Arial,Helvetica,sans-serif;">La programación es el proceso de diseñar, codificar, depurar</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"> y mantener el código</span><br />
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
fuente de programas computacionales. El código fuente es<br />
escrito en un le<br />
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
nguaje de programación. El propósito de la programación es<br />
crear programas que<br />
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
exhiban un comportamiento deseado. El proceso de escribir<br />
código requiere<br />
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
frecuentemente conocimientos en varias áreas distintas, además del domin<br />
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
io del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no<br />
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
involucra necesariamente otras tareas tales como el análisis y diseño de la<br />
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
desarrollo de pequeñas aplicaciones<br />
</div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"> .</span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<br />
<br />
<br />
<br />
<a href="http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n"></a>mas información</div>mauriciohttp://www.blogger.com/profile/16500535746367247081noreply@blogger.com