<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7201009480115143256</id><updated>2024-10-24T11:16:54.195-07:00</updated><category term="codigo"/><category term="diagramas"/><category term="diagrams"/><category term="lenguajes"/><category term="perl"/><category term="programacion"/><category term="python"/><category term="script"/><category term="uml"/><category term="2"/><category term="awk"/><category term="c"/><category term="comportamiento"/><category term="creación"/><category term="design"/><category term="diseño"/><category term="estructurales"/><category term="estructuras"/><category term="funcionales"/><category term="gst"/><category term="haskell"/><category term="interprete"/><category term="knaves"/><category term="knights"/><category term="logica"/><category term="logicos"/><category term="modelado"/><category term="objects"/><category term="objetos"/><category term="oop"/><category term="orientado"/><category term="paradigmas"/><category term="patrones"/><category term="patterns"/><category term="pointers"/><category term="problemas"/><category term="programas"/><category term="programming"/><category term="prolog"/><category term="punteros"/><category term="random"/><category term="ruby"/><category term="semana 7"/><category term="shell"/><category term="smalltalk"/><category term="spy"/><category term="struct"/><category term="structures"/><category term="tutorial"/><category term="unificado"/><category term="yuml"/><title type='text'>Lenguajes de programación</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://shade-lenpro.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://shade-lenpro.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7201009480115143256.post-1128052355518716287</id><published>2010-11-30T21:24:00.000-08:00</published><updated>2010-11-30T21:26:57.549-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="comportamiento"/><category scheme="http://www.blogger.com/atom/ns#" term="creación"/><category scheme="http://www.blogger.com/atom/ns#" term="design"/><category scheme="http://www.blogger.com/atom/ns#" term="diagramas"/><category scheme="http://www.blogger.com/atom/ns#" term="diagrams"/><category scheme="http://www.blogger.com/atom/ns#" term="diseño"/><category scheme="http://www.blogger.com/atom/ns#" term="estructurales"/><category scheme="http://www.blogger.com/atom/ns#" term="patrones"/><category scheme="http://www.blogger.com/atom/ns#" term="patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="uml"/><title type='text'>Patrones de diseño</title><content type='html'>Un patrón de diseño es una solucion repetida generalmente aplicada a un problema comunmente ocurrente en el diseño de software.&lt;br /&gt;
&lt;br /&gt;
Un patrón de diseño no es una solucion final absoluta que puede transformarse directamente a código, es una descripción o plantilla de como resolver un problema que puede usarse en muchas situaciones diferentes.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;Los patrones de diseño pueden acelerar el proceso de desarrollo, al proporcionar paradigmas que muchas veces han sido probados útiles.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Patrones de creación&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
Estos patrones de diseño tratan acerca de la instanciación de clase. Esta clase puede dividirse en patrones de creación de clases y patrones de creación de objetos. Los patrones de creación de clases usan herencia en el proceso de instanciación y los patrones de creación de objetos usan la delegación para realizar el trabajo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Abstract Factory&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Provee una interfaz para crear familias de objetos relacionados o dependientes, sin especificar sus clases concretas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYFn8I4XFkLUkry6ByA4a7CMRYrg_BJhyVzjBi95PdnjEC8jerAusv1AEmDKNJWnC5aAHJchUrCoswB-yjb5kdjN09HKv5DQjV00dgfKQg5DFb0D2v7GKd2tOhFN2012eXa8Foqe5nlAQ/s1600/abstract-factory-pattern.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYFn8I4XFkLUkry6ByA4a7CMRYrg_BJhyVzjBi95PdnjEC8jerAusv1AEmDKNJWnC5aAHJchUrCoswB-yjb5kdjN09HKv5DQjV00dgfKQg5DFb0D2v7GKd2tOhFN2012eXa8Foqe5nlAQ/s400/abstract-factory-pattern.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Builder&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Separa la construcción de un objeto complejo de su representación de tal manera que el mismo proceso de construcción pueda crear distintas representaciones.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZzWbWYnGdaIHx9JNUWhk4ZonB_maSRdUPhlYxY4O09-A2pmyJQfQS-Nqa2lRVtiZClt27DfQ0Q89ITGpfhXWH-kbkcohyphenhyphenFhgwvHatmH0FuUq-aDKFXvwdQjdfNu_NEl319wKzWPAX2wA/s1600/builder-pattern.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;185&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZzWbWYnGdaIHx9JNUWhk4ZonB_maSRdUPhlYxY4O09-A2pmyJQfQS-Nqa2lRVtiZClt27DfQ0Q89ITGpfhXWH-kbkcohyphenhyphenFhgwvHatmH0FuUq-aDKFXvwdQjdfNu_NEl319wKzWPAX2wA/s400/builder-pattern.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Factory Method&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Define una interfaz para crear un objeto, pero deja que las subclases decidan que clase instanciar. Permite que una clase delegue la creación de objetos a sus subclases.&lt;/div&gt;&lt;div style=&quot;text-align: auto;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc4xG3VPfjz9TAUf5lujLtfO0DAeBNBQ0PI1g21KH8WUf54NTr8CdVzpVvVDeZr8HjrURCN4FidDYNCjs8xmzxCcy9ZOxmh238p5t2Jg7JRqF5jXCQpgJR1KEuH1Mh4kHn8O38IqsKPKQ/s1600/factory+method+implementation+-+uml+class+diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc4xG3VPfjz9TAUf5lujLtfO0DAeBNBQ0PI1g21KH8WUf54NTr8CdVzpVvVDeZr8HjrURCN4FidDYNCjs8xmzxCcy9ZOxmh238p5t2Jg7JRqF5jXCQpgJR1KEuH1Mh4kHn8O38IqsKPKQ/s400/factory+method+implementation+-+uml+class+diagram.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Object Pool&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Evade costosa adquisición y gasto de recursos, mediante el reciclado de objetos que no se encuentran en uso.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirRY4tmZ2XjgONM5iCJvhGBs1QYn9ReXOwjaqUBT4jJSOMO94tA_zCTfq5F0NUdcWfLANC7s1WrBN8sgZIPzRAtcy5plfMxdiKupl9K1ThHqzYHpHyfc0_IRXfpvWW-rcaxB90qA9Ws9A/s1600/objectpool+implementation+-+uml+class+schema.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirRY4tmZ2XjgONM5iCJvhGBs1QYn9ReXOwjaqUBT4jJSOMO94tA_zCTfq5F0NUdcWfLANC7s1WrBN8sgZIPzRAtcy5plfMxdiKupl9K1ThHqzYHpHyfc0_IRXfpvWW-rcaxB90qA9Ws9A/s1600/objectpool+implementation+-+uml+class+schema.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirRY4tmZ2XjgONM5iCJvhGBs1QYn9ReXOwjaqUBT4jJSOMO94tA_zCTfq5F0NUdcWfLANC7s1WrBN8sgZIPzRAtcy5plfMxdiKupl9K1ThHqzYHpHyfc0_IRXfpvWW-rcaxB90qA9Ws9A/s400/objectpool+implementation+-+uml+class+schema.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Prototype&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Especifica el tipo de objetos a crear, usando una instancia prototipo y creando nuevos objetos copiando este prototipo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjehY_vaG8oQgyuFvMrE56U5vJ6JMoXVhOhHw8RcZpne327McHDXN61eRmB1SPqhNsgWOkIauysytQdiFR9w1qWYp4odjaqn9S_tqvzP2rSq2y9UcKBCGmpCgdZ382oes3NF5-ree77fE/s1600/prototype+implementation+-+uml+class+diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjehY_vaG8oQgyuFvMrE56U5vJ6JMoXVhOhHw8RcZpne327McHDXN61eRmB1SPqhNsgWOkIauysytQdiFR9w1qWYp4odjaqn9S_tqvzP2rSq2y9UcKBCGmpCgdZ382oes3NF5-ree77fE/s400/prototype+implementation+-+uml+class+diagram.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Singleton&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div style=&quot;text-align: auto;&quot;&gt;Garantiza que una clase sólo tenga una instancia y provee de un punto de acceso global a ella.&lt;/div&gt;&lt;div style=&quot;text-align: auto;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: auto;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioAKxYpF4iuH8jbKWFZw857tKuLwx9jxYnRvJkFWf_LxUiMmyXg2PlRx43qjNmylQXsgEkjuWw_uzqW4kSgOpvLipnMGmRZhHJh4lBjcstvyP0qqBV_PAzelOOLVieerBmNYCyDW_2eFM/s1600/singleton_implementation_-_uml_class_diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioAKxYpF4iuH8jbKWFZw857tKuLwx9jxYnRvJkFWf_LxUiMmyXg2PlRx43qjNmylQXsgEkjuWw_uzqW4kSgOpvLipnMGmRZhHJh4lBjcstvyP0qqBV_PAzelOOLVieerBmNYCyDW_2eFM/s1600/singleton_implementation_-_uml_class_diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioAKxYpF4iuH8jbKWFZw857tKuLwx9jxYnRvJkFWf_LxUiMmyXg2PlRx43qjNmylQXsgEkjuWw_uzqW4kSgOpvLipnMGmRZhHJh4lBjcstvyP0qqBV_PAzelOOLVieerBmNYCyDW_2eFM/s320/singleton_implementation_-_uml_class_diagram.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Patrones estructurales&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
Estos patrones de diseño tratan sobre la composicion de clases y objetos. Estos patrones usan herencia para componer interfaces. Definen maneras de componer un objeto para obtener nuevas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Adapter&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Transforma la interfaz de una clase en una interfaz que el cliente espera. Este patron permite que distintas clases trabajen en juntas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div&gt;&lt;ul style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 16px; font-style: inherit; font-weight: inherit; list-style-position: outside; list-style-type: none; margin-bottom: 1.5em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: url(http://sourcemaking.com/sites/all/themes/sm3/images/ild/dot.gif); background-origin: initial; background-position: 0px 0.5em; background-repeat: no-repeat no-repeat; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 16px; font-style: inherit; font-weight: inherit; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1.5em; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;&lt;ul class=&quot;addanchor&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 16px; font-style: inherit; font-weight: inherit; list-style-position: outside; list-style-type: none; margin-bottom: 1.5em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj866DasVHWLPAEH2UUyOWv4YAuF8H81RsTaLU91wjpWs9jmoxJvPS5Q7KGOTlEJiDGqKBh8-eB8I-7RbgoDoxy6Ehe3sdjl96aR4O9hXKnMspBPdVKfWdeMDY4XY5q-8YGyVOwCvh90Fk/s1600/adapter-pattern.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;230&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj866DasVHWLPAEH2UUyOWv4YAuF8H81RsTaLU91wjpWs9jmoxJvPS5Q7KGOTlEJiDGqKBh8-eB8I-7RbgoDoxy6Ehe3sdjl96aR4O9hXKnMspBPdVKfWdeMDY4XY5q-8YGyVOwCvh90Fk/s400/adapter-pattern.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;div style=&quot;text-align: auto;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Bridge&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Desempareja la abstraccion de un objeto de su implementacion de tal manera que las dos puedan variar independientemente.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhesKLHSaFxqfjbKnUb2xakxN92Nhquf7yo1TGhWSoSPS5iPjTS9Qiuw7rRL4SXBhxGTReQSrwPsitZk4ZFECBvkleyMhttdiEKhb1221j9O7JHxksICXDlP3G2gni2k3XJPf2y2PG6Lw4/s1600/bridge-pattern.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: none; color: black;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhesKLHSaFxqfjbKnUb2xakxN92Nhquf7yo1TGhWSoSPS5iPjTS9Qiuw7rRL4SXBhxGTReQSrwPsitZk4ZFECBvkleyMhttdiEKhb1221j9O7JHxksICXDlP3G2gni2k3XJPf2y2PG6Lw4/s1600/bridge-pattern.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;190&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhesKLHSaFxqfjbKnUb2xakxN92Nhquf7yo1TGhWSoSPS5iPjTS9Qiuw7rRL4SXBhxGTReQSrwPsitZk4ZFECBvkleyMhttdiEKhb1221j9O7JHxksICXDlP3G2gni2k3XJPf2y2PG6Lw4/s400/bridge-pattern.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Composite&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Compone objetos en estructuras tipo árbol para representar jerarquías de parte completa. Permite tratar objetos individuales y composiciones de objetos uniformemente.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHU7gPNivkLjyvu3Ho29ABLsAxrgNlk4yfPHX2HPDTB71IT140tYOY8OwhpUMgigCBkBNoMxaa_Hx__6pMRhdhzsFMDytJWtS60M5QLCkYuYai2IDKjaY0r9IB0pdODoE6wyLOl9Sqzd0/s1600/composite-design-pattern-implementation-uml-class-diagram.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;177&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHU7gPNivkLjyvu3Ho29ABLsAxrgNlk4yfPHX2HPDTB71IT140tYOY8OwhpUMgigCBkBNoMxaa_Hx__6pMRhdhzsFMDytJWtS60M5QLCkYuYai2IDKjaY0r9IB0pdODoE6wyLOl9Sqzd0/s400/composite-design-pattern-implementation-uml-class-diagram.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Decorator&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Agrega responsabilidades a un objeto dinámicamente. Provee de una alternativa flexible a subclasificación para extender la funcionalidad.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPudts5cSYfyzoHHHTg3phP9WJWLUpkAgN0SM9t5ptlXXWSlrrNm_kIM1IaEMtB7qq_Q43x82HYclSkpMLN-knfuXMWHfkJS-dStdrHwbkarItw1Up0y5pyC66Pnm7LQMRWbXCM7P6nqs/s1600/decorator-design-pattern-implementation-uml-class-diagram.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;190&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPudts5cSYfyzoHHHTg3phP9WJWLUpkAgN0SM9t5ptlXXWSlrrNm_kIM1IaEMtB7qq_Q43x82HYclSkpMLN-knfuXMWHfkJS-dStdrHwbkarItw1Up0y5pyC66Pnm7LQMRWbXCM7P6nqs/s400/decorator-design-pattern-implementation-uml-class-diagram.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Facade&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Provee de una interfaz unificada de un conjunto de interfaces en un subsistema. Define una interfaz de alto nivel para hacer un subsistema fácil de usar.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWyQQHJjDcAjmrFC7SCSHCbOFvucbsuOWDDIsANtAXOQYVUP8Mq_ovlWddGeEi30ALHlpGJcZkT08IlvHUTRjzUtFjUWMuF9TfgmKNt2XBloAtq9lRfs1pdQyBxPFf9X7c2942QxbqHDo/s1600/Facade1.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;230&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWyQQHJjDcAjmrFC7SCSHCbOFvucbsuOWDDIsANtAXOQYVUP8Mq_ovlWddGeEi30ALHlpGJcZkT08IlvHUTRjzUtFjUWMuF9TfgmKNt2XBloAtq9lRfs1pdQyBxPFf9X7c2942QxbqHDo/s320/Facade1.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Flyweight&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Usa el compartir para soportar grades números de objetos &quot;&lt;a href=&quot;http://weblogs.javahispano.org/gimenete/entry/mapeo_objeto_relacional_herencia_iii&quot;&gt;de grano fino&lt;/a&gt;&quot; de manera eficiente.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7S4pZlSFognDClyPKcpyFUTBaFjO06S60NaPPouyIBabiULfWjL6wrItj_8kOcZsvsPRrxIZJ7JcUuXnkbWB8bw9t3YJPRcFTLmk493A1mltB6VXfVfTo8yuJGa0w79k79jKD5nrNIKQ/s1600/flyweight-design-pattern-implementation-uml-class-diagram.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;157&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7S4pZlSFognDClyPKcpyFUTBaFjO06S60NaPPouyIBabiULfWjL6wrItj_8kOcZsvsPRrxIZJ7JcUuXnkbWB8bw9t3YJPRcFTLmk493A1mltB6VXfVfTo8yuJGa0w79k79jKD5nrNIKQ/s400/flyweight-design-pattern-implementation-uml-class-diagram.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Private Class Data&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Controla el acceso de escritura a los atributos de una clase.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt7qIcgyougRw0PB1m7ACMnqZbxcV6FdCbv54l8dbNd7VmCWOkglFnAddV3h6k0dnEsAnWC2XWNyXUBwxzqD53iS5OL6_OMSYBR0egEAC4kH1Ga8R33cHV9tEWXr5SJLsMHMETt7osaiQ/s1600/Private_Data_class1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;301&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt7qIcgyougRw0PB1m7ACMnqZbxcV6FdCbv54l8dbNd7VmCWOkglFnAddV3h6k0dnEsAnWC2XWNyXUBwxzqD53iS5OL6_OMSYBR0egEAC4kH1Ga8R33cHV9tEWXr5SJLsMHMETt7osaiQ/s320/Private_Data_class1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Proxy&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Proporciona un representante de otro objeto para controlar el acceso al objeto que está siendo representado.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFZjlcXd_pxgo-_RT7P9lG7D2WwI_y8jnntoG4LqJjOyxHQGm19exh1AJxUxjBAzVShirH8dFXn-8mQ2TZPpSU9YFWB2iRxeXNjwGJuQ_YlaGkKcU251j0wNYLK70ETeXgATQKF2rVUpc/s1600/Proxy1.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;204&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFZjlcXd_pxgo-_RT7P9lG7D2WwI_y8jnntoG4LqJjOyxHQGm19exh1AJxUxjBAzVShirH8dFXn-8mQ2TZPpSU9YFWB2iRxeXNjwGJuQ_YlaGkKcU251j0wNYLK70ETeXgATQKF2rVUpc/s320/Proxy1.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;div style=&quot;text-align: auto;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Patrones de comportamiento&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Estos patrones tratan acerca de la comunicacion entre objetos y conjuntos de estos.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Chain of responsibility&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Evita emparejar el objeto que envía una petición con el objeto que recibe esa petición, al permitir que mas de un objeto pueda tomar la responsabilidad de la petición enviada. Encadena los objetos que podrán recibir la petición y pasa la petición a lo largo de la cadena hasta que un objeto acepte la petición.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKUpb4pq5AuQUMcdoqkbcQQ_CouvNBG0GZ4-GaSEwoE61Z-99CwRhSGHCPE3gg7czR_2vmYPIV53xWp6RnIXGoH_5v9InA36Eb8_BI0mh68OYwDyY3qRwaqN4As2xvWBCwv2O3fwo3j7M/s1600/chain+of+responsability+implementation+-+uml+class+diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: none; color: black;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKUpb4pq5AuQUMcdoqkbcQQ_CouvNBG0GZ4-GaSEwoE61Z-99CwRhSGHCPE3gg7czR_2vmYPIV53xWp6RnIXGoH_5v9InA36Eb8_BI0mh68OYwDyY3qRwaqN4As2xvWBCwv2O3fwo3j7M/s1600/chain+of+responsability+implementation+-+uml+class+diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;190&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKUpb4pq5AuQUMcdoqkbcQQ_CouvNBG0GZ4-GaSEwoE61Z-99CwRhSGHCPE3gg7czR_2vmYPIV53xWp6RnIXGoH_5v9InA36Eb8_BI0mh68OYwDyY3qRwaqN4As2xvWBCwv2O3fwo3j7M/s400/chain+of+responsability+implementation+-+uml+class+diagram.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Command&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Transforma una peticion en un objeto de tal manera que puedas catalogar clientes con diferentes peticiones, mantener un registro de las peticiones y soportar el deshacer operaciones.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiW0OcfMVioI1VfoRmgIDdvagVgVnsXMVrDrSihL8m-GVbDNMWOgwugHTja7Qq6erZyIAC2cIEIG7RUPJi-bVrGRpCMI3CI5ptRVzuHhwVZAoHAIEv7JnySXSHHMoewx1T3SFuW3TAngU/s1600/command_implementation_-_uml_class_diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;161&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiW0OcfMVioI1VfoRmgIDdvagVgVnsXMVrDrSihL8m-GVbDNMWOgwugHTja7Qq6erZyIAC2cIEIG7RUPJi-bVrGRpCMI3CI5ptRVzuHhwVZAoHAIEv7JnySXSHHMoewx1T3SFuW3TAngU/s400/command_implementation_-_uml_class_diagram.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Interpreter&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Permite definir una representación de la gramática de un lenguaje para usarla en un interprete del lenguaje.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzH8jlRKyHzQpxIV-LL18isSCwNwerrx-vHjBpU-NkGxYejY2H8CRadqZZdsJlBDV8Set1WO5m4wWp366xl2ZV7mmQp4IsDD8Aj5wW1gyVUTX5d8Be3FkPCMZQs-vfLGhhR1Epjn36xqE/s1600/Interpreter1.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;228&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzH8jlRKyHzQpxIV-LL18isSCwNwerrx-vHjBpU-NkGxYejY2H8CRadqZZdsJlBDV8Set1WO5m4wWp366xl2ZV7mmQp4IsDD8Aj5wW1gyVUTX5d8Be3FkPCMZQs-vfLGhhR1Epjn36xqE/s400/Interpreter1.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Iterator&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Provee de una manera de acceder secuencialmente a los elementos de una colección sin exponer su representación interna.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9ohNQSgP6xSugNiXq1ccGaoMLPIEi_n3WZPP7eCp7fV2TkAK9EXucYdvrPZDK_8yRSnk0x02p5mVjTcN7PTXGIIMdV9Pz1p3mDGAhyphenhyphenU5iI1Digs8UrNNl1h8w08DW3oJO6v2cA2NsDyc/s1600/iterator_implementation_-_uml_class_diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;326&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9ohNQSgP6xSugNiXq1ccGaoMLPIEi_n3WZPP7eCp7fV2TkAK9EXucYdvrPZDK_8yRSnk0x02p5mVjTcN7PTXGIIMdV9Pz1p3mDGAhyphenhyphenU5iI1Digs8UrNNl1h8w08DW3oJO6v2cA2NsDyc/s400/iterator_implementation_-_uml_class_diagram.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Mediator&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Crea un objeto mediador que encapsula el cómo un conjunto de objetos interactúan. Mediator promociona la organización de como interactúan los objetos, sin necesidad de que entre ellos mismos se referencíen.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGdU4kazroxrSSQFCxYN2XUhevNHW9jfUfxmLSDhfGeYSr06s40uIgzoBC2csQJMovPcQ5iMsceuKNkpvS-CPkH0DEEipfSh1GpLHaTIvNX78hKdpIPlNY3ODq3B0rzZqnDu6TxR-gvJA/s1600/mediator_implementation_-_uml_class_diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;275&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGdU4kazroxrSSQFCxYN2XUhevNHW9jfUfxmLSDhfGeYSr06s40uIgzoBC2csQJMovPcQ5iMsceuKNkpvS-CPkH0DEEipfSh1GpLHaTIvNX78hKdpIPlNY3ODq3B0rzZqnDu6TxR-gvJA/s400/mediator_implementation_-_uml_class_diagram.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Memento&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Sin violar el principio de encapsulación, captura y externaliza el estado interno de un objeto de manera que el objeto pueda regresar al estado después.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7DmccKUWFMHVDXFoHFHjfEI07qJ5HZQauyKojLVtYmH2vxOr9U-zPTfD265KtTHYLl288ZLJoBgsEtBdMCjT0NHkxEDUliEg-XTwOC9zSq0EAMOoopkezzPHua708OIWNeFPi8bW_MsM/s1600/Memento.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;170&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7DmccKUWFMHVDXFoHFHjfEI07qJ5HZQauyKojLVtYmH2vxOr9U-zPTfD265KtTHYLl288ZLJoBgsEtBdMCjT0NHkxEDUliEg-XTwOC9zSq0EAMOoopkezzPHua708OIWNeFPi8bW_MsM/s400/Memento.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;div style=&quot;text-align: auto;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Null Object&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Encapsula la ausencia de un objeto al proveer de una alternativa que ofrece un comportamiento predefinido de &quot;hacer nada&quot;. Permite que el comportamiento de hacer nada, sea el valor predefinido de un objeto.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz-gs8biUsEJbCgb9lEX27U5i0_FKTYf5t26PR_G8FJPUO8se1VkaOtA_N7Qxv6_Dr4CYTqpf4el9LSqWRe6qcm0CZkAtlTcOapNj_ulPdKV9ggH2cTF4FFWJhuJzEcP_jEXSyrJgccJk/s1600/null_object_implementation_-_uml_class_diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: none; color: black;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz-gs8biUsEJbCgb9lEX27U5i0_FKTYf5t26PR_G8FJPUO8se1VkaOtA_N7Qxv6_Dr4CYTqpf4el9LSqWRe6qcm0CZkAtlTcOapNj_ulPdKV9ggH2cTF4FFWJhuJzEcP_jEXSyrJgccJk/s1600/null_object_implementation_-_uml_class_diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;245&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz-gs8biUsEJbCgb9lEX27U5i0_FKTYf5t26PR_G8FJPUO8se1VkaOtA_N7Qxv6_Dr4CYTqpf4el9LSqWRe6qcm0CZkAtlTcOapNj_ulPdKV9ggH2cTF4FFWJhuJzEcP_jEXSyrJgccJk/s400/null_object_implementation_-_uml_class_diagram.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Observer&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Define una dependencia de uno a muchos entre objetos de tal manera que cuando un objeto cambie su estado, todas las dependencias del objeto sean notificadas y actualizadas automáticamente.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA9zoyDQWn-cQXZe9nxProHFofr1GS3YQNsGyzGHeluwGN3hFDZtIWw1iZ0jhYQkHwF_F9X5cI6NF4ggT_CzCBdNKznHamZQpjn6CiQTR68pEcU5W9sqjrWvZtvxhmyaCAif7ryxmO0E0/s1600/observer_implementation_-_uml_class_diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;277&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA9zoyDQWn-cQXZe9nxProHFofr1GS3YQNsGyzGHeluwGN3hFDZtIWw1iZ0jhYQkHwF_F9X5cI6NF4ggT_CzCBdNKznHamZQpjn6CiQTR68pEcU5W9sqjrWvZtvxhmyaCAif7ryxmO0E0/s400/observer_implementation_-_uml_class_diagram.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;State&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Permite que un objeto cambie su comportamiento al cambiar su estado. El objeto parecerá que cambio de clase.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitdbCq0TfPN-wSjfgPv2uJvRef9nt5LDpnqY_c3iBf768USv2RySg58SPilcl_a0g82_OZnMheg4kgewfvH96jppyQKhXEoGLEhH2cKBdFNU896Ik1SrB2Yi5p9gV2ctXwG3XvWLLslCE/s1600/State1.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;253&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitdbCq0TfPN-wSjfgPv2uJvRef9nt5LDpnqY_c3iBf768USv2RySg58SPilcl_a0g82_OZnMheg4kgewfvH96jppyQKhXEoGLEhH2cKBdFNU896Ik1SrB2Yi5p9gV2ctXwG3XvWLLslCE/s400/State1.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Strategy&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Crea un conjunto de algoritmos encapsulados intercambiables. Permite que un algoritmo varíe independientemente de los clientes que los usan.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho0VX54Sv0Ws8DWJ7FpKUxUIxcZOn-9XMWrp9-ETwXdsr3aqdt0e_n5XDpsNmc-DWldW8mbyTwqIkDX6b7smT2IWWwI-X2m6HJ35B4bQgWTQWUgd5Rgj810jw6d6zJCWgJXymuycVpWcM/s1600/strategy_implementation_-_uml_class_diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho0VX54Sv0Ws8DWJ7FpKUxUIxcZOn-9XMWrp9-ETwXdsr3aqdt0e_n5XDpsNmc-DWldW8mbyTwqIkDX6b7smT2IWWwI-X2m6HJ35B4bQgWTQWUgd5Rgj810jw6d6zJCWgJXymuycVpWcM/s400/strategy_implementation_-_uml_class_diagram.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Template method&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Otorga el derecho a subclases de re definir ciertos pasos o procedimientos de un algoritmo sin cambiar la estructura de tal algoritmo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR7-SvJtjVHwtUeO8b-y0BmCKxa2nWoK-Rj02t6fo4dvm4-F43iUdG6YWnEPUGz46Q7DBmPBvF4QZ3KpZ_Y1VHFI2XEhOB93OS-s9vwsSYAXhOGVYHRDql5JPX58kS0ARphoVRb8iGMSs/s1600/template_method_implementation_-_uml_class_diagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;210&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR7-SvJtjVHwtUeO8b-y0BmCKxa2nWoK-Rj02t6fo4dvm4-F43iUdG6YWnEPUGz46Q7DBmPBvF4QZ3KpZ_Y1VHFI2XEhOB93OS-s9vwsSYAXhOGVYHRDql5JPX58kS0ARphoVRb8iGMSs/s320/template_method_implementation_-_uml_class_diagram.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Visitor&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Permite definir una operación nueva sin cambiar las clases de los elementos en los cuales opera.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6tI6rlT6YUpsoem5d-ELeeH2vVrKKmWPCpsy88HuQjkPsdN8Panc9R8qy3y1u_grzOegRbF3mezcWvC0O8ok6ZB1UGRuv2yJl1DH7l-3rGtRE4a2RRVCZEDhHv-oyzgswaXvSglxTAeQ/s1600/visitor-pattern.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6tI6rlT6YUpsoem5d-ELeeH2vVrKKmWPCpsy88HuQjkPsdN8Panc9R8qy3y1u_grzOegRbF3mezcWvC0O8ok6ZB1UGRuv2yJl1DH7l-3rGtRE4a2RRVCZEDhHv-oyzgswaXvSglxTAeQ/s320/visitor-pattern.png&quot; width=&quot;318&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
Bibliografía (e&amp;nbsp;imágenes&amp;nbsp;tomadas de):&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://sourcemaking.com/design_patterns&quot;&gt;http://sourcemaking.com/design_patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.oodesign.com/&quot;&gt;http://www.oodesign.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shade-lenpro.blogspot.com/feeds/1128052355518716287/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/patrones-de-diseno.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/1128052355518716287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/1128052355518716287'/><link rel='alternate' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/patrones-de-diseno.html' title='Patrones de diseño'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYFn8I4XFkLUkry6ByA4a7CMRYrg_BJhyVzjBi95PdnjEC8jerAusv1AEmDKNJWnC5aAHJchUrCoswB-yjb5kdjN09HKv5DQjV00dgfKQg5DFb0D2v7GKd2tOhFN2012eXa8Foqe5nlAQ/s72-c/abstract-factory-pattern.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201009480115143256.post-6895541518987051841</id><published>2010-11-30T21:23:00.001-08:00</published><updated>2010-11-30T21:23:51.215-08:00</updated><title type='text'>Lenguaje de programación Oz</title><content type='html'>Oz es un lenguaje multiparadigma diseñado para aplicaciones avanzadas, concurrentes, de redes, en tiempo real, y reactivas.&lt;br /&gt;
&lt;br /&gt;
Provee de los componentes de un lenguaje orientado a objetos, incluyendo estado, tipos de datos abstractos, objetos, clases y herencia. Posee componentes de un lenguaje funcional, incluyendo sintaxis composicional, procedimientos o funciones de primera clase y ámbito léxico. Provee de los componentes de un lenguaje lógico y con restricciones, incluyendo variables lógicas, restricciones, construcciones disyuntivas, y mecanismos de búsqueda programables. Y permite a los usuarios la creación&amp;nbsp;dinámica&amp;nbsp;de cualquier nu&#39;mero de threads o hilos de ejecución.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;El sistema de&amp;nbsp;programación&amp;nbsp;mozart ha sido desarrollado por investigadores de &lt;a href=&quot;http://www.dfki.de/web&quot;&gt;DFKI&lt;/a&gt; (Deutsches Forschungszentrum Für Künstliche Intelligenz), &lt;a href=&quot;http://www.sics.se/&quot;&gt;SICS&lt;/a&gt; (Swedish Institute of Computer Science), &lt;a href=&quot;http://www.uni-saarland.de/en/&quot;&gt;University of the Saarland&lt;/a&gt;, &lt;a href=&quot;http://www.uclouvain.be/&quot;&gt;UCL&lt;/a&gt; (the Université Catholique de Louvain).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Aquí&amp;nbsp;hay un ejemplo de la sintaxis del lenguaje:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: #a020f0;&quot;&gt;local&lt;/span&gt;&amp;nbsp;X&amp;nbsp;Y&amp;nbsp;Z&amp;nbsp;&lt;span class=&quot;keyword&quot; style=&quot;color: #a020f0;&quot;&gt;in&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;X&amp;nbsp;=&amp;nbsp;5&amp;nbsp;Y&amp;nbsp;=&amp;nbsp;10&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot; style=&quot;color: #a020f0;&quot;&gt;if&lt;/span&gt;&amp;nbsp;X&amp;nbsp;&lt;span class=&quot;keyword&quot; style=&quot;color: #a020f0;&quot;&gt;&amp;gt;=&lt;/span&gt;&amp;nbsp;Y&amp;nbsp;&lt;span class=&quot;keyword&quot; style=&quot;color: #a020f0;&quot;&gt;then&lt;/span&gt;&amp;nbsp;Z&amp;nbsp;=&amp;nbsp;X&amp;nbsp;&lt;span class=&quot;keyword&quot; style=&quot;color: #a020f0;&quot;&gt;else&lt;/span&gt;&amp;nbsp;Z&amp;nbsp;=&amp;nbsp;Y&amp;nbsp;&lt;span class=&quot;keyword&quot; style=&quot;color: #a020f0;&quot;&gt;end&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;keyword&quot; style=&quot;color: #a020f0;&quot;&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;La sintaxis es separada por bloques de código en donde la primera parte es una declaración de variables (que pueden tomar valores regresados por funciones) y la segunda parte (separada por la palabra especial &quot;in&quot;) consiste en una serie de procedimientos que se&amp;nbsp;ejecutarán.&lt;br /&gt;
&lt;br /&gt;
Este es mi programa de para calcular un elemento de la serie fibonacci y el factorial de algún número.&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0;&quot;&gt;%Esto es un comentario&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0;&quot;&gt;/**Esto es un&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0;&quot;&gt;comentario extendido&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0;&quot;&gt;**/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: #a020f0;&quot;&gt;local&lt;/span&gt;&amp;nbsp;Fac Res&amp;nbsp;&lt;span class=&quot;keyword&quot; style=&quot;color: #a020f0;&quot;&gt;in&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;proc &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;{Fac N Res} &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;%procedimiento&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;if&amp;nbsp;&lt;/span&gt;N &amp;lt; 2&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;then&lt;/span&gt;&amp;nbsp;Res = 1&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;else&amp;nbsp;&lt;/span&gt;Res = N * {Fac N - 1}&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;{&lt;/span&gt;Fac 5 Res&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;}&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;%llama al procedimiento&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; {Browse Res}&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: #a020f0;&quot;&gt;local&lt;/span&gt;&amp;nbsp;Fib&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; fun &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;{Fib N}&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt; %funcion&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; case &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;N&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;%similar a switch case en C&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; of &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt; then &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; [] &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt; then &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; else &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;{Fib N - 1} + {Fib N - 2}&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; end&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: #a020f0;&quot;&gt;in&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;{Browse {Fib 7}}&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;%llama a la funcion&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a020f0; font-family: &#39;Andale Mono&#39;, &#39;lucida console&#39;, courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Recursos para aprender:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.mozart-oz.org/documentation/tutorial/index.html&quot;&gt;Tutorial de Oz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.mozart-oz.org/documentation/fdt/&quot;&gt;Finite Domain Constraint Programming with Oz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shade-lenpro.blogspot.com/feeds/6895541518987051841/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/lenguaje-de-programacion-oz.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/6895541518987051841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/6895541518987051841'/><link rel='alternate' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/lenguaje-de-programacion-oz.html' title='Lenguaje de programación Oz'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201009480115143256.post-263872262808428147</id><published>2010-11-30T21:23:00.000-08:00</published><updated>2010-11-30T21:23:12.618-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="diagramas"/><category scheme="http://www.blogger.com/atom/ns#" term="diagrams"/><category scheme="http://www.blogger.com/atom/ns#" term="modelado"/><category scheme="http://www.blogger.com/atom/ns#" term="objects"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><category scheme="http://www.blogger.com/atom/ns#" term="uml"/><category scheme="http://www.blogger.com/atom/ns#" term="unificado"/><category scheme="http://www.blogger.com/atom/ns#" term="yuml"/><title type='text'>UML (Unified Modeling Language)</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; line-height: normal;&quot;&gt;UML es un lenguaje estandarizado de propósito&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;general para el modelado de software. Fue creado y es mantenido por &lt;a href=&quot;http://www.omg.org/&quot;&gt;Object Managment Group&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Es usado para especificar, visualizar, modificar, construir y documentar elementos o componentes de un sistema de software orientado a objetos, ya sean procesos o valores.&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; line-height: normal;&quot;&gt;&lt;br /&gt;
En UML&amp;nbsp;se pueden representar:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;ul&gt;&lt;li&gt;Actividades.&lt;/li&gt;
&lt;li&gt;Actores.&lt;/li&gt;
&lt;li&gt;Procesos de negocio.&lt;/li&gt;
&lt;li&gt;Esquemas de bases de datos.&lt;/li&gt;
&lt;li&gt;Componentes lógicos.&lt;/li&gt;
&lt;li&gt;Componentes reusables.&lt;/li&gt;
&lt;/ul&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; line-height: normal;&quot;&gt;UML tiene &lt;b&gt;catorce&lt;/b&gt; tipos de diagramas, cada uno representando un elemento o componente en particular, se dividen en diagramas de estructura y diagramas de comportamiento.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Diagramas de estructura&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Se refiere a los elementos que deben de estar presentes en el sistema.&lt;br /&gt;
&lt;br /&gt;
Los diagramas de este tipo son:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;ol&gt;&lt;li&gt;Diagrama de clases.&lt;/li&gt;
&lt;li&gt;Diagrama de componentes.&lt;/li&gt;
&lt;li&gt;Diagrama de objetos.&lt;/li&gt;
&lt;li&gt;Diagrama de estructura compuesta.&lt;/li&gt;
&lt;li&gt;Diagrama de despliegue.&lt;/li&gt;
&lt;li&gt;Diagrama de paquetes.&lt;/li&gt;
&lt;li&gt;Diagrama de perfil.&lt;/li&gt;
&lt;/ol&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Diagramas de comportamiento&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; line-height: normal;&quot;&gt;Le importa que es lo que tiene que suceder en el sistema.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; line-height: normal;&quot;&gt;&lt;br /&gt;
Los diagramas de este tipo son:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;ol&gt;&lt;li&gt;Diagrama de actividades.&lt;/li&gt;
&lt;li&gt;Diagrama de casos de uso.&lt;/li&gt;
&lt;li&gt;Diagrama de estados.&lt;/li&gt;
&lt;/ol&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; line-height: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Diagramas de interacción&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Pertenecen a los diagramas de comportamiento, éstos se&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;comunican acerca del flujo de control y datos en el sistema.&lt;br /&gt;
&lt;br /&gt;
Los diagramas de este tipo son:&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; line-height: normal;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;ol&gt;&lt;li&gt;Diagrama de secuencia.&lt;/li&gt;
&lt;li&gt;Diagrama de comunicación.&lt;/li&gt;
&lt;li&gt;Diagrama de tiempos.&lt;/li&gt;
&lt;li&gt;Diagrama global de interacciones.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
Ejemplo simple de UML.&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; line-height: normal;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; line-height: normal;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbPmJwSWtFUSzS7aPmPg1lx8atF7Um7WxKbn7n0gNQxfBLpmGD0XA_2lLuTnp0-sfL0J5lo9j3GU8J5N7-7d-JROunlAJq7cYVZYEMTBq2v5KPuVXC7MGZU51BxE7etUBzerMmS_XJjdA/s1600/classDiagram.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbPmJwSWtFUSzS7aPmPg1lx8atF7Um7WxKbn7n0gNQxfBLpmGD0XA_2lLuTnp0-sfL0J5lo9j3GU8J5N7-7d-JROunlAJq7cYVZYEMTBq2v5KPuVXC7MGZU51BxE7etUBzerMmS_XJjdA/s320/classDiagram.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; line-height: normal;&quot;&gt;&lt;br /&gt;
Clase flightVehicule, subclase airplane hereda de flightVehicule.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Recursos:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: medium;&quot;&gt;&lt;div style=&quot;font-size: 15px; line-height: 20px;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://atlas.kennesaw.edu/~dbraun/csis4650/A&amp;amp;D/UML_tutorial/index.htm&quot;&gt;UML Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://edn.embarcadero.com/article/31863&quot;&gt;Practical UML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://yuml.me/diagram/class/samples&quot;&gt;yUML online UML aplication&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shade-lenpro.blogspot.com/feeds/263872262808428147/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/uml-unified-modeling-language.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/263872262808428147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/263872262808428147'/><link rel='alternate' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/uml-unified-modeling-language.html' title='UML (Unified Modeling Language)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbPmJwSWtFUSzS7aPmPg1lx8atF7Um7WxKbn7n0gNQxfBLpmGD0XA_2lLuTnp0-sfL0J5lo9j3GU8J5N7-7d-JROunlAJq7cYVZYEMTBq2v5KPuVXC7MGZU51BxE7etUBzerMmS_XJjdA/s72-c/classDiagram.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201009480115143256.post-3337702920510043483</id><published>2010-11-30T21:22:00.001-08:00</published><updated>2010-11-30T21:22:56.724-08:00</updated><title type='text'>Estándar IEEE 754-2008</title><content type='html'>El estándar IEEE 754-2008 son una serie de normas que establecen dos formatos básicos para representar a los números reales en una computadora digital: precisión simple y precisión doble. Ha sido definido por el Instituto de Ingenieros Eléctricos y Electrónicos (Institute of Electrical and Electronics Engineers, IEEE).&lt;br /&gt;
&lt;br /&gt;
Para escribir un número real en precisión simple se usan 32 bits (4 bytes): 1 bit para el signo (s) del número (positivo o negativo), 23 bits para la mantisa (m) y 8 bits para el exponente (exp).&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;El exponente se suele representar en Exceso a&amp;nbsp;$2^{n-1}-1$, mientras que, para la mantisa, normalmente se utiliza Signo Magnitud. Además, la mantisa se suele normalizar colocando la coma decimal a la derecha del bit más significativo.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
Por ejemplo, si queremos escribir el número:&lt;br /&gt;
&lt;br /&gt;
$101110,010101110100001111100001111100010011_2$&lt;br /&gt;
&lt;br /&gt;
en el estándar IEEE 754 con precisión simple, exponente en Exceso a $2^{n-1}-1$ y mantisa en Signo Magnitud, primero hay que normalizarlo colocando la coma a la derecha del bit mas significativo:&lt;br /&gt;
&lt;br /&gt;
$1,01110010101110100001111100001111100010011_2 \times 2^5$&lt;br /&gt;
&lt;br /&gt;
El exponente, en Exceso a $2^{n-1} -1$, será:&lt;br /&gt;
&lt;br /&gt;
$510 + (2^{8-1} - 1)_{10} = 510 + (2^7 - 1)_{10} = 510 + (128 - 1)_{10} = 10000100_2$&lt;br /&gt;
&lt;br /&gt;
De la mantisa se cogen los bits 23 bits más significativos, se trunca:&lt;br /&gt;
&lt;br /&gt;
$1,0111001010111000000111_2$&lt;br /&gt;
&lt;br /&gt;
El resto de bits no se pueden representar, porque no caben en la mantisa. Sin embargo, cuando la mantisa se normaliza situando la coma decimal a la derecha del bit más significativo, dicho bit siempre vale 1. Por tanto, se puede prescindir de él, y coger en su lugar un bit más de la mantisa. De esta forma, la precisión del número representado es mayor. Así, los bits de la mantisa serán:&lt;br /&gt;
&lt;br /&gt;
$01110010101110100001111_2$&lt;br /&gt;
&lt;br /&gt;
Al bit omitido se le llama bit implícito. Por otra parte, el bit de signo vale 0, ya que, el número es positivo. En consecuencia, el número se puede representar como:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;0 &amp;nbsp; &amp;nbsp; 10000100 &amp;nbsp; &amp;nbsp; 01110010101110100001111&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;s &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; exp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mantisa&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div style=&quot;text-align: auto;&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;En precisión doble, al escribir un número real se emplean 64 bits (8 bytes): 1 bit para el signo (s) del número, 52 bits para la mantisa (m) y 11 bits para el exponente (exp).&lt;/div&gt;&lt;div style=&quot;text-align: auto;&quot;&gt;&lt;br /&gt;
Si se quiere escribir el número 19,562510 en el estándar IEEE 754 con precisión doble, exponente en Exceso a $2^{n-1}-1$ y mantisa en Signo Magnitud con bit implícito, los pasos a seguir son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º) Cambiar 19,562510 a base 2. Parte entera y fraccionaria:&lt;/div&gt;&lt;div style=&quot;text-align: auto;&quot;&gt;&lt;br /&gt;
$19,5625_{10} = 10011,1001_2$&lt;br /&gt;
&lt;br /&gt;
2º) Normalizar el número binario obtenido, colocando la coma decimal a la derecha del bit más significativo:&lt;br /&gt;
&lt;br /&gt;
$10011,1001_2 = 1,00111001 \times 2^4$&lt;br /&gt;
&lt;br /&gt;
3º) Escribir el exponente en Exceso a $2^{n-1}-1$:&lt;br /&gt;
&lt;br /&gt;
$4_{10} + (2^{11-1} - 1)_{10} = 4_{10} + (2^{10} - 1)_{10} = 4_{10} + (1024 - 1)_{10} $&lt;/div&gt;&lt;div style=&quot;text-align: auto;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: auto;&quot;&gt;$= 4_{10} + 1023_{10} = 1027_{10} = 10000000011$&lt;br /&gt;
&lt;br /&gt;
4º) Establecer la mantisa utilizando bit implícito. Para ello, se cogen los ocho bits que están a la derecha de la coma (00111001) y el resto de la mantisa se rellena con ceros:&lt;br /&gt;
&lt;br /&gt;
$0011100100000000000000000000000000000000000000000000$&lt;br /&gt;
&lt;br /&gt;
5º) Expresar el número en el estándar IEEE 754 con precisión doble. En este caso, hay que tener en cuenta que el bit de signo vale 0, ya que, el número es positivo:&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;0 &amp;nbsp; &amp;nbsp;&amp;nbsp;10000000011&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;0011100100000000000000000000000000000000000000000000&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;s &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mantisa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bibliografia:&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://babbage.cs.qc.edu/courses/cs341/IEEE-754references.html&quot;&gt;IEEE-754 References&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://docs.sun.com/source/806-3568/ncg_goldberg.html&quot;&gt;What Every Computer Scientist Should Know About Floating-Point Arithmetic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Floating_point&quot;&gt;Floating point&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/IEEE_754-2008&quot;&gt;IEEE 754-2008&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/IEEE_754-2008&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.zator.com/Cpp/E2_2_4a1.htm&quot;&gt;Convertidor de formato IEEE 754-2008&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shade-lenpro.blogspot.com/feeds/3337702920510043483/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/estandar-ieee-754-2008.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/3337702920510043483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/3337702920510043483'/><link rel='alternate' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/estandar-ieee-754-2008.html' title='Estándar IEEE 754-2008'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201009480115143256.post-1982698960897601484</id><published>2010-11-30T21:22:00.000-08:00</published><updated>2010-11-30T21:22:32.601-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gst"/><category scheme="http://www.blogger.com/atom/ns#" term="objetos"/><category scheme="http://www.blogger.com/atom/ns#" term="oop"/><category scheme="http://www.blogger.com/atom/ns#" term="orientado"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="smalltalk"/><title type='text'>Smalltalk</title><content type='html'>Smalltalk es un lenguaje de programación&amp;nbsp;orientado a objetos puro, de tipado dinámico y reflectivo y con recolector de basura, creado por Alan Kay de Xerox PARC y otros durante los 1970.&lt;br /&gt;
&lt;br /&gt;
Interactúa entre objetos mediante el envío de mensajes Es multiplataforma y puede compilar en tiempo de ejecución o interpretado.&amp;nbsp;Smalltalk tuvo gran influencia en la creación de otros lenguajes como Java o Ruby.&lt;br /&gt;
&lt;br /&gt;
Todo en smalltalk es un objeto que puede hacer 3 cosas:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Mantener un estado.&lt;/li&gt;
&lt;li&gt;Recibir mensajes de si mismo o de otros objetos.&lt;/li&gt;
&lt;li&gt;En el curso de procesar un mensaje, enviarse un mensaje el mismo o a los&amp;nbsp;demás&amp;nbsp;objetos.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;Características&amp;nbsp;de los objetos en smalltalk:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;Tienen una memoria propia.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;Poseen capacidad para comunicarse con otros objetos.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;Poseen la capacidad de heredar características de objetos ancestros.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;Tienen capacidad de procesamiento.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;Para instalar gnu-smalltalk en ubuntu:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: white none repeat scroll 0% 0%; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: black; overflow: auto; padding: 0.2em 0.6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0pt;&quot;&gt;sudo apt-get install gnu-smalltalk
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Para iniciar solo escribimos gst:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-attachment: scroll; background-clip: initial; background-color: white; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; color: black; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;&quot;&gt;gst&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Aquí esta un ejemplo que hice de una cuenta a la cual se le puede depositar y retirar cierta cantidad.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #ffffff; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;cuenta.st&quot;&lt;/span&gt;

