<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru">
<channel>
<title>Algoritmos - Tutoriales En Linea 🎓</title>
<link>https://tutorialesenlinea.es/</link>
<description>Algoritmos - Tutoriales En Linea 🎓</description><item turbo="true">
<turbo:extendedHtml>true</turbo:extendedHtml>
<link>https://tutorialesenlinea.es/3161-como-hacer-algoritmo.html</link>
<author>administrador</author>
<category>Programacion, Algoritmos, Software, Noticias, Tutorial</category>
<pubDate>Fri, 24 Jan 2020 19:43:21 +0100</pubDate>
<turbo:content><![CDATA[<header><h1>Como hacer algoritmo</h1></header><a class="highslide" href="https://tutorialesenlinea.es/uploads/posts/2020-01/1579893588_como-hacer-algoritmo_tutoriales_en_linea.webp" target="_blank"><img src="https://tutorialesenlinea.es/uploads/posts/2020-01/thumbs/1579893588_como-hacer-algoritmo_tutoriales_en_linea.webp" alt="Como hacer algoritmo" class="fr-dib"></a>Para hacer un Algoritmo comencemos con lo básico definiendo que es. Algoritmo es una secuencia finita de instrucciones, cada una de las cuales tiene un significado preciso y puede ejecutarse con una cantidad finita de esfuerzo en un tiempo finito. Ha de tener las siguientes características: legible, correcto, modular, eficiente, estructurado, no ambiguo y a ser posible se ha de desarrollar en el menor tiempo posible.<br><br>En pocas palabras un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. En <a href="https://programasparapc.net/" target="_blank" rel="noopener external nofollow">programasparapc.net</a> podemos encontrar algunos programas y software que nos ayudara a construirlo y a resolverlo.<br><br><h2>Características de un Algoritmo</h2><br><ul><li><b>Definibilidad</b>: El algoritmo debe definirse de forma precisa para cada paso, es decir, hay que evitar toda ambigüedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matemático o de programación para un computador.</li><li><b>Entrada</b>: El algoritmo tendrá cero o más entradas, es decir, cantidades dadas antes de empezar el algoritmo. Estas cantidades pertenecen además a conjuntos especificados de objetos.Se trata siempre de cantidades representativas del mundo real expresadas de tal forma que sean aptas para su interpretación por el computador.</li><li><b>Salida</b>: El algoritmo tiene una o más salidas, en relación con las entradas.</li><li><b>Efectividad</b>: Se entiende por esto que una persona sea capaz de realizar el algoritmo de modo exacto y sin ayuda de una máquina en un lapso de tiempo finito.</li></ul><h2>Medios de expresión de un Algoritmo</h2><div><br></div><div>Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. </div><div><br></div><div>La descripción de un algoritmo usualmente se hace en tres niveles:</div><br><ul><li><div><b>Descripción de alto nivel</b>. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. </div></li><li><div><b>Descripción formal</b>. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución. </div></li><li><div><b>Implementación</b>. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.</div></li></ul><div>También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.</div><div><br></div><h2>Diagramas de flujo</h2><div><br></div><div>Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número </div><div><p style="text-align:center;"><img src="https://tutorialesenlinea.es/uploads/posts/2017-07/1499198484_algoritmoraiz.webp" alt="" title="" class="fr-fic fr-dii"></p></div><div>Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.</div><br>Los fabricantes de software grandes y pequeños ofrecen muchas formas de crear diagramas de flujo en una computadora u ordenador. Todas las herramientas funcionan de la misma manera: primero se carga el proyecto (por plantilla o nuevo), se crean bloques y luego se combinan, creando un algoritmo específico o una secuencia de acciones y eventos. Entre los mejores <a href="https://programasparapc.net/hacer-algoritmos/" target="_blank" rel="noopener external nofollow">programas para elaborar algoritmos y diagramas</a> de flujo se encuentran los de pagos y los gratuitos. Para elegir el adecuado para sus necesidades, debe familiarizarse con el más popular de ellos.<br><br><div><h2>Pasos para realizar Algoritmos</h2><div><br></div><div>Para la realización de un algoritmo es necesario realizar una secuencia de pasos para llegar a cumplir con la resolución de un problema dado. Para ello, definiremos los siguientes pasos:</div><br><ul><li><b>Análisis previo del Problema</b>: Se debe realizar un análisis del funcionamiento del problema antes que se realice cualquier algoritmo.</li><li><b>Definición de Requerimientos:</b> Los problemas a solucionar, esto es, por ejemplo, el sumar dos números, multiplicar dos matrices, ordenar una lista de números, generar un reporte, etc.</li><li><b>Identificación de los Módulos:</b> La identificación de los módulos es tan importante como la identificación correcta de los requerimientos, esto porque la correcta identificación de los módulos simplifica considerablemente la realización de los algoritmos que darán solución a los requerimientos identificados en el paso anterior.</li><li><b>Realización de los Algoritmos:</b> El algoritmo deberá cumplir con las características que se indicaron para posteriormente implementarse en un lenguaje de programación comprensible por una computadora.</li><li><b>Implementación de los Algoritmos:</b> La implementación de los algoritmos se debe realizar en un lenguaje de programación para que una computadora pueda comprender las instrucciones que el algoritmo modela para así poder ejecutarlas y lograr el resultado esperado.</li></ul><span>En el último paso ya podemos hablar de una aplicación o programa de computadora u ordenador, que estará compuesto por una serie de instrucciones que ordenadas una tras otra logran representar los algoritmos diseñados y dar así solución a los requerimientos identificados.</span></div>]]></turbo:content>
</item><item turbo="true">
<turbo:extendedHtml>true</turbo:extendedHtml>
<link>https://tutorialesenlinea.es/2131-algoritmos-de-decision-y-los-principios-multiplicativo-y-aditivo.html</link>
<author>Tutoriales En Linea</author>
<category>Noticias, Matematica, Tutorial, Algoritmos, WebSite</category>
<pubDate>Tue, 16 Oct 2018 18:28:01 +0200</pubDate>
<turbo:content><![CDATA[<header><h1>Algoritmos de decisión y los principios multiplicativo y aditivo</h1></header><a class="highslide" href="https://tutorialesenlinea.es/uploads/posts/2018-10/1539707124_algoritmos-de-decisin-y-los-principios-multiplicativo-y-aditivo_tutoriales_en_linea.webp" target="_blank"><img src="https://tutorialesenlinea.es/uploads/posts/2018-10/thumbs/1539707124_algoritmos-de-decisin-y-los-principios-multiplicativo-y-aditivo_tutoriales_en_linea.webp" alt="" class="fr-dib"></a>En este Tutoriales En Linea les traemos un sitio web en el cual podrás encontrar un repaso de matemáticas finitas sobre algoritmos de decisión y los principios multiplicativo y aditivo (Se puede encontrar esta tema en la Sección 6.3 en la edición más reciente (6e) de Matemáticas finitas o la Sección 6.3 en la edición más reciente (6e) de Matemáticas finitas y cálculo aplicado). Ademas podrás encontrar un divertido juego adaptativo. Este juego adaptativo te ayudará a dominar este tema de una manera que se adapte a tu capacidad mientras practicas.<br><br><ul><li><a href="https://acortador.tutorialesenlinea.es/oKfvS" target="_blank" rel="noopener external nofollow">Ir Al Tutorial...</a> - <a href="https://acortador.tutorialesenlinea.es/7nXP8" target="_blank" rel="noopener external nofollow">Ir Al Tutorial Juego Adaptivo...</a></li></ul>]]></turbo:content>
</item><item turbo="true">
<turbo:extendedHtml>true</turbo:extendedHtml>
<link>https://tutorialesenlinea.es/2100-los-ataques-de-fuerza-bruta-contra-claves-de-256-bits.html</link>
<author>Tutoriales En Linea</author>
<category>Noticias, Algoritmos, Encriptacion, Seguridad, Tutorial</category>
<pubDate>Sat, 13 Oct 2018 12:28:51 +0200</pubDate>
<turbo:content><![CDATA[<header><h1>Los Ataques De Fuerza Bruta Contra Claves De 256 Bits</h1></header><a class="highslide" href="https://tutorialesenlinea.es/uploads/posts/2018-10/1539445167_cifrado_-tutoriales_en_linea-copia.webp" target="_blank"><img src="https://tutorialesenlinea.es/uploads/posts/2018-10/thumbs/1539445167_cifrado_-tutoriales_en_linea-copia.webp" alt="" class="fr-dib" itemprop="image"></a>Crypteto tiene una clave simétrica de 49,152 bits:<br>El problema más importante de cualquier producto de encriptación es la fuerza de la clave de bits. Hasta la fecha, el algoritmo más fuerte conocido tiene una clave de 448 bits. Crypteto ahora ofrece una clave de 49,152 bits. Esto significa que por cada aumento adicional de 1 bit que Crypteto tenga sobre su competencia lo hace 100% más fuerte. La seguridad y privacidad que ofrece esta oferta es asombrosa.Sí, cada bit de clave duplica la fuerza de un algoritmo contra ataques de fuerza bruta. Pero es difícil encontrar un significado real en un factor de trabajo de 2 <sup>49152.</sup><br>Junto con este avance realmente notable, Crypteto no compromete la velocidad de cifrado. En el pasado, las mejoras incrementales de la fuerza de la clave han afectado la velocidad con la que se cifran los datos. La situación habitual era que por cada aumento de 1 bit en la fuerza de la clave, había una reducción consiguiente en la velocidad de encriptación en un 50%.Eso ni siquiera es remotamente cierto. No es del todo obvio cómo la longitud de la clave está relacionada con la velocidad de encriptación. <a href="https://acortador.tutorialesenlinea.es/icOOq" target="_blank" rel="noopener external nofollow">Blowfish </a>tiene la misma velocidad, independientemente de la longitud de la clave. AES-192 es aproximadamente un 20% más lento que AES-128, y AES-256 es aproximadamente un 40% más lento. <a href="https://tutorialesenlinea.es/2101-cifrado-threefish.html" target="_blank">Threefish</a>, el cifrado de bloque dentro de <a href="https://acortador.tutorialesenlinea.es/QQSo" target="_blank" rel="noopener external nofollow">Skein</a>, cifra los datos a 7,6 ciclos / byte de reloj con una clave de 256 bits, 6,1 ciclos / byte de reloj con una clave de 512 bits y 6 ciclos / byte de reloj con una clave de 1024 bits. No estoy afirmando que <a href="https://tutorialesenlinea.es/2101-cifrado-threefish.html" target="_blank">Threefish </a>sea seguro y esté listo para uso comercial, en cualquier longitud de clave, pero simplemente no existe la posibilidad de que la velocidad de encriptación se reduzca a la mitad por cada bit de clave agregada.<br><br>Esta es una asimetría fundamental de la criptografía, y es importante hacerlo bien. El costo de cifrar es lineal en función de la longitud de la clave, mientras que el costo de la ruptura es geométrico. Es una de las razones por las que, de todos los enlaces en una cadena de seguridad, la criptografía es la más fuerte.<br><br>Normalmente no me molestaría con este tipo de cosas, pero me <a href="https://acortador.tutorialesenlinea.es/6M5M" target="_blank" rel="noopener external nofollow">pidieron explícitamente que comentara</a>:<br><br>Pero Hawthorne Davies ha superado este problema. Al ofrecer un algoritmo con una fuerza de clave sin igual de 49,152 bits, podemos cifrar y descifrar datos a velocidades superiores a 8 megabytes por segundo. Esto significa que el Gigabyte de datos antes mencionado tomaría 2 minutos y 13 segundos. Si Bruce Schneier, el principal criptólogo de Estados Unidos, aumentara su algoritmo de encriptación de Blowfish 448 bit a Blowfish 49152, sería difícil codificar un Gigabyte en 4 horas.<br><br>[...] Esperamos recibir el consejo y el aliento del buen Dr. Schneier.No soy médico de nada, pero claro. <a href="https://acortador.tutorialesenlinea.es/SKJ7" target="_blank" rel="noopener external nofollow">Lee mi ensayo de 1999 sobre criptografía</a> de aceite de serpiente:<br>Señal de advertencia # 5: Longitudes de clave ridículas.<br><br><a href="https://acortador.tutorialesenlinea.es/vQvQ" target="_blank" rel="noopener external nofollow">Jaws Technology</a> se jacta de: "Gracias a la clave de 4096 bit estadísticamente irrompible del algoritmo JAWS L5, se garantiza la seguridad de sus archivos de datos más valiosos". <a href="https://acortador.tutorialesenlinea.es/BgCy" target="_blank" rel="noopener external nofollow">Meganet</a> lleva el ridículo un paso más allá: "¡Teclas simétricas de 1 millón de bits: la oferta del mercado [sic] de 40-160 bits solamente!"<br><br>Las longitudes de clave más largas son mejores, pero solo hasta cierto punto. AES tendrá una longitud de clave de 128 bits, 192 bits y 256 bits. Esto es mucho más largo de lo necesario para el futuro previsible. De hecho, ni siquiera podemos imaginar un mundo donde las búsquedas de fuerza bruta de 256 bits sean posibles. Requiere algunos avances fundamentales en la física y nuestra comprensión del universo. Para la criptografía de clave pública, las claves de 2048 bits tienen el mismo tipo de propiedad; ya no tiene sentido<br><br>Piense en esto como un subejemplo de la señal de advertencia # 4: si la compañía no entiende las claves, ¿realmente desea que diseñen su producto de seguridad?O lea lo que escribí sobre la longitud de las claves simétricas en 1996, en <a href="https://acortador.tutorialesenlinea.es/kebfVw" target="_blank" rel="noopener external nofollow">Criptografía aplicada</a> (pp. 157-8):<br>Una de las consecuencias de la segunda ley de la termodinámica es que se necesita una cierta cantidad de energía para representar la información. Para registrar un solo bit cambiando el estado de un sistema se requiere una cantidad de energía no menor que kT, donde T es la temperatura absoluta del sistema y k es la constante de Boltzman. (Quédate conmigo; la lección de física casi ha terminado).<br><br>Dado que k = 1.38 × 10 <sup>-16</sup> erg / ° Kelvin, y que la temperatura ambiente del universo es de 3.2 ° Kelvin, una computadora ideal que funcione a 3.2 ° K consumiría 4.4 × 10 <sup>-16</sup> ergs cada vez que se establezca o se elimine. poco. Para ejecutar una computadora más fría que la radiación de fondo cósmica se necesitaría energía adicional para hacer funcionar una bomba de calor.<br><br>Ahora, la salida de energía anual de nuestro sol es de aproximadamente 1.21 × 10 <sup>41</sup> ergs. Esto es suficiente para impulsar aproximadamente 2.7 × 10 <sup>56</sup> cambios de bit en nuestra computadora ideal; suficientes cambios de estado para poner un contador de 187 bits a través de todos sus valores. Si construimos una esfera Dyson alrededor del sol y capturamos toda su energía durante 32 años, sin ninguna pérdida, podríamos hacer que una computadora cuente hasta 2 <sup>192</sup> . Por supuesto, no le quedaría energía para realizar cálculos útiles con este contador.<br><br>Pero eso es solo una estrella, y una miserable en eso. Una supernova típica libera algo así como 10 <sup>51</sup> ergs. (Alrededor de cien veces más energía se liberaría en forma de neutrinos, pero déjelos ir por el momento). Si toda esta energía pudiera canalizarse a una sola orgía de cómputo, se podría hacer un ciclo de un contador de 219 bits a través de todos de sus estados.<br><br>Estos números no tienen nada que ver con la tecnología de los dispositivos; Son los máximos que permitirá la termodinámica. Y implican firmemente que los ataques de fuerza bruta contra claves de 256 bits no serán factibles hasta que las computadoras se construyan a partir de algo que no sea materia y ocupen algo que no sea el espacio.Diez años después, todavía no hay razón para usar algo más que una clave simétrica de 256 bits. Di el mismo consejo en 2003 <a href="https://acortador.tutorialesenlinea.es/vIIi" target="_blank" rel="noopener external nofollow">Criptografía práctica </a>(pp. 65-6). Incluso una computadora cuántica mítica no podrá hacer fuerza bruta en un espacio de teclas tan grande. (Las claves públicas son diferentes, por supuesto, consulte la Tabla 2.2 de este<a href="https://acortador.tutorialesenlinea.es/95JU" target="_blank" rel="noopener external nofollow"> documento del NIST</a> para obtener recomendaciones).<br><br>Por supuesto, en el mundo real hay formas más inteligentes que mediante la búsqueda de claves por fuerza bruta. Y todo el punto del análisis criptográfico cifrado es encontrar accesos directos a la búsqueda de fuerza bruta (como este ataque en AES), pero una clave de 49,152 bits es simplemente estúpida.<br><br>EDITADO PARA AGREGAR (9/30): Ahora esto es divertido:<br>Hace unos meses envié correos electrónicos individuales a cada uno de los diecisiete expertos en criptología, todos con el título de Doctor o Profesor. Mi correo electrónico fue un primer anuncio al mundo académico del algoritmo de cifrado TOUAREG, que, de manera poco usual, tiene una fuerza clave de sesión de más de 49,000 bits y, sin embargo, se ejecuta a 3 megabytes por segundo. Teniendo en cuenta que la versión más fuerte de <a href="https://acortador.tutorialesenlinea.es/icOOq" target="_blank" rel="noopener external nofollow">BLOWFISH </a>tiene una clave de sesión de 448 bits y que cada bit adicional duplica la tarea de bloquear claves, me imaginé que mi anuncio crearía más que un leve alboroto de interés.Para su sorpresa, nadie respondió.<br>Aquí hay algunos consejos más: mi ensayo de 1998, " <a href="https://acortador.tutorialesenlinea.es/YSFTPy" target="_blank" rel="noopener external nofollow">Nota para el diseñador aficionado de cifrado</a> ". Cualquiera puede diseñar un cifrado que él mismo no puede romper. Ni siquiera es difícil. Entonces, cuando le dices a un criptógrafo que has diseñado un cifrado que no puedes romper, su primera pregunta será "¿quién demonios eres?" En otras palabras, ¿por qué el hecho de no poder descifrar un cifrado se considera evidencia de la seguridad del cifrado?Si desea diseñar algoritmos, comience por romper los existentes. Practica rompiendo los algoritmos que ya se han roto (sin mirar las respuestas). Romper algo que nadie más ha roto. Romper otro Obtenga sus descansos publicados. Cuando se haya establecido como alguien que puede romper algoritmos, entonces puede comenzar a diseñar nuevos algoritmos. Antes de eso, nadie te tomará en serio.<br><br>EDITADO PARA AGREGAR (9/30): Acabo de hacer los cálculos. Una velocidad de cifrado de 8 megabytes por segundo en una CPU de 3,33 GHz se traduce en aproximadamente 400 ciclos de reloj por byte. Esto es mucho, mucho más lento que cualquiera de los finalistas de AES hace diez años, o cualquiera de los candidatos de la segunda ronda de SHA-3 hoy. Es un poco embarazoso, de verdad... <a href="https://acortador.tutorialesenlinea.es/EuxHFd" target="_blank" rel="noopener external nofollow">Vía Bruce Schneier</a>]]></turbo:content>
</item><item turbo="true">
<turbo:extendedHtml>true</turbo:extendedHtml>
<link>https://tutorialesenlinea.es/1294-algoritmos.html</link>
<author>J.A. M.A. (J.A.M.)</author>
<category>Programacion, Algoritmos, Software, hardware, Internet, Noticias, Tutorial</category>
<pubDate>Tue, 04 Jul 2017 21:57:01 +0200</pubDate>
<turbo:content><![CDATA[<header><h1>Algoritmos</h1></header><p style="text-align:center;"><a href="https://tutorialesenlinea.es/uploads/posts/2017-07/1499199933_los_algoritmos.webp" class="highslide" target="_blank"><img src="https://tutorialesenlinea.es/uploads/posts/2017-07/thumbs/1499199933_los_algoritmos.webp" style="max-width:100%;" alt=""></a></p><div>Existen muchas y muy variadas definiciones de lo que es un algoritmo, dependiendo del autor podemos distinguir las siguientes:</div><div><br></div><div>Algoritmo es una secuencia finita de instrucciones, cada una de las cuales tiene un significado preciso y puede ejecutarse con una cantidad finita de esfuerzo en un tiempo finito. Ha de tener las siguientes características: legible, correcto, modular, eficiente, estructurado, no ambiguo y a ser posible se ha de desarrollar en el menor tiempo posible. </div><div><br></div><div>En pocas palabras un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. </div><div><br></div><h2>Características De Un Algoritmo</h2><div><br></div><div><b>Definibilidad</b>: El algoritmo debe definirse de forma precisa para cada paso, es decir, hay que evitar toda ambigüedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matemático o de programación para un computador.</div><div><br></div><div><b>Entrada</b>: El algoritmo tendrá cero o más entradas, es decir, cantidades dadas antes de empezar el algoritmo. Estas cantidades pertenecen además a conjuntos especificados de objetos.Se trata siempre de cantidades representativas del mundo real expresadas de tal forma que sean aptas para su interpretación por el computador.</div><div><br></div><div><b>Salida</b>: El algoritmo tiene una o más salidas, en relación con las entradas.</div><div><br></div><div><b>Efectividad</b>: Se entiende por esto que una persona sea capaz de realizar el algoritmo de modo exacto y sin ayuda de una máquina en un lapso de tiempo finito.</div><div><br></div><h2>Medios De Expresión De Un Algoritmo</h2><div><br></div><div>Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. </div><div><br></div><div>La descripción de un algoritmo usualmente se hace en tres niveles:</div><div><br></div><div><b>Descripción de alto nivel</b>. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. </div><div><br></div><div><b>Descripción formal</b>. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución. </div><div><b><br></b></div><div><b>Implementación</b>. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.</div><div><br></div><div>También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.</div><div><br></div><h2>Diagramas De Flujo</h2><div><br></div><div>Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número </div><div><p style="text-align:center;"><img src="https://tutorialesenlinea.es/uploads/posts/2017-07/1499198484_algoritmoraiz.webp" alt="" title="" class="fr-fic fr-dii"></p></div><div>Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos <a href="https://es.wikipedia.org/wiki/Organizaci%C3%B3n_Internacional_de_Normalizaci%C3%B3n" target="_blank" title="https://es.wikipedia.org/wiki/Organizaci%C3%B3n_Internacional_de_Normalizaci%C3%B3n" rel="noopener external nofollow">por ISO</a>.</div><div><br></div><div>Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas.</div><div><br></div><h2>Pseudocódigo</h2><div><br></div><div>El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso) es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocódigo requieren menos espacio para representar instrucciones complejas.</div><div><br></div><h2>Sistemas formales</h2><div><br></div><div>La teoría de autómatas y la teoría de funciones recursivas proveen modelos matemáticos que formalizan el concepto de algoritmo. Los modelos más comunes son la máquina de Turing, máquina de registro y funciones μ-recursivas. Estos modelos son tan precisos como un lenguaje máquina, careciendo de expresiones coloquiales o ambigüedad, sin embargo se mantienen independientes de cualquier computadora y de cualquier implementación.</div><h2><br>Implementación</h2><div><br></div><div>Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico y eléctrico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba de Eratóstenes y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos.</div><h2><br>Variables</h2><div><br></div><div>Son elementos que toman valores específicos de un tipo de datos concreto. La declaración de una variable puede realizarse comenzando con var. Principalmente, existen dos maneras de otorgar valores iníciales a variables:</div><div>· Mediante una sentencia de asignación.</div><div><h2>Pasos Para Realizar Algoritmos</h2><div><br></div><div>Para la realización de un algoritmo es necesario realizar una secuencia de pasos para llegar a cumplir con la resolución de un problema dado. Para ello, definiremos los siguientes pasos:</div><ul><li><b>Análisis previo del Problema</b>: Se debe realizar un análisis del funcionamiento del problema antes que se realice cualquier algoritmo.</li><li><b>Definición de Requerimientos:</b> Los problemas a solucionar, esto es, por ejemplo, el sumar dos números, multiplicar dos matrices, ordenar una lista de números, generar un reporte, etc.</li><li><b>Identificación de los Módulos:</b> La identificación de los módulos es tan importante como la identificación correcta de los requerimientos, esto porque la correcta identificación de los módulos simplifica considerablemente la realización de los algoritmos que darán solución a los requerimientos identificados en el paso anterior.</li><li><b>Realización de los Algoritmos:</b> El algoritmo deberá cumplir con las características que se indicaron para posteriormente implementarse en un lenguaje de programación comprensible por una computadora.</li><li><b>Implementación de los Algoritmos:</b> La implementación de los algoritmos se debe realizar en un lenguaje de programación para que una computadora pueda comprender las instrucciones que el algoritmo modela para así poder ejecutarlas y lograr el resultado esperado.</li></ul><span>En el último paso ya podemos hablar de una aplicación o programa de computadora, que estará compuesto por una serie de instrucciones que ordenadas una tras otra logran representar los algoritmos diseñados y dar así solución a los requerimientos identificados.</span><br><br></div><div><h2>Resolviendo Un Algoritmo</h2><div> </div><div><div>Una vez que ya hemos comprendido adecuadamente el problema, podemos escribir el algoritmo. Probablemente necesitaremos reescribir el algoritmo varias veces para mejorarlo. Los algoritmos tienen ciertas características. Cada algoritmo empieza con un nombre que describe la función que realiza. Usualmente empieza con un verbo y termina con un sustantivo, como se muestra en el ejemplo.</div><div><b><br></b></div><div style="text-align:center;"><b>Algoritmo para calcular impuesto </b></div><div><p style="text-align:center;"><img src="https://tutorialesenlinea.es/uploads/posts/2017-07/1499199479_algoritmo-construccion-escribir-algoritmos.webp" alt="" title="" class="fr-fic fr-dii"></p></div><div>De cada paso de procesamiento en la tabla de definiciones, resulta una o más instrucciones de pseudocódigo. Los elementos en las columnas de entradas y salidas son los argumentos de las instrucciones.</div><div><br></div><div><b>Ejercicio:</b> Supongamos que queremos escribir un programa que convierta una distancia en kilómetros a una distancia en millas. En cada kilómetro hay 0.625 millas. Coloca cada opción en su lugar correcto en la tabla de definiciones.</div></div></div><div><div><div>1) kilómetros</div></div><div><div><div>2) millas</div></div></div></div><div><div><div><p style="text-align:center;"><img src="https://tutorialesenlinea.es/uploads/posts/2017-07/1499199507_algoritmo-construccion-escribir-algoritmos-1.webp" alt="" title="" class="fr-fic fr-dii"></p></div><div>¡Por Supuesto! los kilómetros van en la columna de entrada y las millas van en la columna de salida.</div><div><br></div><div>Para transformar los kilómetros en millas necesitamos un proceso. El verbo convertir en el enunciado del problema indica el proceso que necesitamos. Así que tenemos que calcular el número de millas que es equivalente al número de kilómetros dado. Y necesitamos un proceso que muestre las millas calculadas.</div><div><p style="text-align:center;"><img src="https://tutorialesenlinea.es/uploads/posts/2017-07/1499199575_algoritmo-construccion-escribir-algoritmos-2.webp" alt="" title="" class="fr-fic fr-dii"></p></div><div>Podemos utilizar nuestra tabla para escribir nuestro algoritmo en pseudocódigo.</div><div><br></div><div><b>Algoritmo para convertir kilómetros en millas.</b></div><div><p style="text-align:center;"><img src="https://tutorialesenlinea.es/uploads/posts/2017-07/1499199743_algoritmo-construccion-escribir-algoritmos-3.webp" alt="" title="" class="fr-fic fr-dii"></p></div><div>Cuando se ejecute el programa, lo que el usuario debe ver en pantalla, será algo como lo siguiente.</div><div><p style="text-align:center;"><img src="https://tutorialesenlinea.es/uploads/posts/2017-07/1499199714_algoritmo-construccion-escribir-algoritmos-4.webp" alt="" title="" class="fr-fic fr-dii"></p></div></div><div><b>Por otro lado veamos otro ejemplo:</b> Veamos ahora un ejemplo de diseño e implementación de un algoritmo. Consideremos el problema de resolver una serie como la de a continuación:</div><h2><br>Analisis Del Problema</h2><div><br></div><div><b>Paso 1: </b>Se debe determinar el valor de la variable S a partir de los valores x e y ingresados. Estos valores deben ser leídos y procesados de acuerdo a la serie presentada para obtener el valor de ésta.</div><div><b>Paso 2:</b> El requerimiento principal es el determinar el valor de S y mostrarlo por pantalla.</div><div><b>Paso 3:</b> El problema es sencillo y puede ser resuelto por medio de dos módulos, uno que realice la función exponencial y otro que desarrolle la serie haciendo la llamada respectiva al módulo anterior.</div><div><b>Paso 4:</b> Al realizar los algoritmos debemos tener presentes las características que debe tener un algoritmo para poder llegar a una correcta implementación de éstos. Para ello utilizaremos los símbolos descritos y con ellos lograremos el algoritmo que a continuación se presenta.</div><div> </div><div><b>Representación en un Algoritmo</b></div><div>Inicio</div><div>Leer x, n</div><div>S = 1</div><div>Mientras que i=2,n</div><div>Calcular =X</div><div>R=R/i</div><div>S=S+R</div><div>Mostrar s</div><div>Fin</div><div><b>Algoritmos Solución:</b></div><div><p style="text-align:center;"><a href="https://tutorialesenlinea.es/uploads/posts/2017-07/1499198945_ejemplo-de-algoritmos.webp" class="highslide" target="_blank"><img src="https://tutorialesenlinea.es/uploads/posts/2017-07/thumbs/1499198945_ejemplo-de-algoritmos.webp" style="max-width:100%;" alt=""></a></p></div></div>]]></turbo:content>
</item></channel></rss>