tag:blogger.com,1999:blog-42743066398641989302024-02-20T17:30:47.786-08:00Algoritmos Y Pseudocodificacionjorge-acnhttp://www.blogger.com/profile/13259376101882702681noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-4274306639864198930.post-9921584532765309962012-06-19T12:33:00.001-07:002012-06-19T12:33:12.579-07:00ALGORITMOS<div style="width:425px" id="__ss_13383805"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/ger2009co/algoritmos-13383805" title="ALGORITMOS">ALGORITMOS</a></strong><object id="__sse13383805" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=algortimo-120619143050-phpapp01&stripped_title=algoritmos-13383805&userName=ger2009co" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"/><embed name="__sse13383805" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=algortimo-120619143050-phpapp01&stripped_title=algoritmos-13383805&userName=ger2009co" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="355"></embed></object><div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/ger2009co">ger2009co</a>.</div></div>jorge-acnhttp://www.blogger.com/profile/13259376101882702681noreply@blogger.com0tag:blogger.com,1999:blog-4274306639864198930.post-60134244209686358482012-04-17T16:22:00.001-07:002012-04-24T11:34:09.175-07:00PSEUDOCODIFICACIONMuestra la lógica de la decisión en el formato si-entonses de un programa del computador. Es una descripción precisa, pero puede ser muy concisa y formal par los que no estén familiarizado con la programación de computadoras. No es una forma de programacion, se trata de una herramienta que los analistas de sistemas utilizan para comunicar a los programadores la estructura del programa que van a realizar, de forma de tener una idea bien clara de lo que se necesita programar.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://i3.ytimg.com/vi/Z4WqFjI3DFI/hqdefault.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" id="il_fi" src="http://i3.ytimg.com/vi/Z4WqFjI3DFI/hqdefault.jpg" style="padding-bottom: 8px; padding-right: 8px; padding-top: 8px;" width="480" /></a></div><br />
Digamos que el pseudo código es una forma de diagramar un algoritmo para resolver un determinado problema, sin atenerse a ningún lenguaje de programación en especialjorge-acnhttp://www.blogger.com/profile/13259376101882702681noreply@blogger.com0tag:blogger.com,1999:blog-4274306639864198930.post-61017987539521163442012-04-17T16:11:00.001-07:002012-04-17T16:11:34.639-07:00Tipos de algoritmos según su función<div class="vspace"><span style="color: black;"><span style="background-color: white;">• <span style="color: blue; font-family: "Trebuchet MS", sans-serif;">ALGORITMO DE ORDENAMIENTO</span></span></span></div><div class="vspace">Es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada.</div><div class="vspace"><br />
</div><div class="vspace">EJEMPLO DE ALGORITMO DE ORDENAMIENTO:</div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.nosolousabilidad.com/articulos/img/mc_fig2.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="264" id="il_fi" src="http://www.nosolousabilidad.com/articulos/img/mc_fig2.gif" style="padding-bottom: 8px; padding-right: 8px; padding-top: 8px;" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="vspace"><span style="color: #073763; font-family: "Trebuchet MS", sans-serif;">• ALGORITMO DE BUSQUEDA</span></div><div class="vspace">Es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto.</div><div class="vspace"><br />
</div><div class="vspace">EJEMPLO DE ALGORITMO DE BUSQUEDA:</div><div class="vspace"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://www1.freewebs.com/cheoss/files/y13bis.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="369" id="il_fi" src="http://www1.freewebs.com/cheoss/files/y13bis.png" style="padding-bottom: 8px; padding-right: 8px; padding-top: 8px;" width="400" /></a></div><div class="vspace"><br />
</div><div class="vspace"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div>jorge-acnhttp://www.blogger.com/profile/13259376101882702681noreply@blogger.com1tag:blogger.com,1999:blog-4274306639864198930.post-52500243108649794562012-04-17T14:49:00.001-07:002012-04-24T11:34:18.177-07:00Definicion<span style="font-family: 'Trebuchet MS', sans-serif; font-size: small;">Un algoritmo se puede definir como una secuencuencia de instrucciones que representan un modelo de solucion para determinado tipo de problema; o bien como un conjunto de instrucciones que realizadas en orden conducen a la solucion de problemas</span>. <br />
<div class="separator" style="clear: both; text-align: center;"><object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://2.gvt0.com/vi/YnMMy8Nnj_I/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/YnMMy8Nnj_I&fs=1&source=uds" /><param name="bgcolor" value="#FFFFFF" /><embed width="320" height="266" src="http://www.youtube.com/v/YnMMy8Nnj_I&fs=1&source=uds" type="application/x-shockwave-flash"></embed></object></div>jorge-acnhttp://www.blogger.com/profile/13259376101882702681noreply@blogger.com0tag:blogger.com,1999:blog-4274306639864198930.post-77794769228686893972012-04-17T14:44:00.009-07:002012-04-24T11:34:15.750-07:00Medios de expresión de un algoritmo<div><span style="font-family: Arial, Helvetica, sans-serif;"><i>Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, <span class="mw-redirect">diagramas de flujo</span>lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.</i></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;"><i><br />
</i></span></div><div class="" style="clear: both; text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif;"><i>La descripción de un algoritmo usualmente se hace en tres niveles:</i></span></div><div class="separator" style="clear: both; text-align: center;"></div><ol><li><span style="font-family: Arial, Helvetica, sans-serif;"><i><strong>Descripción de alto nivel</strong>. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.</i></span></li>
<li><span style="color: black; font-family: Arial, Helvetica, sans-serif;"><i><strong>Descripción formal</strong>. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.</i></span></li>
<li><span style="color: black; font-family: Arial, Helvetica, sans-serif;"><i><strong>Implementación</strong>. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones. </i></span></li>
</ol><span style="font-family: Arial, Helvetica, sans-serif;"><i><br />
</i></span><br />
<div class="" style="clear: both; text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif;"><i><span style="color: black;">DIAGRAMAS DE </span>FLUJO</i></span></div><div class="" style="clear: both; text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif;"><i><br />
</i></span></div><div class="" style="clear: both;"><span style="font-family: Arial, Helvetica, sans-serif;"><i><span style="background-color: white; line-height: 19px; text-align: left;">Un diagrama de flujo es la representación gráfica del flujo o secuencia de rutinas simples. Tiene la ventaja de indicar la secuencia del proceso en cuestión, las unidades involucradas y los responsables de su ejecución, es decir , viene a ser la representación simbólica o pictórica de un procedimiento administrativo.</span><br style="background-color: white; line-height: 19px; text-align: left;" /><span style="background-color: white; line-height: 19px; text-align: left;">Luego, </span><span style="background-color: white; line-height: 19px; text-align: left;">un diagrama de flujo es una representación gráfica que desglosa un proceso en cualquier tipo de actividad a desarrollarse tanto en empresas industriales o de servicios y en sus departamentos, secciones u áreas de su estructura organizativa</span></i></span><br />
<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/tMEscFCEP0g?feature=player_embedded' frameborder='0'></iframe></div><div class="separator" style="clear: both; text-align: center;"></div><span style="font-family: Arial, Helvetica, sans-serif;"><i>PSEUDOCODIGO</i></span><br />
<br />
<div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2c2c29; margin-bottom: 15px; margin-top: 1px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: baseline;"><span style="font-family: Arial, Helvetica, sans-serif;"><i>Este <span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">pseudocódigo</span> o <span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">pseudolenguaje</span> es usado para o hacer un<u> </u><span class="IL_AD" id="IL_AD1" style="background-attachment: scroll !important; background-clip: initial !important; background-color: transparent !important; background-image: none !important; background-origin: initial !important; background-position: 0% 50%; border-bottom-color: rgb(0, 0, 0) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; cursor: pointer !important; display: inline !important; float: none !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; vertical-align: baseline;">bosquejo</span> de una aplicación de manera rápida, o para aprender programación, se usa mas que todo en clases de lógica y algoritmia.</i></span></div><div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2c2c29; margin-bottom: 15px; margin-top: 1px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: baseline;"><span style="font-family: Arial, Helvetica, sans-serif;"><i>No es un lenguaje estructurado así que cada quien puede poner las normas de el, por ejemplo una <span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">condición</span> o una <span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">toma de decisiones</span> en <span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">pseudolenguaje</span> seria algo como:</i></span></div><blockquote style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-width: 4px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2c2c29; margin-bottom: 10px; margin-left: 5px; margin-right: 10px; margin-top: 20px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 5px; padding-right: 5px; padding-top: 0px; text-align: justify; vertical-align: baseline;"><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 15px; margin-top: 1px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; vertical-align: baseline;"><span style="font-family: Arial, Helvetica, sans-serif;"><i><span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #339966; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">si</span> <span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3366ff; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">Numero_visitas</span> >= 50000 entonces<br />
<span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #339966; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">escriba</span> "mi blog tiene buen trafico"<br />
<span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #339966; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">sino</span> entonces<br />
<span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #339966; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">escriba</span> "tengo que mejorar mi blog"<br />
<span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #339966; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">fin si</span></i></span></div></blockquote><div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2c2c29; margin-bottom: 15px; margin-top: 1px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left; vertical-align: baseline;"><span style="font-family: Arial, Helvetica, sans-serif;"><i>En el ejemplo anterior vemos que lo que esta en verde serian las instrucciones que podrían variar en los diferentes lenguajes de programación <strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">(</strong><span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">si = if</span><strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">) </strong>(escriba = printf) (sino = else) lo que esta en azul "Numero_visitas" representa una variable, los <span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">operadores matemáticos<b> </b></span>se usan de la misma manera en casi todos los lenguajes, en este caso ">=" significa (Mayor o igual) y lo que esta entre comillas es lo que se debe imprimir en la pantalla de la aplicación.</i></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><i><br />
</i></span><br />
<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/6Q371hrftRM?feature=player_embedded' frameborder='0'></iframe></div><span style="font-family: Arial, Helvetica, sans-serif;"><i><br />
</i></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><i><br />
</i></span></div><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><i><span style="background-color: white; line-height: 19px; text-align: left;"><br />
</span></i></span></div>jorge-acnhttp://www.blogger.com/profile/13259376101882702681noreply@blogger.com0tag:blogger.com,1999:blog-4274306639864198930.post-89530001368716262472012-04-17T14:44:00.008-07:002012-04-24T11:34:11.522-07:00Algoritmos como funciones<span style="font-family: Arial, Helvetica, sans-serif;">Los algoritmos son las series de pasos por los cuales se resuelven los problemas. Los algoritmos se han utilizado para solucionar un amplio rango de <em>problemas matemáticos</em>, como agregar números o encontrar una raíz cuadrada.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Los algoritmos representan soluciones a problemas. Los pasos para la solución (llamados <em>instrucciones</em>) permanecen iguales, ya sea que el mismo se esté resolviendo mediante una computadora o a mano.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><img alt="Algoritmo de Von Neumann" src="http://www.bloginformatico.com/wp-content/uploads/2007/04/algoritmo-de-von-neumann.gif" /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span id="more-412"></span>Las funciones son la expresión de los algoritmos en un lenguaje de programación específico de la computadora. Tú puedes utilizar las funciones cuando las necesites. No tienes que reescribir las líneas del código representadas por la función cada vez que requiera de la misma.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Un ejemplo práctico de la aplicación de funciones en Lenguaje C es la utilización de ” Sqrt(x) “, el cual es una manera de referirse a la raíz cuadrada. La (x) después del nombre de la función es el argumento. Tú usas los argumentos para trasladar lo que entra a las funciones conforme el programa se ejecuta.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Citando el ejemplo anterior, x es una variable que representa un número. Si x es igual a 12 (x=12), entonces la función encontrará la raíz cuadrada de 12.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Después de que se haya buscado y determina mediante la función el valor de la raíz cuadrada para dicho valor, el mismo programa devuelve la información al usuario.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<div class="separator" style="clear: both; text-align: center;"><object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://0.gvt0.com/vi/YhkgEZ6_gFA/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/YhkgEZ6_gFA&fs=1&source=uds" /><param name="bgcolor" value="#FFFFFF" /><embed width="320" height="266" src="http://www.youtube.com/v/YhkgEZ6_gFA&fs=1&source=uds" type="application/x-shockwave-flash"></embed></object></div><span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<br class="Apple-interchange-newline" />jorge-acnhttp://www.blogger.com/profile/13259376101882702681noreply@blogger.com0tag:blogger.com,1999:blog-4274306639864198930.post-67200853480133050982012-04-17T14:44:00.007-07:002012-04-24T11:34:05.413-07:00Análisis de algoritmos<div style="background-color: white; line-height: 20px; margin-bottom: 0.5em; margin-top: 0.4em;"><span style="font-family: Arial, Helvetica, sans-serif;"><i>El análisis de algoritmos es una parte importante de la Teoría de <a class="mw-redirect" href="http://es.wikipedia.org/wiki/Complejidad_computacional" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Complejidad computacional">complejidad computacional</a> más amplia, que provee estimaciones teóricas para los recursos que necesita cualquier <a href="http://es.wikipedia.org/wiki/Algoritmo" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Algoritmo">algoritmo</a> que resuelva un problema computacional dado. Estas estimaciones resultan ser bastante útiles en la búsqueda de algoritmos eficientes.</i></span></div><div style="background-color: white; line-height: 20px; margin-bottom: 0.5em; margin-top: 0.4em;"><span style="font-family: Arial, Helvetica, sans-serif;"><i>A la hora de realizar un análisis teórico de algoritmos es común calcular su complejidad en un sentido asintótico, es decir, para un tamaño de entrada suficientemente grande. La <a href="http://es.wikipedia.org/wiki/Cota_superior_asint%C3%B3tica" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Cota superior asintótica">cota superior asintótica</a>, y las notaciones <a href="http://es.wikipedia.org/wiki/Cota_superior_asint%C3%B3tica" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Cota superior asintótica">omega</a> (cota inferior) y <a href="http://es.wikipedia.org/wiki/Cota_superior_asint%C3%B3tica" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Cota superior asintótica">theta</a> (caso promedio) se usan con esa finalidad. Por ejemplo, la <a class="mw-redirect" href="http://es.wikipedia.org/wiki/B%C3%BAsqueda_binaria" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Búsqueda binaria">búsqueda binaria</a> decimos que se ejecuta en una cantidad de pasos proporcional a un <a href="http://es.wikipedia.org/wiki/Logaritmo" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Logaritmo">logaritmo</a>, en O(log(n)), coloquialmente "en tiempo logarítmico". Normalmente las estimaciones asintóticas se utilizan porque diferentes <a href="http://es.wikipedia.org/wiki/Implementaci%C3%B3n" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Implementación">implementaciones</a> del mismo algoritmo no tienen porque tener la misma eficiencia. No obstante la eficiencia de dos implementaciones "razonables" cualesquiera de un algoritmo dado están relacionadas por una constante multiplicativa llamada constante oculta.</i></span></div><div style="background-color: white; line-height: 20px; margin-bottom: 0.5em; margin-top: 0.4em;"><span style="font-family: Arial, Helvetica, sans-serif;"><i>La medida exacta (no <a href="http://es.wikipedia.org/wiki/As%C3%ADntota" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Asíntota">asintótica</a>) de la eficiencia a veces puede ser computada pero para ello suele hacer falta aceptar supuestos acerca de la implementación concreta del algoritmo, llamada <a href="http://es.wikipedia.org/wiki/Modelo_de_computaci%C3%B3n" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Modelo de computación">modelo de computación</a>. Un modelo de computación puede definirse en términos de un <a class="new" href="http://es.wikipedia.org/w/index.php?title=M%C3%A1quina_abstracta&action=edit&redlink=1" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Máquina abstracta (aún no redactado)">ordenador abstracto</a>, como la <a href="http://es.wikipedia.org/wiki/M%C3%A1quina_de_Turing" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Máquina de Turing">Máquina de Turing</a>, y/o postulando que ciertas operaciones se ejecutan en una unidad de tiempo. Por ejemplo, si al conjunto ordenado al que aplicamos una<a class="mw-redirect" href="http://es.wikipedia.org/wiki/B%C3%BAsqueda_binaria" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Búsqueda binaria">búsqueda binaria</a> tiene n elementos, y podemos garantizar que una única búsqueda binaria puede realizarse en un tiempo unitario, entonces se requieren como mucho log<sub style="line-height: 1em;">2</sub> N + 1 unidades de tiempo para devolver una respuesta.</i></span></div><div style="background-color: white; line-height: 20px; margin-bottom: 0.5em; margin-top: 0.4em;"><span style="font-family: Arial, Helvetica, sans-serif;"><i>Las medidas exactas de eficiencia son útiles para quienes verdaderamente implementan y usan algoritmos, porque tienen más precisión y así les permite saber cuanto tiempo pueden suponer que tomará la ejecución. Para algunas personas, como los desarrolladores de <a href="http://es.wikipedia.org/wiki/Videojuego" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; text-decoration: none;" title="Videojuego">videojuegos</a>, una constante oculta puede significar la diferencia entre éxito y fracaso.</i></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><i><br />
</i></span></div>jorge-acnhttp://www.blogger.com/profile/13259376101882702681noreply@blogger.com0tag:blogger.com,1999:blog-4274306639864198930.post-54872730610279881542012-04-17T14:28:00.003-07:002012-04-17T14:48:33.035-07:00Ejercicios<span style="font-family: Arial, Helvetica, sans-serif;"></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ejercicio No: 1 </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Desarrolle un algoritmo que permita leer dos valores distintos, determinar cual de los dos valores es el </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">mayor y escribirlo. </span><br />
<div class="separator" style="clear: both; text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwKHcXfLeVNisGgsGgz5d8woHSGDAfKaljOtu1FO0ZAMHAxrRTQ06rsCYXsAlRU-WCzDKyCTjKJufw8vdGJoElh2Qcmwr98hXFX5ZQvN2_CyR98Zwr21x2CPOMqx-ct-yM7SfONFP6pTw/s1600/Sin+t%C3%ADtulo.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwKHcXfLeVNisGgsGgz5d8woHSGDAfKaljOtu1FO0ZAMHAxrRTQ06rsCYXsAlRU-WCzDKyCTjKJufw8vdGJoElh2Qcmwr98hXFX5ZQvN2_CyR98Zwr21x2CPOMqx-ct-yM7SfONFP6pTw/s320/Sin+t%C3%ADtulo.png" width="235" /></a></span></div><span style="font-family: Arial, Helvetica, sans-serif;">Pseudocódigo </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">1. Inicio </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">2. Inicializar variables: A = 0, B = 0 </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">3. Solicitar la introducción de dos </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">valores distintos </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">4. Leer los dos valores </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">5. Asignarlos a las variables A y B </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">6. Si A = B Entonces vuelve a 3 </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">porque los valores deben ser </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">distintos </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">7. Si A>B Entonces </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"> Escribir A, “Es el mayor” </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">8. De lo contrario: Escribir B, “Es </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">el mayor” </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">9. Fin_Si </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">10. Fin </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"> </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"> </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ejercicios propuesto: </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">a. Realizar un algoritmo que permita leer dos valores, determinar cual de los dos valores es el </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">menor y escríbalo </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">b. Realizar un algoritmo que sume dos números</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ejercicio No: 2 </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Desarrolle un algoritmo que permita leer tres valores y almacenarlos en las variables A, B y C </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">respectivamente. El algoritmo debe imprimir cual es el mayor y cual es el menor. Recuerde constatar que </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">los tres valores introducidos por el teclado sean valores distintos. Presente un mensaje de alerta en caso de </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">que se detecte la introducción de valores iguales. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Pseudocódigo Diagrama de Flujo </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoDmisheULYam_BT1sxxdEDgoeU5gOJXB5DmhVp8Tl8iu9TfZOsTvOI1yTsQF35MRogBmcKwUa5RhucTwS5z1eLAm1NcXNAAUQZzNHxFZf3um63CBKn1E6zntZBYDHFxKqHd3pmTTXSbo/s1600/Sin+t%C3%ADtulo.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoDmisheULYam_BT1sxxdEDgoeU5gOJXB5DmhVp8Tl8iu9TfZOsTvOI1yTsQF35MRogBmcKwUa5RhucTwS5z1eLAm1NcXNAAUQZzNHxFZf3um63CBKn1E6zntZBYDHFxKqHd3pmTTXSbo/s320/Sin+t%C3%ADtulo.png" width="316" /></a>1. Inicio </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">2. Inicializar las variables A, B y C </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">3. Leer los tres valores </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">4. Almacenar en las variables A, B </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">y C </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">5. Si A > B y A > C Entonces </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">6. Escribir A “Es el mayor” </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">7. Sino </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">8. Si B > A y B > C Entonces</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">9. Escribir B “Es el mayor” </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">10. Sino </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">11. Escribir C “Es el mayor” </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">12. Fin_Si </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">13. Fin_Si </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">14. Fin </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"> </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ejercicios propuestos: </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">a. ¿Es este algoritmo la solución perfecta al ejercicio anterior? Razone su respuesta. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">b. De ser necesario ¿qué cambios deberá realizar? Indíquelos. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">c. Desarrolle un algoritmo que permita leer tres valores y almacenarlos en las variables A, B, y C </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">respectivamente. El algoritmo debe indicar cual es el menor. Asumiendo que los tres valores </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">introducidos por el teclado son valores distintos. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">d. Desarrolle un algoritmo que lea cuatro números diferentes y a continuación imprima el mayor de los </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">cuatro números introducidos y también el menor de ellos.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ejercicio No: 3 </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"> Desarrolle un algoritmo que realice la sumatoria de los números enteros comprendidos entre el 1 y el 10, </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">es decir, 1 + 2 + 3 + …. + 10. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTx-Ncudk6G3NrVwkdNU5RejUh8zrXrwBxyie35mbJrumL1_kDn9CcQ_1Uu4IODngj5EbR7Rw9l-VDlgCrZ450u16go511dNGqePZEtE_yKQCCpiX3EnECcekVDYkbGmdB4yb0vjmwfTc/s1600/Sin+t%C3%ADtulo.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTx-Ncudk6G3NrVwkdNU5RejUh8zrXrwBxyie35mbJrumL1_kDn9CcQ_1Uu4IODngj5EbR7Rw9l-VDlgCrZ450u16go511dNGqePZEtE_yKQCCpiX3EnECcekVDYkbGmdB4yb0vjmwfTc/s320/Sin+t%C3%ADtulo.png" width="213" /></a>Pseudocódigo </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">1. Inicio </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">2. Declaración de variables: </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"> N= 0, Suma = 0 </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">3. Asignación Contador : </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">N = N + 1 </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">4. Asignación Acumulador: </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Suma = Suma + N </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">5. Si N = 10 Entonces</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">6. Escribir Suma </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">7. De lo contrario, Repetir desde el </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"> paso 3 </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">8. Fin_Si </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">8. Fin</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ejercicios propuestos: </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">a. Desarrolle un algoritmo que realice la sumatoria de los números enteros múltiplos de 5, comprendidos </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">entre el 1 y el 100, es decir, 5 + 10 + 15 +…. + 100. El programa deberá imprimir los números en </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">cuestión y finalmente su sumatoria </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">b. Desarrolle un algoritmo que realice la sumatoria de los números enteros pares comprendidos entre el 1 </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">y el 100, es decir, 2 + 4 + 6 +…. + 100. El programa deberá imprimir los números en cuestión y </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">finalmente su sumatoria </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">c. Desarrolle un algoritmo que lea los primeros 300 números enteros y determine cuántos de ellos son </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">impares; al final deberá indicar su sumatoria.</span>jorge-acnhttp://www.blogger.com/profile/13259376101882702681noreply@blogger.com9