&lt;span style=&quot;color: #b00060; font-weight: bold;&quot;&gt;Object&lt;/span&gt; &lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;subclass:&lt;/span&gt; &lt;span style=&quot;color: #b00060; font-weight: bold;&quot;&gt;Cuenta&lt;/span&gt; [
       &lt;span style=&quot;color: #906030;&quot;&gt;saldo&lt;/span&gt; &lt;span style=&quot;color: #303030;&quot;&gt;:=&lt;/span&gt; &lt;span style=&quot;color: #6000e0; font-weight: bold;&quot;&gt;0&lt;/span&gt;.

       &lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;deposita:&lt;/span&gt; &lt;span style=&quot;color: #906030;&quot;&gt;cantidad&lt;/span&gt; [
       &lt;span style=&quot;color: #906030;&quot;&gt;saldo&lt;/span&gt; &lt;span style=&quot;color: #303030;&quot;&gt;:=&lt;/span&gt; &lt;span style=&quot;color: #906030;&quot;&gt;saldo&lt;/span&gt; &lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #906030;&quot;&gt;cantidad&lt;/span&gt;.
       &lt;span style=&quot;color: #303030;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color: #007020;&quot;&gt;true&lt;/span&gt;
       ]

       &lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;retira:&lt;/span&gt; &lt;span style=&quot;color: #906030;&quot;&gt;dinero&lt;/span&gt; [
       (&lt;span style=&quot;color: #906030;&quot;&gt;saldo&lt;/span&gt; &lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #906030;&quot;&gt;dinero&lt;/span&gt;) &lt;span style=&quot;color: #007020;&quot;&gt;ifTrue:&lt;/span&gt;
        [&lt;span style=&quot;color: #906030;&quot;&gt;saldo&lt;/span&gt; &lt;span style=&quot;color: #303030;&quot;&gt;:=&lt;/span&gt; &lt;span style=&quot;color: #906030;&quot;&gt;saldo&lt;/span&gt; &lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #906030;&quot;&gt;dinero&lt;/span&gt;.
        &lt;span style=&quot;color: #303030;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color: #007020;&quot;&gt;true&lt;/span&gt;] &lt;span style=&quot;color: #007020;&quot;&gt;ifFalse:&lt;/span&gt; [&lt;span style=&quot;color: #303030;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color: #007020;&quot;&gt;false&lt;/span&gt;]
       ]

       &lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;saldo&lt;/span&gt; [
       &lt;span style=&quot;color: #303030;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color: #906030;&quot;&gt;saldo&lt;/span&gt; &lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;printNl&lt;/span&gt;.
       ]
]

&lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;c&lt;/span&gt; &lt;span style=&quot;color: #303030;&quot;&gt;:=&lt;/span&gt; &lt;span style=&quot;color: #b00060; font-weight: bold;&quot;&gt;Cuenta&lt;/span&gt; &lt;span style=&quot;color: #007020;&quot;&gt;new&lt;/span&gt;.
&lt;span style=&quot;color: #906030;&quot;&gt;c&lt;/span&gt; &lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;deposita:&lt;/span&gt; &lt;span style=&quot;color: #6000e0; font-weight: bold;&quot;&gt;2000&lt;/span&gt;.
&lt;span style=&quot;color: #906030;&quot;&gt;c&lt;/span&gt; &lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;retira:&lt;/span&gt; &lt;span style=&quot;color: #6000e0; font-weight: bold;&quot;&gt;500&lt;/span&gt;.
&lt;span style=&quot;color: #906030;&quot;&gt;c&lt;/span&gt; &lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;saldo&lt;/span&gt;.
&lt;span style=&quot;color: #906030;&quot;&gt;c&lt;/span&gt; &lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;retira:&lt;/span&gt; &lt;span style=&quot;color: #6000e0; font-weight: bold;&quot;&gt;700&lt;/span&gt;.
&lt;span style=&quot;color: #906030;&quot;&gt;c&lt;/span&gt; &lt;span style=&quot;color: #0060b0; font-weight: bold;&quot;&gt;saldo&lt;/span&gt;.
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Recursos para aprender:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.smalltalk.org/main/&quot;&gt;Pagina oficial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.canol.info/books/computer_programming_using_gnu_smalltalk/&quot;&gt;E-book gratuito&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://stephane.ducasse.free.fr/FreeBooks.html&quot;&gt;Mas e-books&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://shade-lenpro.blogspot.com/feeds/1982698960897601484/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/smalltalk.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/1982698960897601484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/1982698960897601484'/><link rel='alternate' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/smalltalk.html' title='Smalltalk'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201009480115143256.post-7595060506852449421</id><published>2010-11-24T15:26:00.000-08:00</published><updated>2010-11-24T15:26:54.439-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c"/><category scheme="http://www.blogger.com/atom/ns#" term="codigo"/><category scheme="http://www.blogger.com/atom/ns#" term="estructuras"/><category scheme="http://www.blogger.com/atom/ns#" term="pointers"/><category scheme="http://www.blogger.com/atom/ns#" term="punteros"/><category scheme="http://www.blogger.com/atom/ns#" term="struct"/><category scheme="http://www.blogger.com/atom/ns#" term="structures"/><title type='text'>Punteros, ejemplos en lenguaje C</title><content type='html'>Entrada para puntos extras.&lt;br /&gt;
&lt;br /&gt;
Lo punteros son variables que apuntan a otras variables, es decir, que guardan la dirección de la ubicación en memoria de otras variables. La dirección es representada con un numero por lo general en base hexadecimal, ejemplo: 0x4F8G23A.&lt;br /&gt;
&lt;br /&gt;
Ahora veremos ejemplos de como manejar punteros en lenguaje C.&lt;br /&gt;
&lt;br /&gt;
La forma de declarar un puntero es: tipo* puntero;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #8f5902; font-style: italic;&quot;&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;

&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;main&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;inicial&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;**&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;args&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;){&lt;/span&gt;
  &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
  &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;otro_puntero&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
  &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;char_puntero&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
  &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;arreglo&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;];&lt;/span&gt;
  &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Hay que ver el signo asterisco (*) llamado indirección antes del nombre del puntero, este designa que es propiamente un puntero y no una variable convencional. Aquí solamente le decimos al compilador que reserve una posición en la memoria para nuestro puntero.&lt;br /&gt;
&lt;br /&gt;
Antes de usar el puntero tenemos que iniciarlo, para eso le pediremos que guarde la dirección (representada con el signo amperson &amp;amp;) de alguna variable.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;tipo&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: black;&quot;&gt;tipo&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;variable&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;variable&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Para cambiar el contenido de la dirección a la que apunta el puntero, utilizamos el operador de indirección. Esto hace que cambie el valor al que hace referencia&amp;nbsp;y no la dirección del mismo puntero.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;nuevo_valor&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Un ejemplo completo&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #8f5902; font-style: italic;&quot;&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;

&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;main&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;**&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;args&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;){&lt;/span&gt;
  &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #8f5902; font-style: italic;&quot;&gt;//puntero                                                            &lt;/span&gt;
  &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;];&lt;/span&gt;

  &lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;];&lt;/span&gt; &lt;span style=&quot;color: #8f5902; font-style: italic;&quot;&gt;//&amp;amp; direccion                                                      &lt;/span&gt;
  &lt;span style=&quot;color: black;&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;]&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
  &lt;span style=&quot;color: black;&quot;&gt;printf&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #4e9a06;&quot;&gt;&quot;%d\n&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;);&lt;/span&gt; &lt;span style=&quot;color: #8f5902; font-style: italic;&quot;&gt;//* indireccion                                           &lt;/span&gt;

  &lt;span style=&quot;color: black;&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;]&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;883&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
  &lt;span style=&quot;color: black;&quot;&gt;printf&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #4e9a06;&quot;&gt;&quot;%d\n&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;);&lt;/span&gt; &lt;span style=&quot;color: #8f5902; font-style: italic;&quot;&gt;//cambia dinamicamente, la direccion es fija              &lt;/span&gt;

  &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;999&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #8f5902; font-style: italic;&quot;&gt;//accediendo al valor                                                &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;printf&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #4e9a06;&quot;&gt;&quot;%d\n&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;);&lt;/span&gt;
  &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;24&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
La relación estrecha existente entre arreglos y punteros se debe a que el nombre de un arreglo es equivalente a la dirección del primer elemento (&amp;amp;arreglo[0]), no es necesario utilizar el operador de dirección para apuntar al primer elemento de un arreglo.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #8f5902; font-style: italic;&quot;&gt;//puntero                                                              &lt;/span&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;];&lt;/span&gt;

&lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;];&lt;/span&gt; &lt;span style=&quot;color: #8f5902; font-style: italic;&quot;&gt;//&amp;amp; direccion                                                       &lt;/span&gt;
&lt;span style=&quot;color: black;&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;]&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;993&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: black;&quot;&gt;printf&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #4e9a06;&quot;&gt;&quot;%d\n&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;);&lt;/span&gt;

&lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: black;&quot;&gt;printf&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #4e9a06;&quot;&gt;&quot;%d\n&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Si a un puntero se le suma una cantidad, cambia la dirección esa misma cantidad mas no el valor al que apunta. Es equivalente a hacer:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #8f5902; font-style: italic;&quot;&gt;//puntero&lt;/span&gt;
&lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: black;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;--&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Debido a la precedencia de operadores, la expresión:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;variable&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
significa asignar el contenido de lo apuntado, a la variable, y&amp;nbsp;después&amp;nbsp;incrementar la&amp;nbsp;dirección&amp;nbsp;un lugar, y la expresión&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;variable&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
significa incrementar la dirección del puntero y después asignarle el contenido de lo apuntado, a la variable.&lt;br /&gt;
&lt;br /&gt;
Si declaramos una variable en C, el espacio se reserva durante todo el tiempo de ejecución aun cuando solo lo necesitemos para una pequeña fracción del programa, para evitar esto podemos almacenar el arreglo en la zona de amontonamiento ó Heap.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
esta declaración no crea un espacio para almacenar la varible, solamente una dirección para después almacenarla, ahora tenemos que designar la cantidad de espacio que deseamos, para ello utilizamos una función de la librería stdlib dedicada a la tarea, entre ellas esta la mas común: malloc&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;malloc&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
malloc recibe la cantidad de bytes que se desea reservar y nos devuelve un puntero o dirección a la primera posición de la &quot;pila&quot; reservada en el Heap, si no se puede crear el espacio, devuelve un puntero a NULL.&lt;br /&gt;
&lt;br /&gt;
Utilizando la función sizeof podemos designar el tamaño de cada variable.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;malloc&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;sizeof&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;));&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Si queremos guardar en el Heap alguna operación solamente haríamos algo como&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;operacion&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Y como y habíamos visto para recuperar la variable almacenada&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Como una cadena no es mas que un arreglo que almacena caracteres, podemos guardar cadenas en punteros&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #4e9a06;&quot;&gt;&quot;Hello World&quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Así *puntero contendría el primer elemento de la cadena (H) y si necesitamos el segundo solamaente escribimos *(puntero + 1).&lt;br /&gt;
&lt;br /&gt;
De la misma manera que podemos declarar arreglos, podemos declarar arreglos de punteros&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;arreglo&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;[]&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #4e9a06;&quot;&gt;&quot;frase1&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #4e9a06;&quot;&gt;&quot;frase2&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #4e9a06;&quot;&gt;&quot;frase3&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;};&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Con *arreglo podemos acceder a la primera frase, con *(arreglo + 1) a la segunda frase, etc.&lt;br /&gt;
&lt;br /&gt;
Para crear estructuras y asignar valores a los miembros hacemos:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;typedef&lt;/span&gt; &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;struct&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;estudiantes&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;{&lt;/span&gt;
  &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
  &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;double&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
  &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;char&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;c&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;];&lt;/span&gt;
&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;estudiante&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;

&lt;span style=&quot;color: black;&quot;&gt;estudiante&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;yo&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: black;&quot;&gt;yo&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;estudiante&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;malloc&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;sizeof&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;estudiante&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;));&lt;/span&gt;
&lt;span style=&quot;color: black;&quot;&gt;yo&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;a&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;234&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: black;&quot;&gt;yo&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;c&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #4e9a06;&quot;&gt;&#39;H&#39;&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: black;&quot;&gt;yo&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;c&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #0000cf; font-weight: bold;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #4e9a06;&quot;&gt;&#39;e&#39;&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Nota que antes de inicializar un elemento de la estructura es necesario alojarla en la memoria con la ayuda de malloc.&lt;br /&gt;
&lt;br /&gt;
Cuando pasamos una estructura a una función, se copian todos los elementos de la estructura, para resolverlo pasamos un puntero que apunta a la estructura en lugar de toda la estructura.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;struct&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;nombre&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;{&lt;/span&gt;
  &lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;datos&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;;&lt;/span&gt;

&lt;span style=&quot;color: black;&quot;&gt;funcion&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;struct&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;nombre&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Una función que regresa un puntero se escribe&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #f8f8f8; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;tipo&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;funcion&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #204a87; font-weight: bold;&quot;&gt;struct&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;nombre&lt;/span&gt; &lt;span style=&quot;color: #ce5c00; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;puntero&lt;/span&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Bibliografía&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://boredzo.org/pointers/&quot;&gt;Punteros&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.imada.sdu.dk/~svalle/courses/dm14-2005/mirror/c/section3_12.html&quot;&gt;Estructuras&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://shade-lenpro.blogspot.com/feeds/7595060506852449421/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/punteros-ejemplos-en-lenguaje-c.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/7595060506852449421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/7595060506852449421'/><link rel='alternate' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/punteros-ejemplos-en-lenguaje-c.html' title='Punteros, ejemplos en lenguaje C'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201009480115143256.post-3719267758142535879</id><published>2010-11-18T21:55:00.000-08:00</published><updated>2010-11-23T16:23:46.130-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2"/><category scheme="http://www.blogger.com/atom/ns#" term="knaves"/><category scheme="http://www.blogger.com/atom/ns#" term="knights"/><category scheme="http://www.blogger.com/atom/ns#" term="lenguajes"/><category scheme="http://www.blogger.com/atom/ns#" term="logica"/><category scheme="http://www.blogger.com/atom/ns#" term="logicos"/><category scheme="http://www.blogger.com/atom/ns#" term="problemas"/><category scheme="http://www.blogger.com/atom/ns#" term="prolog"/><category scheme="http://www.blogger.com/atom/ns#" term="spy"/><title type='text'>Lenguajes lógicos</title><content type='html'>El problema que elegí es &lt;a href=&quot;http://www.mathsisfun.com/puzzles/knights-and-knaves-2.html&quot;&gt;Knights and Knaves 2&lt;/a&gt;.&lt;br /&gt;
&lt;blockquote&gt;There are three people (Alex, Brook and Cody), one of whom is a knight, one a knave, and one a spy.&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote&gt;The knight always tells the truth, the knave always lies, and the spy can either lie or tell the truth.&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote&gt;They are brought before a judge who wants to identify the spy.&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote&gt;Alex says: &quot;I am not a spy.&quot;&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote&gt;Brook says: &quot;I am a spy.&quot;&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote&gt;Now Cody is in fact the spy. The judge asks him: &quot;Is Brook really a spy?&quot;&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote&gt;Can Cody give an answer so that he doesn&#39;t convict himself as a spy?&lt;/blockquote&gt;&lt;br /&gt;
Cosas que sabemos:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Uno siempre miente.&lt;/li&gt;
&lt;li&gt;Otro siempre dice la verdad.&lt;/li&gt;
&lt;li&gt;El restante miente o dice la verdad.&lt;/li&gt;
&lt;/ul&gt;Tendremos que analizar dos situaciones, una en la que Cody responde si y otra en el que responde no, además de revisar cada combinación posible de lo que podría ser cada uno de los sospechosos.&lt;br /&gt;
&lt;br /&gt;
Suponemos primero que Alex es un Knave, miente y lo que dice debe ser lo opuesto, &quot;I am a spy&quot;, pero como no puede ser dos cosas al mismo tiempo, es imposible que sea Knave.&lt;br /&gt;
&lt;br /&gt;
Ahora hay menos cosas que probar, en el primer caso suponemos que Alex es Knight y concuerda con lo que dice, y que Brook es Knave y también concuerda con lo que dice, es decir, no se contradicen, Cody es espía, ya no importa lo que diga Cody.&lt;br /&gt;
&lt;br /&gt;
Si Cody responde al juez que Brook es un espía se presentan los siguientes acontecimientos, el juez puede pensar que efectivamente Brook es espía pero Cody estaría diciendo la verdad y lo convertiría en Knight y como Alex no puede ser Knave es imposible catalogarlos de esta manera.&lt;br /&gt;
&lt;br /&gt;
En el segundo caso el juez puede pensar que Alex es el espía por lo que Cody miente al decir que Brook es espía, entonces Cody es Knave.&lt;br /&gt;
&lt;br /&gt;
Tercer caso, el juez podría pensar que Cody mismo es el espía, y Alex podría ser Knight mientras Brook no se contradice quedándose como Knave, otra vez Cody se queda atrás.&lt;br /&gt;
&lt;br /&gt;
De otra manera si Cody responde que Brook no es espía se presentan los siguientes casos.&lt;br /&gt;
&lt;br /&gt;
El juez sigue pensando, si Alex es espía Cody dice la verdad al decir que Brooks no es espía y Brook queda como Knave y no se contradice, si Brook es espía, Cody&amp;nbsp;sería Knave ya que mintió y Alex&amp;nbsp;está otra vez como Knight. Ahora Alex o Brook pueden ser espía.&lt;br /&gt;
&lt;br /&gt;
Cody dirá que&amp;nbsp; Brook no es espía.&lt;br /&gt;
&lt;br /&gt;
Y Cody se ha salvado?</content><link rel='replies' type='application/atom+xml' href='http://shade-lenpro.blogspot.com/feeds/3719267758142535879/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/lenguajes-logicos.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/3719267758142535879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/3719267758142535879'/><link rel='alternate' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/lenguajes-logicos.html' title='Lenguajes lógicos'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201009480115143256.post-2583395867140147314</id><published>2010-11-18T21:53:00.000-08:00</published><updated>2010-11-23T16:49:30.088-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="funcionales"/><category scheme="http://www.blogger.com/atom/ns#" term="haskell"/><category scheme="http://www.blogger.com/atom/ns#" term="random"/><category scheme="http://www.blogger.com/atom/ns#" term="semana 7"/><title type='text'>Lenguajes funcionales</title><content type='html'>&amp;nbsp;Esto es el producto de actividad de la semana 7: 2 programas en lenguajes funcionales distintos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Haskell&lt;br /&gt;
&lt;br /&gt;
Como agregar el resaltador de código haskell a emacs:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: white none repeat scroll 0% 0%; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: black; overflow: auto; padding: 0.2em 0.6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0pt;&quot;&gt;sudo apt-get install haskell-mode
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Más información:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://projects.haskell.org/haskellmode-emacs/&quot;&gt;haskellmode-emacs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.haskell.org/haskellwiki/Haskell_mode_for_Emacs&quot;&gt;Haskell_mode_for_Emacs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.vex.net/%7Etrebla/haskell/random.xhtml&quot;&gt;Random numbers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Haskell es un lenguaje hermoso, o mejor dicho &quot;a &lt;i&gt; &lt;a href=&quot;http://www.haskell.org/haskellwiki/Polymorphism&quot; title=&quot;Polymorphism&quot;&gt;polymorphically&lt;/a&gt; &lt;a href=&quot;http://www.haskell.org/haskellwiki/Typing&quot; title=&quot;Typing&quot;&gt;statically typed&lt;/a&gt;, &lt;a href=&quot;http://www.haskell.org/haskellwiki/Lazy_evaluation&quot; title=&quot;Lazy evaluation&quot;&gt;lazy&lt;/a&gt;, &lt;a href=&quot;http://www.haskell.org/haskellwiki/Functional_programming&quot; title=&quot;Functional programming&quot;&gt;purely functional&lt;/a&gt; &lt;/i&gt; language&quot; como lo definen en la &lt;a href=&quot;http://www.haskell.org/haskellwiki/Introduction&quot;&gt;pagina oficial&lt;/a&gt;, es decir, un lenguaje polimorfo, fuertemente tipado, &quot;lazy&quot;, y puramente funcional. Se le llama haskell como referencia a Haskell Brooks Curry, matemático cuyo trabajo en la lógica sentó las bases de la programación funcional.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://www.haskell.org/croppedhaskell.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;http://www.haskell.org/croppedhaskell.jpg&quot; width=&quot;162&quot; /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Haskell B. Curry&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;a href=&quot;http://tinyurl.com/haskellcurry&quot;&gt;Imágen de aquí &lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://images.amazon.com/images/P/0486634620.01.LZZZZZZZ.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;http://images.amazon.com/images/P/0486634620.01.LZZZZZZZ.jpg&quot; width=&quot;136&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Foundations of mathematical logic&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;a href=&quot;http://tinyurl.com/mathlogic&quot;&gt;Im&lt;/a&gt;&lt;/span&gt;&lt;a href=&quot;http://tinyurl.com/mathlogic&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;a href=&quot;http://tinyurl.com/mathlogic&quot;&gt;á&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;a href=&quot;http://tinyurl.com/mathlogic&quot;&gt;gen de aqui&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Debido a su fundamento en las matemáticas y por lo tanto en conjuntos y listas, los lenguajes funcionales tienden a ser mas concisos que los imperativos y se logra hacer cosas de mayor tamaño con menor cantidad de código, por ejemplo un ordenamiento quicksort en dos líneas:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: white none repeat scroll 0% 0%; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: black; overflow: auto; padding: 0.2em 0.6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0pt;&quot;&gt;&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;qsort&lt;/span&gt; &lt;span style=&quot;color: #445588; font-weight: bold;&quot;&gt;[]&lt;/span&gt;     &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #445588; font-weight: bold;&quot;&gt;[]&lt;/span&gt;
&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;qsort&lt;/span&gt; (x&lt;span style=&quot;color: #445588; font-weight: bold;&quot;&gt;:&lt;/span&gt;xs) &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; qsort (filter (&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt; x) xs) &lt;span style=&quot;font-weight: bold;&quot;&gt;++&lt;/span&gt; [x] &lt;span style=&quot;font-weight: bold;&quot;&gt;++&lt;/span&gt; qsort (filter (&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;gt;=&lt;/span&gt; x) xs)
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Lo anterior se lee fácilmente como: El ordenamiento de una lista vacía ([]) es una lista vacía y el ordenamiento de una lista donde el primer elemento es x y el resto es xs es la concatenación (++) de los siguientes objetos:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Los elementos ordenados menores que x en xs.&lt;/li&gt;
&lt;li&gt;El elemento x.&lt;/li&gt;
&lt;li&gt;Los elementos ordenados mayores que x en xs.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Las cosas buenas en la mayoría de los lenguajes funcionales como haskell, lisp, erlang, scheme, ml, etc, es que al programar te concentras mas en el que quieres y no en el como lo haces, siendo una de las consecuencias una menor cantidad de errores.&lt;br /&gt;
&lt;br /&gt;
Aquí están mis ejemplos de factorial de un numero y serie fibonacci respectivamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: white none repeat scroll 0% 0%; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: black; overflow: auto; padding: 0.2em 0.6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0pt;&quot;&gt;&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;fac&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;0&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;1&lt;/span&gt;
&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;fac&lt;/span&gt; n &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; n &lt;span style=&quot;font-weight: bold;&quot;&gt;*&lt;/span&gt; fac (n &lt;span style=&quot;font-weight: bold;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;1&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: white none repeat scroll 0% 0%; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: black; overflow: auto; padding: 0.2em 0.6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0pt;&quot;&gt;&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;fib&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;0&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;0&lt;/span&gt;
&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;fib&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;1&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;1&lt;/span&gt;
&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;fib&lt;/span&gt; n &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; fib (n &lt;span style=&quot;font-weight: bold;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;1&lt;/span&gt;) &lt;span style=&quot;font-weight: bold;&quot;&gt;+&lt;/span&gt; fib (n &lt;span style=&quot;font-weight: bold;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;2&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Se pueden ver y entender fácilmente 3 cosas, la declaración de funciones, la llamada recursiva, y la evaluación iterativa de los parámetros que toman las funciones (de arriba a abajo).&lt;br /&gt;
&lt;br /&gt;
Otra alternativa aun mas simple para el factorial (iterativo) es:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: white none repeat scroll 0% 0%; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: black; overflow: auto; padding: 0.2em 0.6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0pt;&quot;&gt;&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;fac&lt;/span&gt; n &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; product [&lt;span style=&quot;color: #009999;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;..&lt;/span&gt;n]
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Donde product es una función que toma una lista y multiplica todos sus elementos y la lista a la que nos referimos es esa que va del 2 al n. Podemos ver los tipos de variables y tipos de parámetros de funciones con el comando :t, en nuestro método recursivo se vería como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: white none repeat scroll 0% 0%; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: black; overflow: auto; padding: 0.2em 0.6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0pt;&quot;&gt;&lt;span style=&quot;color: #445588; font-weight: bold;&quot;&gt;Prelude&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #445588; font-weight: bold;&quot;&gt;:&lt;/span&gt;t fac
&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;fac&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;::&lt;/span&gt; (&lt;span style=&quot;color: #445588; font-weight: bold;&quot;&gt;Num&lt;/span&gt; a) &lt;span style=&quot;font-weight: bold;&quot;&gt;=&amp;gt;&lt;/span&gt; a &lt;span style=&quot;font-weight: bold;&quot;&gt;-&amp;gt;&lt;/span&gt; a
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Que se lee como: La variable &quot;a&quot; es un tipo Num, la función fac toma como parámetro una variable del mismo tipo que &quot;a&quot; y regresa una variable del mismo tipo que &quot;a&quot;.&lt;br /&gt;
&lt;br /&gt;
Otra ventaja de haskell es que permite el cómputo en paralelo.&lt;br /&gt;
&lt;br /&gt;
Pueden optar por instalar ghci ó hugs (solo intérprete):&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: white none repeat scroll 0% 0%; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: black; overflow: auto; padding: 0.2em 0.6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0pt;&quot;&gt;sudo apt-get install ghc hugs&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Para compilar:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: white none repeat scroll 0% 0%; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: black; overflow: auto; padding: 0.2em 0.6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0pt;&quot;&gt;ghc helloWorld.hs
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Éste&amp;nbsp;es mi intento de RSA. No puedo manejar bien el tipo de variable IO Integer que me devuelve Random.&lt;br /&gt;
&lt;ul&gt;&lt;/ul&gt;&lt;div style=&quot;-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: white none repeat scroll 0% 0%; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: black; overflow: auto; padding: 0.2em 0.6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0pt;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: #555555;&quot;&gt;Random&lt;/span&gt;

&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;rand&lt;/span&gt; min max &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; randomRIO(min, max) &lt;span style=&quot;color: #999988; font-style: italic;&quot;&gt;--regresa IO Integer&lt;/span&gt;


&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;rande&lt;/span&gt; phi min max &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;if&lt;/span&gt; (gcd e phi &lt;span style=&quot;font-weight: bold;&quot;&gt;==&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;1&lt;/span&gt;) &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; (e &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt; phi) &lt;span style=&quot;font-weight: bold;&quot;&gt;then&lt;/span&gt; e &lt;span style=&quot;font-weight: bold;&quot;&gt;else&lt;/span&gt; rande phi min max
    &lt;span style=&quot;font-weight: bold;&quot;&gt;where&lt;/span&gt; e &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; rand min max
&lt;span style=&quot;color: #999988; font-style: italic;&quot;&gt;--gcd(e, phi) == 1&lt;/span&gt;

&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;randp&lt;/span&gt; a b &lt;span style=&quot;font-weight: bold;&quot;&gt;|&lt;/span&gt; prime num &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; num
          &lt;span style=&quot;font-weight: bold;&quot;&gt;|&lt;/span&gt; otherwise &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; randp a b
          &lt;span style=&quot;font-weight: bold;&quot;&gt;where&lt;/span&gt; num &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; rand a b

&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;prime&lt;/span&gt; n &lt;span style=&quot;font-weight: bold;&quot;&gt;|&lt;/span&gt; list &lt;span style=&quot;font-weight: bold;&quot;&gt;==&lt;/span&gt; &lt;span style=&quot;color: #445588; font-weight: bold;&quot;&gt;[]&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #445588; font-weight: bold;&quot;&gt;True&lt;/span&gt;
        &lt;span style=&quot;font-weight: bold;&quot;&gt;|&lt;/span&gt; list &lt;span style=&quot;font-weight: bold;&quot;&gt;==&lt;/span&gt; [n] &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #445588; font-weight: bold;&quot;&gt;True&lt;/span&gt;
        &lt;span style=&quot;font-weight: bold;&quot;&gt;|&lt;/span&gt; otherwise &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #445588; font-weight: bold;&quot;&gt;False&lt;/span&gt;
        &lt;span style=&quot;font-weight: bold;&quot;&gt;where&lt;/span&gt; list &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; [x &lt;span style=&quot;font-weight: bold;&quot;&gt;|&lt;/span&gt; x &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #445588; font-weight: bold;&quot;&gt;:&lt;/span&gt;[&lt;span style=&quot;color: #009999;&quot;&gt;3&lt;/span&gt;,&lt;span style=&quot;color: #009999;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;..&lt;/span&gt;round (sqrt (fromIntegral n))], n `mod` x &lt;span style=&quot;font-weight: bold;&quot;&gt;==&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;0&lt;/span&gt;]

&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;extGcd&lt;/span&gt; a b (c, d) (e, f)
    &lt;span style=&quot;font-weight: bold;&quot;&gt;|&lt;/span&gt; (a &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; b) &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; r1 &lt;span style=&quot;font-weight: bold;&quot;&gt;==&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;0&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; (e, f)
    &lt;span style=&quot;font-weight: bold;&quot;&gt;|&lt;/span&gt; (a &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; b) &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; r1 &lt;span style=&quot;font-weight: bold;&quot;&gt;/=&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;0&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; extGcd (a &lt;span style=&quot;font-weight: bold;&quot;&gt;-&lt;/span&gt; (q1 &lt;span style=&quot;font-weight: bold;&quot;&gt;*&lt;/span&gt; b)) b (c &lt;span style=&quot;font-weight: bold;&quot;&gt;-&lt;/span&gt; (q1 &lt;span style=&quot;font-weight: bold;&quot;&gt;*&lt;/span&gt; e), d &lt;span style=&quot;font-weight: bold;&quot;&gt;-&lt;/span&gt; (q1 &lt;span style=&quot;font-weight: bold;&quot;&gt;*&lt;/span&gt; f)) (e, f)
    &lt;span style=&quot;font-weight: bold;&quot;&gt;|&lt;/span&gt; (a &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;=&lt;/span&gt; b) &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; r2 &lt;span style=&quot;font-weight: bold;&quot;&gt;==&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;0&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; (c, d)
    &lt;span style=&quot;font-weight: bold;&quot;&gt;|&lt;/span&gt; (a &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;=&lt;/span&gt; b) &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; r2 &lt;span style=&quot;font-weight: bold;&quot;&gt;/=&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;0&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; extGcd a (b &lt;span style=&quot;font-weight: bold;&quot;&gt;-&lt;/span&gt; (q2 &lt;span style=&quot;font-weight: bold;&quot;&gt;*&lt;/span&gt; a)) (c, d) (e &lt;span style=&quot;font-weight: bold;&quot;&gt;-&lt;/span&gt; (q2 &lt;span style=&quot;font-weight: bold;&quot;&gt;*&lt;/span&gt; c), f &lt;span style=&quot;font-weight: bold;&quot;&gt;-&lt;/span&gt; (q2 &lt;span style=&quot;font-weight: bold;&quot;&gt;*&lt;/span&gt; d))
    &lt;span style=&quot;font-weight: bold;&quot;&gt;where&lt;/span&gt;
      r1 &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; a `mod` b
      r2 &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; b `mod` a
      q1 &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; a `div` b
      q2 &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; b `div` a
             
&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;egcd&lt;/span&gt; a b &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; extGcd a b (&lt;span style=&quot;color: #009999;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #009999;&quot;&gt;0&lt;/span&gt;) (&lt;span style=&quot;color: #009999;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #009999;&quot;&gt;1&lt;/span&gt;)

&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;getPvte&lt;/span&gt; x y &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; fst (egcd x y)

&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;cifrar&lt;/span&gt; m e n &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; (m &lt;span style=&quot;font-weight: bold;&quot;&gt;^&lt;/span&gt; e) `mod` n
&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;decifrar&lt;/span&gt; c d n &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; (c &lt;span style=&quot;font-weight: bold;&quot;&gt;^&lt;/span&gt; d) `mod` n

&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;primos&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;do&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;let&lt;/span&gt; min &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;2&lt;/span&gt;
                max &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;10000&lt;/span&gt;
            p &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;-&lt;/span&gt; randp min max
            q &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;-&lt;/span&gt; randp min max
            &lt;span style=&quot;font-weight: bold;&quot;&gt;let&lt;/span&gt; 
                n &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; (p &lt;span style=&quot;font-weight: bold;&quot;&gt;*&lt;/span&gt; q)
                phi &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; (p &lt;span style=&quot;font-weight: bold;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;1&lt;/span&gt;) &lt;span style=&quot;font-weight: bold;&quot;&gt;*&lt;/span&gt; (q &lt;span style=&quot;font-weight: bold;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;1&lt;/span&gt;)
            e &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;-&lt;/span&gt; rande phi min max
            d &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;-&lt;/span&gt; getPvte e phi
            &lt;span style=&quot;font-weight: bold;&quot;&gt;let&lt;/span&gt;
                mensaje &lt;span style=&quot;font-weight: bold;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #009999;&quot;&gt;27436&lt;/span&gt;
            c &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;-&lt;/span&gt; cifrar mensaje e n
            print c
            d &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;-&lt;/span&gt; decifrar c d n
            print d
   
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Tutoriales RSA:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.di-mgt.com.au/euclidean.html&quot;&gt;The Euclidean Algorithm and the Extended Euclidean Algorithm&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://homepages.inf.ed.ac.uk/s0563270/maths/php/euclidean.php&quot;&gt;An interactive Extended Euclidean Algorithm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Aprender haskell, lo mas recomendable es que lean el &lt;a href=&quot;http://www.haskell.org/haskellwiki/Haskell_en_5_pasos&quot;&gt;inicio rápido&lt;/a&gt; de la&amp;nbsp;página oficial. Seguido de los tutoriales:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&amp;nbsp;&lt;a href=&quot;http://www.haskell.org/tutorial/&quot;&gt;A gentle introduction to haskell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://haskell.org/%7Epairwise/intro/intro.html&quot;&gt;Haskell tutorial for C programmers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://learnyouahaskell.com/&quot;&gt;Learn you a haskell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://zvon.org/other/haskell/Outputglobal/index.html&quot;&gt;Haskell reference &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Scheme&lt;br /&gt;
&lt;br /&gt;
Lenguaje funcional impuro y un dialecto principal de lisp, desarrollado en el laboratorio de IA del MIT por Guy L. Steele y Gerald Jay Sussman.&lt;br /&gt;
&lt;br /&gt;
Su simple sintáxis se basa en las expresiones S, una listas encerradas en paréntesis donde el operador va seguido de sus argumentos. Scheme es poderoso para manejar listas debido a su herencia por parte de Lisp con primitivas como cons, car y cdr.&lt;br /&gt;
&lt;br /&gt;
Aquí esta mi ejemplo de quicksort que se parece al de haskell (concatena listas filtradas).&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: white none repeat scroll 0% 0%; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: black; overflow: auto; padding: 0.2em 0.6em; width: auto;&quot;&gt;&lt;pre style=&quot;line-height: 125%; margin: 0pt;&quot;&gt;(&lt;span style=&quot;font-weight: bold;&quot;&gt;define &lt;/span&gt;(&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;qsort&lt;/span&gt; &lt;span style=&quot;color: teal;&quot;&gt;lista&lt;/span&gt;)
  (&lt;span style=&quot;font-weight: bold;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color: #999999;&quot;&gt;&amp;gt; &lt;/span&gt;(&lt;span style=&quot;color: #999999;&quot;&gt;length &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;lista&lt;/span&gt;) &lt;span style=&quot;color: #009999;&quot;&gt;1&lt;/span&gt;)
      (&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;append&lt;/span&gt;
       (&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;qsort&lt;/span&gt; (&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;filter&lt;/span&gt; (&lt;span style=&quot;font-weight: bold;&quot;&gt;lambda &lt;/span&gt;(&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;x&lt;/span&gt;) (&lt;span style=&quot;color: #999999;&quot;&gt;&amp;lt; &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;x&lt;/span&gt; (&lt;span style=&quot;color: #999999;&quot;&gt;car &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;lista&lt;/span&gt;))) (&lt;span style=&quot;color: #999999;&quot;&gt;cdr &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;lista&lt;/span&gt;)))
       (&lt;span style=&quot;color: #999999;&quot;&gt;cons &lt;/span&gt;(&lt;span style=&quot;color: #999999;&quot;&gt;car &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;lista&lt;/span&gt;) &lt;span style=&quot;font-weight: bold;&quot;&gt;&#39;&lt;/span&gt;())
       (&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;qsort&lt;/span&gt; (&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;filter&lt;/span&gt; (&lt;span style=&quot;font-weight: bold;&quot;&gt;lambda &lt;/span&gt;(&lt;span style=&quot;color: #990000; font-weight: bold;&quot;&gt;x&lt;/span&gt;) (&lt;span style=&quot;color: #999999;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;x&lt;/span&gt; (&lt;span style=&quot;color: #999999;&quot;&gt;car &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;lista&lt;/span&gt;))) (&lt;span style=&quot;color: #999999;&quot;&gt;cdr &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;lista&lt;/span&gt;)))
       ) &lt;span style=&quot;color: teal;&quot;&gt;lista&lt;/span&gt; 
  )
)
&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shade-lenpro.blogspot.com/feeds/2583395867140147314/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/lenguajes-funcionales.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/2583395867140147314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/2583395867140147314'/><link rel='alternate' type='text/html' href='http://shade-lenpro.blogspot.com/2010/11/lenguajes-funcionales.html' title='Lenguajes funcionales'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201009480115143256.post-4395468702981319934</id><published>2010-10-18T03:03:00.000-07:00</published><updated>2010-10-19T17:38:50.610-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="awk"/><category scheme="http://www.blogger.com/atom/ns#" term="lenguajes"/><category scheme="http://www.blogger.com/atom/ns#" term="perl"/><category scheme="http://www.blogger.com/atom/ns#" term="programacion"/><category scheme="http://www.blogger.com/atom/ns#" term="programas"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="script"/><category scheme="http://www.blogger.com/atom/ns#" term="shell"/><title type='text'>A.p.p.s. (Awk, Perl, Python, Shell)</title><content type='html'>Esto es la actividad de semana 5: 3 programas lenguaje script.&lt;br /&gt;
&lt;br /&gt;
Awk&lt;br /&gt;
&lt;br /&gt;
Awk es un lenguaje de programación diseñado o especializado en el procesado de archivos de texto o flujos de caracteres. Cada&amp;nbsp;línea del archivo es considerado un registro dividido en campos y a su vez cada campo esta separado por un patrón, por ejemplo un caracter de espacio, una coma o mezclas extrañas.&lt;br /&gt;
&lt;br /&gt;
Debido a su efectividad al tratar con cadenas de texto, se pueden manejar fácilmente pequeñas bases de dato, generar reportes y preparar documentos para otro proceso.&lt;br /&gt;
&lt;br /&gt;
La palabra awk proviene del nombre de sus diseñadores Alfred V. Aho, Peter J. Weinberger y Brian W. Kernighan. La versión original fue escrita en 1977 y en 1985 fue actualizada.&lt;br /&gt;
&lt;br /&gt;
La función básica es buscar por patrones en cada registro y realizar una acción:&lt;br /&gt;
&lt;br /&gt;
/patrón/ {acción}&lt;br /&gt;
&lt;br /&gt;
Existen varios intérpretes para awk, los más conocidos son mawk (que viene preinstalado en algunas versiones de ubuntu) y gawk, para instalar cualquiera de ellos, desde la terminal se escribe:&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install gawk&lt;br /&gt;
sudo apt-get install mawk&lt;br /&gt;
&lt;br /&gt;
Hay distintas maneras de ejecutar el programa, si el código es pequeño se puede escribir desde la misma terminal encerrado entre comillas simples y seguido del archivo a procesar:&lt;br /&gt;
&lt;br /&gt;
:~$ awk &#39;/1/ {print $2}&#39; archivoDatos&lt;br /&gt;
&lt;br /&gt;
Cada campo en un registro es referido con un caracter $ seguido del número que lo representa.&lt;br /&gt;
&lt;br /&gt;
Si el código es grande, se crearía un archivo que contiene el código y se usaría:&lt;br /&gt;
&lt;br /&gt;
:~$ awk -f programa archivoDatos archivoDatos2 &lt;br /&gt;
&lt;br /&gt;
...y en un archivo como el siguiente:&lt;br /&gt;
&lt;br /&gt;
123 nombre&lt;br /&gt;
24444.24 nom2&lt;br /&gt;
111&amp;nbsp;&amp;nbsp; nom3&lt;br /&gt;
567 nom4&lt;br /&gt;
37&amp;nbsp;&amp;nbsp; nom5&lt;br /&gt;
7177&amp;nbsp;&amp;nbsp;&amp;nbsp; nom6&lt;br /&gt;
&lt;br /&gt;
...nos mostraría:&lt;br /&gt;
&lt;br /&gt;
nombre&lt;br /&gt;
nom3&lt;br /&gt;
nom6&lt;br /&gt;
&lt;br /&gt;
Lo que hace es buscar el patrón 1 y si lo encuentra imprime el campo&amp;nbsp;número 2 del registro donde lo identificó.&lt;br /&gt;
&lt;br /&gt;
Ahora imaginemos que necesitamos conseguir la temperatura promedio semanal de cada una de las ciudades en el mundo con la restricción de que las ciudades tengan mas de 1 millón de habitantes.&lt;br /&gt;
&lt;br /&gt;
Tomando una lista de ciudades: &lt;a href=&quot;http://www.mongabay.com/igapo/2005_world_city_populations/2005_city_population_01.html&quot;&gt;Lista&lt;/a&gt;.&lt;br /&gt;
Y obteniendo temperaturas ficticias aleatorias entre 10 y 30 grados celsius: &lt;a href=&quot;http://www.random.org/integers/?num=2352&amp;amp;min=10&amp;amp;max=30&amp;amp;col=7&amp;amp;base=10&amp;amp;format=html&amp;amp;rnd=new&quot;&gt;Temperaturas&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Primero comprobamos que ambos archivos contengan la misma cantidad de líneas:&lt;br /&gt;
&lt;br /&gt;
:~$ wc -l city&lt;br /&gt;
336 city&lt;br /&gt;
:~$ wc -l temp&lt;br /&gt;
336 temp&lt;br /&gt;
&lt;br /&gt;
Ahora juntamos ambos archivos para trabajar fácil en awk:&lt;br /&gt;
&lt;br /&gt;
:~$ cat city temp &amp;gt; lista&lt;br /&gt;
&lt;br /&gt;
Y hacemos un programa como &lt;a href=&quot;http://shade99.bravehost.com/lenguajeProgramacion/prom.awk&quot;&gt;este&lt;/a&gt;. Obtenemos este &lt;span id=&quot;goog_2115080714&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://www.blogger.com/&quot;&gt;resultado&lt;span id=&quot;goog_2115080715&quot;&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Guías de awk:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&amp;nbsp;&lt;a href=&quot;http://people.cs.uu.nl/piet/docs/nawk/nawk_toc.html&quot;&gt;Awk manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cs.hmc.edu/tech_docs/qref/awk.html&quot;&gt;Getting started with awk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.grymoire.com/Unix/Awk.html&quot;&gt;Awk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/manual/gawk/gawk.html&quot;&gt;Gnu awk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://unixhelp.ed.ac.uk/CGI/man-cgi?awk&quot;&gt;mawk&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;Perl&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://shade99.bravehost.com/lenguajeProgramacion/stirling.pl&quot;&gt;Este programa&lt;/a&gt; calcula el número stirling del segundo tipo:&lt;br /&gt;
&lt;br /&gt;
El &lt;a href=&quot;http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html&quot;&gt;número Stirling&lt;/a&gt; del segundo tipo S(n, m) es la cantidad de maneras en que se puede partir un conjunto de n cosas en m subconjuntos no vacíos.&lt;br /&gt;
&lt;br /&gt;
Guías de Perl:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://learn.perl.org/&quot;&gt;http://learn.perl.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.perl.com/pub/2000/10/begperl1.html&quot;&gt;http://www.perl.com/pub/2000/10/begperl1.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://lucas.hispalinux.es/Tutoriales/PERL/tutoperl-print.pdf&quot;&gt;http://lucas.hispalinux.es/Tutoriales/PERL/tutoperl-print.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.comp.leeds.ac.uk/Perl/start.html&quot;&gt;http://www.comp.leeds.ac.uk/Perl/start.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://flanagan.ugr.es/perl/index2.htm&quot;&gt;http://flanagan.ugr.es/perl/index2.htm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cs.cmu.edu/cgi-bin/perl-man&quot;&gt;http://www.cs.cmu.edu/cgi-bin/perl-man&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
Python&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://shade99.bravehost.com/lenguajeProgramacion/laberinto.py&quot;&gt;Intento de creador de laberinto simple.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Lo que trataba de hacer: El laberinto se iba a construir a partir de las paredes destruidas entre cada celda o casilla de la matriz, solo se recorrerían todas las celdas de la&amp;nbsp;matriz&amp;nbsp;con un BFS destruyendo algunas paredes al azar y regresando a la celda anterior si la actual ya tiene alguna pared tirada o destruida que no sea la anterior que destruimos.&lt;br /&gt;
&lt;br /&gt;
Guías de Python:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://docs.python.org/tutorial/&quot;&gt;http://docs.python.org/tutorial/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://diveintopython.org/&quot;&gt;http://diveintopython.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://docs.python.org/release/2.5.2/tut/tut.html&quot;&gt;http://docs.python.org/release/2.5.2/tut/tut.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://mundogeek.net/tutorial-python/&quot;&gt;http://mundogeek.net/tutorial-python/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
Shell&lt;br /&gt;
&lt;br /&gt;
A veces no se puede extraer el texto de un pdf con herramientas como pdftotext (poppler-utils) o &lt;a href=&quot;http://www.unixuser.org/~euske/python/pdfminer/index.html&quot;&gt;pdfminer&lt;/a&gt;. Una opción es convertir el pdf a imágenes y extraer el texto con un &lt;a href=&quot;https://help.ubuntu.com/community/OCR&quot;&gt;OCR&lt;/a&gt; (optical character recognition) como tesseract, se muestra el ejemplo &lt;a href=&quot;http://shade99.bravehost.com/extraer&quot;&gt;aquí&lt;/a&gt; [1]. La desventaja es que el texto puede contener errores dependiendo de la resolución y otras cosas, hay que revisarlo.&lt;br /&gt;
&lt;br /&gt;
Nota [1]: Para que funcione tienes que instalar tesseract y el idioma que vas a identificar ej.: sudo apt-get install tesseract-ocr-spa.&lt;br /&gt;
&lt;br /&gt;
Guías Shell:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.freeos.com/guides/lsst/&quot;&gt;http://www.freeos.com/guides/lsst/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.demiurgo.org/doc/shell/shell.html&quot;&gt;http://www.demiurgo.org/doc/shell/shell.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/unixscripting/unixscripting.html&quot;&gt;https://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/unixscripting/unixscripting.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.ant.org.ar/cursos/curso_intro/c920.html&quot;&gt;http://www.ant.org.ar/cursos/curso_intro/c920.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tldp.org/LDP/abs/html/&quot;&gt;http://tldp.org/LDP/abs/html/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bash.cyberciti.biz/guide/Main_Page&quot;&gt;http://bash.cyberciti.biz/guide/Main_Page&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://shade-lenpro.blogspot.com/feeds/4395468702981319934/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://shade-lenpro.blogspot.com/2010/10/apps-awk-perl-python-shell.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/4395468702981319934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/4395468702981319934'/><link rel='alternate' type='text/html' href='http://shade-lenpro.blogspot.com/2010/10/apps-awk-perl-python-shell.html' title='A.p.p.s. (Awk, Perl, Python, Shell)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201009480115143256.post-7203159485868145167</id><published>2010-08-29T16:32:00.000-07:00</published><updated>2010-10-19T18:21:59.114-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="interprete"/><category scheme="http://www.blogger.com/atom/ns#" term="perl"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby"/><category scheme="http://www.blogger.com/atom/ns#" term="script"/><title type='text'>Lenguaje de programación - Ruby</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Ruby es un lenguaje de programación interpretado, funcional, orientado a objetos, diseñado para la simplicidad de sintaxis e inspirado en python y perl.&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Es muy importante que visiten la pagina oficial para consultar guias, manuales, documentación, también explican como instalar en diferentes sistemas, etc...&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;a href=&quot;http://www.ruby-lang.org/en/&quot;&gt;http://www.ruby-lang.org/en/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Para instalar&amp;nbsp;en linux es mediante el comando en la terminal:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;sudo apt-get install ruby&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;En windows es fácil mediante un instalador automático: &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;a href=&quot;http://rubyinstaller.org/&quot;&gt;http://rubyinstaller.org&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;La distribución oficial viene con irb (interactive ruby shell), un interprete interactivo de linea de comandos.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Hola mundo en ruby:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;puts &quot;Hello World&quot;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Para ejecutarlo tendríamos que tenerlo en un documento que diga algo.rb y ejecutarlo con el comando ruby (si ya esta el interprete agregado en el PATH):&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;ruby algo.rb&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Algunas cosas a considerar (características):&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;li&gt;Declaración de variables innecesaria.&lt;/li&gt;
&lt;li&gt;Todo es un objeto (clases, métodos, etc).&lt;/li&gt;
&lt;li&gt;Operaciones poderosas sobre cadenas.&lt;/li&gt;
&lt;li&gt;No es necesario agregar punto y coma (;) para terminar cada expresión.&lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;Parte 1 - Comentarios, numeros, operadores, iteraciones, métodos:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;Cualquier linea que comience con #, se convierte en un comentario.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;Divisiones de numeros enteros las devuelve en enteros; para que regrese un flotante se le agrega un .0 al final de cualquier numero ya sea el numerador o el divisor.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;Los operadores son casi los mismos que en C o Java:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: verdana, arial, helvetica, sans-serif; font-size: 13px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table class=&quot;wiki-content-table&quot; style=&quot;border-collapse: collapse; empty-cells: show; margin: 0.5em auto;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;:&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;Alcance (scope)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;[]&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;Índices&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;**&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;Exponentes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;+ - ! ~&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;Unarios: pos/neg, no,…&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;* / %&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;Multiplicación, División,…&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;+ -&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;Suma, Resta,…&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;« »&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;Desplazadores binarios,…&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;&amp;amp;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;&#39;y&#39; binario&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;|, ^&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;&#39;or&#39; y &#39;xor&#39; binarios&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;&amp;gt; &amp;gt;= &amp;lt; &amp;lt;=&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;Comparadores&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;== === &amp;lt;=&amp;gt; != =~ !~&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;Igualadad, inegualdad,…&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;&amp;amp;&amp;amp;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;&#39;y&#39; booleano&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;||&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;&#39;o&#39; booleano&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;.. …&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;Operadores de rango&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;= (+=, -=,...)&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;Asignadores&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;?:&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;Decisión ternaria&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;not&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;&#39;no&#39; booleano&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;and, or&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(136, 136, 136); padding: 0.3em 0.7em; text-align: left;&quot;&gt;&#39;y&#39;, &#39;o&#39; booleano&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: verdana, arial, helvetica, sans-serif; font-size: 13px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Existe la interpolación de cadenas, que significa que al agregarse un #{variable} dentro de la cadena, intercambia eso por la variable dentro de ello.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Si se multiplica una cadena por algun numero, se regresa esa cadena tal numero de veces (consecutivas).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Se pueden unir cadenas de manera simple con el operador +.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Variables globales se manejan con un simbolo $ incial: $variable.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Los metodos se crean entre las palabras def y end, ejemplo:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;def algo(parametro1, param2)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Se pueden crear rangos de numeros al escribir (x..y) o (x...y), y convertirlos a arreglos con el método .to_a&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;La iteración de arreglos es algo distinta a los comunes C y Java, se utiliza un método llamado .each, tambien existen metodos bastante utiles para los arreglos como el .sort y .length los cuales dan el mismo arreglo ordenado y la longitud del mismo, respectivamente.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Se pueden insertar arreglos dentro de arreglos: arreglo1 = [47.47, &#39;hola&#39;, [true, false]]&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Hay una forma contraria a if que se llama unless, como funciona? &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;A menos de que se cumpla la condicion, las instrucciones del bloque se ejecutaran.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Los métodos que terminan en ! son llamados bang porque en lugar de regresar otro objeto, trabajan sobre el mismo objeto modificándolo de manera peligrosa.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;http://ruby-doc.org/docs/keywords/1.9/&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Hay muchos mas métodos, y palabras clave, tal vez sea mejor leerlos &lt;a href=&quot;http://ruby-doc.org/docs/keywords/1.9/&quot;&gt;aquí&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Ahora &lt;a href=&quot;http://shade99.bravehost.com/codigosRuby/rubyTest&quot;&gt;aquí&lt;/a&gt; hay un ejemplo que resume algunas de las cosas que comente.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;a href=&quot;http://shade99.bravehost.com/codigosRuby/facto&quot;&gt;Otro&lt;/a&gt; para calcular el factorial&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Guias para aprender ruby:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://www.meshplex.org/wiki/Ruby/Ruby_on_Rails_programming_tutorials&quot;&gt;http://www.meshplex.org/wiki/Ruby/Ruby_on_Rails_programming_tutorials&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://rubylearning.com/satishtalim/tutorial.html&quot;&gt;http://rubylearning.com/satishtalim/tutorial.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tutorialspoint.com/ruby/&quot;&gt;http://www.tutorialspoint.com/ruby/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.fincher.org/tips/Languages/Ruby/&quot;&gt;http://www.fincher.org/tips/Languages/Ruby/&lt;/a&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://shade-lenpro.blogspot.com/feeds/7203159485868145167/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://shade-lenpro.blogspot.com/2010/08/lenguaje-de-programacion-ruby.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/7203159485868145167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/7203159485868145167'/><link rel='alternate' type='text/html' href='http://shade-lenpro.blogspot.com/2010/08/lenguaje-de-programacion-ruby.html' title='Lenguaje de programación - Ruby'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201009480115143256.post-1193041597238548244</id><published>2010-08-24T03:50:00.000-07:00</published><updated>2010-10-18T03:30:21.297-07:00</updated><title type='text'>Presentación 1 - Optimización en compilación</title><content type='html'>Ve parte de la categorización de los métodos para optimizar, como solo me tocó una parte a exponer, no está completo, agregaré los enlaces para que se vea el tema mas completo.&lt;br /&gt;
&lt;br /&gt;
El trabajo lo realice con:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://jorgemtz90.blogspot.com/&quot;&gt;Jorge Martínez&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ramonesteban.blogspot.com/&quot;&gt;Ramón Esteban&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;a href=&quot;http://205.196.122.20/gc3yj62vn3hg/4dgt0zdhixt8l9w/optimizacion.ppt&quot;&gt;Descargar presentación&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Si bloquean la &lt;span style=&quot;font-family: inherit;&quot;&gt;p&lt;/span&gt;á&lt;span style=&quot;font-family: inherit;&quot;&gt;gina&lt;/span&gt;...&lt;br /&gt;
&lt;a href=&quot;http://tinyurl.com/2cln2wt&quot;&gt;http://tinyurl.com/2cln2wt&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://shade-lenpro.blogspot.com/feeds/1193041597238548244/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://shade-lenpro.blogspot.com/2010/08/presentacion-1-optimizacion-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/1193041597238548244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/1193041597238548244'/><link rel='alternate' type='text/html' href='http://shade-lenpro.blogspot.com/2010/08/presentacion-1-optimizacion-en.html' title='Presentación 1 - Optimización en compilación'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201009480115143256.post-2787715729286208221</id><published>2010-08-16T20:31:00.001-07:00</published><updated>2010-08-16T20:55:11.657-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="codigo"/><category scheme="http://www.blogger.com/atom/ns#" term="paradigmas"/><category scheme="http://www.blogger.com/atom/ns#" term="programacion"/><title type='text'>Qué es un lenguaje de programación ?</title><content type='html'>&lt;meta content=&quot;text/html; charset=utf-8&quot; http-equiv=&quot;content-type&quot;&gt;&lt;/meta&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Aquí está mi diagrama de lo que son para mi los&amp;nbsp; lenguajes de programación.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;(Click en la imagen para ver extendido)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://www.gliffy.com/pubdoc/2206006/L.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;http://www.gliffy.com/pubdoc/2206006/L.png&quot; width=&quot;158&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Evaluación:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Cosas que considero hice mal:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;La representación del diagrama (debería de utilizar LaTex o algo similar)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;La administración de mi tiempo.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Qué creo que hice bien:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;La descripción extendida de las definiciones dentro del diagrama.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;La inserción de código como ejemplo de paradigmas.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;Más&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; i&lt;/span&gt;n&lt;span style=&quot;font-family: inherit;&quot;&gt;fo&lt;/span&gt;rmación:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Directorio de lenguajes de google: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;a href=&quot;http://www.google.mw/Top/Computers/Programming/Languages/&quot;&gt;http://www.google.mw/Top/Computers/Programming/Languages/&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Directorio de lenguajes de yahoo: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;meta content=&quot;text/html; charset=utf-8&quot; http-equiv=&quot;content-type&quot;&gt;&lt;/meta&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;a href=&quot;http://dir.yahoo.com/computers_and_internet/programming_and_development/languages/&quot;&gt;http://dir.yahoo.com/computers_and_internet/programming_and_development/languages/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;La guia oficial de python: &lt;a href=&quot;http://docs.python.org/tutorial/&quot;&gt;http://docs.python.org/tutorial/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Ejemplos de sintaxis de algunos lenguajes: &lt;/span&gt;&lt;/span&gt;&lt;meta content=&quot;text/html; charset=utf-8&quot; http-equiv=&quot;content-type&quot;&gt;&lt;/meta&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;a href=&quot;http://www-users.cs.york.ac.uk/susan/cyc/p/prog.htm&quot;&gt;http://www-users.cs.york.ac.uk/susan/cyc/p/prog.htm&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;Comparacion de sintaxis entre lenguajes: &lt;a href=&quot;http://en.wikipedia.org/wiki/Comparison_of_programming_languages_%28basic_instructions%29&quot;&gt;http://en.wikipedia.org/wiki/Comparison_of_programming_languages_(basic_instructions)&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;Lenguajes por paradigmas: &lt;a href=&quot;http://en.wikipedia.org/wiki/Comparison_of_programming_languages&quot;&gt;http://en.wikipedia.org/wiki/Comparison_of_programming_languages&lt;/a&gt;&lt;/span&gt;&lt;meta content=&quot;text/html; charset=utf-8&quot; http-equiv=&quot;content-type&quot;&gt;&lt;/meta&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;Descripciones de algunos lenguajes: &lt;a href=&quot;http://alternatives.rzero.com/lang.html&quot;&gt;http://alternatives.rzero.com/lang.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;Lista de lenguajes por wilipedia: &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_programming_languages&quot;&gt;http://en.wikipedia.org/wiki/List_of_programming_languages&lt;/a&gt;&lt;/span&gt;&lt;meta content=&quot;text/html; charset=utf-8&quot; http-equiv=&quot;content-type&quot;&gt;&lt;/meta&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;meta content=&quot;text/html; charset=utf-8&quot; http-equiv=&quot;content-type&quot;&gt;&lt;/meta&gt;&lt;meta content=&quot;text/html; charset=utf-8&quot; http-equiv=&quot;content-type&quot;&gt;&lt;/meta&gt;&lt;meta content=&quot;text/html; charset=utf-8&quot; http-equiv=&quot;content-type&quot;&gt;&lt;/meta&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: black; font-family: &#39;Times New Roman&#39;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://shade-lenpro.blogspot.com/feeds/2787715729286208221/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://shade-lenpro.blogspot.com/2010/08/que-es-un-lenguaje-de-programacion.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/2787715729286208221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201009480115143256/posts/default/2787715729286208221'/><link rel='alternate' type='text/html' href='http://shade-lenpro.blogspot.com/2010/08/que-es-un-lenguaje-de-programacion.html' title='Qué es un lenguaje de programación ?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>